Package edu.sc.seis.TauP
Class ScatteredSeismicPhase
java.lang.Object
edu.sc.seis.TauP.ScatteredSeismicPhase
- All Implemented Interfaces:
SeismicPhase,Serializable,Cloneable
A seismic phase that scatters. Includes a specific inbound Arrival, then an outbound seismic phase.
- See Also:
-
Field Summary
Fields inherited from interface edu.sc.seis.TauP.SeismicPhase
PWAVE, SWAVE -
Constructor Summary
ConstructorsConstructorDescriptionScatteredSeismicPhase(Arrival inboundArrival, SimpleSeismicPhase scatteredPhase, Scatterer scatterer, boolean backscatter) -
Method Summary
Modifier and TypeMethodDescriptiondoublecalcEnergyFluxFactorReflTranPSV(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) calcReflTranPSV(Arrival arrival) Calculation of a amplitude for a scattered phase doesn't make any sense given 1D ray, so always returns zero.calcReflTranSH(Arrival arrival) Calculation of a amplitude for a scattered phase doesn't make any sense given 1D ray, so always returns zero.static doublecalcScatterDistDeg(double deg, double scattererDeg, boolean backscatter) Calculates the distance from the scatterer to the receiver.calcSegmentPaths(Arrival arrival) doublecalcTakeoffAngle(double arrivalRayParam) doublecalcTakeoffAngleDegree(double arrivalRayParam) doubleintcreateArrivalAtIndex(int rayNum) Creates an Arrival for a sampled ray parameter from the model.doubledoubledescribe()voiddump()booleanTrue if the final, incident, wavetype is a P wave, false if an S wave.double[]getDist()doublegetDist(int i) getEarliestArrival(double degrees) Gets the arrival inbound to the scatterer from the source.doubledoubledoubleintdoubledoubledoubledoubleintdoublegetName()intdouble[]doublegetRayParams(int i) doubleintGets the simple phase from the scatterer to the receiver, equivalent to setting a source at the scatterer location.doubledoubledoubledoubledouble[]getTau()doublegetTau(int i) double[]getTime()doublegetTime(int i) booleaninterpolatePhase(double maxDeltaDeg) interpPierceTimeDist(Arrival arrival) booleanTrue is all segments of this path are only S waves.booleanTrue is all segments of this path are only S waves.booleanbooleanisFail()booleanshootRay(double rayParam) booleanTrue if the initial leg, leaving the source, wavetype is a P wave, false if an S wave.doubledoubleMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface edu.sc.seis.TauP.SeismicPhase
toString
-
Constructor Details
-
ScatteredSeismicPhase
public ScatteredSeismicPhase(Arrival inboundArrival, SimpleSeismicPhase scatteredPhase, Scatterer scatterer, boolean backscatter)
-
-
Method Details
-
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
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
- Specified by:
getEarliestArrivalin interfaceSeismicPhase
-
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
- Specified by:
getNamein interfaceSeismicPhase
-
getPuristName
- Specified by:
getPuristNamein interfaceSeismicPhase
-
getListPhaseSegments
- Specified by:
getListPhaseSegmentsin interfaceSeismicPhase
-
getInitialPhaseSegment
- Specified by:
getInitialPhaseSegmentin interfaceSeismicPhase
-
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
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
- Specified by:
shootRayin interfaceSeismicPhase
-
calcRayParamForTakeoffAngle
- Specified by:
calcRayParamForTakeoffAnglein interfaceSeismicPhase- Throws:
NoArrivalException
-
calcRayParamForIncidentAngle
- 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
- Specified by:
describein interfaceSeismicPhase
-
describeShort
- Specified by:
describeShortin interfaceSeismicPhase
-
isFail
public boolean isFail()- Specified by:
isFailin interfaceSeismicPhase
-
failReason
- Specified by:
failReasonin interfaceSeismicPhase
-
dump
public void dump()- Specified by:
dumpin interfaceSeismicPhase
-
interpPierceTimeDist
public List<TimeDist> interpPierceTimeDist(Arrival arrival) throws NoArrivalException, TauModelException - Specified by:
interpPierceTimeDistin interfaceSeismicPhase- Throws:
NoArrivalExceptionTauModelException
-
calcTstar
- 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
- Specified by:
interpolatePhasein interfaceSeismicPhase
-
calcEnergyFluxFactorReflTranPSV
Calculation of a amplitude for a scattered phase doesn't make any sense given 1D ray, so always returns zero.- Specified by:
calcEnergyFluxFactorReflTranPSVin interfaceSeismicPhase
-
calcReflTranPSV
Calculation of a amplitude for a scattered phase doesn't make any sense given 1D ray, so always returns zero.- Specified by:
calcReflTranPSVin interfaceSeismicPhase- Throws:
VelocityModelException
-
calcReflTranSH
Calculation of a amplitude for a scattered phase doesn't make any sense given 1D ray, so always returns zero.- Specified by:
calcReflTranSHin interfaceSeismicPhase- Throws:
VelocityModelException
-
calcEnergyFluxFactorReflTranSH
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 List<ArrivalPathSegment> calcSegmentPaths(Arrival arrival) throws SlownessModelException, TauModelException - Specified by:
calcSegmentPathsin interfaceSeismicPhase- Throws:
SlownessModelExceptionTauModelException
-
getShadowZones
- Specified by:
getShadowZonesin interfaceSeismicPhase
-
getScatterer
-