NBTropModel Class Reference
[GPS solution algorithms and Tropospheric]

#include <TropModel.hpp>

Inheritance diagram for NBTropModel:

Inheritance graph
[legend]
Collaboration diagram for NBTropModel:

Collaboration graph
[legend]
List of all members.

Detailed Description

Tropospheric model developed by University of New Brunswick and described in "A Tropospheric Delay Model for the User of the Wide Area Augmentation System," J.

Paul Collins and Richard B. Langley, Technical Report No. 187, Dept. of Geodesy and Geomatics Engineering, University of New Brunswick, 1997. See particularly Appendix C.

This model includes a wet and dry component, and was designed for the user without access to measurements of temperature, pressure and relative humidity at ground level. Input of the receiver latitude, day of year and height above the ellipsoid are required, because the mapping functions depend on these quantities. In addition, if the weather (T,P,H) are not explicitly provided, this model interpolates a table of values, using latitude and day of year, to get the ground level weather parameters.

Usually, the caller will set the latitude and day of year at the same time the weather is set (if weather is available):

   NBTropModel nb;
   nb.setReceiverLatitude(lat);
   nb.setDayOfYear(doy);
   nb.setWeather(T,P,H);       // OPTIONAL

Then, when the correction (and/or delay and map) is computed, receiver height should be set before the call to correction(elevation):

   nb.setReceiverHeight(height);
   trop = nb.correction(elevation);

NB in this model, units of 'temp' are degrees Kelvin, and 'humid' is the water vapor partial pressure.

Definition at line 623 of file TropModel.hpp.

Public Member Functions

 NBTropModel (void)
 Empty constructor.
 NBTropModel (const double &lat, const int &day)
 Create a trop model using the minimum information: latitude and doy.
 NBTropModel (const double &lat, const int &day, const WxObservation &wx) throw (InvalidParameter)
 Create a trop model with weather.
 NBTropModel (const double &lat, const int &day, const double &T, const double &P, const double &H) throw (InvalidParameter)
 Create a tropospheric model from explicit weather data.
 NBTropModel (const double &ht, const double &lat, const int &day)
 Create a valid model from explicit input (weather will be estimated internally by this model).
virtual double correction (double elevation) const throw (InvalidTropModel)
 Compute and return the full tropospheric delay.
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 Xvt &RX, const Xvt &SV, const DayTime &tt) 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.
virtual double dry_mapping_function (double elevation) const throw (InvalidTropModel)
 Compute and return the mapping function for dry component of the troposphere.
virtual double wet_mapping_function (double elevation) const throw (InvalidTropModel)
 Compute and return the mapping function for wet component of the troposphere.
virtual void setWeather (const WxObservation &wx) throw (InvalidParameter)
 Re-define the tropospheric model with explicit weather data.
virtual void setWeather (const double &T, const double &P, const double &H) throw (InvalidParameter)
 Define the weather data; typically called just before correction().
void setWeather () throw (InvalidTropModel)
 configure the model to estimate the weather using lat and doy
void setReceiverHeight (const double &ht)
 Define the receiver height; this required before calling correction() or any of the zenith_delay or mapping_function routines.
void setReceiverLatitude (const double &lat)
 Define the latitude of the receiver; this is required before calling correction() or any of the zenith_delay or mapping_function routines.
void setDayOfYear (const int &d)
 Define the day of year; this is required before calling correction() or any of the zenith_delay or mapping_function routines.


Constructor & Destructor Documentation

NBTropModel void   ) 
 

Empty constructor.

Definition at line 919 of file TropModel.cpp.

NBTropModel const double &  lat,
const int &  day
 

Create a trop model using the minimum information: latitude and doy.

Interpolate the weather unless setWeather (optional) is called.

Parameters:
lat Latitude of the receiver in degrees.
day Day of year.

Definition at line 931 of file TropModel.cpp.

References NBTropModel::setDayOfYear(), NBTropModel::setReceiverLatitude(), and NBTropModel::setWeather().

NBTropModel const double &  lat,
const int &  day,
const WxObservation wx
throw (InvalidParameter)
 

Create a trop model with weather.

Parameters:
lat Latitude of the receiver in degrees.
day Day of year.
wx the weather to use for this correction.

Definition at line 944 of file TropModel.cpp.

NBTropModel const double &  lat,
const int &  day,
const double &  T,
const double &  P,
const double &  H
throw (InvalidParameter)
 

Create a tropospheric model from explicit weather data.

