pycsamt.ai.domain_gap.empirical#
Empirical field-calibrated corruption for synthetic EM surveys.
Functions
|
Apply jointly sampled field profiles and empirical error quantiles. |
Classes
|
One corrupted survey and every sampled latent array. |
- class pycsamt.ai.domain_gap.empirical.EmpiricalCorruptionResult(survey, seed, field_station_indices, static_log10_resistivity_factor, relative_error_fraction, noise_realization, missing_mask, measurement_reliability, dimensionality_reliability, observation_reliability)[source]
Bases:
objectOne corrupted survey and every sampled latent array.
- Parameters:
survey (SurveyData) – Corrupted survey with declared empirical impedance errors.
seed (int) – Parent random seed.
field_station_indices (ndarray of int) – Empirical field station selected for each synthetic station.
static_log10_resistivity_factor (ndarray) – Sampled
log10(rho_observed / rho_smooth).relative_error_fraction (ndarray) – Sampled impedance-error fractions by component.
noise_realization (ndarray of complex) – Additive complex noise in impedance units.
missing_mask (ndarray of bool) – True where an observation was removed.
measurement_reliability (ndarray) – Separate and combined reliability factors.
dimensionality_reliability (ndarray) – Separate and combined reliability factors.
observation_reliability (ndarray) – Separate and combined reliability factors.
- survey: SurveyData
- seed: int
- field_station_indices: ndarray
- static_log10_resistivity_factor: ndarray
- relative_error_fraction: ndarray
- noise_realization: ndarray
- missing_mask: ndarray
- measurement_reliability: ndarray
- dimensionality_reliability: ndarray
- observation_reliability: ndarray
- pycsamt.ai.domain_gap.empirical.apply_empirical_corruption(survey, *, field_frequencies_hz, static_log10_resistivity_profiles, measurement_reliability_profiles, dimensionality_reliability_profiles, observation_reliability_profiles, relative_error_quantiles, seed, missing_rate_by_component=None)[source]
Apply jointly sampled field profiles and empirical error quantiles.
- Parameters:
survey (SurveyData) – Clean synthetic survey.
field_frequencies_hz (array-like) – Positive unique frequencies of the empirical field profiles.
static_log10_resistivity_profiles (array-like) – Field
log10(rho_observed / rho_smooth)profiles shaped(n_field_station, n_field_frequency).measurement_reliability_profiles (array-like) – Aligned empirical reliability profiles in
[0, 1].dimensionality_reliability_profiles (array-like) – Aligned empirical reliability profiles in
[0, 1].observation_reliability_profiles (array-like) – Aligned empirical reliability profiles in
[0, 1].relative_error_quantiles (mapping) – Component names mapped to
{"levels": ..., "values": ...}monotone empirical quantile curves.seed (int) – Parent random seed.
missing_rate_by_component (mapping or None, optional) – Empirical independent missing probabilities. Missing observations are set to complex NaN and marked invalid.
- Returns:
Corrupted survey and complete sampled provenance.
- Return type:
Notes
Static shift is supplied in apparent-resistivity space and therefore applied to impedance as
10**(0.5 * log10_rho_factor).Examples
>>> clean = SurveyData( ... np.ones((2, 2, 1), complex), ... [10.0, 1.0], ... ["A", "B"], ... ["zxy"], ... [[0, 0], [1, 0]], ... ) >>> result = apply_empirical_corruption( ... clean, ... field_frequencies_hz=[10.0, 1.0], ... static_log10_resistivity_profiles=[[0.0, 0.0]], ... measurement_reliability_profiles=[[0.8, 0.7]], ... dimensionality_reliability_profiles=[[1.0, 0.5]], ... observation_reliability_profiles=[[0.8, 0.35]], ... relative_error_quantiles={ ... "zxy": {"levels": [0, 1], "values": [0.01, 0.05]} ... }, ... seed=0, ... ) >>> result.survey.shape (2, 2, 1)