System

Inheritance diagram of gspy.gs_dataset.System
class gspy.gs_dataset.System.System(xarray_obj)
check_against_data(dataset)

Assert that gate time strings match the coordinates of the attached dataset.

classmethod from_dict(**kwargs)
property is_projected

Does the dataset have a projected spatial reference

Returns:

out

Return type:

bool

classmethod metadata_template(key, name=None, transmitters=None, receivers=None, metadata=None)

A metadata template for one system, shaped to its transmitters and receivers.

Parameters:
  • key (str) – Which method family to template, one of templates().

  • name (str, optional) – What to file the system under, f"{key}_system" by default. Must contain “system”, because that is what a container looks for when it lifts system definitions out of a dataset’s metadata.

  • transmitters (int or list of str, optional) – How many of each there are, or their labels. A count gives indexed labels. Both default to one. Where a family pairs its transmitters and receivers one to one, giving only one side mirrors it onto the other.

  • receivers (int or list of str, optional) – How many of each there are, or their labels. A count gives indexed labels. Both default to one. Where a family pairs its transmitters and receivers one to one, giving only one side mirrors it onto the other.

  • metadata (dict, optional) – What you already know about this system. Wins over the placeholders.

Returns:

{name: the system}, ready to merge into a dataset’s metadata.

Return type:

gspy.Metadata

Notes

Fields are repeated to match the shape asked for, and collapse to a single value where there is only one of something. Couplets are worked out from the two sets of labels: every receiver measures every transmitter, unless the family pairs them off, and anything named per transmitter - time domain gate times, say - is named after the transmitter label it belongs to.

A template is a skeleton, not a system. Its dimensions hold placeholders where real gate times or frequencies go, so it will not build until those are filled in, the same way Survey.metadata_template does not yield a coordinate reference system from wkid: '??'.

Examples

Two moments read by two coils, so four couplets:

>>> System.metadata_template('tdem', name='skytem_system',
...                          transmitters=['LM', 'HM'], receivers=['z', 'x'])

Six frequencies, each coil pair its own couplet:

>>> System.metadata_template('fdem', transmitters=6)
classmethod open(filename, **kwargs)
required_metadata: tuple[str, ...] = ('type', 'mode', 'method', 'instrument')

Attributes every GS dataset must carry. Subclasses narrow or widen this.

classmethod templates()

The method families that metadata_template can shape a template for.

Return type:

tuple of str

classmethod valid_instrument(**kwargs)
classmethod valid_method(**kwargs)
classmethod valid_model(**kwargs)