Public Member Functions | Private Attributes | List of all members
gnsstk::SaasTropModel Class Reference

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

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);
Note
in this model, units of 'temp' are degrees Celsius and humid actually stores water vapor partial pressure in mbars

Definition at line 80 of file SaasTropModel.hpp.

#include <SaasTropModel.hpp>

Inheritance diagram for gnsstk::SaasTropModel:
Inheritance graph
[legend]

Public Member Functions

virtual double correction (const Position &RX, const Position &SV, const CommonTime &tt)
 
virtual double correction (const Xvt &RX, const Xvt &SV, const CommonTime &tt)
 
virtual double correction (double elevation) const
 
virtual double dry_mapping_function (double elevation) const
 
virtual double dry_zenith_delay () const
 
virtual std::string name ()
 Return the name of the model. More...
 
 SaasTropModel ()
 Empty constructor. More...
 
 SaasTropModel (const double &lat, const int &day)
 
 SaasTropModel (const double &lat, const int &day, const double &T, const double &P, const double &H)
 
 SaasTropModel (const double &lat, const int &day, const WxObservation &wx)
 
void setDayOfYear (const int &d)
 
void setReceiverHeight (const double &ht)
 
void setReceiverLatitude (const double &lat)
 
virtual void setWeather (const double &T, const double &P, const double &H)
 
virtual void setWeather (const WxObservation &wx)
 
virtual double wet_mapping_function (double elevation) const
 
virtual double wet_zenith_delay () const
 
- Public Member Functions inherited from gnsstk::TropModel
bool isValid ()
 Return validity of model. More...
 
double SaasDryDelay (const double pr, const double lat, const double ht) const
 
virtual void setReceiverLongitude (const double &lon)
 
virtual ~TropModel ()
 Destructor. More...
 

Private Attributes

int doy
 day of year More...
 
double height
 height (m) of the receiver above the geoid More...
 
double latitude
 latitude (deg) of receiver More...
 
bool validDOY
 flag for valid day of year More...
 
bool validRxHeight
 flag for valid Rx longitude More...
 
bool validRxLatitude
 flag for valid Rx latitude More...
 
bool validWeather
 flag for valid weather More...
 

Additional Inherited Members

- Static Public Member Functions inherited from gnsstk::TropModel
static void weatherByStandardAtmosphereModel (const double &ht, double &T, double &P, double &H)
 
- Static Public Attributes inherited from gnsstk::TropModel
static const GNSSTK_EXPORT double CELSIUS_TO_KELVIN = 273.15
 
- Protected Attributes inherited from gnsstk::TropModel
double humid
 latest value of relative humidity (percent) More...
 
double press
 latest value of pressure (millibars) More...
 
double temp
 latest value of temperature (kelvin or celsius) More...
 
bool valid
 true only if current model parameters are valid More...
 

Constructor & Destructor Documentation

◆ SaasTropModel() [1/4]

gnsstk::SaasTropModel::SaasTropModel ( )

Empty constructor.

Definition at line 77 of file SaasTropModel.cpp.

◆ SaasTropModel() [2/4]

gnsstk::SaasTropModel::SaasTropModel ( const double &  lat,
const int &  day 
)

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

Parameters
latLatitude of the receiver in degrees.
dayDay of year.

Definition at line 86 of file SaasTropModel.cpp.

◆ SaasTropModel() [3/4]

gnsstk::SaasTropModel::SaasTropModel ( const double &  lat,
const int &  day,
const WxObservation wx 
)

Create a trop model with weather.

Parameters
latLatitude of the receiver in degrees.
dayDay of year.
wxthe weather to use for this correction.
Exceptions
InvalidParameter

Definition at line 96 of file SaasTropModel.cpp.

◆ SaasTropModel() [4/4]

gnsstk::SaasTropModel::SaasTropModel ( const double &  lat,
const int &  day,
const double &  T,
const double &  P,
const double &  H 
)

Create a tropospheric model from explicit weather data

Parameters
latLatitude of the receiver in degrees.
dayDay of year.
Ttemperature in degrees Celsius
Patmospheric pressure in millibars
Hrelative humidity in percent
Exceptions
InvalidParameter

Definition at line 107 of file SaasTropModel.cpp.

Member Function Documentation

◆ correction() [1/3]

double gnsstk::SaasTropModel::correction ( const Position RX,
const Position SV,
const CommonTime tt 
)
virtual

Compute and return the full tropospheric delay, in meters, 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
RXReceiver position
SVSatellite position
ttTime tag of the signal
Returns
The tropospheric delay (meters)
Exceptions
InvalidTropModel

Reimplemented from gnsstk::TropModel.

Definition at line 149 of file SaasTropModel.cpp.

◆ correction() [2/3]

double gnsstk::SaasTropModel::correction ( const Xvt RX,
const Xvt SV,
const CommonTime tt 
)
virtual

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

Deprecated:
This method is deprecated. Use correction(const Position&,const Position&,const CommonTime&) instead.

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
RXReceiver position in ECEF cartesian coordinates (meters)
SVSatellite position in ECEF cartesian coordinates (meters)
ttTime tag of the signal
Returns
The tropospheric delay (meters)
Exceptions
InvalidTropModel

Reimplemented from gnsstk::TropModel.

Definition at line 180 of file SaasTropModel.cpp.

◆ correction() [3/3]

