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


‘enums’ : Check validity of enumerated values. ‘reftime’ : Reference time values in header are all set. ‘reltime’ : Relative time values in header are absolutely


‘all’ : Do all tests.

Raises:SacInvalidContentError if any of the specified tests fail. ValueError if ‘data_hdrs’ is specified and data is None, empty array, or no tests specified.


>>> 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')