UNCLASSIFIED
GeographicTranslator
|
#include <GeoidLibrary.h>
Public Member Functions | |
~GeoidLibrary (void) | |
void | convertEllipsoidToEGM96FifteenMinBilinearGeoidHeight (double longitude, double latitude, double ellipsoidHeight, double *geoidHeight) |
void | convertEllipsoidToEGM96VariableNaturalSplineHeight (double longitude, double latitude, double ellipsoidHeight, double *geoidHeight) |
void | convertEllipsoidToEGM84TenDegBilinearHeight (double longitude, double latitude, double ellipsoidHeight, double *geoidHeight) |
void | convertEllipsoidToEGM84TenDegNaturalSplineHeight (double longitude, double latitude, double ellipsoidHeight, double *geoidHeight) |
void | convertEllipsoidToEGM84ThirtyMinBiLinearHeight (double longitude, double latitude, double ellipsoidHeight, double *geoidHeight) |
void | convertEllipsoidHeightToEGM2008GeoidHeight (double longitude, double latitude, double ellipsoidHeight, double *geoidHeight) |
void | convertEGM96FifteenMinBilinearGeoidToEllipsoidHeight (double longitude, double latitude, double geoidHeight, double *ellipsoidHeight) |
void | convertEGM96VariableNaturalSplineToEllipsoidHeight (double longitude, double latitude, double geoidHeight, double *ellipsoidHeight) |
void | convertEGM84TenDegBilinearToEllipsoidHeight (double longitude, double latitude, double geoidHeight, double *ellipsoidHeight) |
void | convertEGM84TenDegNaturalSplineToEllipsoidHeight (double longitude, double latitude, double geoidHeight, double *ellipsoidHeight) |
void | convertEGM84ThirtyMinBiLinearToEllipsoidHeight (double longitude, double latitude, double geoidHeight, double *ellipsoidHeight) |
void | convertEGM2008GeoidHeightToEllipsoidHeight (double longitude, double latitude, double geoidHeight, double *ellipsoidHeight) |
Static Public Member Functions | |
static GeoidLibrary * | getInstance () |
static void | removeInstance () |
Protected Member Functions | |
GeoidLibrary () | |
GeoidLibrary (const GeoidLibrary &gl) | |
GeoidLibrary & | operator= (const GeoidLibrary &gl) |
Friends | |
class | GeoidLibraryCleaner |
The purpose of GEOID is to support conversions between WGS84 ellipsoid heights and WGS84 geoid heights.
ERROR HANDLING
This component checks parameters for valid values. If an invalid value is found, the error code is combined with the current error code using the bitwise or. This combining allows multiple error codes to be returned. The possible error codes are:
GEOID_NO_ERROR : No errors occurred in function
GEOID_FILE_OPEN_ERROR : Geoid file opening error
GEOID_INITIALIZE_ERROR : Geoid separation database can not initialize
GEOID_LAT_ERROR : Latitude out of valid range (-90 to 90 degrees)
GEOID_LON_ERROR : Longitude out of valid range
(-180 to 360 degrees)
REUSE NOTES
Geoid is intended for reuse by any application that requires conversion between WGS84 ellipsoid heights and WGS84 geoid heights.
REFERENCES
Further information on Geoid can be found in the Reuse Manual.
Geoid originated from : U.S. Army Topographic Engineering Center Geospatial Information Division 7701 Telegraph Road Alexandria, VA 22310-3864
LICENSES
None apply to this component.
RESTRICTIONS
Geoid has no restrictions.
ENVIRONMENT
Geoid was tested and certified in the following environments
Definition at line 132 of file GeoidLibrary.h.
GeoidLibrary::~GeoidLibrary | ( | void | ) |
Definition at line 369 of file GeoidLibrary.cpp.
|
protected |
The constructor creates empty lists which are used to store the geoid separation data contained in the data files egm84.grd and egm96.grd.
The constructor now also instantiates the appropriate EGM2008 geoid separation interpolator.
Definition at line 357 of file GeoidLibrary.cpp.
|
protected |
Definition at line 363 of file GeoidLibrary.cpp.
void GeoidLibrary::convertEGM2008GeoidHeightToEllipsoidHeight | ( | double | longitude, |
double | latitude, | ||
double | geoidHeight, | ||
double * | ellipsoidHeight | ||
) |
The function convertEGM2008GeoidHeightToEllipsoidHeight( converts the specified EGM2008 geoid height at the specified geodetic coordinates to the equivalent ellipsoid height. It uses the EGM2008 gravity model, plus the bicubic spline interpolation method.
[in] | longitude | : Geodetic longitude in radians |
[in] | latitude | : Geodetic latitude in radians |
[in] | geoidHeight | : Height above the geoid, meters |
[out] | ellipsoidHeight | : Ellipsoid height, in meters |
Definition at line 961 of file GeoidLibrary.cpp.
void GeoidLibrary::convertEGM84TenDegBilinearToEllipsoidHeight | ( | double | longitude, |
double | latitude, | ||
double | geoidHeight, | ||
double * | ellipsoidHeight | ||
) |
The function convertEGM84TenDegBilinearToEllipsoidHeight converts the specified WGS84 geoid height at the specified geodetic coordinates to the equivalent ellipsoid height, using the EGM84 gravity model and the bilinear interpolation method.
[in] | longitude | : Geodetic longitude in radians |
[in] | latitude | : Geodetic latitude in radians |
[in] | geoidHeight | : Geoid height, in meters. |
[out] | ellipsoidHeight | : Ellipsoid height, in meters |
Definition at line 863 of file GeoidLibrary.cpp.
void GeoidLibrary::convertEGM84TenDegNaturalSplineToEllipsoidHeight | ( | double | longitude, |
double | latitude, | ||
double | geoidHeight, | ||
double * | ellipsoidHeight | ||
) |
The function convertEGM84TenDegNaturalSplineToEllipsoidHeight converts the specified WGS84 geoid height at the specified geodetic coordinates to the equivalent ellipsoid height, using the EGM84 gravity model and the natural spline interpolation method.
[in] | longitude | : Geodetic longitude in radians |
[in] | latitude | : Geodetic latitude in radians |
[in] | geoidHeight | : Geoid height, in meters. |
[out] | ellipsoidHeight | : Ellipsoid height, in meters |
Definition at line 894 of file GeoidLibrary.cpp.
void GeoidLibrary::convertEGM84ThirtyMinBiLinearToEllipsoidHeight | ( | double | longitude, |
double | latitude, | ||
double | geoidHeight, | ||
double * | ellipsoidHeight | ||
) |
The function convertEGM84ThirtyMinBiLinearToEllipsoidHeight converts the specified WGS84 geoid height at the specified geodetic coordinates to the equivalent ellipsoid height, using the EGM84 gravity model and the bilinear interpolation method.
[in] | longitude | : Geodetic longitude in radians |
[in] | latitude | : Geodetic latitude in radians |
[in] | geoidHeight | : Geoid height, in meters. |
[out] | ellipsoidHeight | : Ellipsoid height, in meters |
Definition at line 929 of file GeoidLibrary.cpp.
void GeoidLibrary::convertEGM96FifteenMinBilinearGeoidToEllipsoidHeight | ( | double | longitude, |
double | latitude, | ||
double | geoidHeight, | ||
double * | ellipsoidHeight | ||
) |
The function convertEGM96FifteenMinBilinearGeoidToEllipsoidHeight converts the specified WGS84 geoid height at the specified geodetic coordinates to the equivalent ellipsoid height, using the EGM96 gravity model and the bilinear interpolation method.
[in] | longitude | : Geodetic longitude in radians |
[in] | latitude | : Geodetic latitude in radians |
[in] | geoidHeight | : Geoid height, in meters. |
[out] | ellipsoidHeight | : Ellipsoid height, in meters |
Definition at line 755 of file GeoidLibrary.cpp.
void GeoidLibrary::convertEGM96VariableNaturalSplineToEllipsoidHeight | ( | double | longitude, |
double | latitude, | ||
double | geoidHeight, | ||
double * | ellipsoidHeight | ||
) |
The function convertEGM96VariableNaturalSplineToEllipsoidHeight converts the specified WGS84 geoid height at the specified geodetic coordinates to the equivalent ellipsoid height, using the EGM96 gravity model and the natural spline interpolation method.
[in] | longitude | : Geodetic longitude in radians |
[in] | latitude | : Geodetic latitude in radians |
[in] | geoidHeight | : Geoid height, in meters. |
[out] | ellipsoidHeight | : Ellipsoid height, in meters |
Definition at line 786 of file GeoidLibrary.cpp.
void GeoidLibrary::convertEllipsoidHeightToEGM2008GeoidHeight | ( | double | longitude, |
double | latitude, | ||
double | ellipsoidHeight, | ||
double * | geoidHeight | ||
) |
The function convertEllipsoidHeightToEGM2008GeoidHeight converts the specified WGS84 ellipsoid height at the specified geodetic coordinates to the equivalent height above the geoid. This function uses the EGM2008 gravity model, plus the bicubic spline interpolation method.
[in] | longitude | : Geodetic longitude in radians |
[in] | latitude | : Geodetic latitude in radians |
[in] | ellipsoidHeight | : Ellipsoid height, in meters |
[out] | geoidHeight | : Height above the geoid, meters |
Definition at line 698 of file GeoidLibrary.cpp.
void GeoidLibrary::convertEllipsoidToEGM84TenDegBilinearHeight | ( | double | longitude, |
double | latitude, | ||
double | ellipsoidHeight, | ||
double * | geoidHeight | ||
) |
The function convertEllipsoidToEGM84TenDegBilinearHeight converts the specified WGS84 ellipsoid height at the specified geodetic coordinates to the equivalent geoid height, using the EGM84 gravity model and the bilinear interpolation method.
[in] | longitude | : Geodetic longitude in radians |
[in] | latitude | : Geodetic latitude in radians |
[in] | ellipsoidHeight | : Ellipsoid height, in meters |
[out] | geoidHeight | : Geoid height, in meters. |
Definition at line 594 of file GeoidLibrary.cpp.
void GeoidLibrary::convertEllipsoidToEGM84TenDegNaturalSplineHeight | ( | double | longitude, |
double | latitude, | ||
double | ellipsoidHeight, | ||
double * | geoidHeight | ||
) |
The function convertEllipsoidToEGM84TenDegNaturalSplineHeight converts the specified WGS84 ellipsoid height at the specified geodetic coordinates to the equivalent geoid height, using the EGM84 gravity model and the natural splineinterpolation method.
[in] | longitude | : Geodetic longitude in radians |
[in] | latitude | : Geodetic latitude in radians |
[in] | ellipsoidHeight | : Ellipsoid height, in meters |
[out] | geoidHeight | : Geoid height, in meters. |
Definition at line 629 of file GeoidLibrary.cpp.
void GeoidLibrary::convertEllipsoidToEGM84ThirtyMinBiLinearHeight | ( | double | longitude, |
double | latitude, | ||
double | ellipsoidHeight, | ||
double * | geoidHeight | ||
) |
The function convertEllipsoidToEGM84ThirtyMinBiLinearHeight converts the specified WGS84 ellipsoid height at the specified geodetic coordinates to the equivalent geoid height, using the EGM84 gravity model and the bilinear interpolation method.
[in] | longitude | : Geodetic longitude in radians |
[in] | latitude | : Geodetic latitude in radians |
[in] | ellipsoidHeight | : Ellipsoid height, in meters |
[out] | geoidHeight | : Geoid height, in meters. |
Definition at line 664 of file GeoidLibrary.cpp.
void GeoidLibrary::convertEllipsoidToEGM96FifteenMinBilinearGeoidHeight | ( | double | longitude, |
double | latitude, | ||
double | ellipsoidHeight, | ||
double * | geoidHeight | ||
) |
The function convertEllipsoidToEGM96FifteenMinBilinearGeoidHeight converts the specified WGS84 ellipsoid height at the specified geodetic coordinates to the equivalent geoid height, using the EGM96 gravity model and the bilinear interpolation method.
[in] | longitude | : Geodetic longitude in radians |
[in] | latitude | : Geodetic latitude in radians |
[in] | ellipsoidHeight | : Ellipsoid height, in meters |
[out] | geoidHeight | : Geoid height, in meters. |
Definition at line 482 of file GeoidLibrary.cpp.
void GeoidLibrary::convertEllipsoidToEGM96VariableNaturalSplineHeight | ( | double | longitude, |
double | latitude, | ||
double | ellipsoidHeight, | ||
double * | geoidHeight | ||
) |
The function convertEllipsoidToEGM96VariableNaturalSplineHeight converts the specified WGS84 ellipsoid height at the specified geodetic coordinates to the equivalent geoid height, using the EGM96 gravity model and the natural spline interpolation method.
[in] | longitude | : Geodetic longitude in radians |
[in] | latitude | : Geodetic latitude in radians |
[in] | ellipsoidHeight | : Ellipsoid height, in meters |
[out] | geoidHeight | : Geoid height, in meters. |
Definition at line 517 of file GeoidLibrary.cpp.
|
static |
The function getInstance returns an instance of the GeoidLibrary
Definition at line 317 of file GeoidLibrary.cpp.
|
protected |
Definition at line 379 of file GeoidLibrary.cpp.
|
static |
The function removeInstance removes this GeoidLibrary instance from the total number of instances.
Definition at line 329 of file GeoidLibrary.cpp.
|
friend |
Definition at line 134 of file GeoidLibrary.h.