GeoTessCPP  2.6.1
Software to facilitate storage and retrieval of 3D information about the Earth.
All Classes Namespaces Files Functions Variables Typedefs Friends Macros
geotess::GeoTessPositionNaturalNeighbor Class Reference

Implements the Natural Neighbor Interpolation algorithm for the geographic dimensions of the grid. More...

#include <GeoTessPositionNaturalNeighbor.h>

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

Public Member Functions

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

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 for the geographic dimensions of the grid.

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

Definition at line 93 of file GeoTessPositionNaturalNeighbor.h.

Constructor & Destructor Documentation

◆ GeoTessPositionNaturalNeighbor()

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

Standard Constructor.

◆ ~GeoTessPositionNaturalNeighbor()

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

Destructor.

Member Function Documentation

◆ getInterpolatorType()

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.

Definition at line 147 of file GeoTessPositionNaturalNeighbor.h.

◆ getMemory()

virtual long geotess::GeoTessPositionNaturalNeighbor::getMemory ( )
inlinevirtual

Retrieve the amount of memory consumed by this GeoTessPosition object.

Returns
memory in bytes.

Reimplemented from geotess::GeoTessPosition.

Definition at line 151 of file GeoTessPositionNaturalNeighbor.h.

◆ update2D()

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: