obspy.io.sac.sactrace.SACTrace.validate

SACTrace.validate(*tests)[source]

Check validity of loaded SAC file content, such as header/data consistency.

Parameters:

tests (str) –

One or more of the following validity tests:

  • ’delta’ : Time step “delta” is positive.

  • ’logicals’ : Logical values are 0, 1, or null

  • ’data_hdrs’ : Length, min, mean, max of data array match header values.

  • ’enums’ : Check validity of enumerated values.

  • ’reftime’ : Reference time values in header are all set.

  • ’reltime’ : Relative time values in header are absolutely referenced.

  • ’all’ : Do all tests.

Raises:

obspy.io.sac.util.SacInvalidContentError if any of the specified tests fail. ValueError if ‘data_hdrs’ is specified and data is None, empty array, or no tests specified.

Example

>>> from obspy.core.util import get_example_file
>>> from obspy.io.sac.util import SacInvalidContentError
>>> file_ = get_example_file("LMOW.BHE.SAC")
>>> sac = SACTrace.read(file_)
>>> # make the time step invalid, catch it, and fix it
>>> sac.delta *= -1.0
>>> try:
...     sac.validate('delta')
... except SacInvalidContentError as e:
...     sac.delta *= -1.0
...     sac.validate('delta')
>>> # make the data and depmin/men/max not match, catch the validation
>>> # error, then fix (flush) the headers so that they validate
>>> sac.data += 5.0
>>> try:
...     sac.validate('data_hdrs')
... except SacInvalidContentError:
...     sac._flush_headers()
...     sac.validate('data_hdrs')