2.7.8.1. pycsamt.airborne.mobilemt#
MobileMT scientific adapter contract.
The module represents the published MobileMT 3x2 admittance relationship and
maps decoded arrays into the format-neutral pycsamt.emtf and airborne
containers. It intentionally does not guess a proprietary native file schema.
- class pycsamt.airborne.mobilemt.MobileMTSystemSpec(nominal_frequency_range_hz=(19.0, 26000.0), nominal_max_frequency_windows=30, nominal_sampling_rate_hz=73728.0, input_channels=('Ex', 'Ey'), output_channels=('Hx', 'Hy', 'Hz'), attrs=<factory>)
Bases:
CoreObjectPublished/declared MobileMT system characteristics.
These values are descriptive metadata, not hard validation limits. A processed product may legitimately contain fewer windows or a subset of the nominal frequency range.
- Parameters:
- nominal_max_frequency_windows: int = 30
- nominal_sampling_rate_hz: float = 73728.0
- validate()
Validate object state.
Subclasses can override this hook. The base implementation intentionally accepts all states.
- Return type:
None
- nominal_frequency_mask(frequency)
Return a mask for values inside the published nominal range.
- to_instrument_meta(*, serial=None, software_version='')
Return a reusable
InstrumentMetadescription.The sensor descriptions reflect only the published system-level geometry. Manufacturer model numbers and calibration details are not invented.
- Parameters:
- Return type:
- class pycsamt.airborne.mobilemt.MobileMTReferenceStation(station_id=None, site=None, electric_channels=('Ex', 'Ey'), attrs=<factory>)
Bases:
CoreObjectGround electric reference-station metadata for MobileMT processing.
This object intentionally describes only the processed reference station. It does not invent a raw electrode-file schema or model the additional internal reference electrode pairs used by proprietary processing.
- Parameters:
- validate()
Validate object state.
Subclasses can override this hook. The base implementation intentionally accepts all states.
- Return type:
None
- exception pycsamt.airborne.mobilemt.MobileMTValidationError
Bases:
ValueErrorRaised when decoded MobileMT scientific arrays are inconsistent.
- pycsamt.airborne.mobilemt.register_mobilemt_datatypes()
Register and return the MobileMT admittance definition.
Registration is idempotent when the existing definition has the same semantic tag. A conflicting global
Y/tag registration is surfaced rather than silently overwritten.- Return type:
- pycsamt.airborne.mobilemt.validate_mobilemt_transfer_function(tf)
Validate and return a MobileMT 3x2 admittance transfer function.
- Parameters:
tf (TransferFunction)
- Return type:
- pycsamt.airborne.mobilemt.build_mobilemt_emtf(admittance, *, frequency=None, periods=None, units=None, variance=None, inverse_signal_covariance=None, residual_covariance=None, product_id=None, description=None, reference_station=None, system_spec=None, attrs=None)
Build one sample-level
EMTFMobileMT response.- Parameters:
admittance (array-like) – Complex admittance with shape
(nf, 3, 2)or one(3, 2)matrix. Rows areHx, Hy, Hzand columns areEx, Ey.frequency (array-like, optional) – Exactly one frequency or period grid must be supplied.
periods (array-like, optional) – Exactly one frequency or period grid must be supplied.
units (str, optional) – Units of the supplied admittance. No raw-unit convention is invented by this adapter because processed deliveries may differ.
variance (array-like, optional) – Component variance, shape
(nf, 3, 2).inverse_signal_covariance (array-like, optional) – Input covariance factor
S, shape(nf, 2, 2).residual_covariance (array-like, optional) – Output residual covariance
N, shape(nf, 3, 3).reference_station (MobileMTReferenceStation, optional) – Ground electric reference metadata retained as MobileMT metadata.
system_spec (MobileMTSystemSpec, optional) – System-description metadata; defaults to published nominal values.
product_id (str | None)
description (str | None)
- Return type:
Notes
Apparent conductivity is intentionally not computed here. The published system exposes it as a processed output, but a verified delivery schema is required before pyCSAMT should codify its exact exported representation.
- pycsamt.airborne.mobilemt.build_mobilemt_record(sample_id, admittance, *, frequency=None, periods=None, apparent_conductivity=None, apparent_conductivity_units='mS/m', quality=None, record_attrs=None, **emtf_kwargs)
Build one airborne record from decoded MobileMT arrays.
- pycsamt.airborne.mobilemt.build_mobilemt_line(line_id, navigation, admittance, *, frequency, record_mask=None, apparent_conductivity=None, variance=None, inverse_signal_covariance=None, residual_covariance=None, units=None, reference_station=None, system_spec=None, attrs=None)
Build one MobileMT flight line from decoded sample-aligned arrays.
frequencymay be a common(nf,)vector or a sample-specific(n_samples, nf)matrix.record_maskcontrols sparse EM coverage; navigation points are never deleted when their EM record is absent.- Parameters:
line_id (str)
navigation (NavigationTrack)
admittance (Any)
frequency (Any)
record_mask (Any | None)
apparent_conductivity (Any | None)
variance (Any | None)
inverse_signal_covariance (Any | None)
residual_covariance (Any | None)
units (str | None)
reference_station (MobileMTReferenceStation | None)
system_spec (MobileMTSystemSpec | None)
- Return type:
- pycsamt.airborne.mobilemt.build_mobilemt_dataset(name, lines, *, survey=None, system_spec=None, instrument_serial=None, software_version='', attrs=None)
Build a common airborne dataset from already constructed MobileMT lines.
This helper does not parse files. It only supplies technology metadata and reuses
AirborneEMDatasetas the survey-level container.- Parameters:
- Return type: