Class SeismicPhase

java.lang.Object
edu.sc.seis.TauP.SeismicPhase
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable

public class SeismicPhase
extends java.lang.Object
implements java.io.Serializable, java.lang.Cloneable
Stores and transforms seismic phase names to and from their corresponding sequence of branches.
See Also:
Serialized Form
  • Field Summary

    Fields
    Modifier and Type Field Description
    protected java.util.List<java.lang.Integer> branchSeq
    Array of branch numbers for the given phase.
    boolean DEBUG
    Enables debugging output.
    protected double[] dist
    Array of distances corresponding to the ray parameters stored in rayParams.
    protected java.util.List<java.lang.Boolean> downGoing
    true if the current leg of the phase is down going.
    protected java.util.List<java.lang.Integer> headOrDiffractSeq
    Array of branchSeq positions where a head or diffracted segment occurs.
    protected java.util.List<PhaseInteraction> legAction
    records the end action for the current leg.
    protected java.util.ArrayList<java.lang.String> legs
    ArrayList containing Strings for each leg.
    protected double maxDistance
    The maximum distance that this phase can be theoretically observed.
    protected double maxRayParam
    Maximum ray parameter that exists for this phase.
    protected int maxRayParamIndex
    Index within TauModel.rayParams that corresponds to maxRayParam.
    protected int maxRecursion  
    protected double minDistance
    The minimum distance that this phase can be theoretically observed.
    protected double minRayParam
    Minimum ray parameter that exists for this phase.
    protected int minRayParamIndex
    Index within TauModel.rayParams that corresponds to minRayParam.
    protected java.lang.String name
    The phase name, ie PKiKP.
    protected java.lang.String puristName
    name with depths corrected to be actuall discontinuities in the model.
    static boolean PWAVE  
    protected double[] rayParams
    Array of possible ray parameters for this phase.
    protected double receiverDepth
    The receiver depth within the TauModel that was used to generate this phase.
    protected double refineDistToleranceRadian  
    protected java.util.List<SeismicPhaseSegment> segmentList
    Description of segments of the phase.
    protected double sourceDepth
    The source depth within the TauModel that was used to generate this phase.
    static boolean SWAVE  
    protected double[] time
    Array of times corresponding to the ray parameters stored in rayParams.
    protected TauModel tMod
    TauModel to generate phase for.
    boolean verbose
    Enables verbose output.
    protected java.util.List<java.lang.Boolean> waveType
    ArrayList of wave types corresponding to each leg of the phase.
  • Constructor Summary

    Constructors
    Constructor Description
    SeismicPhase​(java.lang.String name, TauModel tMod)
    Deprecated.
    use SeismicPhaseFactory.create()
    SeismicPhase​(java.lang.String name, TauModel tMod, double receiverDepth)
    Deprecated.
    use SeismicPhaseFactory.create()
    SeismicPhase​(java.lang.String name, TauModel tMod, double receiverDepth, boolean debug)
    Deprecated.
    use SeismicPhaseFactory.create()
    SeismicPhase​(java.lang.String name, TauModel tMod, double receiverDepth, java.util.ArrayList<java.lang.String> legs, java.lang.String puristName, double[] rayParams, double[] time, double[] dist, double minRayParam, double maxRayParam, int minRayParamIndex, int maxRayParamIndex, double minDistance, double maxDistance, java.util.List<java.lang.Integer> branchSeq, java.util.List<java.lang.Integer> headOrDiffractSeq, java.util.List<SeismicPhaseSegment> segmentList, java.util.List<PhaseInteraction> legAction, java.util.List<java.lang.Boolean> downGoing, java.util.List<java.lang.Boolean> waveType, boolean debug)  
    SeismicPhase​(java.lang.String name, java.lang.String modelName, double depth)
    Deprecated.
    use SeismicPhaseFactory.create()
  • Method Summary

    Modifier and Type Method Description
    double calcIncidentAngle​(double arrivalRayParam)  
    java.util.List<Arrival> calcPath​(double deg)
    Deprecated.
    Use the getPath() method on each Arrival from calcTime()
    Arrival calcPath​(Arrival currArrival)
    Deprecated.
    use the getPath() method on the arrival.
    protected java.util.List<TimeDist> calcPathTimeDist​(Arrival currArrival)  
    java.util.List<Arrival> calcPierce​(double deg)
    Deprecated.
    Use the getPierce() method on each Arrival from calcTime()
    Arrival calcPierce​(Arrival currArrival)
    Deprecated.
    Use the getPierce() method on each Arrival from calcTime()
    protected java.util.List<TimeDist> calcPierceTimeDist​(Arrival currArrival)  
    double calcRayParamForTakeoffAngle​(double takeoffDegree)  
    double calcTakeoffAngle​(double arrivalRayParam)  
    java.util.List<Arrival> calcTime​(double deg)
    calculates arrival times for this phase, sorted by time.
    java.lang.String describe()  
    void dump()  
    double[] getDist()  
    double getDist​(int i)  
    boolean[] getDownGoing()
    Direction of the leg between pierce point i and i+1, true is downgoing, false if upgoing
    Arrival getEarliestArrival​(double degrees)  
    static Arrival getEarliestArrival​(java.util.List<SeismicPhase> phases, double degrees)  
    int[] getLegAction()
    Leg type i layer interaction, one of TURN, REFLECTTOP, REFLECTBOT, TRANSUP, TRANSDOWN
    java.util.List<java.lang.String> getLegs()  
    static double getMaxDiffraction()
    Deprecated.
    see SeismicPhaseFactory
    double getMaxDistance()  
    double getMaxDistanceDeg()  
    double getMaxRayParam()  
    int getMaxRayParamIndex()  
    static double getMaxRefraction()
    Deprecated.
    see SeismicPhaseFactory
    double getMinDistance()  
    double getMinDistanceDeg()  
    double getMinRayParam()  
    int getMinRayParamIndex()  
    java.lang.String getName()  
    java.util.List<SeismicPhaseSegment> getPhaseSegments()  
    java.lang.String getPuristName()  
    double[] getRayParams()  
    double getRayParams​(int i)  
    double[] getTau()  
    double getTau​(int i)  
    TauModel getTauModel()  
    double[] getTime()  
    double getTime​(int i)  
    boolean[] getWaveType()
    Wave type of the leg between pierce point i and i+1, true is P, false if S
    boolean hasArrivals()  
    static void main​(java.lang.String[] args)  
    boolean phasesExistsInModel()  
    Arrival refineArrival​(int rayNum, double distRadian, double distTolRadian, int maxRecursion)  
    Arrival refineArrival​(Arrival leftEstimate, Arrival rightEstimate, double searchDist, double distTolRadian, int maxRecursion)  
    static void setMaxDiffraction​(double max)
    Deprecated.
    see SeismicPhaseFactory
    static void setMaxRefraction​(double max)
    Deprecated.
    see SeismicPhaseFactory
    Arrival shootRay​(double rayParam)  
    java.lang.String toString()  

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

    • DEBUG

      public transient boolean DEBUG
      Enables debugging output.
    • verbose

      public transient boolean verbose
      Enables verbose output.
    • tMod

      protected TauModel tMod
      TauModel to generate phase for.
    • sourceDepth

      protected double sourceDepth
      The source depth within the TauModel that was used to generate this phase.
    • receiverDepth

      protected double receiverDepth
      The receiver depth within the TauModel that was used to generate this phase. Normally this is 0.0 for a surface stations, but can be different for borehole or scattering calculations.
    • dist

      protected double[] dist
      Array of distances corresponding to the ray parameters stored in rayParams.
    • time

      protected double[] time
      Array of times corresponding to the ray parameters stored in rayParams.
    • rayParams

      protected double[] rayParams
      Array of possible ray parameters for this phase.
    • minRayParam

      protected double minRayParam
      Minimum ray parameter that exists for this phase.
    • maxRayParam

      protected double maxRayParam
      Maximum ray parameter that exists for this phase.
    • maxRayParamIndex

      protected int maxRayParamIndex
      Index within TauModel.rayParams that corresponds to maxRayParam. Note that maxRayParamIndex < minRayParamIndex as ray parameter decreases with increasing index.
    • minRayParamIndex

      protected int minRayParamIndex
      Index within TauModel.rayParams that corresponds to minRayParam. Note that maxRayParamIndex < minRayParamIndex as ray parameter decreases with increasing index.
    • minDistance

      protected double minDistance
      The minimum distance that this phase can be theoretically observed.
    • maxDistance

      protected double maxDistance
      The maximum distance that this phase can be theoretically observed.
    • branchSeq

      protected java.util.List<java.lang.Integer> branchSeq
      Array of branch numbers for the given phase. Note that this depends upon both the earth model and the source depth.
    • headOrDiffractSeq

      protected java.util.List<java.lang.Integer> headOrDiffractSeq
      Array of branchSeq positions where a head or diffracted segment occurs.
    • name

      protected java.lang.String name
      The phase name, ie PKiKP.
    • puristName

      protected java.lang.String puristName
      name with depths corrected to be actuall discontinuities in the model.
    • legs

      protected java.util.ArrayList<java.lang.String> legs
      ArrayList containing Strings for each leg.
    • segmentList

      protected java.util.List<SeismicPhaseSegment> segmentList
      Description of segments of the phase.
    • legAction

      protected java.util.List<PhaseInteraction> legAction
      records the end action for the current leg. Will be one of SeismicPhase.TURN, SeismicPhase.TRANSDOWN, SeismicPhase.TRANSUP, SeismicPhase.REFLECTBOT, or SeismicPhase.REFLECTTOP. This allows a check to make sure the path is correct. Used in addToBranch() and parseName().
    • downGoing

      protected java.util.List<java.lang.Boolean> downGoing
      true if the current leg of the phase is down going. This allows a check to make sure the path is correct. Used in addToBranch() and parseName().
    • waveType

      protected java.util.List<java.lang.Boolean> waveType
      ArrayList of wave types corresponding to each leg of the phase.
    • refineDistToleranceRadian

      protected double refineDistToleranceRadian
    • maxRecursion

      protected int maxRecursion
    • PWAVE

      public static final boolean PWAVE
      See Also:
      Constant Field Values
    • SWAVE

      public static final boolean SWAVE
      See Also:
      Constant Field Values
  • Constructor Details

    • SeismicPhase

      @Deprecated public SeismicPhase​(java.lang.String name, java.lang.String modelName, double depth) throws TauModelException
      Deprecated.
      use SeismicPhaseFactory.create()
      Parameters:
      name -
      modelName -
      depth -
      Throws:
      TauModelException
    • SeismicPhase

      @Deprecated public SeismicPhase​(java.lang.String name, TauModel tMod) throws TauModelException
      Deprecated.
      use SeismicPhaseFactory.create()
      Parameters:
      name - String containing a name of the phase.
      tMod - Tau model to be used to construct the phase. This should be corrected for the source depth.
      Throws:
      TauModelException
    • SeismicPhase

      @Deprecated public SeismicPhase​(java.lang.String name, TauModel tMod, double receiverDepth) throws TauModelException
      Deprecated.
      use SeismicPhaseFactory.create()
      Parameters:
      name -
      tMod -
      receiverDepth -
      Throws:
      TauModelException
    • SeismicPhase

      @Deprecated public SeismicPhase​(java.lang.String name, TauModel tMod, double receiverDepth, boolean debug) throws TauModelException
      Deprecated.
      use SeismicPhaseFactory.create()
      Parameters:
      name -
      tMod -
      receiverDepth -
      debug -
      Throws:
      TauModelException
    • SeismicPhase

      public SeismicPhase​(java.lang.String name, TauModel tMod, double receiverDepth, java.util.ArrayList<java.lang.String> legs, java.lang.String puristName, double[] rayParams, double[] time, double[] dist, double minRayParam, double maxRayParam, int minRayParamIndex, int maxRayParamIndex, double minDistance, double maxDistance, java.util.List<java.lang.Integer> branchSeq, java.util.List<java.lang.Integer> headOrDiffractSeq, java.util.List<SeismicPhaseSegment> segmentList, java.util.List<PhaseInteraction> legAction, java.util.List<java.lang.Boolean> downGoing, java.util.List<java.lang.Boolean> waveType, boolean debug) throws TauModelException
      Throws:
      TauModelException
  • Method Details

    • phasesExistsInModel

      public boolean phasesExistsInModel()
    • getEarliestArrival

      public Arrival getEarliestArrival​(double degrees)
    • getTauModel

      public TauModel getTauModel()
    • getMinDistanceDeg

      public double getMinDistanceDeg()
    • getMinDistance

      public double getMinDistance()
    • getMaxDistanceDeg

      public double getMaxDistanceDeg()
    • getMaxDistance

      public double getMaxDistance()
    • getMaxRayParam

      public double getMaxRayParam()
    • getMinRayParam

      public double getMinRayParam()
    • getMaxRayParamIndex

      public int getMaxRayParamIndex()
    • getMinRayParamIndex

      public int getMinRayParamIndex()
    • getMaxRefraction

      public static double getMaxRefraction()
      Deprecated.
      see SeismicPhaseFactory
      Returns:
      max refractions distance for head waves
    • setMaxRefraction

      public static void setMaxRefraction​(double max)
      Deprecated.
      see SeismicPhaseFactory
      set max refractions distance for head waves
    • getMaxDiffraction

      public static double getMaxDiffraction()
      Deprecated.
      see SeismicPhaseFactory
      Returns:
      max diffraction distance for diff waves
    • setMaxDiffraction

      public static void setMaxDiffraction​(double max)
      Deprecated.
      see SeismicPhaseFactory
      set max diffraction distance for diff waves
    • getName

      public java.lang.String getName()
    • getPuristName

      public java.lang.String getPuristName()
    • getLegs

      public java.util.List<java.lang.String> getLegs()
    • getPhaseSegments

      public java.util.List<SeismicPhaseSegment> getPhaseSegments()
    • getRayParams

      public double getRayParams​(int i)
    • getRayParams

      public double[] getRayParams()
    • getDist

      public double getDist​(int i)
    • getDist

      public double[] getDist()
    • getTime

      public double getTime​(int i)
    • getTime

      public double[] getTime()
    • getTau

      public double getTau​(int i)
    • getTau

      public double[] getTau()
    • getDownGoing

      public boolean[] getDownGoing()
      Direction of the leg between pierce point i and i+1, true is downgoing, false if upgoing
    • getWaveType

      public boolean[] getWaveType()
      Wave type of the leg between pierce point i and i+1, true is P, false if S
    • getLegAction

      public int[] getLegAction()
      Leg type i layer interaction, one of TURN, REFLECTTOP, REFLECTBOT, TRANSUP, TRANSDOWN
    • hasArrivals

      public boolean hasArrivals()
    • calcTime

      public java.util.List<Arrival> calcTime​(double deg)
      calculates arrival times for this phase, sorted by time.
    • refineArrival

      public Arrival refineArrival​(int rayNum, double distRadian, double distTolRadian, int maxRecursion)
    • refineArrival

      public Arrival refineArrival​(Arrival leftEstimate, Arrival rightEstimate, double searchDist, double distTolRadian, int maxRecursion)
    • shootRay

      public Arrival shootRay​(double rayParam) throws SlownessModelException, NoSuchLayerException
      Throws:
      SlownessModelException
      NoSuchLayerException
    • calcRayParamForTakeoffAngle

      public double calcRayParamForTakeoffAngle​(double takeoffDegree)
    • calcTakeoffAngle

      public double calcTakeoffAngle​(double arrivalRayParam)
    • calcIncidentAngle

      public double calcIncidentAngle​(double arrivalRayParam)
    • calcPierce

      @Deprecated public java.util.List<Arrival> calcPierce​(double deg) throws TauModelException
      Deprecated.
      Use the getPierce() method on each Arrival from calcTime()
      Calculates the "pierce points" for the arrivals stored in arrivals. The pierce points are stored within each arrival object.
      Throws:
      TauModelException
    • calcPierce

      @Deprecated public Arrival calcPierce​(Arrival currArrival)
      Deprecated.
      Use the getPierce() method on each Arrival from calcTime()
      Calculates the pierce points for a particular arrival. The returned arrival is the same as the input arguement but now has the pierce points filled in.
      Parameters:
      currArrival -
      Returns:
      same arrival with pierce points
    • calcPierceTimeDist

      protected java.util.List<TimeDist> calcPierceTimeDist​(Arrival currArrival)
    • calcPath

      @Deprecated public java.util.List<Arrival> calcPath​(double deg)
      Deprecated.
      Use the getPath() method on each Arrival from calcTime()
      calculates the paths this phase takes through the earth model.
    • calcPath

      @Deprecated public Arrival calcPath​(Arrival currArrival)
      Deprecated.
      use the getPath() method on the arrival.
      Parameters:
      currArrival -
      Returns:
    • calcPathTimeDist

      protected java.util.List<TimeDist> calcPathTimeDist​(Arrival currArrival)
    • getEarliestArrival

      public static Arrival getEarliestArrival​(java.util.List<SeismicPhase> phases, double degrees)
    • describe

      public java.lang.String describe()
    • toString

      public java.lang.String toString()
      Overrides:
      toString in class java.lang.Object
    • dump

      public void dump()
    • main

      public static void main​(java.lang.String[] args)