SLBM  3.0
Regional Seismic Travel Time
Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
slbm::GridGeoTess Class Reference

#include <GridGeoTess.h>

Inherits slbm::Grid.

Public Member Functions

 GridGeoTess ()
 
virtual ~GridGeoTess ()
 Destructor. More...
 
void clear ()
 Clears and releases all memory held by this GridSLBM object. More...
 
void loadFromFile (const string &filename)
 Load the depth, velocity and gradient information from an ascii flat file. More...
 
void loadFromDirectory (const string &dirName)
 Load the depth, velocity and gradient information from binary files in specified directory. More...
 
void loadFromDataBuffer (util::DataBuffer &buffer)
 Load the depth, velocity and gradient information from DataBuffer. More...
 
void saveVelocityModel (const string &filename, const int &format)
 Save the Earth model currently in memory, to an ascii flat file. More...
 
void saveVelocityModel (util::DataBuffer &buffer)
 Save the Earth model currently in memory, to a DataBuffer. More...
 
int getBufferSize () const
 Returns the size of a DataBuffer object required to store this Grid objects model data. More...
 
double getAverageMantleVelocity (const int &waveType)
 Retreive the average P or S wave velocity of the mantle, in km/sec. More...
 
void setAverageMantleVelocity (const int &waveType, const double &velocity)
 Retreive the average P or S wave velocity of the mantle, in km/sec. More...
 
virtual bool findProfile (Location &location, vector< GridProfile * > &neighbors, vector< int > &nodeIds, vector< double > &coefficients)
 Find the neighboring GridProfile objects and associated interpolation coefficients at a specified Location. More...
 
void getNodeNeighbors (const int &nodeId, int neighbors[], int &nNeighbors)
 Retrieve the grid node id of the nodes that are direct neighbors of the specified grid node. More...
 
void getNodeNeighbors (const int &nodeId, vector< int > &neighbors)
 Retrieve the grid node ids of the nodes that are direct neighbors of the specified grid node. More...
 
void getActiveNodeNeighbors (const int &nodeid, int neighbors[], int &nNeighbors)
 
void getActiveNodeNeighbors (const int &nodeid, vector< int > &neighbors)
 
void getNodeNeighborInfo (const int &nodeid, int neighbors[], double distance[], double azimuth[], int &nNeighbors)
 Retrieve the grid node id of the nodes that are direct neighbors of the specified grid node. More...
 
void getNodeNeighborInfo (const int &nodeid, vector< int > &neighbors, vector< double > &distance, vector< double > &azimuth)
 Retrieve the grid node id of the nodes that are direct neighbors of the specified grid node. More...
 
void getNodeSeparation (const int &node1, const int &node2, double &distance)
 Retrieve the angular separation in radians between any pair of. More...
 
void getNodeAzimuth (const int &node1, const int &node2, double &azimuth)
 Retrieve the azimuth in radians from one grid node to another. More...
 
size_t memSize ()
 
string getTessId ()
 
int addGeoStack (GeoStack *geoStack)
 
GeoTessModelSLBMgetModel ()
 
string toString ()
 
void setInterpolatorType (const string &interpolatorType)
 
string getInterpolatorType ()
 
- Public Member Functions inherited from slbm::Grid
 Grid ()
 Default constructor. More...
 
virtual ~Grid ()
 Destructor. More...
 
virtual bool operator== (const Grid &other)
 Equality operator. More...
 
virtual bool operator!= (const Grid &other)
 Inequality operator. More...
 
virtual bool is_directory (const string &dir)
 
virtual int getNNodes ()
 Retrieve the number of nodes in the model. More...
 
virtual int getNIntervals ()
 Retrieve the number of intervals in each Profile. More...
 
virtual GridProfilegetProfile (const int &nodeId)
 Retrieve a pointer to the GridProfile that is node (i, j) in this Grid. More...
 
virtual GreatCirclegetGreatCircle (const int &phase, const double &latSource, const double &lonSource, const double &depthSource, const double &latReceiver, const double &lonReceiver, const double &depthReceiver, const double &delta, const double &ch_max)
 Retrieve a GreatCircle object between a source and a receiver. More...
 
virtual CrustalProfilegetReceiverProfile (const int &phase, const double &lat, const double &lon, const double &depth)
 Retrieve a CrustalProfile containing data appropriate for the specified phase at the specified location. More...
 
virtual CrustalProfilegetSourceProfile (const int &phase, const double &lat, const double &lon, const double &depth)
 
virtual void clearCrustalProfiles ()
 Delete all the CrustalProfile objects managed by this Grid. More...
 
virtual LayerProfilegetLayerProfile (GreatCircle *greatCircle, Location &location)
 Retrieve a LayerProfile containing data appropriate for the specified GreatCircle, at the specified geographic latitude and longitude. More...
 
