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

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):

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);
Note
In this model, units of 'temp' are degrees Kelvin, and 'humid' is the water vapor partial pressure.

Definition at line 86 of file NBTropModel.hpp.

#include <NBTropModel.hpp>

Inheritance diagram for gnsstk::NBTropModel:
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...
 
 NBTropModel ()
 Empty constructor. More...
 
 NBTropModel (const double &ht, const double &lat, const int &day)
 
 NBTropModel (const double &lat, const int &day)
 
 NBTropModel (const double &lat, const int &day, const double &T, const double &P, const double &H)
 
 NBTropModel (const double &lat, const int &day, const WxObservation &wx)
 
void setDayOfYear (const int &d)
 
void setReceiverHeight (const double &ht)
 
void setReceiverLatitude (const double &lat)
 
void setWeather ()
 
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
 
double height
 
bool interpolateWeather
 
double latitude
 
bool validDOY
 
bool validRxHeight
 
bool validRxLatitude
 
bool validWeather
 

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

◆ NBTropModel() [1/5]

gnsstk::NBTropModel::NBTropModel ( )

Empty constructor.

Definition at line 148 of file NBTropModel.cpp.

◆ NBTropModel() [2/5]

gnsstk::NBTropModel::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
latLatitude of the receiver in degrees.
dayDay of year.
Exceptions
InvalidParameter

Definition at line 154 of file NBTropModel.cpp.

◆ NBTropModel() [3/5]

gnsstk::NBTropModel::NBTropModel ( 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 165 of file NBTropModel.cpp.

◆ NBTropModel() [4/5]

gnsstk::NBTropModel::NBTropModel ( 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 177 of file NBTropModel.cpp.

◆ NBTropModel() [5/5]

gnsstk::NBTropModel::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
htHeight of the receiver in meters.
latLatitude of the receiver in degrees.
dayDay of year.
Exceptions
InvalidParameter

Definition at line 191 of file NBTropModel.cpp.

Member Function Documentation

◆ correction() [1/3]

double gnsstk::NBTropModel::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 216 of file NBTropModel.cpp.

◆ correction() [2/3]

double gnsstk::NBTropModel::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 233 of file NBTropModel.cpp.

◆ correction() [3/3]

double gnsstk::NBTropModel::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 205 of file NBTropModel.cpp.

◆ dry_mapping_function()

double gnsstk::NBTropModel::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 283 of file NBTropModel.cpp.

◆ dry_zenith_delay()

double gnsstk::NBTropModel::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 242 of file NBTropModel.cpp.

◆ name()

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

Return the name of the model.

Reimplemented from gnsstk::TropModel.

Definition at line 138 of file NBTropModel.hpp.

◆ setDayOfYear()

void gnsstk::NBTropModel::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 404 of file NBTropModel.cpp.

◆ setReceiverHeight()

void gnsstk::NBTropModel::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 384 of file NBTropModel.cpp.

◆ setReceiverLatitude()

void gnsstk::NBTropModel::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 394 of file NBTropModel.cpp.

◆ setWeather() [1/3]

void gnsstk::NBTropModel::setWeather ( )

Configure the model to estimate the weather using lat and doy

Exceptions
InvalidTropModel

Definition at line 360 of file NBTropModel.cpp.

◆ setWeather() [2/3]

void gnsstk::NBTropModel::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 325 of file NBTropModel.cpp.

◆ setWeather() [3/3]

void gnsstk::NBTropModel::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 340 of file NBTropModel.cpp.

◆ wet_mapping_function()

double gnsstk::NBTropModel::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 308 of file NBTropModel.cpp.

◆ wet_zenith_delay()

double gnsstk::NBTropModel::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 262 of file NBTropModel.cpp.

Member Data Documentation

◆ doy

int gnsstk::NBTropModel::doy
private

Definition at line 192 of file NBTropModel.hpp.

◆ height

double gnsstk::NBTropModel::height
private

Definition at line 190 of file NBTropModel.hpp.

◆ interpolateWeather

bool gnsstk::NBTropModel::interpolateWeather
private

Definition at line 189 of file NBTropModel.hpp.

◆ latitude

double gnsstk::NBTropModel::latitude
private

Definition at line 191 of file NBTropModel.hpp.

◆ validDOY

bool gnsstk::NBTropModel::validDOY
private

Definition at line 196 of file NBTropModel.hpp.

◆ validRxHeight

bool gnsstk::NBTropModel::validRxHeight
private

Definition at line 195 of file NBTropModel.hpp.

◆ validRxLatitude

bool gnsstk::NBTropModel::validRxLatitude
private

Definition at line 194 of file NBTropModel.hpp.

◆ validWeather

bool gnsstk::NBTropModel::validWeather
private

Definition at line 193 of file NBTropModel.hpp.


The documentation for this class was generated from the following files:
gnsstk::NBTropModel::height
double height
Definition: NBTropModel.hpp:190
gnsstk::NBTropModel::doy
int doy
Definition: NBTropModel.hpp:192
gnsstk::NBTropModel::NBTropModel
NBTropModel()
Empty constructor.
Definition: NBTropModel.cpp:148


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