Package edu.sc.seis.TauP
Class CompositeSeismicPhase
- java.lang.Object
-
- edu.sc.seis.TauP.SimpleSeismicPhase
-
- edu.sc.seis.TauP.CompositeSeismicPhase
-
- All Implemented Interfaces:
SeismicPhase
,java.io.Serializable
,java.lang.Cloneable
public class CompositeSeismicPhase extends SimpleSeismicPhase
Seismic Phase that is simple, but may contain shadow zones due to high slowness layers (low velocity zones) in the model.- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from interface edu.sc.seis.TauP.SeismicPhase
PWAVE, SWAVE
-
-
Constructor Summary
Constructors Constructor Description CompositeSeismicPhase(java.util.List<SimpleContigSeismicPhase> subphaseList)
CompositeSeismicPhase(java.util.List<SimpleContigSeismicPhase> subphaseList, java.util.List<ShadowZone> shadowZones)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description double
calcEnergyFluxFactorReflTranPSV(Arrival arrival)
double
calcEnergyFluxFactorReflTranSH(Arrival arrival)
double
calcIncidentAngle(double arrivalRayParam)
double
calcIncidentAngleDegree(double arrivalRayParam)
double
calcRayParamForIncidentAngle(double incidentDegree)
double
calcRayParamForTakeoffAngle(double takeoffDegree)
java.util.List<ArrivalPathSegment>
calcSegmentPaths(Arrival arrival, TimeDist prevEnd, int prevIdx)
Calc path with a starting time-distance possibly not zero.double
calcTakeoffAngle(double arrivalRayParam)
double
calcTakeoffAngleDegree(double arrivalRayParam)
java.util.List<Arrival>
calcTimeExactDistance(double searchDist)
Calculates arrivals for this phase, but only for the exact distance in radians.double
calcTstar(Arrival arrival)
int
countFlatLegs()
Arrival
createArrivalAtIndex(int rayNum)
Creates an Arrival for a sampled ray parameter from the model.double
densityAtReceiver()
double
densityAtSource()
java.lang.String
describe()
java.lang.String
describeShort()
void
dump()
java.lang.String
failReason()
boolean
finalSegmentIsPWave()
True if the final, incident, wavetype is a P wave, false if an S wave.double[]
getDist()
double
getDist(int rayNum)
Arrival
getEarliestArrival(double degrees)
SeismicPhaseSegment
getFinalPhaseSegment()
SeismicPhaseSegment
getInitialPhaseSegment()
java.util.List<java.util.List<SeismicPhaseSegment>>
getListPhaseSegments()
double
getMaxDistance()
double
getMaxDistanceDeg()
double
getMaxRayParam()
int
getMaxRayParamIndex()
double
getMaxTime()
double
getMinDistance()
double
getMinDistanceDeg()
double
getMinRayParam()
int
getMinRayParamIndex()
double
getMinTime()
java.lang.String
getName()
int
getNumRays()
java.lang.String
getPuristName()
double[]
getRayParams()
double
getRayParams(int rayNum)
double
getReceiverDepth()
java.util.List<ShadowZone>
getShadowZones()
double
getSourceDepth()
java.util.List<SimpleContigSeismicPhase>
getSubPhaseList()
double[]
getTau()
double
getTau(int rayNum)
TauModel
getTauModel()
double[]
getTime()
double
getTime(int rayNum)
boolean
hasArrivals()
SeismicPhase
interpolatePhase(double maxDeltaDeg)
SimpleSeismicPhase
interpolateSimplePhase(double maxDeltaDeg)
java.util.List<TimeDist>
interpPierceTimeDist(Arrival arrival)
boolean
isAllPWave()
True is all segments of this path are only P waves.boolean
isAllSWave()
True is all segments of this path are only S waves.boolean
isFail()
boolean
phasesExistsInModel()
Arrival
shootRay(double rayParam)
boolean
sourceSegmentIsPWave()
True if the initial leg, leaving the source, wavetype is a P wave, false if an S wave.double
velocityAtReceiver()
double
velocityAtSource()
-
Methods inherited from class edu.sc.seis.TauP.SimpleSeismicPhase
calcSegmentPaths
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface edu.sc.seis.TauP.SeismicPhase
toString
-
-
-
-
Constructor Detail
-
CompositeSeismicPhase
public CompositeSeismicPhase(java.util.List<SimpleContigSeismicPhase> subphaseList)
-
CompositeSeismicPhase
public CompositeSeismicPhase(java.util.List<SimpleContigSeismicPhase> subphaseList, java.util.List<ShadowZone> shadowZones)
-
-
Method Detail
-
getSubPhaseList
public java.util.List<SimpleContigSeismicPhase> getSubPhaseList()
-
getShadowZones
public java.util.List<ShadowZone> getShadowZones()
-
interpolateSimplePhase
public SimpleSeismicPhase interpolateSimplePhase(double maxDeltaDeg)
- Specified by:
interpolateSimplePhase
in classSimpleSeismicPhase
-
isFail
public boolean isFail()
-
failReason
public java.lang.String failReason()
-
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()
-
getMinTime
public double getMinTime()
-
getMaxTime
public double getMaxTime()
-
getName
public java.lang.String getName()
-
getPuristName
public java.lang.String getPuristName()
-
getSourceDepth
public double getSourceDepth()
-
getReceiverDepth
public double getReceiverDepth()
-
hasArrivals
public boolean hasArrivals()
-
getMaxRayParamIndex
public int getMaxRayParamIndex()
-
getMinRayParamIndex
public int getMinRayParamIndex()
-
getListPhaseSegments
public java.util.List<java.util.List<SeismicPhaseSegment>> getListPhaseSegments()
-
getInitialPhaseSegment
public SeismicPhaseSegment getInitialPhaseSegment()
-
getFinalPhaseSegment
public SeismicPhaseSegment getFinalPhaseSegment()
-
countFlatLegs
public int countFlatLegs()
-
getRayParams
public double getRayParams(int rayNum)
-
getRayParams
public double[] getRayParams()
-
getDist
public double getDist(int rayNum)
-
getDist
public double[] getDist()
-
getTime
public double getTime(int rayNum)
-
getTime
public double[] getTime()
-
getTau
public double getTau(int rayNum)
-
getTau
public double[] getTau()
-
createArrivalAtIndex
public Arrival createArrivalAtIndex(int rayNum)
Creates an Arrival for a sampled ray parameter from the model. No interpolation between rays as this is a sample.- Parameters:
rayNum
- index in ray parameters
-
shootRay
public Arrival shootRay(double rayParam) throws TauPException
- Throws:
TauPException
-
isAllPWave
public boolean isAllPWave()
True is all segments of this path are only P waves.
-
isAllSWave
public boolean isAllSWave()
True is all segments of this path are only S waves.
-
calcRayParamForTakeoffAngle
public double calcRayParamForTakeoffAngle(double takeoffDegree) throws NoArrivalException
- Throws:
NoArrivalException
-
calcRayParamForIncidentAngle
public double calcRayParamForIncidentAngle(double incidentDegree) throws NoArrivalException
- Throws:
NoArrivalException
-
velocityAtSource
public double velocityAtSource()
-
velocityAtReceiver
public double velocityAtReceiver()
-
densityAtReceiver
public double densityAtReceiver()
-
densityAtSource
public double densityAtSource()
-
calcTakeoffAngleDegree
public double calcTakeoffAngleDegree(double arrivalRayParam)
-
calcTakeoffAngle
public double calcTakeoffAngle(double arrivalRayParam)
-
calcIncidentAngle
public double calcIncidentAngle(double arrivalRayParam)
-
calcIncidentAngleDegree
public double calcIncidentAngleDegree(double arrivalRayParam)
-
sourceSegmentIsPWave
public boolean sourceSegmentIsPWave()
True if the initial leg, leaving the source, wavetype is a P wave, false if an S wave.
-
finalSegmentIsPWave
public boolean finalSegmentIsPWave()
True if the final, incident, wavetype is a P wave, false if an S wave.
-
calcTimeExactDistance
public java.util.List<Arrival> calcTimeExactDistance(double searchDist)
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:
calcTimeExactDistance
in classSimpleSeismicPhase
- Parameters:
searchDist
-
-
calcSegmentPaths
public java.util.List<ArrivalPathSegment> calcSegmentPaths(Arrival arrival, TimeDist prevEnd, int prevIdx) throws NoArrivalException, SlownessModelException, TauModelException
Description copied from class:SimpleSeismicPhase
Calc path with a starting time-distance possibly not zero. Used when this simple phase is the outbound phase of a scattered phase and so the path needs to start at the scatterer distance.- Overrides:
calcSegmentPaths
in classSimpleSeismicPhase
- Returns:
- Throws:
NoArrivalException
SlownessModelException
TauModelException
-
dump
public void dump()
-
interpolatePhase
public SeismicPhase interpolatePhase(double maxDeltaDeg)
-
calcEnergyFluxFactorReflTranPSV
public double calcEnergyFluxFactorReflTranPSV(Arrival arrival) throws VelocityModelException
- Throws:
VelocityModelException
-
calcEnergyFluxFactorReflTranSH
public double calcEnergyFluxFactorReflTranSH(Arrival arrival) throws VelocityModelException
- Throws:
VelocityModelException
-
interpPierceTimeDist
public java.util.List<TimeDist> interpPierceTimeDist(Arrival arrival) throws TauModelException
- Throws:
TauModelException
-
calcTstar
public double calcTstar(Arrival arrival) throws NoArrivalException
- Throws:
NoArrivalException
-
getNumRays
public int getNumRays()
-
describe
public java.lang.String describe()
-
describeShort
public java.lang.String describeShort()
-
-