Class TauP_Time

java.lang.Object
edu.sc.seis.TauP.TauP_Tool
edu.sc.seis.TauP.TauP_Time
Direct Known Subclasses:
TauP_Curve, TauP_PhaseDescribe, TauP_Pierce, TauP_SetSac, TauP_Table

public class TauP_Time
extends TauP_Tool
Calculate travel times for different branches using linear interpolation between known slowness samples.
  • Field Details

    • modelName

      protected java.lang.String modelName
    • tMod

      protected TauModel tMod
      Tau model calculated previously.
      See Also:
      TauModel
    • tModDepth

      protected transient TauModel tModDepth
      TauModel derived from tMod by correcting it for a non-surface source.
    • phaseNames

      protected java.util.List<PhaseName> phaseNames
      names of phases to be used, ie PKIKP.
    • depth

      protected double depth
    • receiverDepth

      protected double receiverDepth
    • degrees

      protected double degrees
    • distKilometers

      protected double distKilometers
      For when command line args uses --km for distance. Have to wait until after the model is read in to get radius of earth.
    • azimuth

      protected double azimuth
    • backAzimuth

      protected double backAzimuth
    • takeoffAngle

      protected double takeoffAngle
    • stationLat

      protected double stationLat
    • stationLon

      protected double stationLon
    • eventLat

      protected double eventLat
    • eventLon

      protected double eventLon
    • arrivals

      protected java.util.List<Arrival> arrivals
    • GUI

      protected boolean GUI
    • onlyPrintRayP

      protected boolean onlyPrintRayP
    • onlyPrintTime

      protected boolean onlyPrintTime
    • relativePhaseName

      protected java.lang.String relativePhaseName
    • relativeArrival

      protected Arrival relativeArrival
  • Constructor Details

    • TauP_Time

      public TauP_Time()
    • TauP_Time

      public TauP_Time​(TauModel tMod)
    • TauP_Time

      public TauP_Time​(java.lang.String modelName) throws TauModelException
      creates a TauP_Time object with the tau model specified by modelName already loaded.
      Throws:
      TauModelException - if the file can't be found or is corrupted in some way.
  • Method Details

    • getPhaseNames

      public java.lang.String[] getPhaseNames()
    • getPhaseNameString

      public java.lang.String getPhaseNameString()
    • setPhaseNames

      public void setPhaseNames​(java.lang.String[] phaseNames) throws TauModelException
      Throws:
      TauModelException
    • setPhaseNames

      public void setPhaseNames​(PhaseName[] phaseNames)
    • getPhaseNames

      public static java.util.List<java.lang.String> getPhaseNames​(java.lang.String phaseName)
    • appendPhaseName

      public void appendPhaseName​(java.lang.String phaseName) throws TauModelException
      Throws:
      TauModelException
    • appendPhaseName

      public void appendPhaseName​(PhaseName phaseName)
    • getNumPhases

      public int getNumPhases()
    • clearPhaseNames

      public void clearPhaseNames()
    • getSourceDepth

      public double getSourceDepth()
    • setSourceDepth

      public void setSourceDepth​(double depth)
    • getReceiverDepth

      public double getReceiverDepth()
    • setReceiverDepth

      public void setReceiverDepth​(double receiverDepth)
    • getTauModelName

      public java.lang.String getTauModelName()
    • getTauModel

      public TauModel getTauModel()
    • getTauModelDepthCorrected

      public TauModel getTauModelDepthCorrected()
      Gets depth corrected TauModel.
    • setTauModel

      public void setTauModel​(TauModel tMod)
    • loadTauModel

      public void loadTauModel​(java.lang.String modelName) throws java.io.FileNotFoundException, java.io.InvalidClassException, java.io.IOException, java.io.StreamCorruptedException, java.io.OptionalDataException, TauModelException
      Throws:
      java.io.FileNotFoundException
      java.io.InvalidClassException
      java.io.IOException
      java.io.StreamCorruptedException
      java.io.OptionalDataException
      TauModelException
    • getDisconDepths

      public double[] getDisconDepths()
    • clearPhases

      public void clearPhases()
    • clearArrivals

      public void clearArrivals()
    • getNumArrivals

      public int getNumArrivals()
    • getArrival

      public Arrival getArrival​(int i)
    • getArrivals

      public java.util.List<Arrival> getArrivals()
    • getSeismicPhases

      public java.util.List<SeismicPhase> getSeismicPhases()
    • readTauModel

      protected void readTauModel() throws TauModelException
      Reads the velocity model, slowness model, and tau model from a file saved using Java's Serializable interface. Performs a depth correction if the current depth is not 0.0
      Throws:
      TauModelException
    • readPhaseFile

      protected void readPhaseFile​(java.lang.String filename) throws java.io.IOException
      Reads in list of phase names from a text file. So long as each phase name is separated by some whitespace, " " or newline or tab, it should read them fine. Also, comments are allowed, either # or // are comments to the end of the line while c style slash-star make a block a comment.
      Throws:
      java.io.IOException
    • parsePhaseList

      public void parsePhaseList​(java.lang.String phaseList)
      parses a comma separated list of phase names and adds them to the phaseNames vector. Each phase can have an optional argument after a dash. This would be used for specifying which sac header to put the time in, or for other unforeseen uses. This may be called multiple times to append more phases. For example: P-0,PcP-1,ScP-4,Sn,SS,S^410S would, assuming no previous phases have been added, put P in T0, PcP in T1, ScP in T5, Sn in T2, SS in T3, and S^410S in T5.
    • parseDegreeList

      public static java.util.List<java.lang.Double> parseDegreeList​(java.lang.String degList)
      Parses a comma separated list of distances and returns them in an array.
    • parseCmdLineArgs

      protected java.lang.String[] parseCmdLineArgs​(java.lang.String[] origArgs) throws java.io.IOException
      Specified by:
      parseCmdLineArgs in class TauP_Tool
      Throws:
      java.io.IOException
    • sortArrivals

      public void sortArrivals()
    • calculate

      public void calculate​(double degrees) throws TauModelException
      Throws:
      TauModelException
    • calcTime

      public void calcTime​(double degrees) throws TauModelException
      Throws:
      TauModelException
    • calcTakeoff

      public void calcTakeoff​(double takeoffAngle) throws TauModelException
      Throws:
      TauModelException
    • depthCorrect

      @Deprecated public void depthCorrect​(double depth) throws TauModelException
      Deprecated.
      use setSourceDepth instead
      corrects the TauModel for the given source depth. It only performs the correction of the model is not already corrected to that depth. In general, this is called by each tool's calculate methods, and so should not need to be called by outside code. Most of the time calling setSourceDepth is preferred, allowing the tool to choose when to call depthCorrect.
      Throws:
      TauModelException
    • depthCorrect

      public void depthCorrect​(double depth, double receiverDepth) throws TauModelException
      In general, this is called by each tool's calculate methods, and so should not need to be called by outside code. Most of the time calling setSourceDepth and setReceiverDepth is preferred, allowing the tool to choose when to call depthCorrect.
      Parameters:
      depth - the source depth
      receiverDepth - the receiver depth
      Throws:
      TauModelException
    • recalcPhases

      protected void recalcPhases()
      recalculates the given phases using a possibly new or changed tau model. This should not need to be called by outside classes as it is called by depthCorrect, and calculate.
    • printResult

      public void printResult​(java.io.PrintWriter out) throws java.io.IOException
      Throws:
      java.io.IOException
    • printResultText

      public void printResultText​(java.io.PrintWriter out) throws java.io.IOException
      Throws:
      java.io.IOException
    • printResultJSON

      public void printResultJSON​(java.io.PrintWriter out)
    • init

      public void init() throws TauPException
      preforms intialization of the tool. Properties are queried for the the default model to load, source depth to use, phases to use, etc. Note that because of the IO inherent in these operations, this method is not appropriate for Applets. Applets should load TauModels themselves and use the setTauModel(TauModel) method.
      Specified by:
      init in class TauP_Tool
      Throws:
      TauPException
    • printHelp

      public void printHelp()
    • start

      public void start() throws java.io.IOException, TauModelException, TauPException
      Specified by:
      start in class TauP_Tool
      Throws:
      java.io.IOException
      TauModelException
      TauPException
    • destroy

      public void destroy() throws TauPException
      Specified by:
      destroy in class TauP_Tool
      Throws:
      TauPException
    • printStdUsageHead

      public void printStdUsageHead()
    • printStdUsage

      public void printStdUsage()
      Prints the command line arguments common to all TauP tools.
    • printUsage

      public void printUsage()
      Specified by:
      printUsage in class TauP_Tool
    • linearInterp

      public static final double linearInterp​(double xa, double ya, double xb, double yb, double x)
      solves the equation (yb-ya)/(xb-xa) = (y-ya)/(x-xa) for y given x. Useful for finding the pixel for a value given the dimension of the area and the range of values it is supposed to cover. Note, this does not check for xa == xb, in which case a divide by zero would occur.
    • main

      public static void main​(java.lang.String[] args) throws java.io.IOException
      Allows TauP_Time to run as an application. Creates an instance of TauP_Time. ToolRun.main should be used instead.
      Throws:
      java.io.IOException