Example #1
0
 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)
Example #2
0
 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)
Example #3
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)
Example #4
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)
Example #5
0
 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)
Example #6
0
    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
Example #7
0
    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
Example #8
0
    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
Example #9
0
    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
Example #10
0
 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)