Skip to content

Commit 0a49042

Browse files
committed
Further cleanup and optimization
1 parent dddab96 commit 0a49042

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed

src/mdio/segy/_disaster_recovery_wrapper.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,9 @@ def _reverse_single_transform(data: NDArray, transform: Transform) -> NDArray:
3737

3838
def get_header_raw_and_transformed(
3939
segy_file: SegyFile,
40-
indices: int | list[int] | NDArray | slice
41-
) -> tuple[NDArray, NDArray, NDArray]:
40+
indices: int | list[int] | NDArray | slice,
41+
do_reverse_transforms: bool = True
42+
) -> tuple[NDArray | None, NDArray, NDArray]:
4243
"""Get both raw and transformed header data.
4344
4445
Args:
@@ -53,7 +54,10 @@ def get_header_raw_and_transformed(
5354
transformed_headers = traces.header
5455

5556
# Reverse transforms to get raw data
56-
raw_headers = _reverse_transforms(transformed_headers, segy_file.header.transform_pipeline)
57+
if do_reverse_transforms:
58+
raw_headers = _reverse_transforms(transformed_headers, segy_file.header.transform_pipeline)
59+
else:
60+
raw_headers = None
5761

5862
return raw_headers, transformed_headers, traces
5963

src/mdio/segy/_workers.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99

1010
import numpy as np
1111
from segy import SegyFile
12-
from segy.indexing import merge_cat_file
1312

1413
from mdio.api.io import to_mdio
1514
from mdio.builder.schemas.dtype import ScalarType
@@ -121,19 +120,23 @@ def trace_worker( # noqa: PLR0913
121120
zarr_config.set({"threading.max_workers": 1})
122121

123122
live_trace_indexes = local_grid_map[not_null].tolist()
124-
raw_headers, transformed_headers, traces = get_header_raw_and_transformed(segy_file, live_trace_indexes)
125123

126124
header_key = "headers"
127125
raw_header_key = "raw_headers"
128126

127+
# Used to disable the reverse transforms if we aren't going to write the raw headers
128+
do_reverse_transforms = False
129+
129130
# Get subset of the dataset that has not yet been saved
130131
# The headers might not be present in the dataset
131132
worker_variables = [data_variable_name]
132133
if header_key in dataset.data_vars: # Keeping the `if` here to allow for more worker configurations
133134
worker_variables.append(header_key)
134135
if raw_header_key in dataset.data_vars:
136+
do_reverse_transforms = True
135137
worker_variables.append(raw_header_key)
136138

139+
raw_headers, transformed_headers, traces = get_header_raw_and_transformed(segy_file, live_trace_indexes, do_reverse_transforms=do_reverse_transforms)
137140
ds_to_write = dataset[worker_variables]
138141

139142
if header_key in worker_variables:

0 commit comments

Comments
 (0)