|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--edu.sc.seis.TauP.SlownessModel
This class provides storage and methods for generating slowness-depth pairs.
Field Summary | |
boolean |
DEBUG
True to enable debugging output. |
static boolean |
PWAVE
Just useful for calling methods that need to know whether to use P or S waves. |
static boolean |
SWAVE
Just useful for calling methods that need to know whether to use P or S waves. |
boolean |
verbose
True to enable verbose output. |
Constructor Summary | |
SlownessModel()
|
Method Summary | |
TimeDist |
approxDistance(int slownessTurnLayer,
double p,
boolean isPWave)
generate approximate distance, in radians, for a ray from a surface source that turns at the bottom of the given slowness layer. |
java.lang.Object |
clone()
|
void |
createSample(VelocityModel velModel)
This method takes a velocity model and creates a vector containing slowness-depth layers that, hopefully, adequately sample both slowness and depth so that the travel time as a function of distance can be reconstructed from the theta function. |
boolean |
depthInFluid(double depth)
Determines if the given depth is contained within a fluid zone. |
boolean |
depthInFluid(double depth,
DepthRange fluidZoneDepth)
Determines if the given depth is contained within a fluid zone. |
boolean |
depthInHighSlowness(double depth,
double rayParam,
boolean isPWave)
Determines if the given depth and corresponding slowness is contained within a high slowness zone. |
boolean |
depthInHighSlowness(double depth,
double rayParam,
DepthRange highSZoneDepth,
boolean isPWave)
Determines if the given depth and corresponding slowness is contained within a high slowness zone. |
double |
findDepth(double rayParam,
boolean isPWave)
Finds a depth corresponding to a slowness over the whole VelocityModel. |
double |
findDepth(double rayParam,
double topDepth,
double botDepth,
boolean isPWave)
Finds a depth corresponding to a slowness between two given depths in the Velocity Model. |
double |
findDepth(double p,
int topCriticalLayer,
int botCriticalLayer,
boolean isPWave)
Finds a depth corresponding to a slowness between two given velocity layers, including the top and the bottom. |
CriticalDepth |
getCriticalDepth(int i)
|
DepthRange[] |
getHighSlowness(boolean isPWave)
|
double |
getMaxDeltaP()
|
double |
getMaxDepthInterval()
|
double |
getMaxInterpError()
gets the maximum value of the estimated error due to linear interpolation. |
double |
getMaxRangeInterval()
|
double |
getMinDeltaP()
|
double |
getMinRayParam(double depth,
boolean isPWave)
|
double |
getMinTurnRayParam(double depth,
boolean isPWave)
|
int |
getNumCriticalDepths()
|
int |
getNumLayers(boolean isPWave)
|
double |
getRadiusOfEarth()
|
SlownessLayer |
getSlownessLayerClone(int layerNum,
boolean isPWave)
|
double |
getSlownessTolerance()
|
abstract double |
interpolate(double p,
double topVelocity,
double topDepth,
double slope)
|
boolean |
isAllowInnerCoreS()
|
int |
layerNumberAbove(double depth,
boolean isPWave)
Finds the index of the slowness layer that contains the given depth Note that if the depth is a layer boundary, it returns the shallower of the two or possibly more (since total reflections are zero thickness layers) layers. |
int |
layerNumberBelow(double depth,
boolean isPWave)
Finds the index of the slowness layer that contains the given depth Note that if the depth is a layer boundary, it returns the deeper of the two or possibly more (since total reflections are zero thickness layers) layers. |
abstract TimeDist |
layerTimeDist(double rayParam,
int layerNum,
boolean isPWave)
|
void |
setAllowInnerCoreS(boolean allowInnerCoreS)
|
void |
setMaxDeltaP(double maxDeltaP)
|
void |
setMaxDepthInterval(double maxDepthInterval)
|
void |
setMaxInterpError(double maxInterpError)
sets the maximum value of the estimated error due to linear interpolation. |
void |
setMaxRangeInterval(double maxRangeInterval)
sets the maximum range interval for surface focus turning waves between slowness samples, input in degrees. |
void |
setMinDeltaP(double minDeltaP)
|
void |
setRadiusOfEarth(double radiusOfEarth)
|
void |
setSlownessTolerance(double slownessTolerance)
|
SplitLayerInfo |
splitLayer(double depth,
boolean isPWave)
|
abstract double |
toSlowness(double velocity,
double depth)
|
abstract SlownessLayer |
toSlownessLayer(VelocityLayer vLayer,
boolean isPWave)
|
java.lang.String |
toString()
|
abstract double |
toVelocity(double slowness,
double depth)
|
boolean |
validate()
Performs consistency check on the slowness model. |
Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
public transient boolean DEBUG
public transient boolean verbose
public static final boolean PWAVE
public static final boolean SWAVE
Constructor Detail |
public SlownessModel()
Method Detail |
public void setRadiusOfEarth(double radiusOfEarth)
public void setMinDeltaP(double minDeltaP)
public void setMaxDeltaP(double maxDeltaP)
public void setMaxDepthInterval(double maxDepthInterval)
public void setMaxRangeInterval(double maxRangeInterval)
public void setMaxInterpError(double maxInterpError)
public void setAllowInnerCoreS(boolean allowInnerCoreS)
public void setSlownessTolerance(double slownessTolerance)
public final double getRadiusOfEarth()
public final double getMinDeltaP()
public final double getMaxDeltaP()
public final double getMaxDepthInterval()
public final double getMaxRangeInterval()
public final double getMaxInterpError()
public final boolean isAllowInnerCoreS()
public final double getSlownessTolerance()
public final int getNumCriticalDepths()
public final CriticalDepth getCriticalDepth(int i)
public final int getNumLayers(boolean isPWave)
public double getMinTurnRayParam(double depth, boolean isPWave) throws NoSuchLayerException, SlownessModelException
public double getMinRayParam(double depth, boolean isPWave) throws NoSuchLayerException, SlownessModelException
public DepthRange[] getHighSlowness(boolean isPWave)
public SlownessLayer getSlownessLayerClone(int layerNum, boolean isPWave)
public abstract double toSlowness(double velocity, double depth) throws SlownessModelException
public abstract double toVelocity(double slowness, double depth) throws SlownessModelException
public abstract TimeDist layerTimeDist(double rayParam, int layerNum, boolean isPWave) throws SlownessModelException
public abstract SlownessLayer toSlownessLayer(VelocityLayer vLayer, boolean isPWave) throws SlownessModelException
public abstract double interpolate(double p, double topVelocity, double topDepth, double slope) throws SlownessModelException
public TimeDist approxDistance(int slownessTurnLayer, double p, boolean isPWave) throws NoSuchLayerException, SlownessModelException
NoSuchLayerException
- occurs if no layer in the
velocity model contains the given depth.SlownessModelException
- occurs if getNumLayers() == 0 as
we cannot compute a distance without a
layer.public boolean depthInHighSlowness(double depth, double rayParam, boolean isPWave)
depthInHighSlowness.
public boolean depthInHighSlowness(double depth, double rayParam, DepthRange highSZoneDepth, boolean isPWave)
public boolean depthInFluid(double depth)
depthInFluid(double, DepthRange).
public boolean depthInFluid(double depth, DepthRange fluidZoneDepth)
public SplitLayerInfo splitLayer(double depth, boolean isPWave) throws SlownessModelException, NoSuchLayerException
public double findDepth(double rayParam, boolean isPWave) throws SlownessModelException
public double findDepth(double rayParam, double topDepth, double botDepth, boolean isPWave) throws SlownessModelException
public double findDepth(double p, int topCriticalLayer, int botCriticalLayer, boolean isPWave) throws SlownessModelException
SlownessModelException
- occurs if
topCriticalLayer > botCriticalLayer because there are no layers
to search, or if there is an increase in slowness, ie a negative
velocity gradient, that just balances the decrease in slowness due
to the spherical earth, or if the ray parameter p is not contained
within the specified layer range.public void createSample(VelocityModel velModel) throws SlownessModelException, NoSuchMatPropException, NoSuchLayerException
SlownessModelException
- occurs if the validation on the
velocity model fails, or if the velocity model
has no layers.NoSuchMatPropException
- occurs if wavetype is not
recognized.VelocityModel
public int layerNumberAbove(double depth, boolean isPWave) throws NoSuchLayerException
NoSuchLayerException
- occurs if no layer in the slowness
model contains the given depth.public int layerNumberBelow(double depth, boolean isPWave) throws NoSuchLayerException
NoSuchLayerException
- occurs if no layer in the slowness
model contains the given depth.public boolean validate() throws SlownessModelException
SlownessModelException
- if any check failspublic java.lang.Object clone()
public java.lang.String toString()
toString
in class java.lang.Object
|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |