2.7.8.2. pycsamt.airborne.mobilemt.adapter#

Array-to-scientific-object adapter contract for MobileMT products.

This module deliberately does not define a native vendor file reader. It accepts already decoded arrays and maps them into the common pyCSAMT airborne and EMTF model. A genuine delivery sample can later define the parser without changing these scientific contracts.

Functions

build_mobilemt_dataset(name, lines, *[, ...])

Build a common airborne dataset from already constructed MobileMT lines.

build_mobilemt_emtf(admittance, *[, ...])

Build one sample-level EMTF MobileMT response.

build_mobilemt_line(line_id, navigation, ...)

Build one MobileMT flight line from decoded sample-aligned arrays.

build_mobilemt_record(sample_id, admittance, *)

Build one airborne record from decoded MobileMT arrays.

validate_mobilemt_transfer_function(tf)

Validate and return a MobileMT 3x2 admittance transfer function.

Exceptions

MobileMTValidationError

Raised when decoded MobileMT scientific arrays are inconsistent.

exception pycsamt.airborne.mobilemt.adapter.MobileMTValidationError[source]

Bases: ValueError

Raised when decoded MobileMT scientific arrays are inconsistent.

pycsamt.airborne.mobilemt.adapter.validate_mobilemt_transfer_function(tf)[source]

Validate and return a MobileMT 3x2 admittance transfer function.

Parameters:

tf (TransferFunction)

Return type:

TransferFunction

pycsamt.airborne.mobilemt.adapter.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)[source]

Build one sample-level EMTF MobileMT response.

Parameters:
  • admittance (array-like) – Complex admittance with shape (nf, 3, 2) or one (3, 2) matrix. Rows are Hx, Hy, Hz and columns are Ex, 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)

  • attrs (Mapping[str, Any] | None)

Return type:

EMTF

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.adapter.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)[source]

Build one airborne record from decoded MobileMT arrays.

Parameters:
  • sample_id (str)

  • admittance (Any)

  • frequency (Any | None)

  • periods (Any | None)

  • apparent_conductivity (Any | None)

  • apparent_conductivity_units (str)

  • quality (Mapping[str, Any] | None)

  • record_attrs (Mapping[str, Any] | None)

  • emtf_kwargs (Any)

Return type:

AirborneEMRecord

pycsamt.airborne.mobilemt.adapter.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)[source]

Build one MobileMT flight line from decoded sample-aligned arrays.

frequency may be a common (nf,) vector or a sample-specific (n_samples, nf) matrix. record_mask controls 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)

  • attrs (Mapping[str, Any] | None)

Return type:

AirborneEMLine

pycsamt.airborne.mobilemt.adapter.build_mobilemt_dataset(name, lines, *, survey=None, system_spec=None, instrument_serial=None, software_version='', attrs=None)[source]

Build a common airborne dataset from already constructed MobileMT lines.

This helper does not parse files. It only supplies technology metadata and reuses AirborneEMDataset as the survey-level container.

Parameters:
  • name (str)

  • lines (Any)

  • survey (SurveyMeta | None)

  • system_spec (MobileMTSystemSpec | None)

  • instrument_serial (str | None)

  • software_version (str)

  • attrs (Mapping[str, Any] | None)

Return type:

AirborneEMDataset