MOPSTropModel Class Reference
[GPS solution algorithms and Tropospheric]

#include <TropModel.hpp>

Inheritance diagram for MOPSTropModel:

Inheritance graph
[legend]
Collaboration diagram for MOPSTropModel:

Collaboration graph
[legend]
List of all members.

Detailed Description

Tropospheric model implemented in the RTCA "Minimum Operational Performance Standards" (MOPS), version C.

This model is described in the RTCA "Minimum Operational Performance Standards" (MOPS), version C (RTCA/DO-229C), in Appendix A.4.2.4. Although originally developed for SBAS systems (EGNOS, WAAS), it may be suitable for other uses as well.

This model needs the day of year, satellite elevation (degrees), receiver height over mean sea level (meters) and receiver latitude in order to start computing.

On the other hand, the outputs are the tropospheric correction (in meters) and the sigma-squared of tropospheric delay residual error (meters^2).

A typical way to use this model follows:

   MOPSTropModel mopsTM;
   mopsTM.setReceiverLatitude(lat);
   mopsTM.setReceiverHeight(height);
   mopsTM.setDayOfYear(doy);

Once all the basic model parameters are set (latitude, height and day of year), then we are able to compute the tropospheric correction as a function of elevation:

   trop = mopsTM.correction(elevation);

Definition at line 1170 of file TropModel.hpp.

Public Member Functions

 MOPSTropModel (void)
 Empty constructor.
 MOPSTropModel (const double &ht)
 Constructor to create a MOPS trop model providing just the height of the receiver above mean sea level.
 MOPSTropModel (const double &ht, const double &lat, const int &doy)
 Constructor to create a MOPS trop model providing the height of the receiver above mean sea level (as defined by ellipsoid model), its latitude and the day of year.
 MOPSTropModel (const Position &RX, const DayTime &time)
 Constructor to create a MOPS trop model providing the position of the receiver and current time.
virtual double correction (double elevation) const throw (InvalidTropModel)
 Compute and return the full tropospheric delay.
virtual double correction (const Position &RX, const Position &SV) throw (InvalidTropModel)
 Compute and return the full tropospheric delay, given the positions of receiver and satellite.
virtual double correction (const Position &RX, const Position &SV, const DayTime &tt) throw (InvalidTropModel)
 Compute and return the full tropospheric delay, given the positions of receiver and satellite and the time tag.
virtual double correction (const Position &RX, const Position &SV, const int &doy) throw (InvalidTropModel)
 Compute and return the full tropospheric delay, given the positions of receiver and satellite and the day of the year.
virtual double correction (const Xvt &RX, const Xvt &SV) throw (InvalidTropModel)
virtual double correction (const Xvt &RX, const Xvt &SV, const DayTime &tt) throw (InvalidTropModel)
virtual double correction (const Xvt &RX, const Xvt &SV, const int &doy) throw (InvalidTropModel)
virtual double dry_zenith_delay (void) const throw (InvalidTropModel)
 Compute and return the zenith delay for dry component of the troposphere.
virtual double wet_zenith_delay (void) const throw (InvalidTropModel)
 Compute and return the zenith delay for wet component of the troposphere.
void setWeather () throw (InvalidTropModel)
 This method configure the model to estimate the weather using height, latitude and day of year (DOY).
virtual void setWeather (const double &T, const double &P, const double &H) throw (InvalidParameter)
 In MOPS tropospheric model, this is a dummy method kept here just for consistency.
virtual void setWeather (const WxObservation &wx) throw (InvalidParameter)
 In MOPS tropospheric model, this is a dummy method kept here just for consistency.
virtual void setReceiverHeight (const double &ht)
 Define the receiver height; this is required before calling correction() or any of the zenith_delay routines.
virtual void setReceiverLatitude (const double &lat)
 Define the receiver latitude; this is required before calling correction() or any of the zenith_delay routines.
virtual void setDayOfYear (const int &doy)
 Set the time when tropospheric correction will be computed for, in days of the year.
virtual void setDayOfYear (const DayTime &time)
 Set the time when tropospheric correction will be computed for, in days of the year.
virtual void setAllParameters (const DayTime &time, const Position &rxPos)
 Convenient method to set all model parameters in one pass.
double MOPSsigma2 (double elevation) throw (TropModel::InvalidTropModel)
 Compute and return the sigma-squared value of tropospheric delay residual error (meters^2).


Constructor & Destructor Documentation

MOPSTropModel void   ) 
 

