Package edu.sc.seis.TauP
Class Arrival
- java.lang.Object
-
- edu.sc.seis.TauP.Arrival
-
- Direct Known Subclasses:
ScatteredArrival
public class Arrival extends java.lang.Object
convenience class for storing the parameters associated with a phase arrival.
-
-
Field Summary
Fields Modifier and Type Field Description protected static double
DtoR
static double
MANY_LAPS_PLUS_180
protected static double
RtoD
-
Constructor Summary
Constructors Constructor Description Arrival(SeismicPhase phase, double time, double dist, double rayParam, int rayParamIndex, double dRPdDist)
Arrival(SeismicPhase phase, double time, double dist, double rayParam, int rayParamIndex, RayCalculateable searchDist, java.lang.String name, java.lang.String puristName, double sourceDepth, double receiverDepth, double takeoffAngle, double incidentAngle, double dRPdDist)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description org.json.JSONObject
asJSONObject()
double
getAmplitudeFactorPSV()
Calculates the amplitude factor, 1/sqrt(density*vel) times reflection/tranmission coefficient times geometric spreading, for the arrival.double
getAmplitudeFactorSH()
Calculates the amplitude factor, 1/sqrt(density*vel) times reflection/tranmission coefficient times geometric spreading, for the arrival.java.lang.String
getCommentLine()
TimeDist
getDeepestPierce()
returns deepest point on path, in kilometersdouble
getDist()
returns travel distance in radiansdouble
getDistDeg()
returns travel distance in degrees.double
getDRayParamDDelta()
double
getDRayParamDDeltaDeg()
java.time.Duration
getDuration()
static Arrival
getEarliestArrival(java.util.List<Arrival> arrivals)
TimeDist
getFirstPiercePoint(double depth)
finds the first pierce point at the given depth.TimeDist
getFurthestPierce()
returns furthest distance point module pi/180 on path, in radiansdouble
getGeometricSpreadingFactor()
Geometrical spreading factor.double
getIncidentAngle()
TimeDist
getLastPiercePoint(double depth)
finds the last pierce point at the given depth.static Arrival
getLatestArrival(java.util.List<Arrival> arrivals)
LatLonable
getLatLonable()
double
getModuloDist()
returns distance in radians and in the range 0-PI.double
getModuloDistDeg()
returns distance in degrees and in the range 0-180.double
getModuloSearchDistDeg()
returns search distance in degrees and in the range 0-180.java.lang.String
getName()
returns phase nameint
getNumPathPoints()
int
getNumPiercePoints()
TimeDist[]
getPath()
returns path points as TimeDist objects.java.util.List<ArrivalPathSegment>
getPathSegments()
SeismicPhase
getPhase()
TimeDist[]
getPierce()
returns pierce points as TimeDist objects.TimeDist
getPiercePoint(int i)
java.lang.String
getPuristName()
returns purist's version of name.RayCalculateable
getRayCalculateable()
double
getRayParam()
returns ray parameter in seconds per radiandouble
getRayParamDeg()
returns ray parameter in seconds per degint
getRayParamIndex()
double
getReceiverDepth()
returns receiver (station) depth in kilometersdouble
getReflTransPSV()
Calculates the product of the reflection and transmission coefficients for all discontinuities along the path of this arrival in the P-SV plane.double
getReflTransSH()
Calculates the product of the reflection and transmission coefficients for all discontinuities along the path of this arrival for transverse, SH, waves.Arrival
getRelativeToArrival()
double
getSearchDistDeg()
returns search distance in degrees.TimeDist
getShallowestPierce()
returns shallowest point on path, in kilometersdouble
getSourceDepth()
returns source depth in kilometersTimeDist
getSourceTimeDist()
Create TimeDist point for source, first point in pierce or path.double
getTakeoffAngle()
double
getTime()
boolean
isLatLonable()
boolean
isLongWayAround()
boolean
isRelativeToArrival()
Arrival
negateDistance()
Negates the arrival distance.double
radialSlownessAtReceiver()
double
radialSlownessAtSource()
void
setRelativeToArrival(Arrival relativeToArrival)
void
setSearchValue(RayCalculateable searchVal)
static java.util.List<Arrival>
sortArrivals(java.util.List<Arrival> arrivals)
java.lang.String
toString()
double
velocityAtReceiver()
double
velocityAtSource()
void
writeJSON(java.io.PrintWriter pw, java.lang.String indent)
-
-
-
Field Detail
-
MANY_LAPS_PLUS_180
public static final double MANY_LAPS_PLUS_180
- See Also:
- Constant Field Values
-
DtoR
protected static final double DtoR
- See Also:
- Constant Field Values
-
RtoD
protected static final double RtoD
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
Arrival
public Arrival(SeismicPhase phase, double time, double dist, double rayParam, int rayParamIndex, double dRPdDist)
-
Arrival
public Arrival(SeismicPhase phase, double time, double dist, double rayParam, int rayParamIndex, RayCalculateable searchDist, java.lang.String name, java.lang.String puristName, double sourceDepth, double receiverDepth, double takeoffAngle, double incidentAngle, double dRPdDist)
-
-
Method Detail
-
getCommentLine
public java.lang.String getCommentLine()
-
getPhase
public SeismicPhase getPhase()
- Returns:
- the phase used to calculate this arrival.
-
getTime
public double getTime()
- Returns:
- travel time in seconds
-
getDuration
public java.time.Duration getDuration()
- Returns:
- travel time as a Duration
-
getDist
public double getDist()
returns travel distance in radians
-
getDistDeg
public double getDistDeg()
returns travel distance in degrees.
-
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
public void setSearchValue(RayCalculateable searchVal)
-
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()
-
getGeometricSpreadingFactor
public double getGeometricSpreadingFactor() throws TauModelException
Geometrical spreading factor. See Fundamentals of Modern Global Seismology, ch 13, eq 13.9. Note that eq 13.10 has divide by zero in case of a horizontal ray leaving the source.- Throws:
TauModelException
-
getReflTransPSV
public double getReflTransPSV() throws VelocityModelException, SlownessModelException
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:
VelocityModelException
SlownessModelException
-
getReflTransSH
public double getReflTransSH() throws VelocityModelException, SlownessModelException
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:
VelocityModelException
SlownessModelException
-
getAmplitudeFactorPSV
public double getAmplitudeFactorPSV() throws TauModelException, VelocityModelException, SlownessModelException
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.- Returns:
- Throws:
TauModelException
VelocityModelException
SlownessModelException
-
getAmplitudeFactorSH
public double getAmplitudeFactorSH() throws TauModelException, VelocityModelException, SlownessModelException
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.- Returns:
- Throws:
TauModelException
VelocityModelException
SlownessModelException
-
getIncidentAngle
public double getIncidentAngle()
-
getTakeoffAngle
public double getTakeoffAngle()
-
velocityAtSource
public double velocityAtSource()
-
radialSlownessAtSource
public double radialSlownessAtSource()
-
velocityAtReceiver
public double velocityAtReceiver()
-
radialSlownessAtReceiver
public double radialSlownessAtReceiver()
-
getRayParamIndex
public int getRayParamIndex()
-
getName
public java.lang.String getName()
returns phase name
-
getPuristName
public java.lang.String 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
public TimeDist getShallowestPierce()
returns shallowest point on path, in kilometers
-
getDeepestPierce
public TimeDist getDeepestPierce()
returns deepest point on path, in kilometers
-
getFurthestPierce
public TimeDist getFurthestPierce()
returns furthest distance point module pi/180 on path, in radians
-
getPierce
public TimeDist[] getPierce()
returns pierce points as TimeDist objects.
-
getPath
public TimeDist[] getPath()
returns path points as TimeDist objects.
-
getPathSegments
public java.util.List<ArrivalPathSegment> getPathSegments()
-
negateDistance
public Arrival 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
public Arrival getRelativeToArrival()
-
setRelativeToArrival
public void setRelativeToArrival(Arrival relativeToArrival)
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
getSourceTimeDist
public TimeDist getSourceTimeDist()
Create TimeDist point for source, first point in pierce or path.
-
getNumPiercePoints
public int getNumPiercePoints()
-
getNumPathPoints
public int getNumPathPoints()
-
getPiercePoint
public TimeDist getPiercePoint(int i)
-
getFirstPiercePoint
public TimeDist getFirstPiercePoint(double depth)
finds the first pierce point at the given depth.- Throws:
java.lang.ArrayIndexOutOfBoundsException
- if depth is not found
-
getLastPiercePoint
public TimeDist getLastPiercePoint(double depth)
finds the last pierce point at the given depth.- Throws:
java.lang.ArrayIndexOutOfBoundsException
- if depth is not found
-
writeJSON
public void writeJSON(java.io.PrintWriter pw, java.lang.String indent)
-
asJSONObject
public org.json.JSONObject asJSONObject()
-
getRayCalculateable
public RayCalculateable getRayCalculateable()
-
isLatLonable
public boolean isLatLonable()
-
getLatLonable
public LatLonable getLatLonable()
-
-