Back to list of all libraries | See all modules
mrpt-topography
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 TOPO_IMPEXP | mrpt::topography::path_from_rtk_gps (mrpt::poses::CPose3DInterpolator &robot_path, const mrpt::slam::CRawlog &rawlog, size_t rawlog_first, size_t rawlog_last, bool isGUI=false, bool disableGPSInterp=false, int path_smooth_filter_size=2, TPathFromRTKInfo *outInfo=NULL) |
Reconstruct the path of a vehicle equipped with 3 RTK GPSs. More... | |
Topography coordinate conversion functions | |
void TOPO_IMPEXP | 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 TOPO_IMPEXP | 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 TOPO_IMPEXP | 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 TOPO_IMPEXP | 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 TOPO_IMPEXP | 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 TOPO_IMPEXP | 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 TOPO_IMPEXP | mrpt::topography::transform7params_TOPCON (const mrpt::math::TPoint3D &in_point, const TDatum7Params_TOPCON &in_datum, mrpt::math::TPoint3D &out_point) |
void TOPO_IMPEXP | 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 TOPO_IMPEXP | 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 TOPO_IMPEXP | mrpt::topography::transformHelmert2D_TOPCON (const mrpt::math::TPoint2D &p, const TDatumHelmert2D_TOPCON &d, mrpt::math::TPoint2D &o) |
void TOPO_IMPEXP | 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 TOPO_IMPEXP | mrpt::topography::transformHelmert3D_TOPCON (const mrpt::math::TPoint3D &p, const TDatumHelmert3D_TOPCON &d, mrpt::math::TPoint3D &o) |
void TOPO_IMPEXP | 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 TOPO_IMPEXP | 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 TOPO_IMPEXP | mrpt::topography::UTMToGeodetic (double X, double Y, int zone, char hem, double &out_lon, double &out_lat, TEllipsoid ellip=TEllipsoid::Ellipsoid_WGS84()) |
Returns the Geodetic coordinates of the UTM input point. More... | |
void | mrpt::topography::UTMToGeodetic (const TUTMCoords &UTMCoords, const int &zone, const char &hem, TGeodeticCoords &GeodeticCoords, TEllipsoid ellip=TEllipsoid::Ellipsoid_WGS84()) |
Returns the Geodetic coordinates of the UTM input point. More... | |
void TOPO_IMPEXP | 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, TEllipsoid ellip=TEllipsoid::Ellipsoid_WGS84()) |
Convert latitude and longitude coordinates into UTM coordinates, computing the corresponding UTM zone and latitude band. More... | |
void TOPO_IMPEXP | mrpt::topography::geodeticToUTM (const TGeodeticCoords &GeodeticCoords, TUTMCoords &UTMCoords, int &UTMZone, char &UTMLatitudeBand, TEllipsoid ellip=TEllipsoid::Ellipsoid_WGS84()) |
void | mrpt::topography::GeodeticToUTM (const TGeodeticCoords &GeodeticCoords, TUTMCoords &UTMCoords, int &UTMZone, char &UTMLatitudeBand, TEllipsoid ellip=TEllipsoid::Ellipsoid_WGS84()) |
Convert latitude and longitude coordinates into UTM coordinates, computing the corresponding UTM zone and latitude band. More... | |
Miscellaneous | |
======================================================================= | |
void TOPO_IMPEXP | 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 | |
typedef mrpt::math::TPoint3D | mrpt::topography::TUTMCoords |
typedef mrpt::math::TPoint3D | mrpt::topography::TGeocentricCoords |
bool TOPO_IMPEXP | mrpt::topography::operator== (const TCoords &a, const TCoords &o) |
bool TOPO_IMPEXP | mrpt::topography::operator!= (const TCoords &a, const TCoords &o) |
std::ostream TOPO_IMPEXP & | mrpt::topography::operator<< (std::ostream &out, const TCoords &o) |
bool TOPO_IMPEXP | mrpt::topography::operator== (const TGeodeticCoords &a, const TGeodeticCoords &o) |
bool TOPO_IMPEXP | mrpt::topography::operator!= (const TGeodeticCoords &a, const TGeodeticCoords &o) |
Definition at line 122 of file data_types.h.
Definition at line 121 of file data_types.h.
void TOPO_IMPEXP 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
only_angles | If set to true, the (x,y,z) fields will be left zeroed. |
Referenced by mrpt::topography::ENU_axes_from_WGS84().
|
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.
void TOPO_IMPEXP 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.
void TOPO_IMPEXP 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.
void TOPO_IMPEXP 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
void TOPO_IMPEXP 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).
void TOPO_IMPEXP 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
void TOPO_IMPEXP 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, | ||
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:
Referenced by mrpt::topography::GeodeticToUTM().
void TOPO_IMPEXP mrpt::topography::geodeticToUTM | ( | const TGeodeticCoords & | GeodeticCoords, |
TUTMCoords & | UTMCoords, | ||
int & | UTMZone, | ||
char & | UTMLatitudeBand, | ||
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:
Definition at line 231 of file conversions.h.
References mrpt::topography::GeodeticToUTM(), mrpt::topography::TGeodeticCoords::height, mrpt::topography::TGeodeticCoords::lat, mrpt::topography::TGeodeticCoords::lon, mrpt::math::TPoint3D::x, mrpt::math::TPoint3D::y, and mrpt::math::TPoint3D::z.
bool TOPO_IMPEXP mrpt::topography::operator!= | ( | const TCoords & | a, |
const TCoords & | o | ||
) |
bool TOPO_IMPEXP mrpt::topography::operator!= | ( | const TGeodeticCoords & | a, |
const TGeodeticCoords & | o | ||
) |
std::ostream TOPO_IMPEXP& mrpt::topography::operator<< | ( | std::ostream & | out, |
const TCoords & | o | ||
) |
bool TOPO_IMPEXP mrpt::topography::operator== | ( | const TCoords & | a, |
const TCoords & | o | ||
) |
bool TOPO_IMPEXP mrpt::topography::operator== | ( | const TGeodeticCoords & | a, |
const TGeodeticCoords & | o | ||
) |
void TOPO_IMPEXP mrpt::topography::path_from_rtk_gps | ( | mrpt::poses::CPose3DInterpolator & | robot_path, |
const mrpt::slam::CRawlog & | rawlog, | ||
size_t | rawlog_first, | ||
size_t | rawlog_last, | ||
bool | isGUI = false , |
||
bool | disableGPSInterp = false , |
||
int | path_smooth_filter_size = 2 , |
||
TPathFromRTKInfo * | outInfo = NULL |
||
) |
Reconstruct the path of a vehicle equipped with 3 RTK GPSs.
robot_path | [OUT] The reconstructed vehicle path |
rawlog | [IN] The dataset |
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: (...)
void TOPO_IMPEXP 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.
void TOPO_IMPEXP 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]
void TOPO_IMPEXP 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
void TOPO_IMPEXP 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
void TOPO_IMPEXP mrpt::topography::transform7params_TOPCON | ( | const mrpt::math::TPoint3D & | in_point, |
const TDatum7Params_TOPCON & | in_datum, | ||
mrpt::math::TPoint3D & | out_point | ||
) |
void TOPO_IMPEXP 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].
void TOPO_IMPEXP mrpt::topography::transformHelmert2D_TOPCON | ( | const mrpt::math::TPoint2D & | p, |
const TDatumHelmert2D_TOPCON & | d, | ||
mrpt::math::TPoint2D & | o | ||
) |
void TOPO_IMPEXP 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.
void TOPO_IMPEXP mrpt::topography::transformHelmert3D_TOPCON | ( | const mrpt::math::TPoint3D & | p, |
const TDatumHelmert3D_TOPCON & | d, | ||
mrpt::math::TPoint3D & | o | ||
) |
void TOPO_IMPEXP mrpt::topography::UTMToGeodetic | ( | double | X, |
double | Y, | ||
int | zone, | ||
char | hem, | ||
double & | out_lon, | ||
double & | out_lat, | ||
TEllipsoid | ellip = TEllipsoid::Ellipsoid_WGS84() |
||
) |
Returns the Geodetic coordinates of the UTM input point.
X | East coordinate of the input point. |
Y | North coordinate of the input point. |
zone | time zone (Spanish: "huso"). |
hem | hemisphere ('N'/'n' for North or 'S'/s' for South ). An exception will be raised on any other value. |
ellip | the reference ellipsoid used for the transformation (default: WGS84) |
out_lat | Out latitude, in degrees. |
out_lon | Out longitude, in degrees. |
Referenced by mrpt::topography::UTMToGeodetic().
|
inline |
Returns the Geodetic coordinates of the UTM input point.
UTMCoords | UTM input coordinates. |
zone | time zone (Spanish: "huso"). |
hem | hemisphere ('N'/'n' for North or 'S'/s' for South ). An exception will be raised on any other value. |
GeodeticCoords | Out geodetic coordinates. |
ellip | the reference ellipsoid used for the transformation (default: WGS84) |
Definition at line 175 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::x, mrpt::math::TPoint3D::y, and mrpt::math::TPoint3D::z.
Page generated by Doxygen 1.8.14 for MRPT 1.1.0 SVN: at lun oct 28 00:54:49 CET 2019 | Hosted on: |