Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Attributes | List of all members
gnsstk::TropModel Class Referenceabstract

Detailed Description

Abstract base class for tropospheric models. The wet and hydrostatic (dry) components of the tropospheric delay are each the product of a zenith delay and a mapping function. Usually the zenith delay depends only on the weather (temperature, pressure and humidity), while the mapping function depends only on the satellite elevation, i.e. the geometry of satellite and receiver. This may not be true in complex models.

The full tropospheric delay is the sum of the wet and hydrostatic (dry) components. A TropModel is valid only when all the necessary information (weather + whatever else the model requires) is specified; An InvalidTropModel exception will be thrown when any correction() or zenith_delay() or mapping_function() routine is called for an invalid TropModel.

Definition at line 105 of file TropModel.hpp.

#include <TropModel.hpp>

Inheritance diagram for gnsstk::TropModel:
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 =0
 
virtual double dry_zenith_delay () const =0
 
bool isValid ()
 Return validity of model. More...
 
virtual std::string name ()
 Return the name of the model. More...
 
double SaasDryDelay (const double pr, const double lat, const double ht) const
 
virtual void setDayOfYear (const int &d)
 
virtual void setReceiverHeight (const double &ht)
 
virtual void setReceiverLatitude (const double &lat)
 
virtual void setReceiverLongitude (const double &lon)
 
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 =0
 
virtual double wet_zenith_delay () const =0
 
virtual ~TropModel ()
 Destructor. More...
 

Static Public Member Functions

static void weatherByStandardAtmosphereModel (const double &ht, double &T, double &P, double &H)
 

Static Public Attributes

static const GNSSTK_EXPORT double CELSIUS_TO_KELVIN = 273.15
 

Protected Attributes

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

◆ ~TropModel()

virtual gnsstk::TropModel::~TropModel ( )
inlinevirtual

Destructor.

Definition at line 111 of file TropModel.hpp.

Member Function Documentation

◆ correction() [1/3]

double gnsstk::TropModel::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 in gnsstk::ZeroTropModel, gnsstk::GlobalTropModel, gnsstk::NeillTropModel, gnsstk::MOPSTropModel, gnsstk::NBTropModel, gnsstk::GCATTropModel, gnsstk::SaasTropModel, and gnsstk::GGHeightTropModel.

Definition at line 66 of file TropModel.cpp.

◆ correction() [2/3]

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

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 in gnsstk::ZeroTropModel, gnsstk::NeillTropModel, gnsstk::MOPSTropModel, gnsstk::NBTropModel, gnsstk::GCATTropModel, gnsstk::SaasTropModel, and gnsstk::GGHeightTropModel.

Definition at line 164 of file TropModel.hpp.

◆ correction() [3/3]

double gnsstk::TropModel::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 in gnsstk::ZeroTropModel, gnsstk::GlobalTropModel, gnsstk::NBTropModel, gnsstk::NeillTropModel, gnsstk::MOPSTropModel, gnsstk::SaasTropModel, gnsstk::GGHeightTropModel, and gnsstk::GCATTropModel.

Definition at line 53 of file TropModel.cpp.

◆ dry_mapping_function()

virtual double gnsstk::TropModel::dry_mapping_function ( double  elevation) const
pure 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

Implemented in gnsstk::ZeroTropModel, gnsstk::NeillTropModel, gnsstk::GlobalTropModel, gnsstk::GCATTropModel, gnsstk::NBTropModel, gnsstk::SaasTropModel, gnsstk::GGHeightTropModel, gnsstk::GGTropModel, and gnsstk::SimpleTropModel.

◆ dry_zenith_delay()

virtual double gnsstk::TropModel::dry_zenith_delay ( ) const
pure virtual

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

Exceptions
InvalidTropModel

Implemented in gnsstk::ZeroTropModel, gnsstk::NeillTropModel, gnsstk::MOPSTropModel, gnsstk::GlobalTropModel, gnsstk::NBTropModel, gnsstk::GCATTropModel, gnsstk::SaasTropModel, gnsstk::GGHeightTropModel, gnsstk::GGTropModel, and gnsstk::SimpleTropModel.

◆ isValid()

bool gnsstk::TropModel::isValid ( )
inline

Return validity of model.

Definition at line 114 of file TropModel.hpp.

◆ name()

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

◆ SaasDryDelay()

double gnsstk::TropModel::SaasDryDelay ( const double  pr,
const double  lat,
const double  ht 
) const
inline

Saastamoinen hydrostatic zenith delay as modified by Davis for gravity. Used by multiple models. Ref. Leick, 3rd ed, pg 197, Leick, 4th ed, pg 482, and Saastamoinen 1973 Atmospheric correction for the troposphere and stratosphere in radio ranging of satellites. The use of artificial satellites for geodesy, Geophys. Monogr. Ser. 15, Amer. Geophys. Union, pp. 274-251, 1972. Davis, J.L, T.A. Herring, I.I. Shapiro, A.E.E. Rogers, and G. Elgered, Geodesy by Radio Interferometry: Effects of Atmospheric Modeling Errors on Estimates of Baseline Length, Radio Science, Vol. 20, No. 6, pp. 1593-1607, 1985.

