Package edu.sc.seis.TauP
Class SimpleSeismicPhase
java.lang.Object
edu.sc.seis.TauP.SimpleSeismicPhase
- All Implemented Interfaces:
SeismicPhase
,java.io.Serializable
,java.lang.Cloneable
public class SimpleSeismicPhase extends java.lang.Object implements SeismicPhase
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 SimpleSeismicPhase(java.lang.String name, TauModel tMod)
Deprecated.use SeismicPhaseFactory.create()SimpleSeismicPhase(java.lang.String name, TauModel tMod, double receiverDepth)
Deprecated.use SeismicPhaseFactory.create()SimpleSeismicPhase(java.lang.String name, TauModel tMod, double receiverDepth, boolean debug)
Deprecated.use SeismicPhaseFactory.create()SimpleSeismicPhase(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)
SimpleSeismicPhase(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.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()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 upgoingArrival
getEarliestArrival(double degrees)
int[]
getLegAction()
Leg type i layer interaction, one of TURN, REFLECTTOP, REFLECTBOT, TRANSUP, TRANSDOWNjava.util.List<java.lang.String>
getLegs()
double
getMaxDistance()
double
getMaxDistanceDeg()
double
getMaxRayParam()
int
getMaxRayParamIndex()
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
getReceiverDepth()
double
getSourceDepth()
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 Sboolean
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)
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 DEBUGEnables debugging output. -
verbose
public transient boolean verboseEnables verbose output. -
tMod
TauModel to generate phase for. -
sourceDepth
protected double sourceDepthThe source depth within the TauModel that was used to generate this phase. -
receiverDepth
protected double receiverDepthThe 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[] distArray of distances corresponding to the ray parameters stored in rayParams. -
time
protected double[] timeArray of times corresponding to the ray parameters stored in rayParams. -
rayParams
protected double[] rayParamsArray of possible ray parameters for this phase. -
minRayParam
protected double minRayParamMinimum ray parameter that exists for this phase. -
maxRayParam
protected double maxRayParamMaximum ray parameter that exists for this phase. -
maxRayParamIndex
protected int maxRayParamIndexIndex within TauModel.rayParams that corresponds to maxRayParam. Note that maxRayParamIndex < minRayParamIndex as ray parameter decreases with increasing index. -
minRayParamIndex
protected int minRayParamIndexIndex within TauModel.rayParams that corresponds to minRayParam. Note that maxRayParamIndex < minRayParamIndex as ray parameter decreases with increasing index. -
minDistance
protected double minDistanceThe minimum distance that this phase can be theoretically observed. -
maxDistance
protected double maxDistanceThe maximum distance that this phase can be theoretically observed. -
branchSeq
protected java.util.List<java.lang.Integer> branchSeqArray 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> headOrDiffractSeqArray of branchSeq positions where a head or diffracted segment occurs. -
name
protected java.lang.String nameThe phase name, ie PKiKP. -
puristName
protected java.lang.String puristNamename with depths corrected to be actuall discontinuities in the model. -
legs
protected java.util.ArrayList<java.lang.String> legsArrayList containing Strings for each leg. -
segmentList
Description of segments of the phase. -
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> downGoingtrue 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> waveTypeArrayList 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
-
SimpleSeismicPhase
@Deprecated public SimpleSeismicPhase(java.lang.String name, java.lang.String modelName, double depth) throws TauModelExceptionDeprecated.use SeismicPhaseFactory.create()- Parameters:
name
-modelName
-depth
-- Throws:
TauModelException
-
SimpleSeismicPhase
@Deprecated public SimpleSeismicPhase(java.lang.String name, TauModel tMod) throws TauModelExceptionDeprecated.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
-
SimpleSeismicPhase
@Deprecated public SimpleSeismicPhase(java.lang.String name, TauModel tMod, double receiverDepth) throws TauModelExceptionDeprecated.use SeismicPhaseFactory.create()- Parameters:
name
-tMod
-receiverDepth
-- Throws:
TauModelException
-
SimpleSeismicPhase
@Deprecated public SimpleSeismicPhase(java.lang.String name, TauModel tMod, double receiverDepth, boolean debug) throws TauModelExceptionDeprecated.use SeismicPhaseFactory.create()- Parameters:
name
-tMod
-receiverDepth
-debug
-- Throws:
TauModelException
-
SimpleSeismicPhase
public SimpleSeismicPhase(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()- Specified by:
phasesExistsInModel
in interfaceSeismicPhase
-
getEarliestArrival
- Specified by:
getEarliestArrival
in interfaceSeismicPhase
-
getTauModel
- Specified by:
getTauModel
in interfaceSeismicPhase
-
getMinDistanceDeg
public double getMinDistanceDeg()- Specified by:
getMinDistanceDeg
in interfaceSeismicPhase
-
getMinDistance
public double getMinDistance()- Specified by:
getMinDistance
in interfaceSeismicPhase
-
getMaxDistanceDeg
public double getMaxDistanceDeg()- Specified by:
getMaxDistanceDeg
in interfaceSeismicPhase
-
getMaxDistance
public double getMaxDistance()- Specified by:
getMaxDistance
in interfaceSeismicPhase
-
getMaxRayParam
public double getMaxRayParam()- Specified by:
getMaxRayParam
in interfaceSeismicPhase
-
getMinRayParam
public double getMinRayParam()- Specified by:
getMinRayParam
in interfaceSeismicPhase
-
getMaxRayParamIndex
public int getMaxRayParamIndex()- Specified by:
getMaxRayParamIndex
in interfaceSeismicPhase
-
getMinRayParamIndex
public int getMinRayParamIndex()- Specified by:
getMinRayParamIndex
in interfaceSeismicPhase
-
getName
public java.lang.String getName()- Specified by:
getName
in interfaceSeismicPhase
-
getPuristName
public java.lang.String getPuristName()- Specified by:
getPuristName
in interfaceSeismicPhase
-
getSourceDepth
public double getSourceDepth()- Specified by:
getSourceDepth
in interfaceSeismicPhase
-
getReceiverDepth
public double getReceiverDepth()- Specified by:
getReceiverDepth
in interfaceSeismicPhase
-
getLegs
public java.util.List<java.lang.String> getLegs()- Specified by:
getLegs
in interfaceSeismicPhase
-
getPhaseSegments
- Specified by:
getPhaseSegments
in interfaceSeismicPhase
-
getRayParams
public double getRayParams(int i)- Specified by:
getRayParams
in interfaceSeismicPhase
-
getRayParams
public double[] getRayParams()- Specified by:
getRayParams
in interfaceSeismicPhase
-
getDist
public double getDist(int i)- Specified by:
getDist
in interfaceSeismicPhase
-
getDist
public double[] getDist()- Specified by:
getDist
in interfaceSeismicPhase
-
getTime
public double getTime(int i)- Specified by:
getTime
in interfaceSeismicPhase
-
getTime
public double[] getTime()- Specified by:
getTime
in interfaceSeismicPhase
-
getTau
public double getTau(int i)- Specified by:
getTau
in interfaceSeismicPhase
-
getTau
public double[] getTau()- Specified by:
getTau
in interfaceSeismicPhase
-
getDownGoing
public boolean[] getDownGoing()Direction of the leg between pierce point i and i+1, true is downgoing, false if upgoing- Specified by:
getDownGoing
in interfaceSeismicPhase
-
getWaveType
public boolean[] getWaveType()Wave type of the leg between pierce point i and i+1, true is P, false if S- Specified by:
getWaveType
in interfaceSeismicPhase
-
getLegAction
public int[] getLegAction()Leg type i layer interaction, one of TURN, REFLECTTOP, REFLECTBOT, TRANSUP, TRANSDOWN- Specified by:
getLegAction
in interfaceSeismicPhase
-
hasArrivals
public boolean hasArrivals()- Specified by:
hasArrivals
in interfaceSeismicPhase
-
calcTime
calculates arrival times for this phase, sorted by time.- Specified by:
calcTime
in interfaceSeismicPhase
-
refineArrival
public Arrival refineArrival(int rayNum, double distRadian, double distTolRadian, int maxRecursion) -
refineArrival
-
shootRay
- Specified by:
shootRay
in interfaceSeismicPhase
- Throws:
SlownessModelException
NoSuchLayerException
-
calcRayParamForTakeoffAngle
public double calcRayParamForTakeoffAngle(double takeoffDegree)- Specified by:
calcRayParamForTakeoffAngle
in interfaceSeismicPhase
-
calcTakeoffAngle
public double calcTakeoffAngle(double arrivalRayParam)- Specified by:
calcTakeoffAngle
in interfaceSeismicPhase
-
calcIncidentAngle
public double calcIncidentAngle(double arrivalRayParam)- Specified by:
calcIncidentAngle
in interfaceSeismicPhase
-
calcPierce
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.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
- Specified by:
calcPierceTimeDist
in interfaceSeismicPhase
-
calcPath
Deprecated.Use the getPath() method on each Arrival from calcTime()calculates the paths this phase takes through the earth model. -
calcPath
Deprecated.use the getPath() method on the arrival.- Parameters:
currArrival
-- Returns:
-
calcPathTimeDist
- Specified by:
calcPathTimeDist
in interfaceSeismicPhase
-
describe
public java.lang.String describe()- Specified by:
describe
in interfaceSeismicPhase
-
toString
public java.lang.String toString()- Specified by:
toString
in interfaceSeismicPhase
- Overrides:
toString
in classjava.lang.Object
-
dump
public void dump()- Specified by:
dump
in interfaceSeismicPhase
-
main
public static void main(java.lang.String[] args)
-