Parameters:
lat Latitude of the receiver in degrees.
day Day of year.
T temperature in degrees Celsius
P atmospheric pressure in millibars
H relative humidity in percent

Definition at line 961 of file TropModel.cpp.

NBTropModel const double &  ht,
const double &  lat,
const int &  day
 

Create a valid model from explicit input (weather will be estimated internally by this model).

Parameters:
ht Height of the receiver in meters.
lat Latitude of the receiver in degrees.
day Day of year.

Definition at line 979 of file TropModel.cpp.

References NBTropModel::setDayOfYear(), NBTropModel::setReceiverHeight(), NBTropModel::setReceiverLatitude(), and NBTropModel::setWeather().


Member Function Documentation

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 and timetag may vary; it computes the elevation (and other receiver location information) and passes them to appropriate set...() routines and the correction(elevation) routine.
Parameters:
RX Receiver position in ECEF cartesian coordinates (meters)
SV Satellite position in ECEF cartesian coordinates (meters)
tt Time tag of the signal

Reimplemented from TropModel.

Definition at line 1056 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 and timetag may vary; it computes the elevation (and other receiver location information) and passes them to appropriate set...() routines and the correction(elevation) routine.

Parameters:
RX Receiver position
SV Satellite position
tt Time tag of the signal

Reimplemented from TropModel.

Definition at line 1019 of file TropModel.cpp.

References GPSTK_THROW.

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

Compute and return the full tropospheric delay.

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

Reimplemented from TropModel.

Definition at line 990 of file TropModel.cpp.

References GPSTK_THROW.

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

Compute and return the mapping function for dry component of the troposphere.

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

Implements TropModel.

Definition at line 1126 of file TropModel.cpp.

References ABS, GPSTK_THROW, gpstk::Mad, gpstk::Mbd, gpstk::Mcd, and gpstk::sin().

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

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

Implements TropModel.

Definition at line 1066 of file TropModel.cpp.

References gpstk::beta(), gpstk::cos(), gpstk::exp(), GPSTK_THROW, log, and gpstk::ZB.

void setDayOfYear const int &  d  )  [virtual]
 

Define the day of year; this is required before calling correction() or any of the zenith_delay or mapping_function routines.

Parameters:
d Day of year.

Reimplemented from TropModel.

Definition at line 1280 of file TropModel.cpp.

References NBTropModel::setWeather().

Referenced by NBTropModel::NBTropModel().

void setReceiverHeight const double &  ht  )  [virtual]
 

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

Parameters:
ht Height of the receiver in meters.

Reimplemented from TropModel.

Definition at line 1258 of file TropModel.cpp.

References NBTropModel::setWeather().

Referenced by NBTropModel::NBTropModel().

void setReceiverLatitude const double &  lat  )  [virtual]
 

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

Parameters:
lat Latitude of the receiver in degrees.

Reimplemented from TropModel.

Definition at line 1269 of file TropModel.cpp.

References NBTropModel::setWeather().

Referenced by NBTropModel::NBTropModel().

void setWeather  )  throw (InvalidTropModel)
 

configure the model to estimate the weather using lat and doy

Definition at line 1233 of file TropModel.cpp.

References GPSTK_THROW, gpstk::ZP, gpstk::ZT, and gpstk::ZW.

Referenced by NBTropModel::NBTropModel(), NBTropModel::setDayOfYear(), NBTropModel::setReceiverHeight(), and NBTropModel::setReceiverLatitude().

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

Define the weather data; typically called just before correction().

Parameters:
T temperature in degrees Celsius
P atmospheric pressure in millibars
H relative humidity in percent

Reimplemented from TropModel.

Definition at line 1193 of file TropModel.cpp.

References gpstk::exp().

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

Re-define the tropospheric model with explicit weather data.

Typically called just before correction().

Parameters:
wx the weather to use for this correction

Reimplemented from TropModel.

Definition at line 1211 of file TropModel.cpp.

References gpstk::exp(), and GPSTK_RETHROW.

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

Compute and return the mapping function for wet component of the troposphere.

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

Implements TropModel.

Definition at line 1163 of file TropModel.cpp.

References GPSTK_THROW, gpstk::Maw, gpstk::Mbw, gpstk::Mcw, and gpstk::sin().

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

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

Implements TropModel.

Definition at line 1094 of file TropModel.cpp.

References gpstk::beta(), gpstk::cos(), gpstk::exp(), GPSTK_THROW, log, gpstk::ZB, and gpstk::ZL.


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