Package edu.sc.seis.TauP
Class Arrival
java.lang.Object
edu.sc.seis.TauP.Arrival
- Direct Known Subclasses:
ScatteredArrival
convenience class for storing the parameters associated with a phase arrival.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final doublestatic final doubleprotected static final double -
Constructor Summary
ConstructorsConstructorDescriptionArrival(SeismicPhase phase, SimpleContigSeismicPhase simpleContigSeismicPhase, double time, double dist, double rayParam, int rayParamIndex, RayCalculateable searchDist, double dRPdDist) Arrival(SeismicPhase phase, SimpleContigSeismicPhase simpleContigSeismicPhase, double time, double dist, double rayParam, int rayParamIndex, RayCalculateable searchDist, String name, String puristName, double sourceDepth, double receiverDepth, double takeoffAngleRadian, double incidentAngleRadian, double dRPdDist) Arrival(SeismicPhase phase, SimpleContigSeismicPhase simpleContigSeismicPhase, List<TimeDist> pierce, int rayParamIndex, double dRPdDist) -
Method Summary
Modifier and TypeMethodDescriptionasCSVRow()asCSVRow(boolean withAmp, boolean withRelPhase, boolean withDerivative) asStringList(boolean tableStyle, String phaseFormat, String phasePuristFormat, boolean withAmp, boolean withRelPhase, boolean withDerivative) Creates a List of Strings, each corresponding to the headers via headerNames() for this arrival.doubleCalculate attenuation over path at the default frequency.doublecalcAttenuation(double maxfreq, int N) Calculate attenuation over path at the given frequency.doubledoubleCalculates the path length.Calculate radiation pattern terms, Fp, Fsv, Fsh for the given fault orientation and az,takeoff.doubledoubleCalculate t* over path at the given frequency.static Stringstatic StringCSVHeader(boolean withAmp, boolean withRelPhase, boolean withDerivative) doublefindNearDistance(double deltaRadian) Finds a distance near the arrival distance at which the phase still exists.doubleCalculates the amplitude factor, 1/sqrt(density*vel) times reflection/tranmission coefficient times geometric spreading, for the arrival.doublegetAmplitudeFactorPSV(double momentRate, double attenuationFrequency, int numFreq) doubleCalculates the amplitude factor, 1/sqrt(density*vel) times reflection/tranmission coefficient times geometric spreading, for the arrival.doublegetAmplitudeFactorSH(double momentRate, double attenuationFrequency, int numFreq) doubleGeometrical spreading factor for amplitude, sqrt of energy spreading.returns deepest point on path, in kilometersdoublegetDist()The actual travel distance in radians.doublereturns actual travel distance in degrees.doubledoublestatic ArrivalgetEarliestArrival(List<Arrival> arrivals) doubleCalculates the product of the reflection and transmission coefficients for all discontinuities along the path of this arrival in the P-SV plane.doubleCalculates the product of the reflection and transmission coefficients for all discontinuities along the path of this arrival for transverse, SH, waves.doubleEnergy Geometrical spreading factor.getFirstPiercePoint(double depth) finds the first pierce point at the given depth.returns furthest distance point module pi/180 on path, in radiansdoubledoubleintCount internal caustics, places where neighboring rays cross and reverse sense of relative orientation, like a bowtie.getLastPiercePoint(double depth) finds the last pierce point at the given depth.static ArrivalgetLatestArrival(List<Arrival> arrivals) doublereturns distance in radians and in the range 0-PI.doublereturns distance in degrees and in the range 0-180.doublereturns search distance in degrees and in the range 0-180.getName()returns phase nameintintTimeDist[]getPath()returns path points as TimeDist objects.getPhase()TimeDist[]returns pierce points as TimeDist objects.getPiercePoint(int i) returns purist's version of name.doubledoubledoublereturns ray parameter in seconds per radiandoublereturns ray parameter in seconds per degintdoublereturns receiver (station) depth in kilometersCalculates the product of the reflection and transmission coefficients for all discontinuities along the path of this arrival in the P-SV plane.Calculates the product of the reflection and transmission coefficients for all discontinuities along the path of this arrival for transverse, SH, waves.doublereturns search distance in degrees.returns shallowest point on path, in kilometersReturns the contiguous part of the phase that generated this arrival.doublereturns source depth in kilometersCreate TimeDist point for source, first point in pierce or path.doubledoubledoublegetTime()intCount number of turns in phase.headerNames(boolean tableStyle) headerNames(boolean tableStyle, boolean withAmp, boolean withRelPhase, boolean withDerivative) booleanbooleanbooleanbooleannearbyArrival(double deltaDistRadian) Negates the arrival distance.doubledoubledoublevoidsetRelativeToArrival(Arrival relativeToArrival) voidsetSearchValue(RayCalculateable searchVal) static voidsortArrivals(List<Arrival> arrivals) Sorts arrivals by time in place.static voidsortArrivalsBySourceReceiverDepth(List<Arrival> arrivals) Sorts arrivals by source and receiver depth in place.doubletoString()static Stringdoubledouble
-
Field Details
-
MANY_LAPS_PLUS_180
public static final double MANY_LAPS_PLUS_180- See Also:
-
KMtoM
protected static final double KMtoM- See Also:
-
MgtoKg
protected static final double MgtoKg- See Also:
-
-
Constructor Details
-
Arrival
public Arrival(SeismicPhase phase, SimpleContigSeismicPhase simpleContigSeismicPhase, List<TimeDist> pierce, int rayParamIndex, double dRPdDist) -
Arrival
public Arrival(SeismicPhase phase, SimpleContigSeismicPhase simpleContigSeismicPhase, double time, double dist, double rayParam, int rayParamIndex, RayCalculateable searchDist, double dRPdDist) -
Arrival
public Arrival(SeismicPhase phase, SimpleContigSeismicPhase simpleContigSeismicPhase, double time, double dist, double rayParam, int rayParamIndex, RayCalculateable searchDist, String name, String puristName, double sourceDepth, double receiverDepth, double takeoffAngleRadian, double incidentAngleRadian, double dRPdDist)
-
-
Method Details
-
findNearDistance
public double findNearDistance(double deltaRadian) Finds a distance near the arrival distance at which the phase still exists.- Parameters:
deltaRadian- max delta distance in radians- Returns:
- a distance in radians
-
nearbyArrival
-
nearbyArrival
-
getTurnCount
public int getTurnCount()Count number of turns in phase. Depending on the ray parameter, some of the turns could be critically reflected instead of true turning rays.- Returns:
- number of internal caustics
-
getInternalCausticCount
public int getInternalCausticCount()Count internal caustics, places where neighboring rays cross and reverse sense of relative orientation, like a bowtie.- Returns:
- number of internal caustics
-
sortArrivals
Sorts arrivals by time in place.- Parameters:
arrivals- sorted
-
sortArrivalsBySourceReceiverDepth
Sorts arrivals by source and receiver depth in place. Used when calc rel phases for efficiency.- Parameters:
arrivals- sorted
-
onlyFirst
-
getCommentLine
-
getPhase
- Returns:
- the phase used to calculate this arrival.
-
getSimpleContigSeismicPhase
Returns the contiguous part of the phase that generated this arrival. Usually the same as getPhase(), except in the case of CompositeSeismicPhase where several contiguous phases are separated by shadow zones.- Returns:
-
isFromCompositePhase
public boolean isFromCompositePhase() -
listPhaseSegments
-
getTauModel
- Returns:
- TauModel used to generate the phase that this arrival came from
-
getTime
public double getTime()- Returns:
- travel time in seconds
-
getDuration
- Returns:
- travel time as a Duration
-
getDist
public double getDist()The actual travel distance in radians. May not match the search distance if long way around or laps. -
getDistDeg
public double getDistDeg()returns actual travel distance in degrees. May not match the search distance if long way around or laps. -
getModuloDist
public double getModuloDist()returns distance in radians and in the range 0-PI. Note this may not be the actual distance traveled. -
getModuloDistDeg
public double getModuloDistDeg()returns distance in degrees and in the range 0-180. Note this may not be the actual distance traveled. -
setSearchValue
-
getSearchDistDeg
public double getSearchDistDeg()returns search distance in degrees. -
getModuloSearchDistDeg
public double getModuloSearchDistDeg()returns search distance in degrees and in the range 0-180. Note this may not be the actual distance traveled. -
isLongWayAround
public boolean isLongWayAround() -
getRayParam
public double getRayParam()returns ray parameter in seconds per radian -
getRayParamDeg
public double getRayParamDeg()returns ray parameter in seconds per deg -
getDRayParamDDelta
public double getDRayParamDDelta() -
getDRayParamDDeltaDeg
public double getDRayParamDDeltaDeg() -
calcAmplitude
-
getAmplitudeGeometricSpreadingFactor
public double getAmplitudeGeometricSpreadingFactor()Geometrical spreading factor for amplitude, sqrt of energy spreading. See Fundamentals of Modern Global Seismology, ch 13, eq 13.19. -
getEnergyGeometricSpreadingFactor
public double getEnergyGeometricSpreadingFactor()Energy Geometrical spreading factor. See Fundamentals of Modern Global Seismology, ch 13, eq 13.10. Note that eq 13.10 has divide by zero in case of a horizontal ray arriving at the receiver. -
getEnergyFluxFactorReflTransPSV
Calculates the product of the reflection and transmission coefficients for all discontinuities along the path of this arrival in the P-SV plane. Note that this may not give accurate results for certain wave types, such as head or diffracted waves.- Returns:
- Throws:
VelocityModelExceptionSlownessModelExceptionTauModelException
-
getEnergyFluxFactorReflTransSH
Calculates the product of the reflection and transmission coefficients for all discontinuities along the path of this arrival for transverse, SH, waves. If any segment on the path is a P wave, the result will be zero. Note that this may not give accurate results for certain wave types, such as head or diffracted waves.- Returns:
- Throws:
VelocityModelExceptionSlownessModelExceptionTauModelException
-
getReflTransPSV
public SeismicPhaseReflTransHolder getReflTransPSV() throws TauModelException, SlownessModelExceptionCalculates the product of the reflection and transmission coefficients for all discontinuities along the path of this arrival in the P-SV plane. Note that this may not give accurate results for certain wave types, such as head or diffracted waves.- Returns:
- Throws:
VelocityModelExceptionSlownessModelExceptionTauModelException
-
getReflTransSH
public SeismicPhaseReflTransHolder getReflTransSH() throws TauModelException, SlownessModelExceptionCalculates the product of the reflection and transmission coefficients for all discontinuities along the path of this arrival for transverse, SH, waves. If any segment on the path is a P wave, the result will be zero. Note that this may not give accurate results for certain wave types, such as head or diffracted waves.- Returns:
- Throws:
VelocityModelExceptionSlownessModelExceptionTauModelException
-
getAmplitudeFactorPSV
Calculates the amplitude factor, 1/sqrt(density*vel) times reflection/tranmission coefficient times geometric spreading, for the arrival. Note this is only an approximation of amplitude as the source radiation magnitude and pattern is not included, and this may not give accurate results for certain wave types, such as head or diffracted waves.See FMGS eq 17.74
-
getAmplitudeFactorPSV
public double getAmplitudeFactorPSV(double momentRate, double attenuationFrequency, int numFreq) throws TauModelException, SlownessModelException -
getAmplitudeFactorSH
public double getAmplitudeFactorSH() throws TauModelException, VelocityModelException, SlownessModelExceptionCalculates the amplitude factor, 1/sqrt(density*vel) times reflection/tranmission coefficient times geometric spreading, for the arrival. Note this is only an approximation of amplitude as the source radiation magnitude and pattern is not included, and this may not give accurate results for certain wave types, such as head or diffracted waves.- Returns:
- Throws:
TauModelExceptionVelocityModelExceptionSlownessModelException
-
getAmplitudeFactorSH
public double getAmplitudeFactorSH(double momentRate, double attenuationFrequency, int numFreq) throws TauModelException, SlownessModelException -
getRadiationPatternPSV
public double getRadiationPatternPSV() -
getRadiationPatternSH
public double getRadiationPatternSH() -
getIncidentAngleDegree
public double getIncidentAngleDegree() -
getIncidentAngleRadian
public double getIncidentAngleRadian() -
getTakeoffAngleDegree
public double getTakeoffAngleDegree() -
getTakeoffAngleRadian
public double getTakeoffAngleRadian() -
velocityAtSource
public double velocityAtSource() -
sourceRadius
public double sourceRadius() -
radialSlownessAtSource
public double radialSlownessAtSource() -
velocityAtReceiver
public double velocityAtReceiver() -
receiverRadius
public double receiverRadius() -
radialSlownessAtReceiver
public double radialSlownessAtReceiver() -
getRayParamIndex
public int getRayParamIndex() -
getName
returns phase name -
getPuristName
returns purist's version of name. Depths are changed to reflect the true depth of the interface. -
getSourceDepth
public double getSourceDepth()returns source depth in kilometers -
getReceiverDepth
public double getReceiverDepth()returns receiver (station) depth in kilometers -
getShallowestPierce
returns shallowest point on path, in kilometers -
getDeepestPierce
returns deepest point on path, in kilometers -
getFurthestPierce
returns furthest distance point module pi/180 on path, in radians -
getPierce
returns pierce points as TimeDist objects. -
calcFreeFactor
- Throws:
VelocityModelException
-
calcAttenuation
public double calcAttenuation()Calculate attenuation over path at the default frequency. See eq B13.2.2 in FMGS, p374. -
calcAttenuation
public double calcAttenuation(double maxfreq, int N) Calculate attenuation over path at the given frequency. See eq B13.2.2 in FMGS, p374. Averages over N+1 frequencies from 0 to maxfreq. -
calcTStar
public double calcTStar()Calculate t* over path at the given frequency. See eq B13.2.2 in FMGS, p374. -
calcRadiationPattern
Calculate radiation pattern terms, Fp, Fsv, Fsh for the given fault orientation and az,takeoff.- Returns:
- Fp, Fsv, Fsh
-
calcRadiationTerm
public double calcRadiationTerm() -
calcPathLength
public double calcPathLength()Calculates the path length.- Returns:
- path length in kilometers
-
getPath
returns path points as TimeDist objects. -
getPathSegments
-
negateDistance
Negates the arrival distance. Primarily used when printing a scatter arrival that is at negative distance. No other fields are changed.- Returns:
- new Arrival with dist and search dist negated
-
isRelativeToArrival
public boolean isRelativeToArrival() -
getRelativeToArrival
-
setRelativeToArrival
-
toStringHeader
-
toString
-
getSourceTimeDist
Create TimeDist point for source, first point in pierce or path. -
getNumPiercePoints
public int getNumPiercePoints() -
getNumPathPoints
public int getNumPathPoints() -
getPiercePoint
-
getFirstPiercePoint
finds the first pierce point at the given depth.- Throws:
ArrayIndexOutOfBoundsException- if depth is not found
-
getLastPiercePoint
finds the last pierce point at the given depth.- Throws:
ArrayIndexOutOfBoundsException- if depth is not found
-
getEarliestArrival
-
getLatestArrival
-
headerNames
-
headerNames
-
CSVHeader
-
CSVHeader
-
asStringList
public List<String> asStringList(boolean tableStyle, String phaseFormat, String phasePuristFormat, boolean withAmp, boolean withRelPhase, boolean withDerivative) Creates a List of Strings, each corresponding to the headers via headerNames() for this arrival.- Returns:
- arrival for printing
-
asCSVRow
-
asCSVRow
-
getRayCalculateable
-
isLatLonable
public boolean isLatLonable() -
getLatLonable
-