Class ProtoSeismicPhase

  • All Implemented Interfaces:
    java.lang.Comparable<ProtoSeismicPhase>

    public class ProtoSeismicPhase
    extends java.lang.Object
    implements java.lang.Comparable<ProtoSeismicPhase>
    Represents a partial seismic phase, appended to as a name is parsed. May also fail if part way if phase is not compatible with the model.
    • Constructor Detail

      • ProtoSeismicPhase

        public ProtoSeismicPhase​(java.util.List<SeismicPhaseSegment> segmentList,
                                 double receiverDepth)
    • Method Detail

      • startEmpty

        public static ProtoSeismicPhase startEmpty​(java.lang.String phaseName,
                                                   TauModel tMod,
                                                   double receiverDepth)
      • failNewPhase

        public static ProtoSeismicPhase failNewPhase​(TauModel tMod,
                                                     boolean isPWave,
                                                     boolean isDownGoing,
                                                     double receiverDepth,
                                                     java.lang.String phaseName,
                                                     java.lang.String reason)
      • findEndDiscon

        public static int findEndDiscon​(TauModel tMod,
                                        int startBranchNum,
                                        boolean isPWave,
                                        boolean isDowngoing)
      • splitForHighSlownessDiscon

        public java.util.List<ShadowOrProto> splitForHighSlownessDiscon​(int hszBranchNum,
                                                                        boolean isPWave)
                                                                 throws TauModelException
        Split for a discontinuity where above slowness is smaller than below. Usually a low velocity zone. Only splits for discontinuities internal to a SeismicPhaseSegment as discontinuities at the boundary are handled via normal phase generation and min,max ray param and cannot generate an internal shadow zone.
        Parameters:
        hszBranchNum - TauBranch number with the discon at its top
        isPWave - true for P waves, false for S waves
        Returns:
        phase split for shadow zone
        Throws:
        TauModelException
      • isEmpty

        public final boolean isEmpty()
      • isSuccessful

        public boolean isSuccessful()
      • size

        public final int size()
      • countFlatLegs

        public int countFlatLegs()
      • countHeadLegs

        public int countHeadLegs()
      • countDiffLegs

        public int countDiffLegs()
      • calcStartBranch

        public int calcStartBranch​(java.lang.String currLeg)
      • addToBranch

        public SeismicPhaseSegment addToBranch​(int endBranch,
                                               boolean isPWave,
                                               boolean nextIsPWave,
                                               PhaseInteraction endAction,
                                               java.lang.String currLeg)
                                        throws TauModelException
        Adds a segment to a path of a seismic phase. Generally this corresponds to a character in a phase name, like K in PKP.
        Parameters:
        endBranch - ending branch number, start is calculated from the end branch and end action of the prior leg.
        isPWave - current leg phase type, true for P, false for S
        nextIsPWave - next leg phase type, true for P, false for S, determines if a phase conversion at the end
        endAction - action the phase takes at the end, like TURN or REFLECT_TOPSIDE
        currLeg - name of current leg
        Returns:
        The segment added by this call
        Throws:
        TauModelException - if arguments not possible in the model, but not thrown for a simple failure to exist
      • calcMaxTransitRP

        protected double calcMaxTransitRP​(int startBranch,
                                          int endBranch,
                                          boolean isPWave,
                                          PhaseInteraction prevEndAction,
                                          double maxRayParam)
      • calcInteractionNumber

        public int calcInteractionNumber()
      • phaseNameForSegments

        public java.lang.String phaseNameForSegments()
      • phaseNameForSegments

        public java.lang.String phaseNameForSegments​(boolean zapED)
      • legNameForSegment

        public static java.lang.String legNameForSegment​(TauModel tMod,
                                                         int endBranch,
                                                         boolean isPWave,
                                                         boolean isDownGoing,
                                                         boolean isFlat,
                                                         PhaseInteraction endAction)
      • branchNumSeg

        public java.util.List<java.lang.Integer> branchNumSeg()
      • branchNumSeqStr

        public java.lang.String branchNumSeqStr()
      • branchNumSeqStrWithSegBreaks

        public java.lang.String branchNumSeqStrWithSegBreaks()
      • getName

        public java.lang.String getName()
      • getPuristName

        public java.lang.String getPuristName()
      • segmentListAsString

        public java.lang.String segmentListAsString()