XYZ2NEU Class Reference
[GPS solution algorithms and Tropospheric]

#include <XYZ2NEU.hpp>

Inheritance diagram for XYZ2NEU:

Inheritance graph
[legend]
Collaboration diagram for XYZ2NEU:

Collaboration graph
[legend]
List of all members.

Detailed Description

This class changes the reference base from an Earth-Centered, Earth-Fixed (ECEF) system to a North-East-Up (NEU) topocentric system, centered at the provided reference location.

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.

See also:
XYZ2NED.hpp

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 XYZ2NEUsetLat (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 XYZ2NEUsetLon (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 XYZ2NEUsetLatLon (const double &lat, const double &lon)
 Method to simultaneously set the latitude and longitude of the reference point, in degrees.
virtual satTypeValueMapProcess (satTypeValueMap &gData) throw (ProcessingException)
 Returns a reference to a satTypeValueMap object after converting from a geocentric reference system to a topocentric reference system.
virtual gnssSatTypeValueProcess (gnssSatTypeValue &gData) throw (ProcessingException)
 Returns a reference to a gnssSatTypeValue object after converting from a geocentric reference system to a topocentric reference system.
virtual gnssRinexProcess (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.


Constructor & Destructor Documentation

XYZ2NEU  )  [inline]
 

Default constructor.

Definition at line 127 of file XYZ2NEU.hpp.

XYZ2NEU const double &  lat,
const double &  lon
[inline]
 

Common constructor taking reference point latitude and longitude.

Parameters:
lat Latitude of the reference point.
lon Longitude of the reference point.

Definition at line 137 of file XYZ2NEU.hpp.

XYZ2NEU const Position refPos  ) 
 

Common constructor taking reference point Position object.

Parameters:
refPos Reference point Position object.

Definition at line 48 of file XYZ2NEU.cpp.

References Position::getGeodeticLatitude(), Position::getLongitude(), and XYZ2NEU::setLatLon().

virtual ~XYZ2NEU  )  [inline, virtual]
 

Destructor.

Definition at line 226 of file XYZ2NEU.hpp.


Member Function Documentation

std::string getClassName void   )  const [virtual]
 

Returns a string identifying this object.

Implements ProcessingClass.

Definition at line 39 of file XYZ2NEU.cpp.

virtual double getLat void   )  const [inline, virtual]
 

Method to get the latitude of the reference point, in degrees.

Definition at line 160 of file XYZ2NEU.hpp.

virtual double getLon void   )  const [inline, virtual]
 

Method to get the longitude of the reference point, in degrees.

Definition at line 172 of file XYZ2NEU.hpp.

virtual gnssRinex& Process gnssRinex gData  )  throw (ProcessingException) [inline, virtual]
 

Returns a reference to a gnnsRinex object after converting from a geocentric reference system to a topocentric reference system.

Parameters:
gData Data object holding the data.

Implements ProcessingClass.

Definition at line 216 of file XYZ2NEU.hpp.

virtual gnssSatTypeValue& Process gnssSatTypeValue gData  )  throw (ProcessingException) [inline, virtual]
 

Returns a reference to a gnssSatTypeValue object after converting from a geocentric reference system to a topocentric reference system.

Parameters:
gData Data object holding the data.

Implements ProcessingClass.

Definition at line 205 of file XYZ2NEU.hpp.

satTypeValueMap & Process satTypeValueMap gData  )  throw (ProcessingException) [virtual]
 

Returns a reference to a satTypeValueMap object after converting from a geocentric reference system to a topocentric reference system.

Parameters:
gData Data object holding the data.

Definition at line 142 of file XYZ2NEU.cpp.

References GPSTK_THROW.

XYZ2NEU & setLat const double &  lat  )  [virtual]
 

Method to set the latitude of the reference point, in degrees.

Parameters:
lat Latitude of the reference point, in degrees.
Warning:
If parameter 'lat' is outside the +90/-90 degrees range, then latitude will be set to 0 degrees.

Definition at line 65 of file XYZ2NEU.cpp.

XYZ2NEU & setLatLon const double &  lat,
const double &  lon
[virtual]
 

Method to simultaneously set the latitude and longitude of the reference point, in degrees.

Parameters:
lat Latitude of the reference point, in degrees.
lon Longitude of the reference point, in degrees.
Warning:
If parameter 'lat' is outside the +90/-90 degrees range, then latitude will be set to 0 degrees.

Definition at line 112 of file XYZ2NEU.cpp.

Referenced by XYZ2NEU::XYZ2NEU().

XYZ2NEU & setLon const double &  lon  )  [virtual]
 

Method to set the longitude of the reference point, in degrees.

Parameters:
lon Longitude of the reference point, in degrees.

Definition at line 90 of file XYZ2NEU.cpp.


The documentation for this class was generated from the following files:
Generated on Wed May 22 03:31:51 2013 for GPS ToolKit Software Library by  doxygen 1.3.9.1