mirror of
https://github.com/wassname/segpy.git
synced 2026-06-27 17:17:13 +08:00
Adds a property to reader to retrieve the default trace header class. Makes it possible to override the trace header class when retrieving a trace header.
This commit is contained in:
+14
-2
@@ -421,12 +421,15 @@ class SegYReader(object):
|
||||
self._fh, start_pos, seg_y_type, num_samples_to_read, self._endian)
|
||||
return trace_values
|
||||
|
||||
def trace_header(self, trace_index):
|
||||
def trace_header(self, trace_index, header_packer_override=None):
|
||||
"""Read a specific trace_samples.
|
||||
|
||||
Args:
|
||||
trace_index: An integer in the range zero to num_traces() - 1
|
||||
|
||||
header_packer_override: Override the default header packer (for example
|
||||
to more efficiently extract only a few fields)
|
||||
|
||||
Returns:
|
||||
A TraceHeader corresponding to the requested trace_samples.
|
||||
|
||||
@@ -436,10 +439,19 @@ class SegYReader(object):
|
||||
"""
|
||||
if not (0 <= trace_index < self.num_traces()):
|
||||
raise ValueError("Trace index {} out of range".format(trace_index))
|
||||
header_packer = self._trace_header_packer if header_packer_override is None else header_packer_override
|
||||
pos = self._trace_offset_catalog[trace_index]
|
||||
trace_header = read_trace_header(self._fh, self._trace_header_packer, pos)
|
||||
trace_header = read_trace_header(self._fh, header_packer, pos)
|
||||
return trace_header
|
||||
|
||||
@property
|
||||
def trace_header_format_class(self):
|
||||
"""The trace header format class.
|
||||
|
||||
Instances of this class are what is returned from trace_header() unless the
|
||||
header_packer has been overridden."""
|
||||
return self._trace_header_packer.header_format_class
|
||||
|
||||
@property
|
||||
def dimensionality(self):
|
||||
"""The spatial dimensionality of the data.
|
||||
|
||||
Reference in New Issue
Block a user