Skip to content

Commit 6e9fcb2

Browse files
committed
Attempt to use view
1 parent 7a30489 commit 6e9fcb2

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

src/mdio/segy/_workers.py

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -138,15 +138,19 @@ def trace_worker( # noqa: PLR0913
138138
do_reverse_transforms = True
139139
worker_variables.append(raw_header_key)
140140

141-
raw_headers, transformed_headers, traces = get_header_raw_and_transformed(
142-
segy_file, live_trace_indexes, do_reverse_transforms=do_reverse_transforms
143-
)
141+
# raw_headers, transformed_headers, traces = get_header_raw_and_transformed(
142+
# segy_file, live_trace_indexes, do_reverse_transforms=do_reverse_transforms
143+
# )
144+
from copy import deepcopy # TODO: Move to head if we need to copy
145+
header_pipeline = deepcopy(segy_file.accessors.header_decode_pipeline)
146+
traces = segy_file.trace[live_trace_indexes]
144147
ds_to_write = dataset[worker_variables]
145148

146149
if header_key in worker_variables:
147150
# Create temporary array for headers with the correct shape
148151
tmp_headers = np.zeros_like(dataset[header_key])
149-
tmp_headers[not_null] = transformed_headers
152+
# tmp_headers[not_null] = transformed_headers
153+
tmp_headers[not_null] = header_pipeline.apply(traces.header.copy())
150154
# Create a new Variable object to avoid copying the temporary array
151155
# The ideal solution is to use `ds_to_write[header_key][:] = tmp_headers`
152156
# but Xarray appears to be copying memory instead of doing direct assignment.
@@ -157,10 +161,11 @@ def trace_worker( # noqa: PLR0913
157161
attrs=ds_to_write[header_key].attrs,
158162
encoding=ds_to_write[header_key].encoding, # Not strictly necessary, but safer than not doing it.
159163
)
160-
del transformed_headers # Manage memory
164+
# del transformed_headers # Manage memory
161165
if raw_header_key in worker_variables:
162166
tmp_raw_headers = np.zeros_like(dataset[raw_header_key])
163-
tmp_raw_headers[not_null] = raw_headers.view("|V240")
167+
# tmp_raw_headers[not_null] = raw_headers.view("|V240")
168+
tmp_raw_headers[not_null] = traces.header.view("|V240")
164169

165170
ds_to_write[raw_header_key] = Variable(
166171
ds_to_write[raw_header_key].dims,
@@ -169,7 +174,7 @@ def trace_worker( # noqa: PLR0913
169174
encoding=ds_to_write[raw_header_key].encoding, # Not strictly necessary, but safer than not doing it.
170175
)
171176

172-
del raw_headers # Manage memory
177+
# del raw_headers # Manage memory
173178
data_variable = ds_to_write[data_variable_name]
174179
fill_value = _get_fill_value(ScalarType(data_variable.dtype.name))
175180
tmp_samples = np.full_like(data_variable, fill_value=fill_value)

0 commit comments

Comments
 (0)