virtual QueryProfilegetQueryProfile (Location &location)
 Retrieve a QueryProfile containing all available model information, at the latitude and longitude of the specified Location. More...
 
vector< vector< Uncertainty * > > & getUncertainty ()
 
UncertaintygetUncertainty (int phase, int attribute)
 
virtual int getNCrustalProfiles ()
 
void initializeActiveNodes (double activeNodeLatMin, double activeNodeLonMin, double activeNodeLatMax, double activeNodeLonMax)
 Specify the latitude, longitude range in radians that will define which grid nodes are also active nodes. More...
 
void initializeActiveNodes (GeoTessPolygon *polygon)
 Specify the Polygon that will define which grid nodes are also active nodes. More...
 
virtual int getNActiveNodes ()
 Retrieve the number of active nodes. More...
 
void clearActiveNodes ()
 
virtual int getGridNodeId (int activeNodeId)
 Retrieve the grid node id that corresponds to a specified active node id. More...
 
virtual int getActiveNodeId (int nodeId)
 Retrieve the grid node id that corresponds to a specified active node id. More...
 
virtual void getActiveNodeNeighborInfo (const int &nid, int neighbors[], double distance[], double azimuth[], int &nNeighbors)
 
virtual void getActiveNodeNeighborInfo (const int &nid, vector< int > &neighbors, vector< double > &distance, vector< double > &azimuth)
 
virtual void getNodeHitCount (const int &nodeId, int &hitCount)
 
virtual void clearNodeHitCount ()
 
virtual size_t memSizeCrustalProfiles ()
 
string & getModelPath ()
 
const string getOutputDirectory ()
 
void specifyOutputDirectory (const string &outputDir)
 

Static Public Member Functions

static string class_name ()
 
- Static Public Member Functions inherited from slbm::Grid
static GridgetGrid (const string &modelDirectory)
 
static GridgetGrid (util::DataBuffer &buffer)
 
static bool fileExists (const string &fileName)
 
static string class_name ()
 

Private Attributes

GeoTessModelSLBMmodel
 
GeoTessPosition * position
 

Additional Inherited Members

- Protected Member Functions inherited from slbm::Grid
void writeBufferToFile (util::DataBuffer &buffer, string fileName)
 
void reaDataBuffererFromFile (util::DataBuffer &buffer, string dirname, string fileName)
 
- Protected Attributes inherited from slbm::Grid
string modelPath
 The name of the file or directory from which the velocity model was loaded. More...
 
vector< GridProfile * > profiles
 The GridProfile objects which constitute the nodes in a Grid object. More...
 
vector< int > activeNodes
 
GeoTessPolygon * polygon
 
CrustalProfileStoresources
 
CrustalProfileStorereceivers
 
vector< vector< Uncertainty * > > uncertainty
 

Constructor & Destructor Documentation

slbm::GridGeoTess::GridGeoTess ( )
virtual slbm::GridGeoTess::~GridGeoTess ( )
virtual

Destructor.

Member Function Documentation

int slbm::GridGeoTess::addGeoStack ( GeoStack geoStack)
inlinevirtual

Reimplemented from slbm::Grid.

static string slbm::GridGeoTess::class_name ( )
inlinestatic

Returns the class name.

void slbm::GridGeoTess::clear ( )
virtual

Clears and releases all memory held by this GridSLBM object.

Reimplemented from slbm::Grid.

virtual bool slbm::GridGeoTess::findProfile ( Location location,
vector< GridProfile * > &  neighbors,
vector< int > &  nodeIds,
vector< double > &  coefficients 
)
virtual

Given a Location, find the GridProfile objects that surround the Location and compute the interpolation coefficient for each of those surrounding GridProfile objects. Interpolated values will equal the sum of the values at the GridProfile objects times the corresponding interpolation coefficient.

This method is called by getCrustalProfile() and getMantleProfile() to compute InterpolatedProfile objects.

Parameters
locationthe Location of the desired profile.
neighborsthe GridProfile objects which surround the specified Location.
nodeIdsthe node indices of the neighbors
coefficientsthe interpolation coefficient corresponding to each neighbor.
Returns
true if successful, false if location is outside valid range of the model.

Reimplemented from slbm::Grid.

void slbm::GridGeoTess::getActiveNodeNeighbors ( const int &  nodeid,
int  neighbors[],
int &  nNeighbors 
)
inlinevirtual

Reimplemented from slbm::Grid.

void slbm::GridGeoTess::getActiveNodeNeighbors ( const int &  nodeid,
vector< int > &  neighbors 
)
inlinevirtual

Reimplemented from slbm::Grid.

double slbm::GridGeoTess::getAverageMantleVelocity ( const int &  waveType)
inlinevirtual

Retreive the average P or S wave velocity of the mantle. These values are retrieved from the header information in the velocity model file.

