TauP PierceΒΆ
TauP Pierce uses a model like TauP Time but determines the angular distances from the epicenter at which the specified rays pierce discontinuities or specified depths in the model.
The --rev
, --turn
and --under
flags are useful
for limiting the output
to just those points you care about. The --pierce depth
option
allows you
to specify an additional pierce depth that does not correspond to an
actual discontinuity. For instance, where does a ray pierce 300 kilometers
above the CMB?
For example:
taup pierce --mod prem -h 200 -p S,P --deg 57.4
would give you pierce points for S, and P for a 200 kilometer deep source at a distance of 57.4 degrees.
> P at 566.77 seconds at 57.40 degrees for a 200.0 km deep source in the prem model with rayParam 6.969 s/deg.
0.00 200.0 0.00
0.11 220.0 2.92
1.31 400.0 28.13
3.72 670.0 65.40
28.17 1501.4 268.52
52.62 670.0 471.64
55.03 400.0 508.91
56.23 220.0 534.12
56.34 200.0 537.04
57.31 24.4 562.45
57.35 15.0 563.97
57.40 0.0 566.75
> S at 1028.61 seconds at 57.40 degrees for a 200.0 km deep source in the prem model with rayParam 13.018 s/deg.
0.00 200.0 0.00
0.12 220.0 5.35
1.33 400.0 52.28
3.80 670.0 121.81
28.15 1416.2 487.16
52.50 670.0 852.51
54.97 400.0 922.05
56.18 220.0 968.97
56.29 200.0 974.33
57.30 24.4 1020.82
57.35 15.0 1023.53
57.40 0.0 1028.59
While
taup pierce --turn --mod prem -h 200 -p S,P --deg 57.4
would give you just the points that each ray turns from downgoing to upgoing.
> P at 566.77 seconds at 57.40 degrees for a 200.0 km deep source in the prem model with rayParam 6.969 s/deg.
28.17 1501.4 268.52
> S at 1028.61 seconds at 57.40 degrees for a 200.0 km deep source in the prem model with rayParam 13.018 s/deg.
28.15 1416.2 487.16
Using -rev
would give you all points that the ray changes direction
and -under
gives just the underside reflections.
Using the -pierce
option
taup pierce --mod prem -h 200 -p S --sta 12 34.2 --evt -28 122 --geodetic --pierce 2591 --nodiscon
would give you just the points at which S crossed a depth of 2591 kilometers
from an event at (28 S, 122 E)
to a station at (12 N, 34.2 E).
Because we specified the latitudes and longitudes, we also get the
latitudes and longitudes of
the pierce points, useful for making
a map view of where the rays encounter the chosen depth.
Using the --geodetic
is useful for the distance calculation with
latitudes and longitudes.
Here is the output,
distance, depth, latitude and longitude, respectively.
> S at 1423.51 seconds at 93.63 degrees for a 200.0 km deep source in the prem model with rayParam 8.718 s/deg.
31.57 2591.0 552.69 -17.87 89.40
61.38 2591.0 821.30 -3.93 62.47
The usage is:
Usage: taup pierce [--amp] [--debug] [--first] [--geodetic] [--help]
[--nodiscon] [--rayp] [--rev] [--time] [--turn] [--under]
[--verbose] [--attenuationfreq=<attenuationFreq>]
[--az=<azimuth>] [--az=<azimuth>] [--baz=<backAzimuth>]
[--baz=<backAzimuth>] [--geodeticflattening=f] [--mw=<mw>]
[-o=<outFile>] [--prop=<toolPropsFilename>]
[--qml=<quakemlFilename>] [--staxml=<stationxmlFilename>]
[--pierce=depth[,depth...]]... [--rel=phase[,phase...]]...
[--evt=l l]... [--evt=l l]... [--sta=l l]... [--sta=l l]...
[[--mod=<modelName>] [-h=depth[,depth...]]...
[--stadepth=depth[,depth...]]... [--scat=s s]...] [[-p=phase
[,phase...]]... [--phasefile=<phaseFiles>]...] [[--deg=d[,
d...]]... [--exactdegree=d[,d...]]... [--exactkilometer=km[,
km...]]... [--km=km[,km...]]... [--rayparamdeg=s/deg[,
s/deg...]]... [--rayparamidx=i[,i...]]... [--rayparamkm=s/km
[,s/km...]]... [--rayparamrad=s/rad[,s/rad...]]...
[--takeoff=deg[,deg...]]... [--degreerange=d[,d...] [d
[d]]]... [--kilometerrange=k[,k...] [k [k]]]...
[--takeoffrange=k[,k...] [k [k]]]...]... [--json | --text]
Calculate pierce points for phases at discontinuities in the model.
Options:
--amp show amplitude factor for each phase
--attenuationfreq=<attenuationFreq>
attenuation frequency for amplitude calculations
--debug enable debugging output
--first, --onlyfirst only output the first arrival for each phase, no
triplications
--geodetic use geodetic latitude for distance calculations,
which implies an ellipticity. Default is
spherical. Note this only affects calculation of
distance from lat/lon pairs, all travel time
calculations are done in a purely spherical
model.
--geodeticflattening=f Inverse Elliptical flattening for distance
calculations when --geodetic, defaults to WGS84
~ 298.257. The distance calculation uses 1/x.
--help display this help message
--mw=<mw> scale amplitude by source moment magnitude
--nodiscon only prints pierce points for the depths added
with -pierce
-o, --output=<outFile> output to file, default is stdout.
--pierce=depth[,depth...]
additional depth for calculating pierce points
--prop=<toolPropsFilename>
load defaults from properties file
--qml, --quakeml=<quakemlFilename>
QuakeML file to load for earthquake origins to use
--rayp, --onlyrayp only output the ray parameter
--rel=phase[,phase...] times relative to the first of the given phases
--rev only prints underside and bottom turn points, e.g.
^ and v
--staxml=<stationxmlFilename>
StationXML file to extract station latitudes and
longitudes from
--time, --onlytime only output travel time
--turn only prints bottom turning points, e.g. v
--under only prints underside reflection points, e.g. ^
--verbose enable verbose output
Model Args
-h, --evdepth, --sourcedepth=depth[,depth...]
source depth in km
--mod, --model=<modelName>
use velocity model "modelName" for calculations.
Default is iasp91. Other builtin models include
prem, ak135, ak135fcont, and ak135favg.
--scat, --scatter=s s scattering depth and distance in degrees, which
may be negative. Only effects phases with 'o' or
'O' in the phase name.
--stadepth, --receiverdepth=depth[,depth...]
the receiver depth in km for stations not at the
surface
Phase Names
-p, --ph, --phase=phase[,phase...]
seismic phase names
--phasefile=<phaseFiles>
read list of phase names from file
Distance is given by:
--deg, --degree=d[,d...]
distance in degrees
--degreerange=d[,d...] [d [d]]
regular distance range in degrees, one of max min,
max or min,max,stepDefault min is 0 and step is
10.
--exactdegree=d[,d...] exact distance traveled in degrees, not 360-d
--exactkilometer=km[,km...]
exact distance traveled in kilometers, not 360-k
--kilometerrange=k[,k...] [k [k]]
regular distance range in kilometers, one of max
min,max or min,max,step.Default min is 0 and
step is 10.
--km, --kilometer=km[,km...]
distance in kilometers
--rayparamdeg=s/deg[,s/deg...]
ray parameter from the source in s/deg, up or down
is determined by the phase
--rayparamidx=i[,i...] ray parameter from the source as index into model
sampling, up or down is determined by the phase
--rayparamkm=s/km[,s/km...]
ray parameter from the source in s/km, up or down
is determined by the phase
--rayparamrad=s/rad[,s/rad...]
ray parameter from the source in s/rad, up or down
is determined by the phase
--takeoff=deg[,deg...] takeoff angle in degrees from the source zero is
down, 90 horizontal, 180 is up
--takeoffrange=k[,k...] [k [k]]
regular range in takeoff angle in degrees, one of
max min,max or min,max,step.Default min is 0 and
step is 10.
Lat,Lon influenced by:
--az=<azimuth> azimuth in degrees
--baz=<backAzimuth> backazimuth in degrees
--evt, --event=l l event latitude and longitude. Creates a distance
if station is also given.
--sta, --station=l l station latitude and longitude. Creates a distance
if event is also given.
Output Type:
--json outputs as JSON
--text outputs as Text