@@ -147,6 +147,74 @@ def trace_worker(  # noqa: PLR0913
147147
148148    ds_to_write  =  dataset [worker_variables ]
149149
150+     if  raw_header_key  in  worker_variables :
151+         # from segy.schema import HeaderField, ScalarType 
152+         from  segy .schema  import  HeaderField 
153+         from  segy .schema  import  ScalarType  as  ScalarType2 
154+ 
155+         new_spec  =  deepcopy (segy_file .spec )
156+         new_spec .trace .header .fields  =  []
157+         new_fields  =  []
158+ 
159+         for  i  in  range (240 ):
160+             new_fields .append (HeaderField (name = f"Field_{ i }  " , format = ScalarType .UINT8 , byte = i + 1 ))
161+ 
162+         # # new_spec.trace.header.fields = new_fields 
163+         new_spec  =  new_spec .customize (trace_header_fields = new_fields )
164+         updated_segy_file  =  SegyFile (segy_file .url , spec = new_spec )
165+         updated_traces  =  updated_segy_file .trace [live_trace_indexes ]
166+ 
167+         tmp_raw_headers  =  np .zeros_like (dataset [raw_header_key ])
168+ 
169+ 
170+         # _foo = traces.tobytes()[:240] 
171+ 
172+         # _asContiguousCopy = np.ascontiguousarray(traces.header.copy()).view("|V240") 
173+         # _asContiguousCopy1 = _asContiguousCopy[0] 
174+ 
175+         # _asContiguousNoCopy = np.ascontiguousarray(traces.header).view("|V240") 
176+         # _asContiguousNoCopy1 = _asContiguousNoCopy[0] 
177+ 
178+         # _asArrayCopy = traces.header.copy().view("|V240") 
179+         # _asArrayCopy1 = _asArrayCopy[0] 
180+ 
181+         # _asArrayNoCopy = traces.header.view("|V240") 
182+         # _asArrayNoCopy1 = _asArrayNoCopy[0] 
183+ 
184+         # _fo = type(traces.header) 
185+ 
186+         # _aahhhhhhh = segy_file.header[0] 
187+ 
188+     
189+ 
190+         # _asBytes = traces.header.tobytes() 
191+         # _are_equal = _foo == _asBytes[:240] 
192+         # _asBytesLen = len(_asBytes) 
193+         # _asContiguousBytes = np.ascontiguousarray(traces.header).tobytes() 
194+         # _asContiguousBytesLen = len(_asContiguousBytes) 
195+         # _asContiguousBytesView = np.ascontiguousarray(traces.header[0]).tobytes().view("|V240") 
196+         # _asBuffer = memoryview(traces.header) 
197+ 
198+ 
199+         # _type = traces.header.dtype 
200+ 
201+         # tmp_raw_headers[not_null] = traces.raw_header 
202+         # tmp_raw_headers[not_null] = np.ascontiguousarray(traces.header.copy()).view("|V240") 
203+         # tmp_raw_headers[not_null] = _asContiguousBytes 
204+         # tmp_raw_headers[not_null] = _asBytes 
205+         # tmp_raw_headers[not_null] = traces.header.view("|V240") 
206+         # tmp_raw_headers[not_null] = np.ascontiguousarray(traces.header.copy()).view("|V240")  # Leaks numpy metadata 
207+         
208+         
209+         tmp_raw_headers [not_null ] =  updated_traces .header .view ("|V240" )
210+ 
211+         ds_to_write [raw_header_key ] =  Variable (
212+             ds_to_write [raw_header_key ].dims ,
213+             tmp_raw_headers ,
214+             attrs = ds_to_write [raw_header_key ].attrs ,
215+             encoding = ds_to_write [raw_header_key ].encoding ,  # Not strictly necessary, but safer than not doing it. 
216+         )
217+ 
150218    if  header_key  in  worker_variables :
151219        # TODO(BrianMichell): Implement this better so that we can enable fill values without changing the code 
152220        # https://github.com/TGSAI/mdio-python/issues/584 
@@ -164,17 +232,6 @@ def trace_worker(  # noqa: PLR0913
164232            attrs = ds_to_write [header_key ].attrs ,
165233            encoding = ds_to_write [header_key ].encoding ,  # Not strictly necessary, but safer than not doing it. 
166234        )
167-     if  raw_header_key  in  worker_variables :
168-         tmp_raw_headers  =  np .zeros_like (dataset [raw_header_key ])
169-         # tmp_raw_headers[not_null] = traces.raw_header 
170-         tmp_raw_headers [not_null ] =  np .ascontiguousarray (traces .header .copy ()).view ("|V240" )
171- 
172-         ds_to_write [raw_header_key ] =  Variable (
173-             ds_to_write [raw_header_key ].dims ,
174-             tmp_raw_headers ,
175-             attrs = ds_to_write [raw_header_key ].attrs ,
176-             encoding = ds_to_write [raw_header_key ].encoding ,  # Not strictly necessary, but safer than not doing it. 
177-         )
178235
179236    # del raw_headers  # Manage memory 
180237    data_variable  =  ds_to_write [data_variable_name ]
0 commit comments