Tutorial TAUP
Tutorial TAUP
5, 1999 1
Introduction
The calculation of travel times and ray paths of seismic phases for a specified velocity model of the earth has
always been a fundamental need of seismologists. In recent years, the number of different phases used in analysis
has been growing as has the availability of new earth models, especially models developed from detailed regional
studies. These factors highlight the need for versatile utilities that allow the calculation of travel times and raypaths
of (ideally) any conceivable seismic phase passing through (ideally) arbitrary velocity models. The method of
Buland and Chapman (1983) provides significant progress toward this need by allowing for the computation of
times and paths of any rays passing through arbitrary spherically-symmetric velocity models. The implementation
of this method through the ttimes software program (Kennett and Engdahl, 1991) for a limited number of velocity
models and a standard set of seismic phases has been widely used in the seismological community. In this paper,
we describe a new implementation of the method of Buland and Chapman (1983) that easily allows for the use of
arbitrary spherically-symmetric velocity models and arbitrary phases. This package, the TauP Toolkit, provides for
the computation of phase travel-times, travel-time curves, raypaths through the earth, and phase piercing-points in
a publicly-available, machine-independent package that should be of use both to practicing seismologists and in
teaching environments.
Methodology
The method of Buland and Chapman (1983) works in the delay (or intercept) time (τ ) - ray parameter (p) domain
to avoid complications of multi-valued travel-time branches associated with working in the time-distance domain
directly. Physically, τ is the zero-distance intercept and p is the slope of the line tangent to the travel-time curve at
a given distance. The advantages of working in this domain are that τ -branches are monotonic and single valued in
all cases, and thus they do not suffer from the problems of triplications as their corresponding travel-time branches
may in some circumstances. Furthermore, the ray parameters that define each τ branch are simple and well-defined
functions of the earth model. We will not describe the method in any detail, but we will discuss the general steps
necessary to implement this approach. We used Maple (Heal et al., 1996), a symbolic mathematics utility, to
help convert the equations in Buland and Chapman (1983) to algorithmic forms for a spherical coordinate system,
avoiding the additional complication of an earth flattening transform. The resulting Maple files are provided with
the TauP Toolkit distribution for those interested in a more detailed study of the methodology.
Generating travel-times using the method of Buland and Chapman (1983) consists of four major steps. The
first is sampling the velocity-depth model in slowness. Next is integrating the slowness to get distance and time
increments for individual model branches. A “branch” of a model is a depth range bounded above and below
by local slowness extrema (first-order discontinuities or reversals in slowness gradients). A sum of these model
branches along a particular path results in the corresponding branch of the travel time curves. These first two steps
are undertaken in the taup create utility and need only be done once for each new velocity model. The third step
involves summing the branches along the path of a specified phase. Finally, an interpolation between time-distance
Submitted SRL Paper (v5.0) Jan. 5, 1999 2
samples is required to obtain the time of the exact distance of interest. These final steps are undertaken in various
TauP Toolkit utilities, depending on the information that is desired by the user.
Slowness Sampling
Creating a sufficiently dense sampling in slowness from the velocity models is the most complicated and crucial
step. There are several qualifications for a sufficiently dense sampling. First, all critical points must be sampled
exactly. These include each side of first-order discontinuities and all reversals in slowness gradient. Less obvious
points that must be sampled exactly occur at the bottom of a low velocity zone. This sample is the turning point
for the first ray to turn below the zone. Note, it is possible for the velocity to decrease with depth but, due to the
curvature of the earth, there may not be any of the pathological effects. For example, PREM (Dziewonski and
Anderson, 1981) contains a low velocity layer below the moho, but rays turn throughout it. Hence, a more strictly
accurate term might be “high slowness zones”.
A second sampling condition is that slowness samples must be sufficiently closely spaced in depth. This is nor-
mally satisfied by the depth sampling interval of the velocity model itself, but additional samples may need to
be inserted. A third condition is that the sampling interval must be sufficiently small in slowness. We satisfy
this condition by inserting slowness samples whenever the increment in slowness is larger than a given tolerance
simultaneously solving for the corresponding depth using the original velocity model.
Finally, the resulting slowness sampling must not be too coarse in distance, as measured by the resulting distance
sampling for the direct P or S wave from a surface source. Our approach to satisfying this condition is similar
to that of the previous condition. We insert new slowness samples whenever the difference in total distance be-
tween adjacent direct rays from a surface source exceeds the given tolerance. Again, the depth corresponding to
the inserted slowness sample is computed from the original velocity model. As an additional precaution against
undersampling, we also check to make sure that the curvature is not too great for linear interpolation to be rea-
sonable. This is accomplished by comparing the time at each sample point with the value predicted from linear
interpolation from the previous to the next point. If this exceeds a given tolerance, then additional samples are
inserted before and after the point. The last two conditions require the most computational effort but also have the
most effect in creating a sufficiently well-sampled model. The sampling for P and S must meet these conditions
individually and, in order to allow for phase conversions, must be compatible with each other.
For each region, or branch, of the model, we merely sum the distance and time contributions from each slowness
layer, between slowness samples, for each ray parameter. Within each layer we use the Bullen law v(r) = ArB ,
which has an analytic solution. The ray parameters used are the subset of slowness samples that correspond to
turning or critically reflected rays from a surface source. Care must be taken to avoid summing below the turning
point for each slowness.
Once these “branches” have been constructed, it is straightforward to create a real branch of the travel time curves
by an appropriate summing. Of course, the maximum and minimum allowed ray parameter must be determined
in order to assure that the ray can actually propagate throughout these regions. For instance, the branch summing
for a P wave turning in the mantle and for PcP are the same. However, the ray parameter for any P phase must be
larger than the slowness at the bottom of the mantle, while that for PcP must be smaller.
Once the sum has been completed to create time, distance and tau as a function of ray parameter, an interpolation
between known points must be done to calculate arrivals at intermedite distances. Currently, we use a simple
linear interpolation which is sufficient for most purposes. More advanced interpolations do provide advantages
in reducing the number of samples needed to achieve a given accuracy, but they can have certain instability or
oscillatory problems that are difficult to deal with when the model is not known in advance.
Submitted SRL Paper (v5.0) Jan. 5, 1999 3
Figure 1 summarizes the effect of two choices of sampling parameters using the IASP91 model (Kennett and
Engdahl, 1991). In Figure 1a, we illustrate that our normal sampling (model file: iasp91) produces a relatively
small residual, maximum of 0.013 seconds for P and 0.016 seconds for S, relative to a highly oversampled ver-
sion of the same model generated to produce the most accurate time estimates without regard to model size or
computation time. Thus, model iasp91 is likely the appropriate choice for travel times that will be used in further
computations, for instance in earthquake location studies. However, the model size is 337Kb, which may be slow
to load on some computer systems and does increase the computation time somewhat. A more coarsely sampled
version of IASP91, which we distribute in model file qdt (quick and dirty times), sacrifices some accuracy for a
smaller model file. Figure 1b shows qdt residuals with respect to the same highly oversampled model. There are
larger and more noticeable peaks due to linear interpolation between the more widely spaced samples. While this
would not make a good choice for earthquake location work, an error of 0.25 seconds is entirely satisfactory for
classroom work, for determining windows for extracting phases, and for getting quick estimates of arrival times.
Most important is the fact that the decision of how accurately the model needs to be sampled is left up to the user.
One can easily create new samplings of existing models tailored to the requirements of the job at hand.
Figure 2 compares TauP results using IASP91 to output from ttimes. It would be desirable to compare the ttimes
output with our own for a model with an easy analytic solution over a range of distances and phases. Unfortunately,
using different models with the ttimes program has proven difficult. The residual for the direct comparison with
ttimes is shown for the first arriving P wave and S wave. The calculations are for the IASP91 model for an event
at the surface and are sampled at 0.1 degree increments. The high frequency variations in residuals, such as are
observed between 50 and 90 degrees in the P-wave residuals, are the result of the use of the linear interpolation in
TauP. We believe that the clear trend of increasingly negative relative residuals with increasing distance is likely
related to the use of an earth flattening transform within the ttimes package, an approximation that can become
problematical toward the center of the earth. The TauP package avoids this potential complication by working
directly in spherical coordinates. To test this assertion, we compared ttimes and TauP results to travel-times
calculated by numerical integration of vertical rays of PcP, PKIKP, and PKiKP through the IASP91 model. In
each case, our results were closer to the numerical integration results than ttimes, with the ttimes error increasing
with increasing depth of penetration. The maximum difference of 0.01 sec for TauP compared to 0.05 sec for
ttimes for the vertical PKIKP ray accounts for the relative P residual shown in Figure 2. Thus, we expect that
our solutions have a small, but possibly significant, increase in accuracy relative to ttimes, in spite of the current
simple linear interpolation.
A major feature of the TauP Toolkit is the implementation of a phase name parser that allows the user to define
essentially arbitrary phases through the earth. Thus, the TauP Toolkit is extremely flexible in this respect since it is
not limited to a pre-defined set of phases. Phase names are not hard-coded into the software, but rather the names
are interpreted and the appropriate propagation path and resulting times are constructed at run time. Designing a
phase-naming convention that is general enough to support arbitrary phases and easy to understand is an essential
and somewhat challenging step. The rules that we have developed are described here. Most of phases resulting
from these conventions should be familiar to seismologists, e.g. pP, PP, PcS, PKiKP, etc. However, the uniqueness
required for parsing results in some new names for other familiar phases.
In traditional “whole-earth” seismology, there are 3 major interfaces: the free surface, the core-mantle boundary,
and the inner-outer core boundary. Phases interacting with the core-mantle boundary and the inner core boundary
are easy to describe because the symbol for the wave type changes at the boundary (i.e., the symbol P changes
to K within the outer core even though the wave type is the same). Phase multiples for these interfaces and the
free surface are also easy to describe because the symbols describe a unique path. The challenge begins with
the description of interactions with interfaces within the crust and upper mantle. We have introduced two new
symbols to existing nomenclature to provide unique descriptions of potential paths. Phase names are constructed
from a sequence of symbols and numbers (with no spaces) that either describe the wave type, the interaction a
Submitted SRL Paper (v5.0) Jan. 5, 1999 4
wave makes with an interface, or the depth to an interface involved in an interaction. Figure 3 shows examples of
interactions with the 410km discontinuity using our nomenclature.
The first letter can be lower case to indicate a conversion from an up-going ray, e.g. p410S is a depth phase
from a source at greater than 410 km depth that phase converts at the 410 discontinuity. It is strictly upgoing
over its entire path and hence could also be labeled p410s. p410S is often used to mean a reflection in
the literature, but there are too many possible interactions for the phase parser to allow this. If the underside
reflection is desired, use the pˆ 410S notation from rule 7.
6. Due to the two previous rules, P410P and S410S are over-specified but still legal. They are almost equiv-
alent to P and S, respectively, but restrict the path to phases transmitted through (turning below) the 410.
This notation is useful to limit arrivals to just those that turn deeper than a discontinuity (thus avoiding
travel-time curve triplications), even though they have no real interaction with it.
7. The characters ˆ and v are new symbols introduced here to represent bottom-side and top-side reflections,
respectively. They are followed by a number to represent the approximate depth of the reflection or a letter
for standard discontinuities, m, c or i. Reflections from discontinuities besides the core-mantle boundary c
or inner-core outer-core boundary i must use the ˆ and v notation. For instance, in the TauP convention,
pˆ 410S is used to describe a near-source underside reflection.
Underside reflections, except at the surface (PP, sS, etc.), core-mantle boundary (PKKP, SKKKS, etc.), or
outer-core-inner-core boundary (PKIIKP, SKJJKS, SKIIKS, etc.), must be specified with the ˆ notation.
For example, Pˆ 410P and Pˆ mP would both be underside reflections from the 410 km discontinuity and
the Moho, respectively.
The phase PmP, the traditional name for a top-side reflection from the Moho discontinuity, must change
names under our new convention. The new name is PvmP or Pvmp while PmP just describes a P wave that
turns beneath the Moho. The reason the Moho must be handled differently from the core-mantle boundary is
that traditional nomenclature did not introduce a phase change symbol at the Moho. Thus, while PcP makes
sense since a P-wave in the core would be labeled K, PmP could have several meanings. The m symbol just
allows the user to describe phases interaction with the Moho without knowing its exact depth. In all other
respects, the ˆ -v nomenclature is maintained.
8. Currently, ˆ and v for non-standard discontinuities are allowed only in the crust and mantle. Thus, there
are no reflections off non-standard discontinuities within the core (reflections such as PKKP, PKiKP and
PKIIKP are still fine). There is no reason in principle to restrict reflections off discontinuities in the core,
but until there is interest expressed, these phases will not be added. Also, a naming convention would have
to be created since “p is to P” is not the same as “i is to I”.
9. Currently there is no support for PKPab, PKPbc, or PKPdf phase names. They lead to increased algorith-
mic complexity that at this point seems unwarranted. Currently, in regions where triplications develop, the
triplicated phase will have multiple arrivals at a given distance. So, PKPab and PKPbc are both labeled
just PKP while PKPdf is called PKIKP.
10. The symbol kmps is used to get the travel time for a specific horizontal phase velocity. For example,
2kmps represents a horizontal phase velocity of 2 km/sec. While the calculations for these are trivial, it is
convenient to have them available to estimate surface-wave travel times or to define windows of interest for
given paths.
11. As a convenience, a ttimes phase name compatibility mode is available. So ttp gives you the phase list
corresponding to P in ttimes. Similarly there are tts, ttp+, tts+, ttbasic and ttall.
This version of the TauP package supports two types of velocity model files. Both are piecewise linear between
given depth points. Support of cubic spline velocity models would be useful and may be implemented in a future
release.
Submitted SRL Paper (v5.0) Jan. 5, 1999 6
The first format is the “tvel” format used by the most recent ttimes code (Kennett et al., 1995). This format has
two comment lines, followed by lines composed of depth, Vp, Vs, and density, all separated by whitespace. TauP
ignores the first two lines and reads the remaining ones.
The second format is based on the format used by Xgbm (Davis and Henson, 1993). We refer to it as a “named
discontinuity” format. Its biggest advantage is that it can specify the location of major boundaries in the earth. It is
our preferred format. The format also provides density and attenuation fields, which will more easily accommodate
the calculation of synthetic seismograms in the future.
The distribution comes with several standard velocity models. Users can create their own models by following
examples in the User’s Guide included in the distribution package. Standard models are: IASP91 (Kennett and
Engdahl, 1991), PREM (Dziewonski and Anderson, 1981), AK135 (Kennett et al., 1995), Jeffries-Bullen (Jeffreys
and Bullen, 1940), 1066a and 1066b (Gilbert and Dziewonski, 1975), PWDK (Weber and Davis, 1990), SP6
(Morelli and Dziewonski, 1993), and Herrin (Herrin, 1968).
There are 8 separate utilities in the TauP Toolkit. Each is described in detail in the User’s Guide, so descriptions
here are brief. Figure 4 summarizes the outputs of several of the codes.
1. taup create. This utility takes a velocity model in one of the two supported formats and does the
sampling and branch integration processes to produce a TauP model file for use by all other utilities.
2. taup time. This is the TauP replacement for the ttimes program. At a minimum, given phase, distance and
depth information, it returns travel times and ray parameters. Options allow for station and event locations
to be provided in lieu of distance as well as for more specialized outputs.
3. taup curve. Produces entire travel time curves for given phases. Options include the ability to output
these curves in a format suitable for plotting with GMT (Wessel and Smith, 1995).
4. taup path. Calculates ray paths for given phases. Options include the ability to output these paths in a
format suitable for plotting with GMT (Wessel and Smith, 1995).
5. taup pierce. Calculates piercing points at model discontinuities and at specified depths for given phases.
Options include the ability to output these points in a format suitable for plotting with GMT (Wessel and
Smith, 1995).
6. taup setsac. Utility to fill SAC (Tull, 1989) file headers with theoretical arrival times.
7. taup table. Utility to generate travel-time tables needed for earthquake location programs. Currently,
only an ASCII table format is supported along with a generic output. Other formats could be supported if
interest warrants.
8. taup peek. Debugging code to examine contents of a taup velocity model file.
The TauP Toolkit is written entirely in the Java programming language. This should facilitate use of the utilities
on any major computer platform. It has been tested on Solaris UNIX, MacOS, and Windows95. The distribution
includes simple scripts to facilitate use of the above utilities in a UNIX environment. It also provides mechanisms
for accessing the utilities via C programs and TCL (via the “jacl” implementation) scripts. At present, only raw
Java command line interfaces exist, limiting the usefulness in MacOS and Windows environments. A WWW based
applet interface was tested by our undergraduate geophysics course in the spring of 1998, but a more refined GUI
is planned for development soon which should make the package much more useful in non-UNIX environments.
The package can be obtained from http://www.seis.sc.edu.
Submitted SRL Paper (v5.0) Jan. 5, 1999 7
Acknowledgments
Development of this software was supported by the University of South Carolina. Manuscript preparation and
software testing were supported by NSF grant EAR-9304657.
References
Buland, R. and C. H. Chapman (1983). The computation of seismic travel times, Bull. Seism. Soc. Am. 73,
1271–1302.
Davis, J. P. and I. H. Henson (1993). User’s Guide to Xgbm: An X-Windows System to compute Gaussian bean
synthetic seismograms (1.1 ed.), Alexandria, VA: Teledyne Geotech Alexandria Laboratories.
Dziewonski, A. M. and D. L. Anderson (1981). Preliminary reference earth model, Phys. Earth Planet. Interi-
ors 25, 297–356.
Gilbert, F. and A. M. Dziewonski (1975). An application of normal mode theory to the retrieval of structural
parameters and source mechanisms from seismic spectra, Phil. Trans. Roy. Soc., Lond. A 278, 187–269.
Heal, K. M., M. L. Hansen, and K. M. Rickard (1996). Maple V Learning Guide, Springer-Verlag.
Herrin, E. (1968). 1968 seismological tables for P phases, Bull. Seism. Soc. Am. 58, 1193–1241.
Jeffreys, H. and K. E. Bullen (1940). Seismological Tables, London: British Association for the Advancement
of Science, Burlington House.
Kennett, B. L. N. and E. R. Engdahl (1991). Traveltimes for global earthquake location and phase identification,
Geophys. J. Int. 105, 429–465.
Kennett, B. L. N., E. R. Engdahl, and R. Buland (1995). Constraints on seismic velocities in the Earth from
traveltimes, Geophys. J. Int. 122, 108–124.
Morelli, A. and A. M. Dziewonski (1993). Body wave traveltimes and a spherically symmetric P- and S-wave
velocity model, Geophys. J. Int. 112, 178–194.
Tull, J. E. (1989). SAC - Seismic Analysis Code: User’s Manual (Rev. 2), Livermore, CA: Lawrence Livermore
National Laboratory.
Weber, M. and J. P. Davis (1990). Evidence of a laterally variable lower mantle structure from P- and S-waves,
Geophys. J. Int. 102, 231–255.
Wessel, P. and W. H. F. Smith (1995). New Version of the Generic Mapping Tools released, Eos Trans. Am.
Geophys. U. 76, 329.
Submitted SRL Paper (v5.0) Jan. 5, 1999 8
Figure Captions
Figure 1a. First arriving P (top) and S (bottom) residual between a highly oversampled IASP91 model and the
default sampling. The time residual is sampled every tenth of a degree and is within 0.013 seconds for P and 0.016
seconds for S over the entire distance range. The slight trend to increasingly negative residuals with distance is the
result of using a less dense linear interpolation of the original cubic IASP91 velocity model. While the difference
associated with this trend is small, about 0.01 seconds at 180 degrees, adding the ability to read cubic splines
directly should eliminate it.
Figure 1b. First arriving P (top) and S (bottom) residual between a highly oversampled IASP91 model and a
coarsely sampled model. This less well sampled version of IASP91 is referred to as qdt and is shown to illustrate
the flexibility of the model sampling process. It has much larger errors, about + − 0.25 seconds, but is one quarter
the size (83Kb) and is therefore more suitable for quick travel-time estimates, classroom exercises and web based
applications where size and loading speed are more critical than accuracy. Note the factor of 10 change in scale
from the previous figure.
Figure 2. Residual travel time, this code minus ttimes, of the first arriving P wave (top) and first arriving S wave
(bottom). The compressional velocity model was used throughout the core, so the first arriving S-wave beyond
about 80 degrees is SKS and beyond about 130 degrees is SKIKS. The small high frequency oscillations (such
as between 50 and 90 degrees) in the differential times are the result of the linear interpolation, while the larger
offsets are believed to be primarily due to error introduced by the earth flattening transform into the ttimes values.
Figure 3. Stylized raypaths for several possible interactions with the 410 km discontinuity to illustrate the use of
the TauP phase naming convention. A). Top-side reflections. In all cases, the upgoing phase could be either upper
or lower case since the direction is unambiguously defined by the “v” symbol, although lower case is recommended
for clarity. B). Transmitted phases. In these cases, there are no alternate forms of the phase names since the symbol
case defines the point of conversion from P to S. C). Underside reflections from a surface source. The “ˆ ” symbol
indicates that the phases reflect off the bottom of the 410. Final wavetype symbol must be upper case, since lower
case wavetype symbols are strictly upgoing. D). Interactions for a source depth below the interface. Note that
P410s converts on the receiver side just as it does for a surface source in B). However, for a deep source, the phase
P410S does not exist since a downgoing P wave cannot generate a downgoing transmitted S wave at an interface
below the discontinuity.
Figure 4. Examples of output from the TauP Toolkit utilities. Some modifications in a touch-up program were
done to prepare the figures for publication. A). Output of taup path for the phase sˆ 410PSˆ 670PPms at a distance
of 155 degrees from an event at 630 km depth. sˆ 410PSˆ 670PPms arrives from both directions, one ray traveling
155 degrees, the other 205 degrees. The model PREM is used. Source is given by the *, station by the triangle.
B) Output of taup curve for the same phase as in A). A reducing velocity of 0.125 deg/s was used for this plot.
Travel-time curves for PPP, SS, and SKKS are shown for reference. C) Output of taup pierce for the same phase as
A) was added to an existing GMT script to produce this output. Points of interaction with the 400 km discontinuity
are shown for a hypothetical event near the East Pacific Rise arriving at a hypothetical station in central India. The
path for the ray that travels 155 degrees to the station is shown in a solid line and interaction points with the 400 km
discontinuity are solid diamonds. The 205 degree raypath is shown as a dashed line with solid circles indicating
interaction points at 400 km depth.