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
A seismic phase that scatters. Includes a specific inbound Arrival, then an outbound seismic phase.- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from interface edu.sc.seis.TauP.SeismicPhase
PWAVE, SWAVE
-
-
Constructor Summary
Constructors Constructor Description ScatteredSeismicPhase(Arrival inboundArrival, SimpleSeismicPhase scatteredPhase, Scatterer scatterer, boolean backscatter)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description doublecalcEnergyFluxFactorReflTranPSV(Arrival arrival)Calculation of a amplitude for a scattered phase doesn't make any sense given 1D ray, so always returns zero.doublecalcEnergyFluxFactorReflTranSH(Arrival arrival)Calculation of a amplitude for a scattered phase doesn't make any sense given 1D ray, so always returns zero.doublecalcIncidentAngle(double arrivalRayParam)doublecalcIncidentAngleDegree(double arrivalRayParam)doublecalcRayParamForIncidentAngle(double incidentDegree)doublecalcRayParamForTakeoffAngle(double takeoffDegree)static doublecalcScatterDistDeg(double deg, double scattererDeg, boolean backscatter)Calculates the distance from the scatterer to the receiver.java.util.List<ArrivalPathSegment>calcSegmentPaths(Arrival arrival)doublecalcTakeoffAngle(double arrivalRayParam)doublecalcTakeoffAngleDegree(double arrivalRayParam)doublecalcTstar(Arrival currArrival)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 i)ArrivalgetEarliestArrival(double degrees)SeismicPhaseSegmentgetFinalPhaseSegment()ArrivalgetInboundArrival()Gets the arrival inbound to the scatterer from the source.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 i)doublegetReceiverDepth()intgetScatterDistMulFactor()SimpleSeismicPhasegetScatteredPhase()Gets the simple phase from the scatterer to the receiver, equivalent to setting a source at the scatterer location.ScatterergetScatterer()doublegetScattererDepth()doublegetScattererDistance()doublegetScattererDistanceDeg()java.util.List<ShadowZone>getShadowZones()doublegetSourceDepth()double[]getTau()doublegetTau(int i)TauModelgetTauModel()double[]getTime()doublegetTime(int i)booleanhasArrivals()SeismicPhaseinterpolatePhase(double maxDeltaDeg)java.util.List<TimeDist>interpPierceTimeDist(Arrival arrival)booleanisAllPWave()True is all segments of this path are only S waves.booleanisAllSWave()True is all segments of this path are only S waves.booleanisBackscatter()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 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, Scatterer scatterer, 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:
phasesExistsInModelin interfaceSeismicPhase
-
getEarliestArrival
public Arrival getEarliestArrival(double degrees)
- Specified by:
getEarliestArrivalin interfaceSeismicPhase
-
getTauModel
public TauModel getTauModel()
- Specified by:
getTauModelin interfaceSeismicPhase
-
getMinDistanceDeg
public double getMinDistanceDeg()
- Specified by:
getMinDistanceDegin interfaceSeismicPhase
-
getMinDistance
public double getMinDistance()
- Specified by:
getMinDistancein interfaceSeismicPhase
-
getMaxDistanceDeg
public double getMaxDistanceDeg()
- Specified by:
getMaxDistanceDegin interfaceSeismicPhase
-
getMaxDistance
public double getMaxDistance()
- Specified by:
getMaxDistancein interfaceSeismicPhase
-
getScatterDistMulFactor
public int getScatterDistMulFactor()
-
getMaxRayParam
public double getMaxRayParam()
- Specified by:
getMaxRayParamin interfaceSeismicPhase
-
getMinRayParam
public double getMinRayParam()
- Specified by:
getMinRayParamin interfaceSeismicPhase
-
getMaxRayParamIndex
public int getMaxRayParamIndex()
- Specified by:
getMaxRayParamIndexin interfaceSeismicPhase
-
getMinRayParamIndex
public int getMinRayParamIndex()
- Specified by:
getMinRayParamIndexin interfaceSeismicPhase
-
getMinTime
public double getMinTime()
- Specified by:
getMinTimein interfaceSeismicPhase
-
getMaxTime
public double getMaxTime()
- Specified by:
getMaxTimein interfaceSeismicPhase
-
getSourceDepth
public double getSourceDepth()
- Specified by:
getSourceDepthin interfaceSeismicPhase
-
getReceiverDepth
public double getReceiverDepth()
- Specified by:
getReceiverDepthin interfaceSeismicPhase
-
getName
public java.lang.String getName()
- Specified by:
getNamein interfaceSeismicPhase
-
getPuristName
public java.lang.String getPuristName()
- Specified by:
getPuristNamein interfaceSeismicPhase
-
getListPhaseSegments
public java.util.List<java.util.List<SeismicPhaseSegment>> getListPhaseSegments()
- Specified by:
getListPhaseSegmentsin interfaceSeismicPhase
-
getInitialPhaseSegment
public SeismicPhaseSegment getInitialPhaseSegment()
- Specified by:
getInitialPhaseSegmentin interfaceSeismicPhase
-
getFinalPhaseSegment
public SeismicPhaseSegment getFinalPhaseSegment()
- Specified by:
getFinalPhaseSegmentin interfaceSeismicPhase
-
countFlatLegs
public int countFlatLegs()
- Specified by:
countFlatLegsin interfaceSeismicPhase
-
getRayParams
public double getRayParams(int i)
- Specified by:
getRayParamsin interfaceSeismicPhase
-
getRayParams
public double[] getRayParams()
- Specified by:
getRayParamsin interfaceSeismicPhase
-
getNumRays
public int getNumRays()
- Specified by:
getNumRaysin interfaceSeismicPhase
-
getDist
public double getDist(int i)
- Specified by:
getDistin interfaceSeismicPhase
-
getDist
public double[] getDist()
- Specified by:
getDistin interfaceSeismicPhase
-
getTime
public double getTime(int i)
- Specified by:
getTimein interfaceSeismicPhase
-
getTime
public double[] getTime()
- Specified by:
getTimein interfaceSeismicPhase
-
getTau
public double getTau(int i)
- Specified by:
getTauin interfaceSeismicPhase
-
getTau
public double[] getTau()
- Specified by:
getTauin interfaceSeismicPhase
-
hasArrivals
public boolean hasArrivals()
- Specified by:
hasArrivalsin 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:
createArrivalAtIndexin interfaceSeismicPhase- Parameters:
rayNum- ray parameter index- Returns:
- arraival at ray num
-
calcScatterDistDeg
public static double calcScatterDistDeg(double deg, double scattererDeg, boolean backscatter)Calculates the distance from the scatterer to the receiver.- Parameters:
deg- source to receiver distancescattererDeg- scatterer distance, may be negativebackscatter- if the phase is backscattered- Returns:
- scatterer to receiver distance in range -180 to 180
-
shootRay
public Arrival shootRay(double rayParam)
- Specified by:
shootRayin interfaceSeismicPhase
-
calcRayParamForTakeoffAngle
public double calcRayParamForTakeoffAngle(double takeoffDegree) throws NoArrivalException- Specified by:
calcRayParamForTakeoffAnglein interfaceSeismicPhase- Throws:
NoArrivalException
-
calcRayParamForIncidentAngle
public double calcRayParamForIncidentAngle(double incidentDegree) throws NoArrivalException- Specified by:
calcRayParamForIncidentAnglein interfaceSeismicPhase- Throws:
NoArrivalException
-
velocityAtSource
public double velocityAtSource()
- Specified by:
velocityAtSourcein interfaceSeismicPhase
-
velocityAtReceiver
public double velocityAtReceiver()
- Specified by:
velocityAtReceiverin interfaceSeismicPhase
-
densityAtReceiver
public double densityAtReceiver()
- Specified by:
densityAtReceiverin interfaceSeismicPhase
-
densityAtSource
public double densityAtSource()
- Specified by:
densityAtSourcein interfaceSeismicPhase
-
calcTakeoffAngleDegree
public double calcTakeoffAngleDegree(double arrivalRayParam)
- Specified by:
calcTakeoffAngleDegreein interfaceSeismicPhase
-
calcTakeoffAngle
public double calcTakeoffAngle(double arrivalRayParam)
- Specified by:
calcTakeoffAnglein interfaceSeismicPhase
-
calcIncidentAngle
public double calcIncidentAngle(double arrivalRayParam)
- Specified by:
calcIncidentAnglein interfaceSeismicPhase
-
calcIncidentAngleDegree
public double calcIncidentAngleDegree(double arrivalRayParam)
- Specified by:
calcIncidentAngleDegreein interfaceSeismicPhase
-
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.- Specified by:
sourceSegmentIsPWavein interfaceSeismicPhase
-
finalSegmentIsPWave
public boolean finalSegmentIsPWave()
Description copied from interface:SeismicPhaseTrue if the final, incident, wavetype is a P wave, false if an S wave.- Specified by:
finalSegmentIsPWavein interfaceSeismicPhase
-
describe
public java.lang.String describe()
- Specified by:
describein interfaceSeismicPhase
-
describeShort
public java.lang.String describeShort()
- Specified by:
describeShortin interfaceSeismicPhase
-
isFail
public boolean isFail()
- Specified by:
isFailin interfaceSeismicPhase
-
failReason
public java.lang.String failReason()
- Specified by:
failReasonin interfaceSeismicPhase
-
dump
public void dump()
- Specified by:
dumpin interfaceSeismicPhase
-
interpPierceTimeDist
public java.util.List<TimeDist> interpPierceTimeDist(Arrival arrival) throws NoArrivalException, TauModelException
- Specified by:
interpPierceTimeDistin interfaceSeismicPhase- Throws:
NoArrivalExceptionTauModelException
-
calcTstar
public double calcTstar(Arrival currArrival) throws NoArrivalException
- Specified by:
calcTstarin interfaceSeismicPhase- Throws:
NoArrivalException
-
isAllPWave
public boolean isAllPWave()
True is all segments of this path are only S waves.- Specified by:
isAllPWavein interfaceSeismicPhase
-
isAllSWave
public boolean isAllSWave()
True is all segments of this path are only S waves.- Specified by:
isAllSWavein interfaceSeismicPhase
-
interpolatePhase
public SeismicPhase interpolatePhase(double maxDeltaDeg)
- Specified by:
interpolatePhasein interfaceSeismicPhase
-
calcEnergyFluxFactorReflTranPSV
public double calcEnergyFluxFactorReflTranPSV(Arrival arrival)
Calculation of a amplitude for a scattered phase doesn't make any sense given 1D ray, so always returns zero.- Specified by:
calcEnergyFluxFactorReflTranPSVin interfaceSeismicPhase
-
calcEnergyFluxFactorReflTranSH
public double calcEnergyFluxFactorReflTranSH(Arrival arrival)
Calculation of a amplitude for a scattered phase doesn't make any sense given 1D ray, so always returns zero.- Specified by:
calcEnergyFluxFactorReflTranSHin interfaceSeismicPhase
-
calcSegmentPaths
public java.util.List<ArrivalPathSegment> calcSegmentPaths(Arrival arrival) throws NoArrivalException, SlownessModelException, TauModelException
- Specified by:
calcSegmentPathsin interfaceSeismicPhase- Throws:
NoArrivalExceptionSlownessModelExceptionTauModelException
-
getShadowZones
public java.util.List<ShadowZone> getShadowZones()
- Specified by:
getShadowZonesin interfaceSeismicPhase
-
getScatterer
public Scatterer getScatterer()
-
-