MRPT  2.0.2
Classes | Namespaces | Functions
[mrpt-topography]

Detailed Description

Topographic functions, geoid transformations.

Back to list of all libraries | See all modules

Library `mrpt-topography`

[New in MRPT 2.0.0]

This C++ library is part of MRPT and can be installed in Debian-based systems with:

    sudo apt install libmrpt-topography-dev

See: Using MRPT from your CMake project

Conversion and useful data structures to handle topographic data, perform geoid transformations, geocentric coordinates, etc...

See mrpt::topography

Classes

struct  mrpt::topography::TCoords
 A coordinate that is stored as a simple "decimal" angle in degrees, but can be retrieved/set in the form of DEGREES + arc-MINUTES + arc-SECONDS. More...
 
struct  mrpt::topography::TEllipsoid
 
struct  mrpt::topography::TGeodeticCoords
 A set of geodetic coordinates: latitude, longitude and height, defined over a given geoid (typically, WGS84) More...
 
struct  mrpt::topography::TDatum7Params
 Parameters for a topographic transfomation. More...
 
struct  mrpt::topography::TDatum7Params_TOPCON
 
struct  mrpt::topography::TDatum10Params
 Parameters for a topographic transfomation. More...
 
struct  mrpt::topography::TDatumHelmert2D
 Parameters for a topographic transfomation. More...
 
struct  mrpt::topography::TDatumHelmert2D_TOPCON
 
struct  mrpt::topography::TDatumHelmert3D
 Parameters for a topographic transfomation. More...
 
struct  mrpt::topography::TDatumHelmert3D_TOPCON
 Parameters for a topographic transfomation. More...
 
struct  mrpt::topography::TDatum1DTransf
 Parameters for a topographic transfomation. More...
 
struct  mrpt::topography::TDatumTransfInterpolation
 Parameters for a topographic transfomation. More...
 
struct  mrpt::topography::TPathFromRTKInfo
 Used to return optional information from mrpt::topography::path_from_rtk_gps. More...
 

Namespaces

 mrpt::topography
 This namespace provides topography helper functions, coordinate transformations.
 

Functions

void mrpt::topography::path_from_rtk_gps (mrpt::poses::CPose3DInterpolator &robot_path, const mrpt::obs::CRawlog &rawlog, size_t rawlog_first, size_t rawlog_last, bool isGUI=false, bool disableGPSInterp=false, int path_smooth_filter_size=2, TPathFromRTKInfo *outInfo=nullptr)
 Reconstruct the path of a vehicle equipped with 3 RTK GPSs. More...
 

Topography coordinate conversion functions

void mrpt::topography::geodeticToENU_WGS84 (const TGeodeticCoords &in_coords, mrpt::math::TPoint3D &out_ENU_point, const TGeodeticCoords &in_coords_origin)
 Coordinates transformation from longitude/latitude/height to ENU (East-North-Up) X/Y/Z coordinates The WGS84 ellipsoid is used for the transformation. More...
 
void mrpt::topography::ENUToGeocentric (const mrpt::math::TPoint3D &in_ENU_point, const TGeodeticCoords &in_coords_origin, TGeocentricCoords &out_coords, const TEllipsoid &ellip)
 ENU to geocentric coordinates. More...
 
void mrpt::topography::geocentricToENU_WGS84 (const mrpt::math::TPoint3D &in_geocentric_point, mrpt::math::TPoint3D &out_ENU_point, const TGeodeticCoords &in_coords_origin)
 ENU to EFEC (Geocentric) coordinates. More...
 
void mrpt::topography::geocentricToENU_WGS84 (const std::vector< mrpt::math::TPoint3D > &in_geocentric_points, std::vector< mrpt::math::TPoint3D > &out_ENU_points, const TGeodeticCoords &in_coords_origin)
 
void mrpt::topography::geodeticToGeocentric_WGS84 (const TGeodeticCoords &in_coords, mrpt::math::TPoint3D &out_point)
 Coordinates transformation from longitude/latitude/height to geocentric X/Y/Z coordinates (with a WGS84 geoid). More...
 
void mrpt::topography::geodeticToGeocentric (const TGeodeticCoords &in_coords, TGeocentricCoords &out_point, const TEllipsoid &ellip)
 Coordinates transformation from longitude/latitude/height to geocentric X/Y/Z coordinates (with an specified geoid). More...
 
void mrpt::topography::geocentricToGeodetic (const TGeocentricCoords &in_point, TGeodeticCoords &out_coords, const TEllipsoid &ellip=TEllipsoid::Ellipsoid_WGS84())
 Coordinates transformation from geocentric X/Y/Z coordinates to longitude/latitude/height. More...
 