double gnsstk::SaasTropModel::correction ( double  elevation) const
virtual

Compute and return the full tropospheric delay, in meters

Parameters
elevationElevation of satellite as seen at receiver, in degrees
Returns
The tropospheric delay (meters)
Exceptions
InvalidTropModel

Reimplemented from gnsstk::TropModel.

Definition at line 120 of file SaasTropModel.cpp.

◆ dry_mapping_function()

double gnsstk::SaasTropModel::dry_mapping_function ( double  elevation) const
virtual

Compute and return the mapping function for hydrostatic (dry) component of the troposphere, in meters.

Parameters
elevationElevation of satellite as seen at receiver, in degrees
Exceptions
InvalidTropModel

Implements gnsstk::TropModel.

Definition at line 224 of file SaasTropModel.cpp.

◆ dry_zenith_delay()

double gnsstk::SaasTropModel::dry_zenith_delay ( ) const
virtual

Compute and return the zenith delay for hydrostatic (dry) component of the troposphere, in meters.

Exceptions
InvalidTropModel

Implements gnsstk::TropModel.

Definition at line 189 of file SaasTropModel.cpp.

◆ name()

virtual std::string gnsstk::SaasTropModel::name ( )
inlinevirtual

Return the name of the model.

Reimplemented from gnsstk::TropModel.

Definition at line 119 of file SaasTropModel.hpp.

◆ setDayOfYear()

void gnsstk::SaasTropModel::setDayOfYear ( const int &  d)
virtual

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

Parameters
dDay of year.

Reimplemented from gnsstk::TropModel.

Definition at line 352 of file SaasTropModel.cpp.

◆ setReceiverHeight()

void gnsstk::SaasTropModel::setReceiverHeight ( const double &  ht)
virtual

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

Parameters
htHeight of the receiver above mean sea level, in meters.

Reimplemented from gnsstk::TropModel.

Definition at line 336 of file SaasTropModel.cpp.

◆ setReceiverLatitude()

void gnsstk::SaasTropModel::setReceiverLatitude ( const double &  lat)
virtual

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

Parameters
latLatitude of the receiver in degrees.

Reimplemented from gnsstk::TropModel.

Definition at line 344 of file SaasTropModel.cpp.

◆ setWeather() [1/2]

void gnsstk::SaasTropModel::setWeather ( const double &  T,
const double &  P,
const double &  H 
)
virtual

Re-define the tropospheric model with explicit weather data. Typically called just before correction().

Parameters
Ttemperature in degrees Celsius
Patmospheric pressure in millibars
Hrelative humidity in percent
Exceptions
InvalidParameter

Reimplemented from gnsstk::TropModel.

Definition at line 306 of file SaasTropModel.cpp.

◆ setWeather() [2/2]

void gnsstk::SaasTropModel::setWeather ( const WxObservation wx)
virtual

Re-define the tropospheric model with explicit weather data. Typically called just before correction().

Parameters
wxthe weather to use for this correction
Exceptions
InvalidParameter

Reimplemented from gnsstk::TropModel.

Definition at line 322 of file SaasTropModel.cpp.

◆ wet_mapping_function()

double gnsstk::SaasTropModel::wet_mapping_function ( double  elevation) const
virtual

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

Parameters
elevationElevation of satellite as seen at receiver, in degrees
Exceptions
InvalidTropModel

Implements gnsstk::TropModel.

Definition at line 273 of file SaasTropModel.cpp.

◆ wet_zenith_delay()

double gnsstk::SaasTropModel::wet_zenith_delay ( ) const
virtual

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

Exceptions
InvalidTropModel

Implements gnsstk::TropModel.

Definition at line 199 of file SaasTropModel.cpp.

Member Data Documentation

◆ doy

int gnsstk::SaasTropModel::doy
private

day of year

Definition at line 167 of file SaasTropModel.hpp.

◆ height

double gnsstk::SaasTropModel::height
private

height (m) of the receiver above the geoid

Definition at line 165 of file SaasTropModel.hpp.

◆ latitude

double gnsstk::SaasTropModel::latitude
private

latitude (deg) of receiver

Definition at line 166 of file SaasTropModel.hpp.

◆ validDOY

bool gnsstk::SaasTropModel::validDOY
private

flag for valid day of year

Definition at line 171 of file SaasTropModel.hpp.

◆ validRxHeight

bool gnsstk::SaasTropModel::validRxHeight
private

flag for valid Rx longitude

Definition at line 170 of file SaasTropModel.hpp.

◆ validRxLatitude

bool gnsstk::SaasTropModel::validRxLatitude
private

flag for valid Rx latitude

Definition at line 169 of file SaasTropModel.hpp.

◆ validWeather

bool gnsstk::SaasTropModel::validWeather
private

flag for valid weather

Definition at line 168 of file SaasTropModel.hpp.


The documentation for this class was generated from the following files:
gnsstk::SaasTropModel::doy
int doy
day of year
Definition: SaasTropModel.hpp:167
gnsstk::SaasTropModel::SaasTropModel
SaasTropModel()
Empty constructor.
Definition: SaasTropModel.cpp:77
gnsstk::SaasTropModel::height
double height
height (m) of the receiver above the geoid
Definition: SaasTropModel.hpp:165


gnsstk
Author(s):
autogenerated on Wed Oct 25 2023 02:40:45