obspy.io.sac.util.obspy_to_sac_header

obspy_to_sac_header(stats, keep_sac_header=True)[source]

Merge a primary with a secondary header, reconciling some differences.

Parameters:
  • stats (dict or Stats) – Filled ObsPy Stats header

  • keep_sac_header (bool) –

    If keep_sac_header is True, old stats.sac header values are kept, and a minimal set of values are updated from the stats dictionary according to these guidelines:

    • npts, delta always come from stats

    • If a valid old reftime is found, the new b and e will be made and properly referenced to it. All other old SAC headers are simply carried along.

    • If the old SAC reftime is invalid and relative time headers are set, a SacHeaderError exception will be raised.

    • If the old SAC reftime is invalid, no relative time headers are set, and “b” is set, “e” is updated from stats and other old SAC headers are carried along.

    • If the old SAC reftime is invalid, no relative time headers are set, and “b” is not set, the reftime will be set from stats.starttime (with micro/milliseconds precision adjustments) and “b” and “e” are set accordingly.

    • If ‘kstnm’, ‘knetwk’, ‘kcmpnm’, or ‘khole’ are not set or differ from Stats values ‘station’, ‘network’, ‘channel’, or ‘location’, they are taken from the Stats values.

    If keep_sac_header is False, a new SAC header is constructed from only information found in the Stats dictionary, with some other default values introduced. It will be an iztype 9 (“ib”) file, with small reference time adjustments for micro/milliseconds precision issues. SAC headers nvhdr, level, lovrok, and iftype are always produced.

Rtype merged:

dict

Returns:

SAC header