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)
Calculation of a amplitude for a scattered phase doesn't make any sense given 1D ray, so always returns zero.double
calcReflTranSH(Arrival arrival)
Calculation of a amplitude for a scattered phase doesn't make any sense given 1D ray, so always returns zero.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)
int
countFlatLegs()
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)
Arrival
getEarliestArrival(double degrees)
SeismicPhaseSegment
getFinalPhaseSegment()
Arrival
getInboundArrival()
Gets the arrival inbound to the scatterer from the source.SeismicPhaseSegment
getInitialPhaseSegment()
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
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:
- inbound arrival
-
getScatteredPhase
public SimpleSeismicPhase getScatteredPhase()
Gets the simple phase from the scatterer to the receiver, equivalent to setting a source at the scatterer location.- Returns:
- scattered phase
-
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
-
getPhaseSegments
public java.util.List<SeismicPhaseSegment> getPhaseSegments()
- Specified by:
getPhaseSegments
in interfaceSeismicPhase
-
getInitialPhaseSegment
public SeismicPhaseSegment getInitialPhaseSegment()
- Specified by:
getInitialPhaseSegment
in interfaceSeismicPhase
-
getFinalPhaseSegment
public SeismicPhaseSegment getFinalPhaseSegment()
- Specified by:
getFinalPhaseSegment
in interfaceSeismicPhase
-
countFlatLegs
public int countFlatLegs()
- Specified by:
countFlatLegs
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
-
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
- ray parameter index- Returns:
- arraival at ray num
-
calcTime
public java.util.List<Arrival> calcTime(double deg)
- Specified by:
calcTime
in interfaceSeismicPhase
-
calcScatterDistDeg
public static double calcScatterDistDeg(double deg, double scattererDeg, boolean backscatter)
-
shootRay
public Arrival shootRay(double rayParam)
- Specified by:
shootRay
in interfaceSeismicPhase
-
calcRayParamForTakeoffAngle
public double calcRayParamForTakeoffAngle(double takeoffDegree) throws NoArrivalException
- Specified by:
calcRayParamForTakeoffAngle
in interfaceSeismicPhase
- Throws:
NoArrivalException
-
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
-
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
-
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
-
isAllSWave
public boolean isAllSWave()
True is all segments of this path are only S waves.- Specified by:
isAllSWave
in interfaceSeismicPhase
-
calcReflTranPSV
public double calcReflTranPSV(Arrival arrival)
Calculation of a amplitude for a scattered phase doesn't make any sense given 1D ray, so always returns zero.- Specified by:
calcReflTranPSV
in interfaceSeismicPhase
-
calcReflTranSH
public double calcReflTranSH(Arrival arrival)
Calculation of a amplitude for a scattered phase doesn't make any sense given 1D ray, so always returns zero.- Specified by:
calcReflTranSH
in interfaceSeismicPhase
-
calcSegmentPaths
public java.util.List<ArrivalPathSegment> calcSegmentPaths(Arrival arrival)
- Specified by:
calcSegmentPaths
in interfaceSeismicPhase
-
-