Parameters
waveTypeeither SLBMGlobals::PWAVE or SLBMGlobals::SWAVE.
Returns
the average P or S wave mantle velocity, in km/sec.

Reimplemented from slbm::Grid.

int slbm::GridGeoTess::getBufferSize ( ) const
inlinevirtual

Returns the size of a DataBuffer object required to store this Grid objects model data.

Reimplemented from slbm::Grid.

string slbm::GridGeoTess::getInterpolatorType ( )
inlinevirtual

Reimplemented from slbm::Grid.

GeoTessModelSLBM* slbm::GridGeoTess::getModel ( )
inline
void slbm::GridGeoTess::getNodeAzimuth ( const int &  node1,
const int &  node2,
double &  azimuth 
)
inlinevirtual

Retrieve the azimuth in radians from one grid node to another.

Reimplemented from slbm::Grid.

void slbm::GridGeoTess::getNodeNeighborInfo ( const int &  nodeid,
int  neighbors[],
double  distance[],
double  azimuth[],
int &  nNeighbors 
)
inlinevirtual

Retrieve the grid node id of the nodes that are direct neighbors of the specified grid node. Also returns the angular distance and azimuth from the specified grid node to each of its neighbors. Distances and azimuths are in radians.

Reimplemented from slbm::Grid.

void slbm::GridGeoTess::getNodeNeighborInfo ( const int &  nodeId,
vector< int > &  neighbors,
vector< double > &  distance,
vector< double > &  azimuth 
)
inlinevirtual

Retrieve the grid node id of the nodes that are direct neighbors of the specified grid node. Also returns the angular distance and azimuth from the specified grid node to each of its neighbors. Distances and azimuths are in radians.

Reimplemented from slbm::Grid.

void slbm::GridGeoTess::getNodeNeighbors ( const int &  nodeId,
int  neighbors[],
int &  nNeighbors 
)
inlinevirtual

Retrieve the grid node id of the nodes that are direct neighbors of the specified grid node.

Reimplemented from slbm::Grid.

void slbm::GridGeoTess::getNodeNeighbors ( const int &  nodeId,
vector< int > &  neighbors 
)
inlinevirtual

Retrieve the grid node ids of the nodes that are direct neighbors of the specified grid node.

Reimplemented from slbm::Grid.

void slbm::GridGeoTess::getNodeSeparation ( const int &  node1,
const int &  node2,
double &  distance 
)
inlinevirtual

Retrieve the angular separation in radians between any pair of

Reimplemented from slbm::Grid.

string slbm::GridGeoTess::getTessId ( )
inlinevirtual

Reimplemented from slbm::Grid.

void slbm::GridGeoTess::loadFromDataBuffer ( util::DataBuffer buffer)
virtual

Load the Earth model information from DataBuffer

Parameters
bufferthe DataBuffer from which to load the model

Reimplemented from slbm::Grid.

void slbm::GridGeoTess::loadFromDirectory ( const string &  dirName)
virtual

Load the Earth model information from binary files in specified directory

Parameters
dirNamethe name of directory from which to load the model

Reimplemented from slbm::Grid.

void slbm::GridGeoTess::loadFromFile ( const string &  filename)
virtual

Load the Earth model information from an ascii flat file.

Parameters
filenamethe name of the ascii flat file containing the data.

Reimplemented from slbm::Grid.

size_t slbm::GridGeoTess::memSize ( )
virtual

Reimplemented from slbm::Grid.

void slbm::GridGeoTess::saveVelocityModel ( const string &  filename,
const int &  format 
)
virtual

Save the Earth model currently in memory, to an ascii flat file. An exception will be thrown if the speficied filename is the same as the name of the file from which the Earth model was originally loaded with loadVelocityModel()

Reimplemented from slbm::Grid.

void slbm::GridGeoTess::saveVelocityModel ( util::DataBuffer buffer)
virtual

Save the Earth model currently in memory, to to a DataBuffer.

Parameters
bufferthe DataBuffer to which to save the model

Reimplemented from slbm::Grid.

void slbm::GridGeoTess::setAverageMantleVelocity ( const int &  waveType,
const double &  velocity 
)
inlinevirtual

Retreive the average P or S wave velocity of the mantle. These values are retrieved from the header information in the velocity model file.

Parameters
waveTypeeither SLBMGlobals::PWAVE or SLBMGlobals::SWAVE.
velocity(output) the average P or S wave mantle velocity, in km/sec.

Reimplemented from slbm::Grid.

void slbm::GridGeoTess::setInterpolatorType ( const string &  interpolatorType)
inlinevirtual

Reimplemented from slbm::Grid.

string slbm::GridGeoTess::toString ( )
virtual

Reimplemented from slbm::Grid.

Member Data Documentation

GeoTessModelSLBM* slbm::GridGeoTess::model
private
GeoTessPosition* slbm::GridGeoTess::position
private

The documentation for this class was generated from the following file: