Thread: Re: traveltime in SAC

Started: 2010-04-02 17:59:23
Last activity: 2010-04-02 17:59:23
Topics: SAC Help
Arthur Snoke
2010-04-02 17:59:23
If you have no interested in the sac > sss> traveltime command or in being
able to add phase-arrival times to SAC files, you can stop reading now.

Although TRAVELTIME is part of the SSS SAC Subprocess, it should be able to
work on a single data file. I have not succeeded in getting SYNTAX 1 and
SYNTAX 3 to work. (I am referring to terms used in the SAC> help
traveltime command.) Unless one of you can point out errors in my tests
below and/or easy fixes, nothing will be done in the soon to be released
101.4, but we hope it (and other calls in the SAC subprocess) can be
corrected in the next release.

Before I detail my tests with traveltime, I tell you about a program that
does work very well for adding phase-arrival times to SAC waveforms: the
taup toolkit taup_setsac command. The toolkit can be downloaded for most
operating systems from

For my waveform
file test.z (which has event distance and depth information added to the
header and actually has observable phase arrivals for these phases):

taup_setsac -evdpkm -ph P-1,PcP-2,pP-3,PP-5,sP-6 test.z

produced the correct arrival times in test.z. This uses the iasp91 model,
but could use any of a number of other models as well.

At several institutuions, phase-arrival times are added using the
iaspei-tau Fortran program ttimes or interpolation of JB tables. Program
taup_setsac is much more flexible -- and powerful.

Now for my tests with traveltime.

For Syntax 1, on either a PPC Mac or Sun Solaris, using the

SAC> r test.z
SAC> sss
Signal Stacking Subprocess.
SAC/SSS> traveltime model iasp91 phase P pP PP sP PcP picks 1
SAC/SSS> quitsub
SAC> lh

gives the wrong answers for the TNMARKER set. This result is the same with the
currant version or (on the Sun) for SEISMIC ANALYSIS CODE [07/21/2003 (Version

When the same sequence is run on an i686 Mac or Linux, the traveltime command
leads to a segmentation fault.

Part of the reason for failure for SYNTAX 1 is that it reads two binary files
that are in sac/aux/tables. These files, iasp91.hed and iasp91.tbl, are
written using the big-endian byte order.When these are replaced on the
little-endian machines with the appropriate files, SAC bombs with a "bad sizes"

For SYNTAX 3, I downloaded the taup package and ran

taup_curve -h 611.0 -ph P,PP,pP,sP,PcP

SAC> r test2.z
SAC> sss
Signal Stacking Subprocess.
SAC/SSS> traveltime picks 1 taup taup_curve.gmt
SAC/SSS> quitsub
SAC> lh

All the arrival times added to the header were at the same time -- incorrect
for any of the arrivals.

01:49:32 v.ad6b513c