Empty constructor.

Definition at line 1928 of file TropModel.cpp.

MOPSTropModel const double &  ht  )  [inline]
 

Constructor to create a MOPS trop model providing just the height of the receiver above mean sea level.

The other parameters must be set with the appropriate set methods before calling correction methods.

Parameters:
ht Height of the receiver above mean sea level, in meters.

Definition at line 1185 of file TropModel.hpp.

MOPSTropModel const double &  ht,
const double &  lat,
const int &  doy
 

Constructor to create a MOPS trop model providing the height of the receiver above mean sea level (as defined by ellipsoid model), its latitude and the day of year.

Parameters:
ht Height of the receiver above mean sea level, in meters.
lat Latitude of receiver, in degrees.
doy Day of year.

Definition at line 1945 of file TropModel.cpp.

References MOPSTropModel::setDayOfYear(), MOPSTropModel::setReceiverHeight(), and MOPSTropModel::setReceiverLatitude().

MOPSTropModel const Position RX,
const DayTime time
 

Constructor to create a MOPS trop model providing the position of the receiver and current time.

Parameters:
RX Receiver position.
time Time.

Definition at line 1961 of file TropModel.cpp.

References Position::getAltitude(), Position::getGeodeticLatitude(), MOPSTropModel::setDayOfYear(), MOPSTropModel::setReceiverHeight(), and MOPSTropModel::setReceiverLatitude().


Member Function Documentation

double correction const Xvt RX,
const Xvt SV,
const int &  doy
throw (InvalidTropModel) [virtual]
 

Deprecated:
Compute and return the full tropospheric delay, given the positions of receiver and satellite and the day of the year. This version is most useful within positioning algorithms, where the receiver position may vary; it computes the elevation (and other receiver location information as height and latitude) and passes them to appropriate methods.
Parameters:
RX Receiver position in ECEF cartesian coordinates (meters)
SV Satellite position in ECEF cartesian coordinates (meters)
doy Day of year.

Definition at line 2130 of file TropModel.cpp.

double correction const Xvt RX,
const Xvt SV,
const DayTime tt
throw (InvalidTropModel) [virtual]
 

Deprecated:
Compute and return the full tropospheric delay, given the positions of receiver and satellite and the time tag. This version is most useful within positioning algorithms, where the receiver position may vary; it computes the elevation (and other receiver location information as height and latitude) and passes them to appropriate methods.
Parameters:
RX Receiver position in ECEF cartesian coordinates (meters)
SV Satellite position in ECEF cartesian coordinates (meters)
tt Time (DayTime object).

Reimplemented from GCATTropModel.

Definition at line 2107 of file TropModel.cpp.

double correction const Xvt RX,
const Xvt SV
throw (InvalidTropModel) [virtual]
 

Deprecated:
Compute and return the full tropospheric delay, given the positions of receiver and satellite. . You must set time using method setReceiverDOY() before calling this method.
Parameters:
RX Receiver position in ECEF cartesian coordinates (meters).
SV Satellite position in ECEF cartesian coordinates (meters).

Definition at line 2087 of file TropModel.cpp.

double correction const Position RX,
const Position SV,
const int &  doy
throw (InvalidTropModel) [virtual]
 

Compute and return the full tropospheric delay, given the positions of receiver and satellite and the day of the year.

This version is most useful within positioning algorithms, where the receiver position may vary; it computes the elevation (and other receiver location information as height and latitude) and passes them to appropriate methods.

Parameters:
RX Receiver position.
SV Satellite position.
doy Day of year.

Definition at line 2068 of file TropModel.cpp.

double correction const Position RX,
const Position SV,
const DayTime tt
throw (InvalidTropModel) [virtual]
 

Compute and return the full tropospheric delay, given the positions of receiver and satellite and the time tag.

This version is most useful within positioning algorithms, where the receiver position may vary; it computes the elevation (and other receiver location information as height and latitude) and passes them to appropriate methods.

Parameters:
RX Receiver position.
SV Satellite position.
tt Time (DayTime object).

Reimplemented from GCATTropModel.

Definition at line 2048 of file TropModel.cpp.

double correction const Position RX,
const Position SV
throw (InvalidTropModel) [virtual]
 

Compute and return the full tropospheric delay, given the positions of receiver and satellite.

This version is most useful within positioning algorithms, where the receiver position may vary; it computes the elevation (and other receiver location information as height and latitude) and passes them to appropriate methods. You must set time using method setReceiverDOY() before calling this method.

