GeoTessCPP  2.1
Software to facilitate storage and retrieval of 3D information about the Earth.
 All Classes Namespaces Files Functions Variables Typedefs Friends Macros
Public Member Functions | Protected Member Functions | List of all members
geotess::GeoTessPositionNaturalNeighbor Class Reference

#include <GeoTessPositionNaturalNeighbor.h>

Inheritance diagram for geotess::GeoTessPositionNaturalNeighbor:
geotess::GeoTessPosition

Public Member Functions

 GeoTessPositionNaturalNeighbor (GeoTessModel *model, const GeoTessInterpolatorType &radialType)
 
virtual ~GeoTessPositionNaturalNeighbor ()
 
virtual const
GeoTessInterpolatorType
getInterpolatorType () const
 
- Public Member Functions inherited from geotess::GeoTessPosition
virtual ~GeoTessPosition ()
 
void addReference ()
 
void copyVector (double *u)
 
const double * getClosestVertex () const
 
void getCoefficients (map< int, double > &coefficients)
 
double getDepth ()
 
double getDepthBottom ()
 
double getDepthBottom (int layid)
 
double getDepthTop ()
 
double getDepthTop (int layid)
 
double getEarthRadius ()
 
double getErrorValue ()
 
double getHorizontalCoefficient (int index) const
 
const vector< double > & getHorizontalCoefficients () const
 
int getIndexOfClosestVertex () const
 
int getLayerId (double rad)
 
int getLayerId ()
 
double getLayerThickness (int layid)
 
double getLayerThickness ()
 
int getMaxTessLevel (int layid)
 
GeoTessModelgetModel ()
 
int getNVertices ()
 
double getRadius ()
 
double getRadiusBottom (int layid)
 
double getRadiusBottom ()
 
double getRadiusTop (int layid)
 
double getRadiusTop ()
 
int getReferenceCount ()
 
int getTessID ()
 
int getTessLevel () const
 
int getTessLevel (const int &tId)
 
int getTriangle ()
 
virtual double getValue (int attribute)
 
double * getVector ()
 
int getVertex (int index)
 
int getVertexIndex ()
 
const vector< int > & getVertices () const
 
void getWeights (map< int, double > &weights, double dkm)
 
bool isNotReferenced ()
 
bool isRadiusOutOfRangeAllowed ()
 
bool noEmptyProfiles ()
 
void removeReference ()
 
void set (double lat, double lon, double depth)
 
void set (const double *const uVector, const double &newRadius)
 
void set (int layid, double lat, double lon, double depth)
 
void set (int layid, const double *const uVector, double rad)
 
void setBottom (int layid, const double *const uVector)
 
void setBottom (int layid)
 
void setDepth (int layer, double depth)
 
void setDepth (double depth)
 
void setErrorValue (double errVal)
 
void setMaxTessLevel (int layid, int maxTess)
 
void setModel (GeoTessModel *newModel)
 
void setRadius (int layid, double rad)
 
void setRadius (double rad)
 
void setRadiusOutOfRangeAllowed (bool allowed)
 
void setTop (int layid, const double *const uVector)
 
void setTop (int layid)
 
string toString ()
 

Protected Member Functions

virtual void update2D (int tid)
 

Additional Inherited Members

- Static Public Member Functions inherited from geotess::GeoTessPosition
static GeoTessPositiongetGeoTessPosition (GeoTessModel *model)
 
static GeoTessPositiongetGeoTessPosition (GeoTessModel *model, const GeoTessInterpolatorType &horizontalType)
 
static GeoTessPositiongetGeoTessPosition (GeoTessModel *model, const GeoTessInterpolatorType &horizontalType, const GeoTessInterpolatorType &radialType)
 

Detailed Description

Implements the Natural Neighbor Interpolation algorithm of Sibson (1980, 1981). This technique interpolates values stored on a Delaunay triangulation. Returned values are continuous everywhere and smooth everywhere except the vertices of the triangulation. Implementation of the algorithm is described in detail in Hipp et al. (1999).

Hipp, J. R., C. J. Young, S. G. Moore, E. R. Shepherd, C. A. Schultz and S. C. Myers (1999), Parametric Grid Information in the DOE Knowledge Base: Data Preparation, Storage, and Access, SAND99-2277, Sandia National Laboratories Report.

Sibson, R., (1980) A Vector Identity for the Dirichlet Tessellation, Proc. Cambridge Philosophical Society, 87, 151-155.

Sibson, R. (1981). "A brief description of natural neighbor interpolation (Chapter 2)". In V. Barnett. Interpreting Multivariate Data. Chichester: John Wiley. pp. 21�36.

Author
Sandy Ballard

Constructor & Destructor Documentation

geotess::GeoTessPositionNaturalNeighbor::GeoTessPositionNaturalNeighbor ( GeoTessModel model,
const GeoTessInterpolatorType radialType 
)

Standard Constructor.

virtual geotess::GeoTessPositionNaturalNeighbor::~GeoTessPositionNaturalNeighbor ( )
virtual

Destructor.

Member Function Documentation

virtual const GeoTessInterpolatorType& geotess::GeoTessPositionNaturalNeighbor::getInterpolatorType ( ) const
inlinevirtual

Retrieve the type of interpolation that this GeoTessPosition object is configured to perform. Either InterpolatorType.LINEAR or InterpolatorType.NATURAL_NEIGHBOR.

Reimplemented from geotess::GeoTessPosition.

virtual void geotess::GeoTessPositionNaturalNeighbor::update2D ( int  tid)
protectedvirtual

Update the vertices and their associated interpolation coefficients, that will be used to interpolate new values. Uses the natural neighbor interpolation algorithm originally proposed by Sibson, R. (1980), A Vector Identity For Dirichlet Tessellation, Proc. Cambridge Philosophical Society, 87, 151-155. The algorithm is described in detail in Hipp, J. R., C. J. Young, S. G. Moore, E. R. Shepherd, C. A. Schultz and S. C. Myers (1999), Parametric Grid Information in the DOE Knowledge Base: Data Preparation, Storage, and Access, SAND99-2277, Sandia National Laboratories Report.


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