XYZ2NED Class Reference
[GPS solution algorithms and Tropospheric]

#include <XYZ2NED.hpp>

Inheritance diagram for XYZ2NED:

Inheritance graph
[legend]
Collaboration diagram for XYZ2NED:

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-Down (NED) topocentric system, centered at the provided reference location.

The NED system may be used when comparing the relative accuracy of a given GNSS data processing strategy. This is a "right-handed" system, and be aware that "down" is positive and "up" is negative.

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
   XYZ2NED baseChange(nominalPos);

   while(rin >> gRin)
   {
      gRin >> modelRef >> baseChange >> solver;
   }

The "XYZ2NED" 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 "XYZ2NED" 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:
XYZ2NEU.hpp

Definition at line 121 of file XYZ2NED.hpp.

Public Member Functions

 XYZ2NED ()
 Default constructor.
 XYZ2NED (const double &lat, const double &lon)
 Common constructor taking reference point latitude and longitude.
 XYZ2NED (const Position &refPos)
 Common constructor taking reference point Position object.
virtual XYZ2NEDsetLat (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 XYZ2NEDsetLon (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 XYZ2NEDsetLatLon (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 int getIndex (void) const
 Returns an index identifying this object.
virtual std::string getClassName (void) const
 Returns a string identifying this object.
virtual ~XYZ2NED ()
 Destructor.


Constructor & Destructor Documentation

XYZ2NED  )  [inline]
 

Default constructor.

Definition at line 127 of file XYZ2NED.hpp.

XYZ2NED 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 XYZ2NED.hpp.

XYZ2NED const Position refPos  ) 
 

Common constructor taking reference point Position object.

Parameters:
refPos Reference point Position object.

Definition at line 57 of file XYZ2NED.cpp.

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

virtual ~XYZ2NED  )  [inline, virtual]
 

Destructor.

Definition at line 230 of file XYZ2NED.hpp.


Member Function Documentation

std::string getClassName void   )  const [virtual]
 

Returns a string identifying this object.

Implements ProcessingClass.

Definition at line 48 of file XYZ2NED.cpp.

int getIndex void   )  const [virtual]
 

Returns an index identifying this object.

Implements ProcessingClass.

Definition at line 43 of file XYZ2NED.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 XYZ2NED.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 XYZ2NED.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 XYZ2NED.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 XYZ2NED.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 154 of file XYZ2NED.cpp.

References GPSTK_THROW.

XYZ2NED & 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 76 of file XYZ2NED.cpp.

XYZ2NED & 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 124 of file XYZ2NED.cpp.

Referenced by XYZ2NED::XYZ2NED().

XYZ2NED & 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 102 of file XYZ2NED.cpp.


The documentation for this class was generated from the following files:
Generated on Wed Feb 8 03:31:33 2012 for GPS ToolKit Software Library by  doxygen 1.3.9.1