SaasTropModel Class Reference
[GPS solution algorithms and Tropospheric]

#include <TropModel.hpp>

Inheritance diagram for SaasTropModel:

Inheritance graph
[legend]
Collaboration diagram for SaasTropModel:

Collaboration graph
[legend]
List of all members.

Detailed Description

Saastamoinen tropospheric model based on Saastamoinen, J., 'Atmospheric Correction for the Troposphere and Stratosphere in Radio Ranging of Satellites,' Geophysical Monograph 15, American Geophysical Union, 1972, and Ch 9 of McCarthy, D and Petit, G, IERS Conventions (2003), IERS Technical Note 32, IERS, 2004.

The mapping functions are from Neill, A.E., 1996, 'Global Mapping Functions for the Atmosphere Delay of Radio Wavelengths,' J. Geophys. Res., 101, pp. 3227-3246 (also see IERS TN 32).

This model includes a wet and dry component, and requires input of the geodetic latitude, day of year and height above the ellipsoid of the receiver.

Usually, the caller will set the latitude and day of year at the same time the weather is set SaasTropModel stm; stm.setReceiverLatitude(lat); stm.setDayOfYear(doy); stm.setWeather(T,P,H); Then, when the correction (and/or delay and map) is computed, receiver height should be set before the call to correction(elevation): stm.setReceiverHeight(height); trop_corr = stm.correction(elevation);

NB in this model, units of 'temp' are degrees Celsius and humid actually stores water vapor partial pressure in mbars

Definition at line 798 of file TropModel.hpp.

Public Member Functions

 SaasTropModel (void)
 Empty constructor.
 SaasTropModel (const double &lat, const int &day)
 Create a trop model using the minimum information: latitude and doy.
 SaasTropModel (const double &lat, const int &day, const WxObservation &wx) throw (InvalidParameter)
 Create a trop model with weather.
 SaasTropModel (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.
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 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

SaasTropModel void   ) 
 

Empty constructor.

Definition at line 1343 of file TropModel.cpp.

SaasTropModel const double &  lat,
const int &  day
 

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

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

Definition at line 1355 of file TropModel.cpp.

SaasTropModel 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 1368 of file TropModel.cpp.

SaasTropModel 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 1385 of file TropModel.cpp.


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 1468 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 1437 of file TropModel.cpp.

References GPSTK_RETHROW, and 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 1399 of file TropModel.cpp.

References GPSTK_RETHROW, and GPSTK_THROW.

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

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

NB this function will return infinity at zero elevation.

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

Implements TropModel.

Definition at line 1532 of file TropModel.cpp.

References GPSTK_THROW.

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 1478 of file TropModel.cpp.

References GPSTK_THROW.

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 1696 of file TropModel.cpp.

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 1678 of file TropModel.cpp.

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 1687 of file TropModel.cpp.

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 1643 of file TropModel.cpp.

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

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 1662 of file TropModel.cpp.

References 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 1594 of file TropModel.cpp.

References GPSTK_THROW.

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 1506 of file TropModel.cpp.

References GPSTK_THROW.


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