All Packages Class Hierarchy This Package Previous Next Index
Class edu.sc.seis.TauP.TauModel
edu.sc.seis.TauP.TauModel
- public class TauModel
provides storage all of the TauBranch's comprising a model.
-
DEBUG
- True to enable debugging output.
-
sMod
- The slowness model that was used to generate the tau model.
-
spherical
- True if this is a spherical slowness model.
-
tauBranches
- 2D Array containing a TauBranch object corresponding to each
"branch" of the tau model, 0 is P and 1 is S.
-
TauModel()
-
-
appendNoDisconDepth(double)
-
-
calcTauIncFrom(SlownessModel)
- Calculates tau for each branch within a slowness model.
-
clone()
- Returns a clone of the tau model so that changes to the clone
do not affect the original.
-
depthCorrect(double)
- Computes a new tau model for a source at depth using the previously
computed branches for a surface source.
-
findBranch(double)
- Finds the branch that either has the depth as its top boundary,
or strictly contains the depth.
-
findDepth(double, boolean)
- returns the turning depth for a ray of given ray parameter.
-
getBranchDepths()
- returns an array of the depths that are boundaries between branches
-
getCmbBranch()
-
-
getCmbDepth()
-
-
getIocbBranch()
-
-
getIocbDepth()
-
-
getModelName()
-
-
getMohoBranch()
-
-
getMohoDepth()
-
-
getNoDisconDepths()
- Branches, such as the branch with the source at its top, that
are not allowed to have reflections and phase conversions
at their tops.
-
getNumBranches()
-
-
getOneRayParam(int)
-
-
getRadiusOfEarth()
-
-
getRayParams()
-
-
getSourceBranch()
-
-
getSourceDepth()
-
-
getTauBranch(int, boolean)
-
-
isNoDisconBranch(int)
- Does the given branch number have a noDisconDepth at its top?
We test against PWave Tau branches (ie true) since S is the same.
-
isNoDisconDepth(double)
- Is the given depth a "noDisconDepth"?
-
main(String[])
-
-
print()
-
-
readModel(String)
-
-
readModelFromStream(InputStream)
-
-
setNoDisconDepths(double[])
-
-
splitBranch(double)
- returns a new TauModel with the branches containing depth split at depth.
-
toString()
-
-
validate()
-
-
writeModel(String)
-
-
writeModelToStream(OutputStream)
-
DEBUG
public transient boolean DEBUG
- True to enable debugging output.
spherical
public boolean spherical
- True if this is a spherical slowness model. False if flat.
sMod
public SlownessModel sMod
- The slowness model that was used to generate the tau model. This
in needed in order to modify the tau branches from a surface focus
event to an event at depth. This is normally be set
when the tau model is generated
to be a clone of the slowness model.
tauBranches
public TauBranch tauBranches[][]
- 2D Array containing a TauBranch object corresponding to each
"branch" of the tau model, 0 is P and 1 is S. Branches correspond to depth
regions between discontinuities or reversals in slowness
gradient for a wave type. Each branch contains time, distance, and tau
increments for each ray parameter in rayParams for the layer.
Rays that turn above the branch layer are assigned 0.0 time,
distance, and tau increments.
TauModel
public TauModel()
getModelName
public String getModelName()
- Returns:
- s the name of the earth model used to construct the tau model.
getSourceDepth
public double getSourceDepth()
- Returns:
- s depth for which tau model was constructed.
getSourceBranch
public int getSourceBranch()
- Returns:
- s branch number with the source at its top.
getNoDisconDepths
public double[] getNoDisconDepths()
- Branches, such as the branch with the source at its top, that
are not allowed to have reflections and phase conversions
at their tops.
isNoDisconBranch
public boolean isNoDisconBranch(int branchNum)
- Does the given branch number have a noDisconDepth at its top?
We test against PWave Tau branches (ie true) since S is the same.
isNoDisconDepth
public boolean isNoDisconDepth(double noDisconDepth)
- Is the given depth a "noDisconDepth"?
setNoDisconDepths
public synchronized void setNoDisconDepths(double noDisconDepths[])
appendNoDisconDepth
public synchronized void appendNoDisconDepth(double noDisconDepth)
getMohoDepth
public double getMohoDepth()
- Returns:
- s depth of the moho.
getMohoBranch
public int getMohoBranch()
- Returns:
- s branch number with the moho at its top.
getCmbDepth
public double getCmbDepth()
- Returns:
- s depth of the cmb.
getCmbBranch
public int getCmbBranch()
- Returns:
- s branch number with the cmb at its top.
getIocbDepth
public double getIocbDepth()
- Returns:
- s depth of the iocb.
getIocbBranch
public int getIocbBranch()
- Returns:
- s branch number with the iocb at its top.
getRadiusOfEarth
public double getRadiusOfEarth()
- Returns:
- s the radius of the Earth in km, usually input from the
velocity model.
getRayParams
public double[] getRayParams()
- Returns:
- s an array, cloned, of the ray parameters used to construct
the tau branches.
This may only be a subset of the slownesses/ray parameters saved
in the slowness model due to high slowness zones (low velocity zones).
getOneRayParam
public double getOneRayParam(int i)
getNumBranches
public int getNumBranches()
getTauBranch
public TauBranch getTauBranch(int branchNum,
boolean isPWave)
getBranchDepths
public double[] getBranchDepths()
- returns an array of the depths that are boundaries between branches
findDepth
public double findDepth(double rayParam,
boolean isPWave) throws TauModelException
- returns the turning depth for a ray of given ray parameter. Note
this is for a surface source, and so converted phases my give
incorrect results, e.g. SKS for certain ray parameters turns
within the upper part of the outer core that is a low velocity
zone for P so no P wave of that ray parameter could reach the core.
For layer specific turning points, see the other
SlownessModel.findDepth.
calcTauIncFrom
public void calcTauIncFrom(SlownessModel sMod) throws SlownessModelException, NoSuchLayerException, TauModelException, NoSuchMatPropException
- Calculates tau for each branch within a slowness model.
- Throws: SlownessModelException
- occurs if getNumLayers() < 1 as
we cannot compute a distance without a layer.
findBranch
public int findBranch(double depth) throws TauModelException
- Finds the branch that either has the depth as its top boundary,
or strictly contains the depth. Also, we allow the bottommost
branch to contain its bottom depth, so that the center if the
earth is contained within the bottom branch.
depthCorrect
public TauModel depthCorrect(double depth) throws TauModelException
- Computes a new tau model for a source at depth using the previously
computed branches for a surface source. No change is needed to the
branches above and below the branch containing the depth, except for
the addition of a slowness sample. The branch
containing the source depth is split into 2 branches, and up going
branch and a downgoing branch. Additionally, the slowness at the
source depth must be sampled exactly as it is an extremal point for
each of these branches. See Buland and Chapman p 1290.
splitBranch
public TauModel splitBranch(double depth) throws TauModelException
- returns a new TauModel with the branches containing depth split at depth. Used for
putting a source at depth since a source can only be located on a branch boundary.
writeModel
public void writeModel(String filename) throws IOException
writeModelToStream
public void writeModelToStream(OutputStream outStream) throws IOException
readModel
public static TauModel readModel(String filename) throws FileNotFoundException, IOException, StreamCorruptedException, ClassNotFoundException, OptionalDataException
readModelFromStream
public static TauModel readModelFromStream(InputStream inStream) throws InvalidClassException, IOException, StreamCorruptedException, ClassNotFoundException, OptionalDataException
validate
public boolean validate()
print
public void print()
clone
public Object clone()
- Returns a clone of the tau model so that changes to the clone
do not affect the original.
toString
public String toString()
main
public static void main(String args[])
All Packages Class Hierarchy This Package Previous Next Index