API Reference¶
Data Converters¶
Seismic Data¶
Note
By default, the SEG-Y ingestion tool uses Python’s multiprocessing
to speed up parsing the data. This almost always requires a __main__
guard on any other Python code that is executed directly like
python file.py. When running inside Jupyter, this is NOT needed.
1if __name__ == "__main__":
2 segy_to_mdio(...)
When the CLI is invoked, this is already handled.
See the official multiprocessing documentation
here
and
here.
Conversion from SEG-Y to MDIO v1 format.
- mdio.converters.segy.segy_to_mdio(segy_spec, mdio_template, input_path, output_path, overwrite=False, grid_overrides=None, segy_header_overrides=None)¶
A function that converts a SEG-Y file to an MDIO v1 file.
Ingest a SEG-Y file according to the segy_spec. This could be a spec from registry or custom.
- Parameters:
segy_spec (SegySpec) – The SEG-Y specification to use for the conversion.
mdio_template (AbstractDatasetTemplate) – The MDIO template to use for the conversion.
input_path (UPath | Path | str) – The universal path of the input SEG-Y file.
output_path (UPath | Path | str) – The universal path for the output MDIO v1 file.
overwrite (bool) – Whether to overwrite the output file if it already exists. Defaults to False.
grid_overrides (dict[str, Any] | None) – Option to add grid overrides.
segy_header_overrides (SegyHeaderOverrides | None) – Option to override specific SEG-Y headers during ingestion.
- Raises:
FileExistsError – If the output location already exists and overwrite is False.
- Return type:
None
Conversion from to MDIO various other formats.
- mdio.converters.mdio.mdio_to_segy(segy_spec, input_path, output_path, selection_mask=None, client=None)¶
Convert MDIO file to SEG-Y format.
We export N-D seismic data to the flattened SEG-Y format used in data transmission.
The input headers are preserved as is, and will be transferred to the output file.
Input MDIO can be local or cloud based. However, the output SEG-Y will be generated locally.
A selection_mask can be provided (same shape as spatial grid) to export a subset.
- Parameters:
segy_spec (SegySpec) – The SEG-Y specification to use for the conversion.
input_path (UPath | Path | str) – Store or URL (and cloud options) for MDIO file.
output_path (UPath | Path | str) – Path to the output SEG-Y file.
selection_mask (np.ndarray) – Array that lists the subset of traces
client (distributed.Client) – Dask client. If None we will use local threaded scheduler. If auto is used we will create multiple processes (with 8 threads each).
- Raises:
ImportError – if distributed package isn’t installed but requested.
ValueError – if cut mask is empty, i.e. no traces will be written.
- Return type:
None
Examples
To export an existing local MDIO file to SEG-Y we use the code snippet below. This will export the full MDIO (without padding) to SEG-Y format.
>>> from upath import UPath >>> from mdio import mdio_to_segy >>> >>> input_path = UPath("prefix2/file.mdio") >>> output_path = UPath("prefix/file.segy") >>> mdio_to_segy(input_path, output_path)
Core Functionality¶
Dimensions¶
Dimension (grid) abstraction and serializers.
- class mdio.core.dimension.Dimension(coords, name)¶
Dimension class.
Dimension has a name and coordinates associated with it. The Dimension coordinates can only be a vector.
- Parameters: