Skip to content

Commit a663aca

Browse files
authored
Allow import/export completely custom SEG-Y via spec override environment variable (#440)
* Add environment variable for SEG-Y text header encoding (#439) * Update segy dependency to version 0.2.2 Upgraded segy from version 0.2.0 to 0.2.2 in pyproject.toml. * allow full spec override via json env var.
1 parent 5abb0f7 commit a663aca

File tree

3 files changed

+18
-12
lines changed

3 files changed

+18
-12
lines changed

poetry.lock

Lines changed: 10 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ dask = ">=2024.6.1"
3131
tqdm = "^4.66.4"
3232
psutil = "^6.0.0"
3333
fsspec = ">=2024.9.0"
34-
segy = "^0.2.0"
34+
segy = "^0.2.2"
3535
rich = "^13.7.1"
3636
urllib3 = "^1.26.18" # Workaround for poetry-plugin-export/issues/183
3737

src/mdio/segy/compat.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
from __future__ import annotations
1010

11+
import os
1112
from importlib import metadata
1213

1314
from segy.alias.segyio import SEGYIO_BIN_FIELD_MAP
@@ -57,14 +58,19 @@ def get_trace_fields(version: str) -> list[HeaderField]:
5758

5859
def mdio_segy_spec(version: str | None = None) -> SegySpec:
5960
"""Get a SEG-Y encoding spec for MDIO based on version."""
61+
spec_override = os.getenv("MDIO__SEGY__SPEC")
62+
63+
if spec_override is not None:
64+
return SegySpec.model_validate_json(spec_override)
65+
6066
version = MDIO_VERSION if version is None else version
6167

6268
binary_fields = get_binary_fields()
6369
trace_fields = get_trace_fields(version)
6470

6571
return SegySpec(
6672
segy_standard=None,
67-
text_header=TextHeaderSpec(), # default EBCDIC
73+
text_header=TextHeaderSpec(),
6874
binary_header=HeaderSpec(fields=binary_fields, item_size=400, offset=3200),
6975
trace=TraceSpec(
7076
header=HeaderSpec(fields=trace_fields, item_size=240),

0 commit comments

Comments
 (0)