void mrpt::topography::transform7params (const mrpt::math::TPoint3D &in_point, const TDatum7Params &in_datum, mrpt::math::TPoint3D &out_point)
 7-parameter Bursa-Wolf transformation: [ X Y Z ]_WGS84 = [ dX dY dZ ] + ( 1 + dS ) [ 1 RZ -RY; -RZ 1 RX; RY -RX 1 ] [ X Y Z ]_local More...
 
void mrpt::topography::transform7params_TOPCON (const mrpt::math::TPoint3D &in_point, const TDatum7Params_TOPCON &in_datum, mrpt::math::TPoint3D &out_point)
 7-parameter Bursa-Wolf transformation TOPCON: [ X Y Z ]_WGS84 = [ dX dY dZ ] + ( 1 + dS ) [ 1 RZ -RY; -RZ 1 RX; RY -RX 1 ] [ X Y Z ]_local More...
 
void mrpt::topography::transform10params (const mrpt::math::TPoint3D &in_point, const TDatum10Params &in_datum, mrpt::math::TPoint3D &out_point)
 10-parameter Molodensky-Badekas transformation: [ X Y Z ]_WGS84 = [ dX dY dZ ] + ( 1 + dS ) [ 1 RZ -RY; -RZ 1 RX; RY -RX 1 ] [ X-Xp Y-Yp Z-Zp ]_local + [Xp Yp Zp] More...
 
void mrpt::topography::transformHelmert2D (const mrpt::math::TPoint2D &p, const TDatumHelmert2D &d, mrpt::math::TPoint2D &o)
 Helmert 2D transformation: [ X Y ]_WGS84 = [ dX dY ] + ( 1 + dS ) [ cos(alpha) -sin(alpha); sin(alpha) cos(alpha) ] [ X-Xp Y-Yp Z-Zp ]_local + [Xp Yp Zp]. More...
 
void mrpt::topography::transformHelmert2D_TOPCON (const mrpt::math::TPoint2D &p, const TDatumHelmert2D_TOPCON &d, mrpt::math::TPoint2D &o)
 Helmert 2D transformation: [ X Y ]_WGS84 = [ dX dY ] + ( 1 + dS ) [ cos(alpha) -sin(alpha); sin(alpha) cos(alpha) ] [ X-Xp Y-Yp Z-Zp ]_local + [Xp Yp Zp]. More...
 
void mrpt::topography::transformHelmert3D (const mrpt::math::TPoint3D &p, const TDatumHelmert3D &d, mrpt::math::TPoint3D &o)
 Helmert3D transformation: [ X Y Z ]_WGS84 = [ dX dY dZ ] + ( 1 + dS ) [ 1 -RZ RY; RZ 1 -RX; -RY RX 1 ] [ X Y Z ]_local. More...
 
void mrpt::topography::transformHelmert3D_TOPCON (const mrpt::math::TPoint3D &p, const TDatumHelmert3D_TOPCON &d, mrpt::math::TPoint3D &o)
 Helmert 3D transformation: [ X Y ]_WGS84 = [ dX dY ] + ( 1 + dS ) [ cos(alpha) -sin(alpha); sin(alpha) cos(alpha) ] [ X-Xp Y-Yp Z-Zp ]_local + [Xp Yp Zp]. More...
 
void mrpt::topography::transform1D (const mrpt::math::TPoint3D &p, const TDatum1DTransf &d, mrpt::math::TPoint3D &o)
 1D transformation: [ Z ]_WGS84 = (dy * X - dx * Y + Z)*(1+e)+DZ More...
 
void mrpt::topography::transfInterpolation (const mrpt::math::TPoint3D &p, const TDatumTransfInterpolation &d, mrpt::math::TPoint3D &o)
 Interpolation: [ Z ]_WGS84 = (dy * X - dx * Y + Z)*(1+e)+DZ. More...
 
void mrpt::topography::UTMToGeodetic (double X, double Y, int zone, char hem, double &out_lon, double &out_lat, const TEllipsoid &ellip=TEllipsoid::Ellipsoid_WGS84())
 Returns the Geodetic coordinates of the UTM input point. More...
 
void mrpt::topography::UTMToGeodetic (const TUTMCoords &UTMCoords, int zone, char hem, TGeodeticCoords &GeodeticCoords, const TEllipsoid &ellip=TEllipsoid::Ellipsoid_WGS84())
 Returns the Geodetic coordinates of the UTM input point. More...
 
