#include <XYZ2NEU.hpp>
Inheritance diagram for XYZ2NEU:


The NEU system is commonly used when comparing the relative accuracy of a given GNSS data processing strategy. Be mindful, however, that NEU is a "left-handed" reference system, whereas geocentric ECEF and topocentric North-East-Down (NED) are "right-handed" systems.
A typical way to use this class follows:
RinexObsStream rin("ebre0300.02o"); // Reference position of receiver station Position nominalPos(4833520.2269, 41537.00768, 4147461.489); // Some more code and definitions here... // GDS object gnssRinex gRin; // Set model defaults. A typical C1-based modeling is used ModeledPR modelRef( nominalPos, ionoStore, mopsTM, bceStore, TypeID::C1, true ); // Let's define a new equation definition to adapt // solver object to base change TypeIDSet typeSet; typeSet.insert(TypeID::dLat); typeSet.insert(TypeID::dLon); typeSet.insert(TypeID::dH); typeSet.insert(TypeID::cdt); gnssEquationDefinition newEq(TypeID::prefitC, typeSet); // Declare (and tune) a SolverLMS object SolverLMS solver; solver.setDefaultEqDefinition(newEq); // Declare the base-changing object setting the reference position XYZ2NEU baseChange(nominalPos); while(rin >> gRin) { gRin >> modelRef >> baseChange >> solver; }
The "XYZ2NEU" object will visit every satellite in the GNSS data structure that is "gRin" and will apply a rotation matrix to coefficients dx, dy and dz of the design matrix, yielding corresponding dLat, dLon and dH for each satellite.
Take notice that the design matrix coefficients dx, dy and dz were computed by the "ModeledPR" object, so that step is mandatory.
Also, the "XYZ2NEU" class is effective when properly coupled with the "solver" object (be it based on LMS or WMS). In order to get this, you must instruct the "solver" object to get the solution using a geometry/design matrix based on dLat, dLon and dH, instead of the defaults (dx, dy and dz).
The later is achieved defining an appropriate "gnssEquationDefinition" object and instructing "solver" to use it as the default equation definition.
Definition at line 122 of file XYZ2NEU.hpp.
Public Member Functions | |
| XYZ2NEU () | |
| Default constructor. | |
| XYZ2NEU (const double &lat, const double &lon) | |
| Common constructor taking reference point latitude and longitude. | |
| XYZ2NEU (const Position &refPos) | |
| Common constructor taking reference point Position object. | |
| virtual XYZ2NEU & | setLat (const double &lat) |
| Method to set the latitude of the reference point, in degrees. | |
| virtual double | getLat (void) const |
| Method to get the latitude of the reference point, in degrees. | |
| virtual XYZ2NEU & | setLon (const double &lon) |
| Method to set the longitude of the reference point, in degrees. | |
| virtual double | getLon (void) const |
| Method to get the longitude of the reference point, in degrees. | |
| virtual XYZ2NEU & | setLatLon (const double &lat, const double &lon) |
| Method to simultaneously set the latitude and longitude of the reference point, in degrees. | |
| virtual satTypeValueMap & | Process (satTypeValueMap &gData) throw (ProcessingException) |
| Returns a reference to a satTypeValueMap object after converting from a geocentric reference system to a topocentric reference system. | |
| virtual gnssSatTypeValue & | Process (gnssSatTypeValue &gData) throw (ProcessingException) |
| Returns a reference to a gnssSatTypeValue object after converting from a geocentric reference system to a topocentric reference system. | |
| virtual gnssRinex & | Process (gnssRinex &gData) throw (ProcessingException) |
| Returns a reference to a gnnsRinex object after converting from a geocentric reference system to a topocentric reference system. | |
| virtual std::string | getClassName (void) const |
| Returns a string identifying this object. | |
| virtual | ~XYZ2NEU () |
| Destructor. | |
|
|
Default constructor.
Definition at line 127 of file XYZ2NEU.hpp. |
|
||||||||||||
|
Common constructor taking reference point latitude and longitude.
Definition at line 137 of file XYZ2NEU.hpp. |
|
|
Common constructor taking reference point Position object.
Definition at line 48 of file XYZ2NEU.cpp. References Position::getGeodeticLatitude(), Position::getLongitude(), and XYZ2NEU::setLatLon(). |
|
|
Destructor.
Definition at line 226 of file XYZ2NEU.hpp. |
|
|
Returns a string identifying this object.
Implements ProcessingClass. Definition at line 39 of file XYZ2NEU.cpp. |
|
|
Method to get the latitude of the reference point, in degrees.
Definition at line 160 of file XYZ2NEU.hpp. |
|
|
Method to get the longitude of the reference point, in degrees.
Definition at line 172 of file XYZ2NEU.hpp. |
|
|
Returns a reference to a gnnsRinex object after converting from a geocentric reference system to a topocentric reference system.
Implements ProcessingClass. Definition at line 216 of file XYZ2NEU.hpp. |
|
|
Returns a reference to a gnssSatTypeValue object after converting from a geocentric reference system to a topocentric reference system.
Implements ProcessingClass. Definition at line 205 of file XYZ2NEU.hpp. |
|
|
Returns a reference to a satTypeValueMap object after converting from a geocentric reference system to a topocentric reference system.
Definition at line 142 of file XYZ2NEU.cpp. References GPSTK_THROW. |
|
|
Method to set the latitude of the reference point, in degrees.
Definition at line 65 of file XYZ2NEU.cpp. |
|
||||||||||||
|
Method to simultaneously set the latitude and longitude of the reference point, in degrees.
Definition at line 112 of file XYZ2NEU.cpp. Referenced by XYZ2NEU::XYZ2NEU(). |
|
|
Method to set the longitude of the reference point, in degrees.
Definition at line 90 of file XYZ2NEU.cpp. |
1.3.9.1