mirror of
https://github.com/wassname/segpy.git
synced 2026-06-27 20:53:33 +08:00
47 lines
1.5 KiB
Python
47 lines
1.5 KiB
Python
#!/usr/bin/env python3
|
|
|
|
from segpy.reader import create_reader
|
|
from segpy.trace_header import TraceHeaderRev1
|
|
from segpy.types import Int16
|
|
from segpy.writer import write_segy
|
|
from segpy.header import are_equal, field
|
|
|
|
|
|
class CustomTraceHeader(TraceHeaderRev1):
|
|
|
|
unassigned_1 = field(
|
|
Int16, offset=233, default=0, documentation="Unassigned 1")
|
|
|
|
unassigned_2 = field(
|
|
Int16, offset=235, default=0, documentation="Unassigned 2")
|
|
|
|
unassigned_3 = field(
|
|
Int16, offset=237, default=0, documentation="Unassigned 3")
|
|
|
|
unassigned_4 = field(
|
|
Int16, offset=239, default=0, documentation="Unassigned 4")
|
|
|
|
|
|
in_filename = "data/rth.segy"
|
|
out_filename = "data/rth_out2.segy"
|
|
|
|
in_file = open(in_filename, 'rb')
|
|
|
|
with open(out_filename, 'wb') as out_file:
|
|
segy_reader_in = create_reader(in_file, trace_header_format=CustomTraceHeader)
|
|
write_segy(out_file, segy_reader_in, trace_header_format=CustomTraceHeader)
|
|
|
|
out_file = open(out_filename, 'rb')
|
|
segy_reader_out = create_reader(in_file, trace_header_format=CustomTraceHeader)
|
|
|
|
for trace_index in segy_reader_in.trace_indexes():
|
|
trace_offset = segy_reader_in._trace_offset_catalog[trace_index]
|
|
print(trace_index, hex(trace_offset))
|
|
head0 = segy_reader_in.trace_header(trace_index)
|
|
head1 = segy_reader_out.trace_header(trace_index)
|
|
assert are_equal(head0, head1), "Error {}".format(trace_index)
|
|
|
|
data0 = segy_reader_in.trace_samples(trace_index)
|
|
data1 = segy_reader_out.trace_samples(trace_index)
|
|
assert data0==data1
|