Package edu.sc.seis.TauP
Class SimpleContigSeismicPhase
java.lang.Object
edu.sc.seis.TauP.SimpleSeismicPhase
edu.sc.seis.TauP.SimpleContigSeismicPhase
- All Implemented Interfaces:
SeismicPhase,Serializable,Cloneable
- Direct Known Subclasses:
FailedSeismicPhase
Stores and transforms seismic phase names to and from their corresponding
sequence of branches.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionbooleanEnables debugging output.protected double[]Array of distances corresponding to the ray parameters stored in rayParams.protected doubleThe maximum distance that this phase can be theoretically observed.protected doubleMaximum ray parameter that exists for this phase.protected intIndex within TauModel.rayParams that corresponds to maxRayParam.protected intMaximum recursion for refine arrival.protected doubleThe minimum distance that this phase can be theoretically observed.protected doubleMinimum ray parameter that exists for this phase.protected intIndex within TauModel.rayParams that corresponds to minRayParam.protected StringThe phase name, ie PKiKP.protected Stringname with depths corrected to be actuall discontinuities in the model.protected double[]Array of possible ray parameters for this phase.protected doubleThe receiver depth within the TauModel that was used to generate this phase.protected doubleprotected doubleThe source depth within the TauModel that was used to generate this phase.protected double[]Array of times corresponding to the ray parameters stored in rayParams.protected TauModelTauModel to generate phase for.booleanEnables verbose output.Fields inherited from interface edu.sc.seis.TauP.SeismicPhase
PWAVE, SWAVE -
Constructor Summary
ConstructorsConstructorDescriptionSimpleContigSeismicPhase(ProtoSeismicPhase proto, double[] rayParams, double[] time, double[] dist, double minRayParam, double maxRayParam, int minRayParamIndex, int maxRayParamIndex, double minDistance, double maxDistance, boolean debug) -
Method Summary
Modifier and TypeMethodDescriptiondoublecalcIncidentAngle(double arrivalRayParam) doublecalcIncidentAngleDegree(double arrivalRayParam) doublecalcRayParamForIncidentAngle(double incidentDegree) static doublecalcRayParamForIncidentAngleInModel(double incidentDegree, boolean isPWave, ProtoSeismicPhase proto, LayerPropogationType layerPropogationType) doublecalcRayParamForTakeoffAngle(double takeoffDegree) static doublecalcRayParamForTakeoffAngleInModel(double takeoffDegree, boolean isPWave, TauModel tMod, LayerPropogationType layerPropogationType) calcReflTranPSV(Arrival arrival) calcReflTranSH(Arrival arrival) doublecalcTakeoffAngle(double arrivalRayParam) doublecalcTakeoffAngleDegree(double arrivalRayParam) calcTimeExactDistance(double searchDist) Calculates arrivals for this phase, but only for the exact distance in radians.doubleintcreateArrivalAtIndex(int rayNum) Creates an Arrival for a sampled ray parameter from the model.doubledoubledescribe()voiddump()booleanTrue if the final, incident, wavetype is a P wave, false if an S wave.double[]getDist()doublegetDist(int i) getEarliestArrival(double degrees) doubledoubledoubleintIndex within TauModel.rayParams that corresponds to maxRayParam.doubledoubledoubledoubleintIndex within TauModel.rayParams that corresponds to minRayParam.doublegetName()intDescription of segments of the phase.getProto()double[]doublegetRayParams(int i) doubledoubledouble[]getTau()doublegetTau(int i) double[]getTime()doublegetTime(int i) gettMod()booleaninterpolatePhase(double maxDeltaDeg) interpolateSimplePhase(double maxDeltaDeg) Interpolates the time-dist arrays so adjacent rays are no more than maxDeltaDeg apart.interpPierceTimeDist(Arrival currArrival) booleanTrue is all segments of this path are only P waves.booleanTrue is all segments of this path are only S waves.booleanisFail()booleanrefineArrival(int rayNum, double distRadian, double distTolRadian, int maxRecursion) refineArrival(Arrival leftEstimate, Arrival rightEstimate, double searchDist, double distTolRadian, int maxRecursion) removeDuplicatePathPoints(List<TimeDist> inPath) shootRay(double rayParam) booleanTrue if the initial leg, leaving the source, wavetype is a P wave, false if an S wave.toString()doubledoubleMethods inherited from class edu.sc.seis.TauP.SimpleSeismicPhase
calcEnergyFluxFactorReflTranPSV, calcEnergyFluxFactorReflTranSH, calcSegmentPaths, calcSegmentPaths
-
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. -
name
The phase name, ie PKiKP. -
puristName
name with depths corrected to be actuall discontinuities in the model. -
refineDistToleranceRadian
protected double refineDistToleranceRadian -
maxRecursion
protected int maxRecursionMaximum recursion for refine arrival.
-
-
Constructor Details
-
SimpleContigSeismicPhase
public SimpleContigSeismicPhase(ProtoSeismicPhase proto, double[] rayParams, double[] time, double[] dist, double minRayParam, double maxRayParam, int minRayParamIndex, int maxRayParamIndex, double minDistance, double maxDistance, boolean debug)
-
-
Method Details
-
phasesExistsInModel
public boolean phasesExistsInModel() -
getEarliestArrival
-
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()Index within TauModel.rayParams that corresponds to maxRayParam. Note that maxRayParamIndex < minRayParamIndex as ray parameter decreases with increasing index. -
getMinRayParamIndex
public int getMinRayParamIndex()Index within TauModel.rayParams that corresponds to minRayParam. Note that maxRayParamIndex < minRayParamIndex as ray parameter decreases with increasing index. -
getMinTime
public double getMinTime() -
getMaxTime
public double getMaxTime() -
getProto
-
isFail
public boolean isFail() -
failReason
-
gettMod
-
getName
-
getPuristName
-
getSourceDepth
public double getSourceDepth() -
getReceiverDepth
public double getReceiverDepth() -
getListPhaseSegments
-
getPhaseSegments
Description of segments of the phase. -
countFlatLegs
public int countFlatLegs() -
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() -
hasArrivals
public boolean hasArrivals() -
getShadowZones
-
calcTimeExactDistance
Calculates arrivals for this phase, but only for the exact distance in radians. This does not check multiple laps nor going the long way around.- Specified by:
calcTimeExactDistancein classSimpleSeismicPhase
-
createArrivalAtIndex
Creates an Arrival for a sampled ray parameter from the model. No interpolation between rays as this is a sample.- Parameters:
rayNum-- Returns:
-
refineArrival
-
refineArrival
-
interpolatePhase
-
interpolateSimplePhase
Interpolates the time-dist arrays so adjacent rays are no more than maxDeltaDeg apart.- Specified by:
interpolateSimplePhasein classSimpleSeismicPhase- Parameters:
maxDeltaDeg- max separation in degrees- Returns:
- new phase interpolated
-
shootRay
-
calcRayParamForTakeoffAngle
- Throws:
NoArrivalException
-
calcRayParamForTakeoffAngleInModel
public static double calcRayParamForTakeoffAngleInModel(double takeoffDegree, boolean isPWave, TauModel tMod, LayerPropogationType layerPropogationType) throws NoSuchLayerException, SlownessModelException -
calcRayParamForIncidentAngle
- Throws:
NoArrivalException
-
calcRayParamForIncidentAngleInModel
public static double calcRayParamForIncidentAngleInModel(double incidentDegree, boolean isPWave, ProtoSeismicPhase proto, LayerPropogationType layerPropogationType) throws NoSuchLayerException, SlownessModelException -
velocityAtSource
public double velocityAtSource() -
velocityAtReceiver
public double velocityAtReceiver() -
densityAtSource
public double densityAtSource() -
densityAtReceiver
public double densityAtReceiver() -
calcTakeoffAngleDegree
public double calcTakeoffAngleDegree(double arrivalRayParam) -
calcTakeoffAngle
public double calcTakeoffAngle(double arrivalRayParam) -
calcIncidentAngleDegree
public double calcIncidentAngleDegree(double arrivalRayParam) -
calcIncidentAngle
public double calcIncidentAngle(double arrivalRayParam) -
sourceSegmentIsPWave
public boolean sourceSegmentIsPWave()Description copied from interface:SeismicPhaseTrue if the initial leg, leaving the source, wavetype is a P wave, false if an S wave. -
getInitialPhaseSegment
-
getFinalPhaseSegment
-
finalSegmentIsPWave
public boolean finalSegmentIsPWave()Description copied from interface:SeismicPhaseTrue if the final, incident, wavetype is a P wave, false if an S wave. -
interpPierceTimeDist
- Throws:
TauModelException
-
calcTstar
-
getNumRays
public int getNumRays() -
isAllPWave
public boolean isAllPWave()True is all segments of this path are only P waves.- Returns:
-
isAllSWave
public boolean isAllSWave()True is all segments of this path are only S waves.- Returns:
-
calcReflTranPSV
public SeismicPhaseReflTransHolder calcReflTranPSV(Arrival arrival) throws TauModelException, SlownessModelException -
calcReflTranSH
public SeismicPhaseReflTransHolder calcReflTranSH(Arrival arrival) throws TauModelException, SlownessModelException -
removeDuplicatePathPoints
-
describe
-
describeShort
-
toString
- Specified by:
toStringin interfaceSeismicPhase- Overrides:
toStringin classObject
-
dump
public void dump()
-