Parameters
prpressure in millibars
latlatitude in degrees
htellipsoid height in meters

Definition at line 262 of file TropModel.hpp.

◆ setDayOfYear()

virtual void gnsstk::TropModel::setDayOfYear ( const int &  d)
inlinevirtual

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 in gnsstk::NeillTropModel, gnsstk::GlobalTropModel, gnsstk::MOPSTropModel, gnsstk::NBTropModel, and gnsstk::SaasTropModel.

Definition at line 242 of file TropModel.hpp.

◆ setReceiverHeight()

virtual void gnsstk::TropModel::setReceiverHeight ( const double &  ht)
inlinevirtual

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 in gnsstk::NeillTropModel, gnsstk::GlobalTropModel, gnsstk::MOPSTropModel, gnsstk::GCATTropModel, gnsstk::NBTropModel, gnsstk::GGHeightTropModel, and gnsstk::SaasTropModel.

Definition at line 222 of file TropModel.hpp.

◆ setReceiverLatitude()

virtual void gnsstk::TropModel::setReceiverLatitude ( const double &  lat)
inlinevirtual

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 in gnsstk::NeillTropModel, gnsstk::MOPSTropModel, gnsstk::GlobalTropModel, gnsstk::NBTropModel, and gnsstk::SaasTropModel.

Definition at line 229 of file TropModel.hpp.

◆ setReceiverLongitude()

virtual void gnsstk::TropModel::setReceiverLongitude ( const double &  lon)
inlinevirtual

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

Parameters
lonLongitude of receiver, in degrees East.

Reimplemented in gnsstk::GlobalTropModel.

Definition at line 235 of file TropModel.hpp.

◆ setWeather() [1/2]

void gnsstk::TropModel::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 in gnsstk::NeillTropModel, gnsstk::MOPSTropModel, gnsstk::GlobalTropModel, gnsstk::GCATTropModel, gnsstk::NBTropModel, gnsstk::SaasTropModel, gnsstk::GGHeightTropModel, gnsstk::GGTropModel, and gnsstk::SimpleTropModel.

Definition at line 85 of file TropModel.cpp.

◆ setWeather() [2/2]

void gnsstk::TropModel::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 in gnsstk::NeillTropModel, gnsstk::MOPSTropModel, gnsstk::GlobalTropModel, gnsstk::GCATTropModel, gnsstk::NBTropModel, gnsstk::GGHeightTropModel, gnsstk::SaasTropModel, gnsstk::GGTropModel, and gnsstk::SimpleTropModel.

Definition at line 120 of file TropModel.cpp.

◆ weatherByStandardAtmosphereModel()

void gnsstk::TropModel::weatherByStandardAtmosphereModel ( const double &  ht,
double &  T,
double &  P,
double &  H 
)
static

Get weather data by a standard atmosphere model reference to white paper of Bernese 5.0, P243

Parameters
htheight of the receiver in meters.
Ttemperature in degrees Celsius
Patmospheric pressure in millibars
Hrelative humidity in percent

Definition at line 144 of file TropModel.cpp.

◆ wet_mapping_function()

virtual double gnsstk::TropModel::wet_mapping_function ( double  elevation) const
pure 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

Implemented in gnsstk::ZeroTropModel, gnsstk::NeillTropModel, gnsstk::GlobalTropModel, gnsstk::GCATTropModel, gnsstk::NBTropModel, gnsstk::SaasTropModel, gnsstk::GGHeightTropModel, gnsstk::GGTropModel, and gnsstk::SimpleTropModel.

◆ wet_zenith_delay()

virtual double gnsstk::TropModel::wet_zenith_delay ( ) const
pure virtual

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

Exceptions
InvalidTropModel

Implemented in gnsstk::ZeroTropModel, gnsstk::NeillTropModel, gnsstk::MOPSTropModel, gnsstk::GlobalTropModel, gnsstk::GCATTropModel, gnsstk::NBTropModel, gnsstk::SaasTropModel, gnsstk::GGHeightTropModel, gnsstk::GGTropModel, and gnsstk::SimpleTropModel.

Member Data Documentation

◆ CELSIUS_TO_KELVIN

const double gnsstk::TropModel::CELSIUS_TO_KELVIN = 273.15
static

Definition at line 108 of file TropModel.hpp.

◆ humid

double gnsstk::TropModel::humid
protected

latest value of relative humidity (percent)

Definition at line 282 of file TropModel.hpp.

◆ press

double gnsstk::TropModel::press
protected

latest value of pressure (millibars)

Definition at line 281 of file TropModel.hpp.

◆ temp

double gnsstk::TropModel::temp
protected

latest value of temperature (kelvin or celsius)

Definition at line 280 of file TropModel.hpp.

◆ valid

bool gnsstk::TropModel::valid
protected

true only if current model parameters are valid

Definition at line 279 of file TropModel.hpp.


The documentation for this class was generated from the following files:


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