Parameters:
RX Receiver position.
SV Satellite position.

Reimplemented from GCATTropModel.

Definition at line 2008 of file TropModel.cpp.

References GPSTK_RETHROW.

double correction double  elevation  )  const throw (InvalidTropModel) [virtual]
 

Compute and return the full tropospheric delay.

The receiver height, latitude and Day oy Year must has been set before using the appropriate constructor or the provided methods.

Parameters:
elevation Elevation of satellite as seen at receiver, in degrees.

Reimplemented from GCATTropModel.

Definition at line 1974 of file TropModel.cpp.

double dry_zenith_delay void   )  const throw (InvalidTropModel) [virtual]
 

Compute and return the zenith delay for dry component of the troposphere.

Reimplemented from GCATTropModel.

Definition at line 2144 of file TropModel.cpp.

References gpstk::beta(), and gpstk::pow().

double MOPSsigma2 double  elevation  )  throw (TropModel::InvalidTropModel)
 

Compute and return the sigma-squared value of tropospheric delay residual error (meters^2).

Parameters:
elevation Elevation of satellite as seen at receiver, in degrees

Definition at line 2348 of file TropModel.cpp.

void setAllParameters const DayTime time,
const Position rxPos
[virtual]
 

Convenient method to set all model parameters in one pass.

Parameters:
time Time object.
rxPos Receiver position object.

Definition at line 2324 of file TropModel.cpp.

References DayTime::DOY(), Position::getGeodeticLatitude(), Position::getHeight(), and MOPSTropModel::setWeather().

void setDayOfYear const DayTime time  )  [virtual]
 

Set the time when tropospheric correction will be computed for, in days of the year.

Parameters:
time Time object.

Definition at line 2305 of file TropModel.cpp.

References DayTime::DOY(), and MOPSTropModel::setWeather().

void setDayOfYear const int &  doy  )  [virtual]
 

Set the time when tropospheric correction will be computed for, in days of the year.

Parameters:
doy Day of the year.

Reimplemented from TropModel.

Definition at line 2278 of file TropModel.cpp.

References MOPSTropModel::setWeather().

Referenced by MOPSTropModel::MOPSTropModel().

void setReceiverHeight const double &  ht  )  [virtual]
 

Define the receiver height; this is required before calling correction() or any of the zenith_delay routines.

Parameters:
ht Height of the receiver above mean sea level, in meters.

Reimplemented from GCATTropModel.

Definition at line 2240 of file TropModel.cpp.

References MOPSTropModel::setWeather().

Referenced by MOPSTropModel::MOPSTropModel().

void setReceiverLatitude const double &  lat  )  [virtual]
 

Define the receiver latitude; this is required before calling correction() or any of the zenith_delay routines.

Parameters:
lat Latitude of receiver, in degrees.

Reimplemented from TropModel.

Definition at line 2259 of file TropModel.cpp.

References MOPSTropModel::setWeather().

Referenced by MOPSTropModel::MOPSTropModel().

virtual void setWeather const WxObservation wx  )  throw (InvalidParameter) [inline, virtual]
 

In MOPS tropospheric model, this is a dummy method kept here just for consistency.

Reimplemented from GCATTropModel.

Definition at line 1358 of file TropModel.hpp.

virtual void setWeather const double &  T,
const double &  P,
const double &  H
throw (InvalidParameter) [inline, virtual]
 

In MOPS tropospheric model, this is a dummy method kept here just for consistency.

Reimplemented from GCATTropModel.

Definition at line 1350 of file TropModel.hpp.

void setWeather  )  throw (InvalidTropModel)
 

This method configure the model to estimate the weather using height, latitude and day of year (DOY).

It is called automatically when setting those parameters.

Definition at line 2202 of file TropModel.cpp.

References GPSTK_RETHROW.

Referenced by MOPSTropModel::setAllParameters(), MOPSTropModel::setDayOfYear(), MOPSTropModel::setReceiverHeight(), and MOPSTropModel::setReceiverLatitude().

double wet_zenith_delay void   )  const throw (InvalidTropModel) [virtual]
 

Compute and return the zenith delay for wet component of the troposphere.

Reimplemented from GCATTropModel.

Definition at line 2172 of file TropModel.cpp.

References gpstk::beta(), and gpstk::pow().


The documentation for this class was generated from the following files:
Generated on Tue Jan 6 03:32:01 2009 for GPS ToolKit Software Library by  doxygen 1.3.9.1