Skip to content

Commit d887031

Browse files
committed
Use new segy API calls
1 parent c23dcd2 commit d887031

File tree

3 files changed

+17
-22
lines changed

3 files changed

+17
-22
lines changed

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ dependencies = [
2626
"psutil>=7.0.0",
2727
"pydantic>=2.11.9",
2828
"rich>=14.1.0",
29-
"segy>=0.5.0",
29+
"segy @ git+https://github.com/TGSAI/segy.git@easier-access-to-raw-bytes",
3030
"tqdm>=4.67.1",
3131
"universal-pathlib>=0.2.6",
3232
"xarray>=2025.9.0",

src/mdio/segy/_disaster_recovery_wrapper.py

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,8 @@
22

33
from __future__ import annotations
44

5-
from copy import deepcopy
65
from typing import TYPE_CHECKING
76

8-
import numpy as np
9-
107
if TYPE_CHECKING:
118
from numpy.typing import NDArray
129
from segy import SegyFile
@@ -16,19 +13,21 @@ class SegyFileTraceDataWrapper:
1613
def __init__(self, segy_file: SegyFile, indices: int | list[int] | NDArray | slice):
1714
self.segy_file = segy_file
1815
self.indices = indices
19-
self._header_pipeline = deepcopy(segy_file.accessors.header_decode_pipeline)
20-
segy_file.accessors.header_decode_pipeline.transforms = []
21-
self.traces = segy_file.trace[indices]
16+
self.idx = self.segy_file.trace.normalize_and_validate_query(self.indices)
17+
self.traces = self.segy_file.trace.fetch(self.idx, raw=True)
18+
19+
self.raw_view = self.traces.view(self.segy_file.spec.trace.dtype)
20+
self.decoded_traces = self.segy_file.accessors.trace_decode_pipeline.apply(self.raw_view.copy())
2221

23-
@property
24-
def header(self) -> NDArray:
25-
# The copy is necessary to avoid applying the pipeline to the original header.
26-
return self._header_pipeline.apply(self.traces.header.copy())
2722

2823
@property
2924
def raw_header(self) -> NDArray:
30-
return np.ascontiguousarray(self.traces.header.copy()).view("|V240")
25+
return self.raw_view.header.view("|V240")
26+
27+
@property
28+
def header(self) -> NDArray:
29+
return self.decoded_traces.header
3130

3231
@property
3332
def sample(self) -> NDArray:
34-
return self.traces.sample
33+
return self.decoded_traces.sample

uv.lock

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

0 commit comments

Comments
 (0)