void mrpt::topography::GeodeticToUTM (double in_latitude_degrees, double in_longitude_degrees, double &out_UTM_x, double &out_UTM_y, int &out_UTM_zone, char &out_UTM_latitude_band, const TEllipsoid &ellip=TEllipsoid::Ellipsoid_WGS84())
 Convert latitude and longitude coordinates into UTM coordinates, computing the corresponding UTM zone and latitude band. More...
 
void mrpt::topography::geodeticToUTM (const TGeodeticCoords &GeodeticCoords, TUTMCoords &UTMCoords, int &UTMZone, char &UTMLatitudeBand, const TEllipsoid &ellip=TEllipsoid::Ellipsoid_WGS84())
 
void mrpt::topography::GeodeticToUTM (const TGeodeticCoords &GeodeticCoords, TUTMCoords &UTMCoords, int &UTMZone, char &UTMLatitudeBand, const TEllipsoid &ellip=TEllipsoid::Ellipsoid_WGS84())
 Convert latitude and longitude coordinates into UTM coordinates, computing the corresponding UTM zone and latitude band. More...
 

Miscellaneous

=======================================================================

void mrpt::topography::ENU_axes_from_WGS84 (double in_longitude_reference_degrees, double in_latitude_reference_degrees, double in_height_reference_meters, mrpt::math::TPose3D &out_ENU, bool only_angles=false)
 Returns the East-North-Up (ENU) coordinate system associated to the given point. More...
 
void mrpt::topography::ENU_axes_from_WGS84 (const TGeodeticCoords &in_coords, mrpt::math::TPose3D &out_ENU, bool only_angles=false)
 

Data structures

using mrpt::topography::TUTMCoords = mrpt::math::TPoint3D
 
using mrpt::topography::TGeocentricCoords = mrpt::math::TPoint3D
 
bool mrpt::topography::operator== (const TCoords &a, const TCoords &o)
 
bool mrpt::topography::operator!= (const TCoords &a, const TCoords &o)
 
std::ostream & mrpt::topography::operator<< (std::ostream &out, const TCoords &o)
 
bool mrpt::topography::operator== (const TGeodeticCoords &a, const TGeodeticCoords &o)
 
bool mrpt::topography::operator!= (const TGeodeticCoords &a, const TGeodeticCoords &o)
 

Typedef Documentation

◆ TGeocentricCoords

Definition at line 188 of file data_types.h.

◆ TUTMCoords

Definition at line 187 of file data_types.h.

Function Documentation

◆ ENU_axes_from_WGS84() [1/2]

void mrpt::topography::ENU_axes_from_WGS84 ( double  in_longitude_reference_degrees,
double  in_latitude_reference_degrees,
double  in_height_reference_meters,
mrpt::math::TPose3D out_ENU,
bool  only_angles = false 
)

Returns the East-North-Up (ENU) coordinate system associated to the given point.

This is the reference employed in geodeticToENU_WGS84

Parameters
only_anglesIf set to true, the (x,y,z) fields will be left zeroed.
Note
The "Up" (Z) direction in ENU is the normal to the ellipsoid, which coincides with the direction of an increasing geodetic height.
See also
geodeticToENU_WGS84

Definition at line 150 of file conversions.cpp.

References mrpt::poses::CPose3D::asTPose(), DEG2RAD, mrpt::topography::geodeticToGeocentric_WGS84(), mrpt::math::TPoint3D_data< T >::x, mrpt::math::TPoint3D_data< T >::y, and mrpt::math::TPoint3D_data< T >::z.

Referenced by mrpt::topography::ENU_axes_from_WGS84().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ENU_axes_from_WGS84() [2/2]

void mrpt::topography::ENU_axes_from_WGS84 ( const TGeodeticCoords in_coords,
mrpt::math::TPose3D out_ENU,
bool  only_angles = false 
)
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 264 of file conversions.h.

References mrpt::topography::ENU_axes_from_WGS84(), mrpt::topography::TGeodeticCoords::height, mrpt::topography::TGeodeticCoords::lat, and mrpt::topography::TGeodeticCoords::lon.

Here is the call graph for this function:

◆ ENUToGeocentric()

void mrpt::topography::ENUToGeocentric ( const mrpt::math::TPoint3D p,
const TGeodeticCoords in_coords_origin,
TGeocentricCoords out_coords,
const TEllipsoid ellip 
)

ENU to geocentric coordinates.

See also
geodeticToENU_WGS84

Definition at line 659 of file conversions.cpp.

