Class SeismicPhaseFactory


  • public class SeismicPhaseFactory
    extends java.lang.Object
    • Field Detail

      • 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.
      • currBranch

        protected transient int currBranch
        temporary branch number so we know where to start add to the branch sequence. Used in addToBranch() and parseName().
      • 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.
      • segmentList

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

        protected java.util.ArrayList<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.ArrayList<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.ArrayList<java.lang.Boolean> waveType
        ArrayList of wave types corresponding to each leg of the phase.
      • maxRefraction

        protected static double maxRefraction
        The maximum degrees that a Pn or Sn can refract along the moho. Note this is not the total distance, only the segment along the moho. The default is 20 degrees.
      • maxDiffraction

        protected static double maxDiffraction
        The maximum degrees that a Pdiff or Sdiff can diffract along the CMB. Note this is not the total distance, only the segment along the CMB. The default is 60 degrees.
    • Method Detail

      • getMaxRefraction

        public static double getMaxRefraction()
      • setMaxRefraction

        public static void setMaxRefraction​(double max)
      • getMaxDiffraction

        public static double getMaxDiffraction()
      • setMaxDiffraction

        public static void setMaxDiffraction​(double max)
      • getMaxKmpsLaps

        public static double getMaxKmpsLaps()
      • setMaxKmpsLaps

        public static void setMaxKmpsLaps​(double max)
      • configure

        public static void configure​(java.util.Properties toolProps)
      • createSeismicPhases

        public static java.util.List<SeismicPhase> createSeismicPhases​(java.lang.String name,
                                                                       TauModel tMod,
                                                                       double sourceDepth,
                                                                       double receiverDepth,
                                                                       double scattererDepth,
                                                                       double scattererDistanceDeg,
                                                                       boolean debug)
                                                                throws TauModelException
        Throws:
        TauModelException
      • getName

        public java.lang.String getName()
      • legIsPWave

        public java.lang.Boolean legIsPWave​(java.lang.String currLeg)
      • legsArePWave

        public boolean[] legsArePWave()
      • calcBranchMultiplier

        protected static int[][] calcBranchMultiplier​(TauModel tMod,
                                                      java.util.List<java.lang.Integer> branchSeq,
                                                      java.util.List<java.lang.Boolean> waveType)
        Calculates how many times the phase passes through a branch, up or down, so that we can just multiply instead of doing the ray calc for each time.
        Returns:
      • sumBranches

        protected void sumBranches​(TauModel tMod)
                            throws TauModelException
        Sums the appropriate branches for this phase.
        Throws:
        TauModelException - if the topDepth of the high slowness zone is not contained within the TauModel. This should never happen and would indicate an invalid TauModel.
      • isLegDepth

        public boolean isLegDepth​(java.lang.String leg)
        find out if the next leg represents a phase conversion depth
        Parameters:
        leg -
        Returns:
      • endActionString

        public static final java.lang.String endActionString​(PhaseInteraction endAction)