Package edu.sc.seis.TauP
Class ScatteredSeismicPhase
- java.lang.Object
-
- edu.sc.seis.TauP.ScatteredSeismicPhase
-
- All Implemented Interfaces:
SeismicPhase
,java.io.Serializable
,java.lang.Cloneable
public class ScatteredSeismicPhase extends java.lang.Object implements SeismicPhase
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description ScatteredSeismicPhase(Arrival inboundArrival, SimpleSeismicPhase scatteredPhase, double scattererDepth, double scattererDistanceDeg, boolean backscatter)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description double
calcIncidentAngle(double arrivalRayParam)
java.util.List<TimeDist>
calcPierceTimeDist(Arrival arrival)
double
calcRayParamForTakeoffAngle(double takeoffDegree)
double
calcReflTranPSV(Arrival arrival)
double
calcReflTranSH(Arrival arrival)
static double
calcScatterDistDeg(double deg, double scattererDeg, boolean backscatter)
java.util.List<ArrivalPathSegment>
calcSegmentPaths(Arrival arrival)
double
calcTakeoffAngle(double arrivalRayParam)
java.util.List<Arrival>
calcTime(double deg)
java.util.List<Arrival>
calcTime(DistanceRay dv)
java.util.List<Arrival>
calcTimeExactDistanceDeg(double deg)
Arrival
createArrivalAtIndex(int rayNum)
Creates an Arrival for a sampled ray parameter from the model.double
densityAtReceiver()
java.lang.String
describe()
java.lang.String
describeJson()
void
dump()
boolean
finalSegmentIsPWave()
True if the final, incident, wavetype is a P wave, false if an S wave.double[]
getDist()
double
getDist(int i)
boolean[]
getDownGoing()
Arrival
getEarliestArrival(double degrees)
Arrival
getInboundArrival()
Gets the arrival inbound to the scatterer from the source.int[]
getLegAction()
java.util.List<java.lang.String>
getLegs()
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.util.List<SeismicPhaseSegment>
getPhaseSegments()
java.lang.String
getPuristName()
double[]
getRayParams()
double
getRayParams(int i)
double
getReceiverDepth()
int
getScatterDistMulFactor()
SimpleSeismicPhase
getScatteredPhase()
Gets the simple phase from the scatterer to the receiver, equivalent to setting a source at the scatterer location.double
getScattererDepth()
double
getScattererDistance()
double
getScattererDistanceDeg()
double
getSourceDepth()
double[]
getTau()
double
getTau(int i)
TauModel
getTauModel()
double[]
getTime()
double
getTime(int i)
boolean[]
getWaveType()
boolean
hasArrivals()
boolean
isAllPWave()
True is all segments of this path are only S waves.boolean
isAllSWave()
True is all segments of this path are only S waves.boolean
isBackscatter()
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 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
-
ScatteredSeismicPhase
public ScatteredSeismicPhase(Arrival inboundArrival, SimpleSeismicPhase scatteredPhase, double scattererDepth, double scattererDistanceDeg, boolean backscatter)
-
-
Method Detail
-
getInboundArrival
public Arrival getInboundArrival()
Gets the arrival inbound to the scatterer from the source. This part of the phase path is the same for all arrivals for the scattered phase.- Returns:
-
getScatteredPhase
public SimpleSeismicPhase getScatteredPhase()
Gets the simple phase from the scatterer to the receiver, equivalent to setting a source at the scatterer location.- Returns:
-
getScattererDepth
public double getScattererDepth()
-
getScattererDistance
public double getScattererDistance()
-
getScattererDistanceDeg
public double getScattererDistanceDeg()
-
isBackscatter
public boolean isBackscatter()
-
phasesExistsInModel
public boolean phasesExistsInModel()
- Specified by:
phasesExistsInModel
in interfaceSeismicPhase
-
getEarliestArrival
public Arrival getEarliestArrival(double degrees)
- Specified by:
getEarliestArrival
in interfaceSeismicPhase
-
getTauModel
public TauModel 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
-
getScatterDistMulFactor
public int getScatterDistMulFactor()
-
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
-
getMinTime
public double getMinTime()
- Specified by:
getMinTime
in interfaceSeismicPhase
-
getMaxTime
public double getMaxTime()
- Specified by:
getMaxTime
in interfaceSeismicPhase
-
getSourceDepth
public double getSourceDepth()
- Specified by:
getSourceDepth
in interfaceSeismicPhase
-
getReceiverDepth
public double getReceiverDepth()
- Specified by:
getReceiverDepth
in interfaceSeismicPhase
-
getName
public java.lang.String getName()
- Specified by:
getName
in interfaceSeismicPhase
-
getPuristName
public java.lang.String getPuristName()
- Specified by:
getPuristName
in interfaceSeismicPhase
-
getLegs
public java.util.List<java.lang.String> getLegs()
- Specified by:
getLegs
in interfaceSeismicPhase
-
getPhaseSegments
public java.util.List<SeismicPhaseSegment> 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
-
getNumRays
public int getNumRays()
- Specified by:
getNumRays
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()
- Specified by:
getDownGoing
in interfaceSeismicPhase
-
getWaveType
public boolean[] getWaveType()
- Specified by:
getWaveType
in interfaceSeismicPhase
-
getLegAction
public int[] getLegAction()
- Specified by:
getLegAction
in interfaceSeismicPhase
-
hasArrivals
public boolean hasArrivals()
- Specified by:
hasArrivals
in interfaceSeismicPhase
-
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.- Specified by:
createArrivalAtIndex
in interfaceSeismicPhase
- Parameters:
rayNum
-- Returns:
-
calcTimeExactDistanceDeg
public java.util.List<Arrival> calcTimeExactDistanceDeg(double deg)
- Specified by:
calcTimeExactDistanceDeg
in interfaceSeismicPhase
-
calcTime
public java.util.List<Arrival> calcTime(double deg)
- Specified by:
calcTime
in interfaceSeismicPhase
-
calcTime
public java.util.List<Arrival> calcTime(DistanceRay dv)
- Specified by:
calcTime
in interfaceSeismicPhase
-
calcScatterDistDeg
public static double calcScatterDistDeg(double deg, double scattererDeg, boolean backscatter)
-
shootRay
public Arrival shootRay(double rayParam) throws SlownessModelException, NoSuchLayerException
- Specified by:
shootRay
in interfaceSeismicPhase
- Throws:
SlownessModelException
NoSuchLayerException
-
calcRayParamForTakeoffAngle
public double calcRayParamForTakeoffAngle(double takeoffDegree)
- Specified by:
calcRayParamForTakeoffAngle
in interfaceSeismicPhase
-
velocityAtSource
public double velocityAtSource()
- Specified by:
velocityAtSource
in interfaceSeismicPhase
-
velocityAtReceiver
public double velocityAtReceiver()
- Specified by:
velocityAtReceiver
in interfaceSeismicPhase
-
densityAtReceiver
public double densityAtReceiver()
- Specified by:
densityAtReceiver
in interfaceSeismicPhase
-
calcTakeoffAngle
public double calcTakeoffAngle(double arrivalRayParam)
- Specified by:
calcTakeoffAngle
in interfaceSeismicPhase
-
calcIncidentAngle
public double calcIncidentAngle(double arrivalRayParam)
- Specified by:
calcIncidentAngle
in interfaceSeismicPhase
-
sourceSegmentIsPWave
public boolean sourceSegmentIsPWave()
Description copied from interface:SeismicPhase
True if the initial leg, leaving the source, wavetype is a P wave, false if an S wave.- Specified by:
sourceSegmentIsPWave
in interfaceSeismicPhase
- Returns:
-
finalSegmentIsPWave
public boolean finalSegmentIsPWave()
Description copied from interface:SeismicPhase
True if the final, incident, wavetype is a P wave, false if an S wave.- Specified by:
finalSegmentIsPWave
in interfaceSeismicPhase
- Returns:
-
describe
public java.lang.String describe()
- Specified by:
describe
in interfaceSeismicPhase
-
describeJson
public java.lang.String describeJson()
- Specified by:
describeJson
in interfaceSeismicPhase
-
dump
public void dump()
- Specified by:
dump
in interfaceSeismicPhase
-
calcPierceTimeDist
public java.util.List<TimeDist> calcPierceTimeDist(Arrival arrival)
- Specified by:
calcPierceTimeDist
in interfaceSeismicPhase
-
isAllPWave
public boolean isAllPWave()
True is all segments of this path are only S waves.- Specified by:
isAllPWave
in interfaceSeismicPhase
- Returns:
-
isAllSWave
public boolean isAllSWave()
True is all segments of this path are only S waves.- Specified by:
isAllSWave
in interfaceSeismicPhase
- Returns:
-
calcReflTranPSV
public double calcReflTranPSV(Arrival arrival)
- Specified by:
calcReflTranPSV
in interfaceSeismicPhase
-
calcReflTranSH
public double calcReflTranSH(Arrival arrival)
- Specified by:
calcReflTranSH
in interfaceSeismicPhase
-
calcSegmentPaths
public java.util.List<ArrivalPathSegment> calcSegmentPaths(Arrival arrival)
- Specified by:
calcSegmentPaths
in interfaceSeismicPhase
-
-