References mrpt::math::crossProduct3D(), mrpt::topography::geodeticToGeocentric(), mrpt::math::normalize(), mrpt::math::TPoint3D_data< T >::x, mrpt::math::TPoint3D_data< T >::y, and mrpt::math::TPoint3D_data< T >::z.

Here is the call graph for this function:

◆ geocentricToENU_WGS84() [1/2]

void mrpt::topography::geocentricToENU_WGS84 ( const mrpt::math::TPoint3D in_geocentric_point,
mrpt::math::TPoint3D out_ENU_point,
const TGeodeticCoords in_coords_origin 
)

ENU to EFEC (Geocentric) coordinates.

See also
ENUToGeocentric, geodeticToENU_WGS84

Definition at line 60 of file conversions.cpp.

References DEG2RAD, mrpt::topography::geodeticToGeocentric_WGS84(), mrpt::topography::TGeodeticCoords::lat, mrpt::topography::TGeodeticCoords::lon, mrpt::math::TPoint3D_data< T >::x, mrpt::math::TPoint3D_data< T >::y, and mrpt::math::TPoint3D_data< T >::z.

Referenced by mrpt::topography::geodeticToENU_WGS84().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ geocentricToENU_WGS84() [2/2]

void mrpt::topography::geocentricToENU_WGS84 ( const std::vector< mrpt::math::TPoint3D > &  in_geocentric_points,
std::vector< mrpt::math::TPoint3D > &  out_ENU_points,
const TGeodeticCoords in_coords_origin 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 88 of file conversions.cpp.

References DEG2RAD, mrpt::topography::geodeticToGeocentric_WGS84(), mrpt::topography::TGeodeticCoords::lat, mrpt::topography::TGeodeticCoords::lon, mrpt::math::TPoint3D_data< T >::x, mrpt::math::TPoint3D_data< T >::y, and mrpt::math::TPoint3D_data< T >::z.

Here is the call graph for this function:

◆ geocentricToGeodetic()

void mrpt::topography::geocentricToGeodetic ( const TGeocentricCoords in_point,
TGeodeticCoords out_coords,
const TEllipsoid ellip = TEllipsoid::Ellipsoid_WGS84() 
)

Coordinates transformation from geocentric X/Y/Z coordinates to longitude/latitude/height.

See also
geodeticToGeocentric

Definition at line 265 of file conversions.cpp.

References mrpt::topography::TGeodeticCoords::height, mrpt::topography::TGeodeticCoords::lat, mrpt::topography::TGeodeticCoords::lon, RAD2DEG, mrpt::topography::TEllipsoid::sa, mrpt::topography::TEllipsoid::sb, mrpt::math::TPoint3D_data< T >::x, mrpt::math::TPoint3D_data< T >::y, and mrpt::math::TPoint3D_data< T >::z.

Referenced by do_test_geodetic_geocentric().

Here is the caller graph for this function:

◆ geodeticToENU_WGS84()

void mrpt::topography::geodeticToENU_WGS84 ( const TGeodeticCoords in_coords,
mrpt::math::TPoint3D out_ENU_point,
const TGeodeticCoords in_coords_origin 
)

Coordinates transformation from longitude/latitude/height to ENU (East-North-Up) X/Y/Z coordinates The WGS84 ellipsoid is used for the transformation.

The coordinates are in 3D relative to some user-provided point, with local X axis being east-ward, Y north-ward, Z up-ward. For an explanation, refer to http://en.wikipedia.org/wiki/Reference_ellipsoid

See also
coordinatesTransformation_WGS84_geocentric, ENU_axes_from_WGS84, ENUToGeocentric
Note
The "Up" (Z) direction in ENU is the normal to the ellipsoid, which coincides with the direction of an increasing geodetic height.

Definition at line 126 of file conversions.cpp.

References mrpt::topography::geocentricToENU_WGS84(), and mrpt::topography::geodeticToGeocentric_WGS84().

Referenced by mrpt::topography::path_from_rtk_gps(), and TEST().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ geodeticToGeocentric()

void mrpt::topography::geodeticToGeocentric ( const TGeodeticCoords in_coords,
TGeocentricCoords out_point,
const TEllipsoid ellip 
)

Coordinates transformation from longitude/latitude/height to geocentric X/Y/Z coordinates (with an specified geoid).

See also
geocentricToGeodetic

Definition at line 231 of file conversions.cpp.

References DEG2RAD, mrpt::topography::TGeodeticCoords::height, mrpt::topography::TGeodeticCoords::lat, mrpt::obs::gnss::lat, mrpt::topography::TGeodeticCoords::lon, mrpt::obs::gnss::lon, mrpt::topography::TEllipsoid::sa, mrpt::topography::TEllipsoid::sb, mrpt::square(), mrpt::math::TPoint3D_data< T >::x, mrpt::math::TPoint3D_data< T >::y, and mrpt::math::TPoint3D_data< T >::z.

Referenced by do_test_geodetic_geocentric(), and mrpt::topography::ENUToGeocentric().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ geodeticToGeocentric_WGS84()

void mrpt::topography::geodeticToGeocentric_WGS84 ( const TGeodeticCoords in_coords,
mrpt::math::TPoint3D out_point 
)

Coordinates transformation from longitude/latitude/height to geocentric X/Y/Z coordinates (with a WGS84 geoid).

The WGS84 ellipsoid is used for the transformation. The coordinates are in 3D where the reference is the center of the Earth. For an explanation, refer to http://en.wikipedia.org/wiki/Reference_ellipsoid

See also
geodeticToENU_WGS84

Definition at line 193 of file conversions.cpp.

References DEG2RAD, mrpt::topography::TGeodeticCoords::height, mrpt::topography::TGeodeticCoords::lat, mrpt::obs::gnss::lat, mrpt::topography::TGeodeticCoords::lon, mrpt::obs::gnss::lon, mrpt::square(), mrpt::math::TPoint3D_data< T >::x, mrpt::math::TPoint3D_data< T >::y, and mrpt::math::TPoint3D_data< T >::z.

Referenced by mrpt::topography::ENU_axes_from_WGS84(), mrpt::topography::geocentricToENU_WGS84(), and mrpt::topography::geodeticToENU_WGS84().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GeodeticToUTM() [1/2]

void mrpt::topography::GeodeticToUTM ( double  in_latitude_degrees,
double  in_longitude_degrees,
double &  out_UTM_x,
double &  out_UTM_y,
int &  out_UTM_zone,
char &  out_UTM_latitude_band,
const TEllipsoid ellip = TEllipsoid::Ellipsoid_WGS84() 
)

Convert latitude and longitude coordinates into UTM coordinates, computing the corresponding UTM zone and latitude band.

This method is based on public code by Gabriel Ruiz Martinez and Rafael Palacios. Example:

Input:
Lat=40.3154333 Lon=-3.4857166
Output:
x = 458731
y = 4462881
utm_zone = 30
utm_band = T
See also
http://www.mathworks.com/matlabcentral/fileexchange/10915

Definition at line 429 of file conversions.cpp.

References mrpt::obs::gnss::a1, mrpt::obs::gnss::a2, DEG2RAD, mrpt::fix(), mrpt::obs::gnss::lat, mrpt::obs::gnss::lon, mrpt::topography::TEllipsoid::sa, mrpt::topography::TEllipsoid::sb, and mrpt::square().

Referenced by mrpt::topography::GeodeticToUTM().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ geodeticToUTM()

void mrpt::topography::geodeticToUTM ( const TGeodeticCoords GeodeticCoords,
TUTMCoords UTMCoords,
int &  UTMZone,
char &  UTMLatitudeBand,
const TEllipsoid ellip = TEllipsoid::Ellipsoid_WGS84() 
)

◆ GeodeticToUTM() [2/2]

void mrpt::topography::GeodeticToUTM ( const TGeodeticCoords GeodeticCoords,
TUTMCoords UTMCoords,
int &  UTMZone,
char &  UTMLatitudeBand,
const TEllipsoid ellip = TEllipsoid::Ellipsoid_WGS84() 
)
inline

Convert latitude and longitude coordinates into UTM coordinates, computing the corresponding UTM zone and latitude band.

This method is based on public code by Gabriel Ruiz Martinez and Rafael Palacios. Example:

Input:
Lat=40.3154333 Lon=-3.4857166
Output:
x = 458731
y = 4462881
utm_zone = 30
utm_band = T
See also
http://www.mathworks.com/matlabcentral/fileexchange/10915

Definition at line 233 of file conversions.h.

References mrpt::topography::GeodeticToUTM(), mrpt::topography::TGeodeticCoords::height, mrpt::topography::TGeodeticCoords::lat, mrpt::topography::TGeodeticCoords::lon, mrpt::math::TPoint3D_data< T >::x, mrpt::math::TPoint3D_data< T >::y, and mrpt::math::TPoint3D_data< T >::z.

Here is the call graph for this function:

◆ operator!=() [1/2]

bool mrpt::topography::operator!= ( const TCoords a,
const TCoords o 
)

Definition at line 27 of file conversions.cpp.

◆ operator!=() [2/2]

bool mrpt::topography::operator!= ( const TGeodeticCoords a,
const TGeodeticCoords o 
)

Definition at line 36 of file conversions.cpp.

◆ operator<<()

std::ostream & mrpt::topography::operator<< ( std::ostream &  out,
const TCoords o 
)

Definition at line 52 of file conversions.cpp.

References mrpt::topography::TCoords::getAsString(), and out.

Here is the call graph for this function:

◆ operator==() [1/2]

bool mrpt::topography::operator== ( const TCoords a,
const TCoords o 
)

Definition at line 23 of file conversions.cpp.

References mrpt::topography::TCoords::decimal_value.

◆ operator==() [2/2]

bool mrpt::topography::operator== ( const TGeodeticCoords a,
const TGeodeticCoords o 
)

◆ path_from_rtk_gps()

void mrpt::topography::path_from_rtk_gps ( mrpt::poses::CPose3DInterpolator robot_path,
const mrpt::obs::CRawlog rawlog,
size_t  rawlog_first,
size_t  rawlog_last,
bool  isGUI = false,
bool  disableGPSInterp = false,
int  path_smooth_filter_size = 2,
TPathFromRTKInfo outInfo = nullptr 
)

Reconstruct the path of a vehicle equipped with 3 RTK GPSs.

Parameters
robot_path[OUT] The reconstructed vehicle path
rawlog[IN] The dataset. It must contain mrpt::obs::CObservationGPS observations with GGA datums.
rawlog_first[IN] The index of the first entry to process (first=0)
rawlog_last[IN] The index of the last entry to process
isGUI[IN] If set to true, some progress dialogs will be shown during the computation (requires MRPT built with support for wxWidgets).
disableGPSInterp[IN] Whether to interpolate missing GPS readings between very close datums.
path_smooth_filter_size[IN] Size of the window in the pitch & roll noise filtering.
outInfo[OUT] Optional output: additional information from the optimization

For more details on the method, refer to the paper: (...)

See also
mrpt::topography

Definition at line 43 of file path_from_rtk_gps.cpp.

References mrpt::obs::gnss::Message_NMEA_GGA::content_t::altitude_meters, ASSERT_, mrpt::math::averageWrap2Pi(), mrpt::poses::CPoseInterpolatorBase< DIM >::begin(), mrpt::topography::TPathFromRTKInfo::best_gps_path, mrpt::poses::CPose3DPDFGaussian::changeCoordinatesReference(), CLASS_ID, mrpt::poses::CPoseInterpolatorBase< DIM >::clear(), mrpt::math::CMatrixDynamic< T >::cols(), mrpt::poses::CPose3DPDFGaussian::cov, mrpt::d2f(), mrpt::math::TPoint3D_< T >::distanceTo(), mrpt::poses::CPoseInterpolatorBase< DIM >::end(), mrpt::obs::gnss::Message_NMEA_GGA::fields, mrpt::obs::gnss::Message_NMEA_GGA::content_t::fix_quality, mrpt::topography::geodeticToENU_WGS84(), mrpt::obs::CRawlog::getAsObservation(), mrpt::obs::gnss::Message_NMEA_GGA::getAsStruct(), mrpt::obs::CRawlog::getCommentTextAsConfigFile(), mrpt::obs::CRawlog::getType(), mrpt::poses::imSSLSLL, mrpt::poses::CPoseInterpolatorBase< DIM >::insert(), mrpt::math::MatrixBase< Scalar, Derived >::inverse_LLt(), mrpt::topography::TGeodeticCoords::isClear(), mrpt::obs::gnss::Message_NMEA_GGA::content_t::latitude_degrees, mrpt::obs::gnss::Message_NMEA_GGA::content_t::longitude_degrees, mrpt::topography::TPathFromRTKInfo::mahalabis_quality_measure, mrpt::math::mahalanobisDistance(), make_set(), mrpt::poses::CPose3DPDFGaussian::mean, MRPT_CHECK_NORMAL_NUMBER, MRPT_END, MRPT_START, mrpt::math::TPose3D::pitch, mrpt::math::CVectorDynamic< T >::push_back(), mrpt::poses::CPose3DQuat::quat(), mrpt::math::CQuaternion< T >::r(), mrpt::config::CConfigFileBase::read_double(), mrpt::config::CConfigFileBase::read_matrix(), mrpt::math::CVectorDynamic< T >::resize(), mrpt::math::TPose3D::roll, mrpt::math::CMatrixDynamic< T >::rows(), mrpt::tfest::se3_l2(), sect, mrpt::poses::CPose3D::setFromValues(), mrpt::poses::CPoseInterpolatorBase< DIM >::setInterpolationMethod(), mrpt::poses::CPoseInterpolatorBase< DIM >::setMaxTimeInterpolation(), mrpt::math::CMatrixDynamic< T >::setSize(), mrpt::poses::CPoseInterpolatorBase< DIM >::size(), mrpt::obs::CRawlog::size(), mrpt::math::TPoint3D_< T >::sqrDistanceTo(), mrpt::square(), THROW_EXCEPTION, mrpt::system::timeDifference(), mrpt::topography::TPathFromRTKInfo::vehicle_uncertainty, mrpt::topography::TPathFromRTKInfo::W_star, mrpt::math::TPoint3D_data< T >::x, mrpt::math::CQuaternion< T >::x(), mrpt::poses::CPoseOrPoint< DERIVEDCLASS, DIM >::x(), mrpt::math::TPoint3D_data< T >::y, mrpt::math::CQuaternion< T >::y(), mrpt::poses::CPoseOrPoint< DERIVEDCLASS, DIM >::y(), mrpt::math::TPoint3D_data< T >::z, and mrpt::math::CQuaternion< T >::z().

Referenced by TEST().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ transfInterpolation()

void mrpt::topography::transfInterpolation ( const mrpt::math::TPoint3D p,
const TDatumTransfInterpolation d,
mrpt::math::TPoint3D o 
)

◆ transform10params()

void mrpt::topography::transform10params ( const mrpt::math::TPoint3D p,
const TDatum10Params d,
mrpt::math::TPoint3D o 
)

◆ transform1D()

void mrpt::topography::transform1D ( const mrpt::math::TPoint3D p,
const TDatum1DTransf d,
mrpt::math::TPoint3D o 
)

◆ transform7params()

void mrpt::topography::transform7params ( const mrpt::math::TPoint3D p,
const TDatum7Params d,
mrpt::math::TPoint3D o 
)

7-parameter Bursa-Wolf transformation: [ X Y Z ]_WGS84 = [ dX dY dZ ] + ( 1 + dS ) [ 1 RZ -RY; -RZ 1 RX; RY -RX 1 ] [ X Y Z ]_local

See also
transform10params

Definition at line 524 of file conversions.cpp.

References mrpt::topography::TDatum7Params::dS, mrpt::topography::TDatum7Params::dX, mrpt::topography::TDatum7Params::dY, mrpt::topography::TDatum7Params::dZ, mrpt::topography::TDatum7Params::Rx, mrpt::topography::TDatum7Params::Ry, mrpt::topography::TDatum7Params::Rz, mrpt::math::TPoint3D_data< T >::x, mrpt::math::TPoint3D_data< T >::y, and mrpt::math::TPoint3D_data< T >::z.

Referenced by mrpt::topography::transformHelmert3D().

Here is the caller graph for this function:

◆ transform7params_TOPCON()

void mrpt::topography::transform7params_TOPCON ( const mrpt::math::TPoint3D p,
const TDatum7Params_TOPCON d,
mrpt::math::TPoint3D o 
)

◆ transformHelmert2D()

void mrpt::topography::transformHelmert2D ( const mrpt::math::TPoint2D p,
const TDatumHelmert2D d,
mrpt::math::TPoint2D o 
)

Helmert 2D transformation: [ X Y ]_WGS84 = [ dX dY ] + ( 1 + dS ) [ cos(alpha) -sin(alpha); sin(alpha) cos(alpha) ] [ X-Xp Y-Yp Z-Zp ]_local + [Xp Yp Zp].

See also
transformHelmert3D

Definition at line 576 of file conversions.cpp.

References mrpt::topography::TDatumHelmert2D::alpha, mrpt::topography::TDatumHelmert2D::dS, mrpt::topography::TDatumHelmert2D::dX, mrpt::topography::TDatumHelmert2D::dY, mrpt::math::TPoint2D_data< T >::x, mrpt::topography::TDatumHelmert2D::Xp, mrpt::math::TPoint2D_data< T >::y, and mrpt::topography::TDatumHelmert2D::Yp.

◆ transformHelmert2D_TOPCON()

void mrpt::topography::transformHelmert2D_TOPCON ( const mrpt::math::TPoint2D p,
const TDatumHelmert2D_TOPCON d,
mrpt::math::TPoint2D o 
)

Helmert 2D transformation: [ X Y ]_WGS84 = [ dX dY ] + ( 1 + dS ) [ cos(alpha) -sin(alpha); sin(alpha) cos(alpha) ] [ X-Xp Y-Yp Z-Zp ]_local + [Xp Yp Zp].

See also
transformHelmert3D

Definition at line 594 of file conversions.cpp.

References mrpt::topography::TDatumHelmert2D_TOPCON::a, mrpt::topography::TDatumHelmert2D_TOPCON::b, mrpt::topography::TDatumHelmert2D_TOPCON::c, mrpt::topography::TDatumHelmert2D_TOPCON::d, mrpt::math::TPoint2D_data< T >::x, and mrpt::math::TPoint2D_data< T >::y.

◆ transformHelmert3D()

void mrpt::topography::transformHelmert3D ( const mrpt::math::TPoint3D p,
const TDatumHelmert3D d,
mrpt::math::TPoint3D o 
)

Helmert3D transformation: [ X Y Z ]_WGS84 = [ dX dY dZ ] + ( 1 + dS ) [ 1 -RZ RY; RZ 1 -RX; -RY RX 1 ] [ X Y Z ]_local.

Helmert 3D transformation: [ X Y ]_WGS84 = [ dX dY ] + ( 1 + dS ) [ cos(alpha) -sin(alpha); sin(alpha) cos(alpha) ] [ X-Xp Y-Yp Z-Zp ]_local + [Xp Yp Zp].

See also
transformHelmert2D
transformHelmert3D

Definition at line 607 of file conversions.cpp.

References mrpt::topography::TDatumHelmert3D::dS, mrpt::topography::TDatumHelmert3D::dX, mrpt::topography::TDatumHelmert3D::dY, mrpt::topography::TDatumHelmert3D::dZ, mrpt::topography::TDatumHelmert3D::Rx, mrpt::topography::TDatumHelmert3D::Ry, mrpt::topography::TDatumHelmert3D::Rz, and mrpt::topography::transform7params().

Here is the call graph for this function:

◆ transformHelmert3D_TOPCON()

void mrpt::topography::transformHelmert3D_TOPCON ( const mrpt::math::TPoint3D p,
const TDatumHelmert3D_TOPCON d,
mrpt::math::TPoint3D o 
)

◆ UTMToGeodetic() [1/2]

void mrpt::topography::UTMToGeodetic ( double  X,
double  Y,
int  zone,
char  hem,
double &  out_lon,
double &  out_lat,
const TEllipsoid ellip = TEllipsoid::Ellipsoid_WGS84() 
)

Returns the Geodetic coordinates of the UTM input point.

Parameters
XEast coordinate of the input point.
YNorth coordinate of the input point.
zonetime zone (Spanish: "huso").
hemhemisphere ('N'/'n' for North or 'S'/s' for South ). An exception will be raised on any other value.
ellipthe reference ellipsoid used for the transformation (default: WGS84)
out_latOut latitude, in degrees.
out_lonOut longitude, in degrees.

Definition at line 295 of file conversions.cpp.

References mrpt::obs::gnss::A1, mrpt::obs::gnss::a2, ASSERT_, mrpt::obs::gnss::b2, eps, RAD2DEG, mrpt::topography::TEllipsoid::sa, mrpt::topography::TEllipsoid::sb, and mrpt::square().

Referenced by mrpt::topography::UTMToGeodetic().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ UTMToGeodetic() [2/2]

void mrpt::topography::UTMToGeodetic ( const TUTMCoords UTMCoords,
int  zone,
char  hem,
TGeodeticCoords GeodeticCoords,
const TEllipsoid ellip = TEllipsoid::Ellipsoid_WGS84() 
)
inline

Returns the Geodetic coordinates of the UTM input point.

Parameters
UTMCoordsUTM input coordinates.
zonetime zone (Spanish: "huso").
hemhemisphere ('N'/'n' for North or 'S'/s' for South ). An exception will be raised on any other value.
GeodeticCoordsOut geodetic coordinates.
ellipthe reference ellipsoid used for the transformation (default: WGS84)

Definition at line 180 of file conversions.h.

References mrpt::topography::TCoords::decimal_value, mrpt::topography::TGeodeticCoords::height, mrpt::topography::TGeodeticCoords::lat, mrpt::topography::TGeodeticCoords::lon, mrpt::topography::UTMToGeodetic(), mrpt::math::TPoint3D_data< T >::x, mrpt::math::TPoint3D_data< T >::y, and mrpt::math::TPoint3D_data< T >::z.

Here is the call graph for this function:



Page generated by Doxygen 1.8.14 for MRPT 2.0.2 Git: 9b4fd2465 Mon May 4 16:59:08 2020 +0200 at lun may 4 17:26:07 CEST 2020