def test_read_truncated_header_raises_eoferror(self, trace_header_written, endian, random): trace_header_packer = make_header_packer(TraceHeaderRev1, endian) buffer = trace_header_packer.pack(trace_header_written) truncate_pos = random.randrange(0, len(buffer) - 1) truncated_buffer = buffer[:truncate_pos] with BytesIO(truncated_buffer) as fh: with raises(EOFError): toolkit.read_trace_header(fh, trace_header_packer, pos=0)
def write_trace_header(self,trace_index,trace_header,force=True): """ Write a trace header in place """ pos=self.trace_position(trace_index) try: read_trace_header(self._fh, self._trace_header_packer, pos=pos) except Exception as e: print ("Could not read a trace header from trace_index={}, skipping writting. Pass force=False to force. Exception: {}".format(trace_index),e) else: write_trace_header(self._fh,trace_header,self._trace_header_packer,pos)
def write_trace_header(self, trace_index, trace_header, force=True): """ Write a trace header in place """ pos = self.trace_position(trace_index) try: read_trace_header(self._fh, self._trace_header_packer, pos=pos) except Exception as e: print( "Could not read a trace header from trace_index={}, skipping writting. Pass force=False to force. Exception: {}".format( trace_index ), e, ) else: write_trace_header(self._fh, trace_header, self._trace_header_packer, pos)
def test_read_header_successfully(self, trace_header_written, endian): trace_header_packer = make_header_packer(TraceHeaderRev1, endian) buffer = trace_header_packer.pack(trace_header_written) with BytesIO(buffer) as fh: trace_header = toolkit.read_trace_header(fh, trace_header_packer, pos=0) assert are_equal(trace_header_written, trace_header)
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. """ 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, header_packer, pos) return trace_header
def trace_header(self, trace_index): """Read a specific trace_samples. Args: trace_index: An integer in the range zero to num_traces() - 1 Returns: A TraceHeader corresponding to the requested trace_samples. Example: first_trace_header, first_trace_samples = segy_reader.trace_samples(0) """ if not (0 <= trace_index < self.num_traces()): raise ValueError("Trace index {} out of range".format(trace_index)) pos = self._trace_offset_catalog[trace_index] trace_header = read_trace_header(self._fh, self._trace_header_format, pos) return trace_header
def trace_header(self, trace_index): """Read a specific trace_samples. Args: trace_index: An integer in the range zero to num_traces() - 1 Returns: A TraceHeader corresponding to the requested trace_samples. Example: first_trace_header, first_trace_samples = segy_reader.trace_samples(0) """ if not (0 <= trace_index < self.num_traces()): raise ValueError("Trace index {} out of range".format(trace_index)) pos = self._trace_offset_catalog[trace_index] trace_header = read_trace_header(self._fh, self._trace_header_packer, pos) return trace_header