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 doublecalcEnergyFluxFactorReflTranPSV(Arrival arrival)doublecalcEnergyFluxFactorReflTranSH(Arrival arrival)doublecalcIncidentAngle(double arrivalRayParam)doublecalcIncidentAngleDegree(double arrivalRayParam)doublecalcRayParamForIncidentAngle(double incidentDegree)doublecalcRayParamForTakeoffAngle(double takeoffDegree)java.util.List<ArrivalPathSegment>calcSegmentPaths(Arrival arrival, TimeDist prevEnd, int prevIdx)Calc path with a starting time-distance possibly not zero.doublecalcTakeoffAngle(double arrivalRayParam)doublecalcTakeoffAngleDegree(double arrivalRayParam)java.util.List<Arrival>calcTimeExactDistance(double searchDist)Calculates arrivals for this phase, but only for the exact distance in radians.doublecalcTstar(Arrival arrival)intcountFlatLegs()ArrivalcreateArrivalAtIndex(int rayNum)Creates an Arrival for a sampled ray parameter from the model.doubledensityAtReceiver()doubledensityAtSource()java.lang.Stringdescribe()java.lang.StringdescribeShort()voiddump()java.lang.StringfailReason()booleanfinalSegmentIsPWave()True if the final, incident, wavetype is a P wave, false if an S wave.double[]getDist()doublegetDist(int rayNum)ArrivalgetEarliestArrival(double degrees)SeismicPhaseSegmentgetFinalPhaseSegment()SeismicPhaseSegmentgetInitialPhaseSegment()java.util.List<java.util.List<SeismicPhaseSegment>>getListPhaseSegments()doublegetMaxDistance()doublegetMaxDistanceDeg()doublegetMaxRayParam()intgetMaxRayParamIndex()doublegetMaxTime()doublegetMinDistance()doublegetMinDistanceDeg()doublegetMinRayParam()intgetMinRayParamIndex()doublegetMinTime()java.lang.StringgetName()intgetNumRays()java.lang.StringgetPuristName()double[]getRayParams()doublegetRayParams(int rayNum)doublegetReceiverDepth()java.util.List<ShadowZone>getShadowZones()doublegetSourceDepth()java.util.List<SimpleContigSeismicPhase>getSubPhaseList()double[]getTau()doublegetTau(int rayNum)TauModelgetTauModel()double[]getTime()doublegetTime(int rayNum)booleanhasArrivals()SeismicPhaseinterpolatePhase(double maxDeltaDeg)SimpleSeismicPhaseinterpolateSimplePhase(double maxDeltaDeg)java.util.List<TimeDist>interpPierceTimeDist(Arrival arrival)booleanisAllPWave()True is all segments of this path are only P waves.booleanisAllSWave()True is all segments of this path are only S waves.booleanisFail()booleanphasesExistsInModel()ArrivalshootRay(double rayParam)booleansourceSegmentIsPWave()True if the initial leg, leaving the source, wavetype is a P wave, false if an S wave.doublevelocityAtReceiver()doublevelocityAtSource()-
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:
interpolateSimplePhasein 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:
calcTimeExactDistancein classSimpleSeismicPhase- Parameters:
searchDist-
-
calcSegmentPaths
public java.util.List<ArrivalPathSegment> calcSegmentPaths(Arrival arrival, TimeDist prevEnd, int prevIdx) throws NoArrivalException, SlownessModelException, TauModelException
Description copied from class:SimpleSeismicPhaseCalc 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:
calcSegmentPathsin classSimpleSeismicPhase- Returns:
- Throws:
NoArrivalExceptionSlownessModelExceptionTauModelException
-
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()
-
-