MRPT
2.0.4
|
Topographic functions, geoid transformations.
Back to list of all libraries | See all modules
[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) |
using mrpt::topography::TGeocentricCoords = typedef mrpt::math::TPoint3D |
Definition at line 188 of file data_types.h.
using mrpt::topography::TUTMCoords = typedef mrpt::math::TPoint3D |
Definition at line 187 of file data_types.h.
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
only_angles | If set to true, the (x,y,z) fields will be left zeroed. |
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().
|
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 mrpt::topography::ENUToGeocentric | ( | const mrpt::math::TPoint3D & | p, |
const TGeodeticCoords & | in_coords_origin, | ||
TGeocentricCoords & | out_coords, | ||
const TEllipsoid & | ellip | ||
) |
ENU to geocentric coordinates.
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.
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.
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().
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.
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.
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().
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
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().
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).
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().
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
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().
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:
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().
void mrpt::topography::geodeticToUTM | ( | const TGeodeticCoords & | GeodeticCoords, |
TUTMCoords & | UTMCoords, | ||
int & | UTMZone, | ||
char & | UTMLatitudeBand, | ||
const TEllipsoid & | ellip = TEllipsoid::Ellipsoid_WGS84() |
||
) |
Definition at line 339 of file conversions.cpp.
References mrpt::obs::gnss::A1, DEG2RAD, eps, mrpt::fix(), 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::math::TPoint3D_data< T >::x, mrpt::math::TPoint3D_data< T >::y, and mrpt::math::TPoint3D_data< T >::z.
|
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 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.
Definition at line 27 of file conversions.cpp.
bool mrpt::topography::operator!= | ( | const TGeodeticCoords & | a, |
const TGeodeticCoords & | o | ||
) |
Definition at line 36 of file conversions.cpp.
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.
Definition at line 23 of file conversions.cpp.
References mrpt::topography::TCoords::decimal_value.
bool mrpt::topography::operator== | ( | const TGeodeticCoords & | a, |
const TGeodeticCoords & | o | ||
) |
Definition at line 31 of file conversions.cpp.
References mrpt::topography::TGeodeticCoords::height, mrpt::topography::TGeodeticCoords::lat, and mrpt::topography::TGeodeticCoords::lon.
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.
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: (...)
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().
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.
1D transformation: [ X;Y ]_WGS84 = [X;Y]_locales+[1 -sin(d.beta);0 cos(d.beta)]*[x*d.dSx;y*d.dSy ]
Definition at line 647 of file conversions.cpp.
References mrpt::topography::TDatumTransfInterpolation::beta, mrpt::topography::TDatumTransfInterpolation::dSx, mrpt::topography::TDatumTransfInterpolation::dSy, mrpt::topography::TDatumTransfInterpolation::dX, mrpt::topography::TDatumTransfInterpolation::dY, mrpt::math::TPoint3D_data< T >::x, mrpt::math::TPoint3D_data< T >::y, and mrpt::math::TPoint3D_data< T >::z.
void mrpt::topography::transform10params | ( | const mrpt::math::TPoint3D & | p, |
const TDatum10Params & | d, | ||
mrpt::math::TPoint3D & | o | ||
) |
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]
Definition at line 556 of file conversions.cpp.
References mrpt::topography::TDatum10Params::dS, mrpt::topography::TDatum10Params::dX, mrpt::topography::TDatum10Params::dY, mrpt::topography::TDatum10Params::dZ, mrpt::topography::TDatum10Params::Rx, mrpt::topography::TDatum10Params::Ry, mrpt::topography::TDatum10Params::Rz, mrpt::math::TPoint3D_data< T >::x, mrpt::topography::TDatum10Params::Xp, mrpt::math::TPoint3D_data< T >::y, mrpt::topography::TDatum10Params::Yp, mrpt::math::TPoint3D_data< T >::z, and mrpt::topography::TDatum10Params::Zp.
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
Definition at line 633 of file conversions.cpp.
References mrpt::topography::TDatum1DTransf::dS, mrpt::topography::TDatum1DTransf::dX, mrpt::topography::TDatum1DTransf::dY, mrpt::topography::TDatum1DTransf::DZ, mrpt::math::TPoint3D_data< T >::x, mrpt::math::TPoint3D_data< T >::y, and mrpt::math::TPoint3D_data< T >::z.
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
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().
void mrpt::topography::transform7params_TOPCON | ( | const mrpt::math::TPoint3D & | p, |
const TDatum7Params_TOPCON & | d, | ||
mrpt::math::TPoint3D & | o | ||
) |
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
Definition at line 540 of file conversions.cpp.
References mrpt::topography::TDatum7Params_TOPCON::dS, mrpt::topography::TDatum7Params_TOPCON::dX, mrpt::topography::TDatum7Params_TOPCON::dY, mrpt::topography::TDatum7Params_TOPCON::dZ, mrpt::topography::TDatum7Params_TOPCON::m11, mrpt::topography::TDatum7Params_TOPCON::m12, mrpt::topography::TDatum7Params_TOPCON::m13, mrpt::topography::TDatum7Params_TOPCON::m21, mrpt::topography::TDatum7Params_TOPCON::m22, mrpt::topography::TDatum7Params_TOPCON::m23, mrpt::topography::TDatum7Params_TOPCON::m31, mrpt::topography::TDatum7Params_TOPCON::m32, mrpt::topography::TDatum7Params_TOPCON::m33, mrpt::math::TPoint3D_data< T >::x, mrpt::math::TPoint3D_data< T >::y, and mrpt::math::TPoint3D_data< T >::z.
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].
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.
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].
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.
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].
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().
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].
Definition at line 620 of file conversions.cpp.
References mrpt::topography::TDatumHelmert3D_TOPCON::a, mrpt::topography::TDatumHelmert3D_TOPCON::b, mrpt::topography::TDatumHelmert3D_TOPCON::c, mrpt::topography::TDatumHelmert3D_TOPCON::d, mrpt::topography::TDatumHelmert3D_TOPCON::e, mrpt::topography::TDatumHelmert3D_TOPCON::f, mrpt::topography::TDatumHelmert3D_TOPCON::g, mrpt::math::TPoint3D_data< T >::x, mrpt::math::TPoint3D_data< T >::y, and mrpt::math::TPoint3D_data< T >::z.
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.
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. |
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().
|
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 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.
Page generated by Doxygen 1.8.14 for MRPT 2.0.4 Git: 33de1d0ad Sat Jun 20 11:02:42 2020 +0200 at sáb jun 20 17:35:17 CEST 2020 |