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 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

The usage is:

Usage: taup path [--debug] [--geodetic] [--help] [--label] [--legend]
                 [--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]
                 [--eid=evt[,evt...]]... [--sid=sta[,sta...]]...
                 [--degminmax=min max]... [--depthminmax=min max]... [--evt=lat
                 lon]... [--evt=lat lon]... [--sta=lat lon]... [--sta=lat
                 lon]... [[--mod=<modelName>] [-h=depth[,depth...]]...
                 [--stadepth=depth[,depth...]]... [--scat=depth deg]...]
                 [[-p=phase[,phase...]]... [--phasefile=<phaseFiles>]...]
                 [[--allindex] [--deg=d[,d...]]... [--exactdegree=d[,d...]]...
                 [--exactkilometer=km[,km...]]... [--incident=deg[,deg...]]...
                 [--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=[step][min max][min max step]]...
                 [--exactdegreerange=[step][min max][min max step]]...
                 [--exactkilometerrange=[step][min max][min max step]]...
                 [--incidentrange=[step][min max][min max step]]...
                 [--kilometerrange=[step][min max][min max step]]...
                 [--takeoffrange=[step][min max][min max step]]...]... [--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=min max   min and max distance in degrees for plotting
      --depthminmax=min max min and max depth, km,  for plotting
      --eid=evt[,evt...]    event id, like us7000pn9s, for lookup via USGS fdsn
                              event web service. Creates a distance if station
                              is also given.
      --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
      --label               label with phase name
      --legend              create a legend
      --mapwidth=<mapwidth> plot width in units from --mapwidthunit.
      --mapwidthunit=<mapWidthUnit>
                            plot width unit, i for inch, c for cm or p for px.
      --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
      --sid=sta[,sta...]    station id, like CO.HAW or FDSN:CO_HAW, for lookup
                              via fedcat web service. Creates a distance if
                              event is also given.
      --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=depth deg
                            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:
      --allindex            all arrivals at sampling of model
      --deg, --degree=d[,d...]
                            distance in degrees
      --degreerange=[step][min max][min max step]
                            regular distance range in degrees, one of step; min
                              max or min max step. Default min is 0, max is 180
                              and step is 10.
      --exactdegree=d[,d...]
                            exact distance traveled in degrees, not 360-d
      --exactdegreerange=[step][min max][min max step]
                            regular distance range in exact degrees, not
                              360-deg, one of step; min max or min max step.
                              Default min is 0, max is 180 and step is 10.
      --exactkilometer=km[,km...]
                            exact distance traveled in kilometers, not 360-k
      --exactkilometerrange=[step][min max][min max step]
                            regular distance range in kilometers, not 360-k,
                              one of step; min max or min max step. Default min
                              is 0, max is 1000 and step is 100.
      --incident=deg[,deg...]
                            incident angle in degrees at the receiver, zero is
                              down, 90 horizontal, 180 is up.
      --incidentrange=[step][min max][min max step]
                            regular range in incident angle in degrees, one of
                              step; min max or min max step. Default min is 0
                              and step is 10.
      --kilometerrange=[step][min max][min max step]
                            regular distance range in kilometers, one of step;
                              min max or min max step. Default min is 0, max is
                              1000 and step is 100.
      --km, --kilometer=km[,km...]
                            distance in kilometers along surface.
      --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=[step][min max][min max step]
                            regular range in takeoff angle in degrees, one of
                              step; min,max or min,max,step. Default min is 0
                              and step is 10.
Lat,Lon influenced by:
      --az=<azimuth>        azimuth in degrees, source to receiver
      --baz=<backAzimuth>   backazimuth in degrees, receiver to source
      --evt, --event=lat lon
                            event latitude and longitude.  Creates a distance
                              if station is also given.
      --sta, --station=lat lon
                            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