TauP Path

TauP Path uses a model like TauP Time but generates the angular distances from the epicenter along the path at which the specified rays travel. The output can be JSON, an SVG image or in GMT Wessel and Smith [WS95] psxy format, and is placed into the file taup_path with approproate extension. If you specify the –gmt flag then this is a complete script with the appropriate psxy command prepended, so if you have GMT installed, you can just:

taup path --mod iasp91 -h 550 --deg 74 -p S,ScS,sS,sScS --gmt

sh taup_path.gmt

and you have a plot of the ray paths in taup_path.pdf. To avoid possible plotting errors for phases like Sdiff, the ray paths are interpolated to less than 1 degree increments. Or similarly

taup path --mod iasp91 -h 550 --deg 74 -p S,ScS,sS,sScS --svg

and the result would be:

taup path --mod iasp91 -h 550 --deg 74 -p S,ScS,sS,sScS --svg -o stdout 3.0.0-SNAPSHOT7 https://github.com/crotwell/TauP -170.0 -160.0 -150.0 -140.0 -130.0 -120.0 -110.0 -100.0 -90.0 -80.0 -70.0 -60.0 -50.0 -40.0 -30.0 -20.0 -10.0 0.0 10.0 20.0 30.0 40.0 50.0 60.0 70.0 80.0 90.0 100.0 110.0 120.0 130.0 140.0 150.0 160.0 170.0 180.0 74.00 550.0 S 1168.49 10.906 35.18 19.24 74.00 131 = S seg 1/2 S of S at 1168.49 seconds at 74.00 degrees for a 550.0 km deep source in the iasp91 model with rayParam 10.906 s/deg. in mantle seg 2/2 S of S at 1168.49 seconds at 74.00 degrees for a 550.0 km deep source in the iasp91 model with rayParam 10.906 s/deg. in crust/mantle 74.00 550.0 ScS 1197.99 8.057 25.19 14.09 74.00 15 * Scs seg 1/2 S of ScS(Scs) at 1197.99 seconds at 74.00 degrees for a 550.0 km deep source in the iasp91 model with rayParam 8.057 s/deg. in mantle seg 2/2 S of ScS(Scs) at 1197.99 seconds at 74.00 degrees for a 550.0 km deep source in the iasp91 model with rayParam 8.057 s/deg. in crust/mantle 74.00 550.0 sS 1373.84 11.626 142.11 20.57 74.00 116 = sS seg 1/3 s of sS at 1373.84 seconds at 74.00 degrees for a 550.0 km deep source in the iasp91 model with rayParam 11.626 s/deg. in crust/mantle seg 2/3 S of sS at 1373.84 seconds at 74.00 degrees for a 550.0 km deep source in the iasp91 model with rayParam 11.626 s/deg. in crust/mantle seg 3/3 S of sS at 1373.84 seconds at 74.00 degrees for a 550.0 km deep source in the iasp91 model with rayParam 11.626 s/deg. in crust/mantle 74.00 550.0 sScS 1419.40 7.945 155.18 13.89 74.00 17 * sScs seg 1/3 s of sScS(sScs) at 1419.40 seconds at 74.00 degrees for a 550.0 km deep source in the iasp91 model with rayParam 7.945 s/deg. in crust/mantle seg 2/3 S of sScS(sScs) at 1419.40 seconds at 74.00 degrees for a 550.0 km deep source in the iasp91 model with rayParam 7.945 s/deg. in crust/mantle seg 3/3 S of sScS(sScs) at 1419.40 seconds at 74.00 degrees for a 550.0 km deep source in the iasp91 model with rayParam 7.945 s/deg. in crust/mantle S ScS sS sScS

The usage is:

Usage: taup path [--debug] [--geodetic] [--help] [--onlynameddiscon]
                 [--verbose] [--withtime] [--az=<azimuth>] [--az=<azimuth>]
                 [--baz=<backAzimuth>] [--baz=<backAzimuth>]
                 [--color=<coloring>] [--geodeticflattening=f]
                 [--mapwidth=<mapwidth>] [--mapwidthunit=<mapWidthUnit>]
                 [--maxpathinc=<maxPathInc>] [-o=<outFile>]
                 [--prop=<toolPropsFilename>] [--qml=<quakemlFilename>]
                 [--staxml=<stationxmlFilename>] [--xaxis=type] [--yaxis=type]
                 [--degminmax=deg deg]... [--depthminmax=km km]... [--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]]]...]... [--gmt | --json | --svg | --text]
Plot ray paths, distance vs. depth, through the earth.

Options:

      --color=<coloring>     style of coloring for paths and wavefronts, one
                               of: auto, wavetype, phase, none
      --debug                enable debugging output
      --degminmax=deg deg    min and max distance in degrees for plotting
      --depthminmax=km km    min and max depth, km,  for plotting
      --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
      --mapwidth=<mapwidth>  plot width in inches for GMT, pixels for SVG.
      --mapwidthunit=<mapWidthUnit>
                             plot width unit for GMT. Default is i for inchs
      --maxpathinc=<maxPathInc>
                             Maximum distance increment in degrees between path
                               points, avoid visible segmentation in plots
  -o, --output=<outFile>     output to file, default is stdout.
      --onlynameddiscon      only draw circles on the plot for named
                               discontinuities like moho, cmb, iocb
      --prop=<toolPropsFilename>
                             load defaults from properties file
      --qml, --quakeml=<quakemlFilename>
                             QuakeML file to load for earthquake origins to use
      --staxml=<stationxmlFilename>
                             StationXML file to extract station latitudes and
                               longitudes from
      --verbose              enable verbose output
      --withtime             include time for each path point, no effect for
                               SVG.
      --xaxis=type           x axis type, the depth/radius axis, one of degree,
                               radian, kilometer
                             No effect for SVG output.
      --yaxis=type           y axis type, the depth/radius axis, one of depth,
                               radius
                             No effect for SVG 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:
      --gmt                  outputs as GMT
      --json                 outputs as JSON
      --svg                  outputs as SVG
      --text                 outputs as Text