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

Detailed Description

Tropospheric model implemented in the RTCA "Minimum Operational Performance Standards" (MOPS), version C.

This model is described in the RTCA "Minimum Operational Performance Standards" (MOPS), version C (RTCA/DO-229C), in Appendix A.4.2.4. Although originally developed for SBAS systems (EGNOS, WAAS), it may be suitable for other uses as well.

This model needs the day of year, satellite elevation (degrees), receiver height over mean sea level (meters) and receiver latitude in order to start computing.

On the other hand, the outputs are the tropospheric correction (in meters) and the sigma-squared of tropospheric delay residual error (meters^2).

A typical way to use this model follows:

mopsTM.setReceiverLatitude(lat);
mopsTM.setReceiverHeight(height);
mopsTM.setDayOfYear(doy);

Once all the basic model parameters are set (latitude, height and day of year), then we are able to compute the tropospheric correction as a function of elevation:

trop = mopsTM.correction(elevation);

Definition at line 81 of file MOPSTropModel.hpp.

#include <MOPSTropModel.hpp>

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

Public Member Functions

virtual double correction (const Position &RX, const Position &SV)
 
virtual double correction (const Position &RX, const Position &SV, const CommonTime &tt)
 
virtual double correction (const Position &RX, const Position &SV, const int &doy)
 
virtual double correction (const Xvt &RX, const Xvt &SV)
 
virtual double correction (const Xvt &RX, const Xvt &SV, const CommonTime &tt)
 
virtual double correction (const Xvt &RX, const Xvt &SV, const int &doy)
 
virtual double correction (double elevation) const
 
virtual double dry_zenith_delay () const
 
double MOPSsigma2 (double elevation)
 
 MOPSTropModel ()
 Empty constructor. More...
 
 MOPSTropModel (const double &ht)
 
 MOPSTropModel (const double &ht, const double &lat, const int &doy)
 
 MOPSTropModel (const Position &RX, const CommonTime &time)
 
virtual std::string name ()
 Return the name of the model. More...
 
virtual void setAllParameters (const CommonTime &time, const Position &rxPos)
 
virtual void setDayOfYear (const CommonTime &time)
 
virtual void setDayOfYear (const int &doy)
 
virtual void setReceiverHeight (const double &ht)
 
virtual 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_zenith_delay () const
 
- Public Member Functions inherited from gnsstk::GCATTropModel
virtual double dry_mapping_function (double elevation) const
 
 GCATTropModel ()
 Empty constructor. More...
 
 GCATTropModel (const double &ht)
 
virtual double mapping_function (double elevation) const
 
virtual double wet_mapping_function (double elevation) 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 Member Functions

virtual void prepareParameters ()
 
virtual void prepareTables ()
 

Private Attributes

Matrix< double > avr
 
Vector< double > fi0
 
double MOPSHeight
 
double MOPSLat
 
Vector< double > MOPSParameters
 
int MOPSTime
 
Matrix< double > svr
 
bool validHeight
 
bool validLat
 
bool validTime
 

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

◆ MOPSTropModel() [1/4]

gnsstk::MOPSTropModel::MOPSTropModel ( )

Empty constructor.

Definition at line 60 of file MOPSTropModel.cpp.

◆ MOPSTropModel() [2/4]

gnsstk::MOPSTropModel::MOPSTropModel ( const double &  ht)
inline

Constructor to create a MOPS trop model providing just the height of the receiver above mean sea level. The other parameters must be set with the appropriate set methods before calling correction methods.

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

Definition at line 96 of file MOPSTropModel.hpp.

◆ MOPSTropModel() [3/4]

gnsstk::MOPSTropModel::MOPSTropModel ( const double &  ht,
const double &  lat,
const int &  doy 
)

Constructor to create a MOPS trop model providing the height of the receiver above mean sea level (as defined by ellipsoid model), its latitude and the day of year.

Parameters
htHeight of the receiver above mean sea level, in meters.
latLatitude of receiver, in degrees.
doyDay of year.

Definition at line 69 of file MOPSTropModel.cpp.

◆ MOPSTropModel() [4/4]

gnsstk::MOPSTropModel::MOPSTropModel ( const Position RX,
const CommonTime time 
)

Constructor to create a MOPS trop model providing the position of the receiver and current time.

Parameters
RXReceiver position.
timeTime.

Definition at line 79 of file MOPSTropModel.cpp.

Member Function Documentation

◆ correction() [1/7]

double gnsstk::MOPSTropModel::correction ( const Position RX,
const Position SV 
)
virtual

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

This version is most useful within positioning algorithms, where the receiver position may vary; it computes the elevation (and other receiver location information as height and latitude) and passes them to appropriate methods. You must set time using method setReceiverDOY() before calling this method.

Parameters
RXReceiver position.
SVSatellite position.
Returns
The tropospheric delay (meters)
Exceptions
InvalidTropModel

Reimplemented from gnsstk::GCATTropModel.

Definition at line 104 of file MOPSTropModel.cpp.

◆ correction() [2/7]

double gnsstk::MOPSTropModel::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::GCATTropModel.

Definition at line 135 of file MOPSTropModel.cpp.

◆ correction() [3/7]

double gnsstk::MOPSTropModel::correction ( const Position RX,
const Position SV,
const int &  doy 
)
virtual

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

This version is most useful within positioning algorithms, where the receiver position may vary; it computes the elevation (and other receiver location information as height and latitude) and passes them to appropriate methods.

Parameters
RXReceiver position.
SVSatellite position.
doyDay of year.
Returns
The tropospheric delay (meters)
Exceptions
InvalidTropModel

Definition at line 145 of file MOPSTropModel.cpp.

◆ correction() [4/7]

double gnsstk::MOPSTropModel::correction ( const Xvt RX,
const Xvt SV 
)
virtual

Compute and return the full tropospheric delay, given the positions of receiver and satellite. . You must set time using method setReceiverDOY() before calling this method.

Deprecated:
This method is deprecated. Use correction(const Position&,const Position&) instead
Parameters
RXReceiver position in ECEF cartesian coordinates (meters).
SVSatellite position in ECEF cartesian coordinates (meters).
Returns
The tropospheric delay (meters)
Exceptions
InvalidTropModel

Definition at line 155 of file MOPSTropModel.cpp.

◆ correction() [5/7]

double gnsstk::MOPSTropModel::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::GCATTropModel.

Definition at line 164 of file MOPSTropModel.cpp.

◆ correction() [6/7]

double gnsstk::MOPSTropModel::correction ( const Xvt RX,
const Xvt SV,
const int &  doy 
)
virtual

Compute and return the full tropospheric delay, given the positions of receiver and satellite and the day of the year. This version is most useful within positioning algorithms, where the receiver position may vary; it computes the elevation (and other receiver location information as height and latitude) and passes them to appropriate methods.

Deprecated:
This method is deprecated. Use correction(const Position&,const Position&,const int&) instead
Parameters
RXReceiver position in ECEF cartesian coordinates (meters)
SVSatellite position in ECEF cartesian coordinates (meters)
doyDay of year.
Returns
The tropospheric delay (meters)
Exceptions
InvalidTropModel

Definition at line 175 of file MOPSTropModel.cpp.

◆ correction() [7/7]

double gnsstk::MOPSTropModel::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::GCATTropModel.

Definition at line 87 of file MOPSTropModel.cpp.

◆ dry_zenith_delay()

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

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

Exceptions
InvalidTropModel

Reimplemented from gnsstk::GCATTropModel.

Definition at line 186 of file MOPSTropModel.cpp.

◆ MOPSsigma2()

double gnsstk::MOPSTropModel::MOPSsigma2 ( double  elevation)

Compute and return the sigma-squared value of tropospheric delay residual error (meters^2).

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

Definition at line 350 of file MOPSTropModel.cpp.

◆ name()

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

Return the name of the model.

Reimplemented from gnsstk::GCATTropModel.

Definition at line 120 of file MOPSTropModel.hpp.

◆ prepareParameters()

void gnsstk::MOPSTropModel::prepareParameters ( )
privatevirtual

The MOPS tropospheric model needs to compute several extra parameters.

Exceptions
InvalidTropModel

Definition at line 373 of file MOPSTropModel.cpp.

◆ prepareTables()

void gnsstk::MOPSTropModel::prepareTables ( )
privatevirtual

Definition at line 447 of file MOPSTropModel.cpp.

◆ setAllParameters()

void gnsstk::MOPSTropModel::setAllParameters ( const CommonTime time,
const Position rxPos 
)
virtual

Convenient method to set all model parameters in one pass.

Parameters
timeTime object.
rxPosReceiver position object.

Definition at line 332 of file MOPSTropModel.cpp.

◆ setDayOfYear() [1/2]

void gnsstk::MOPSTropModel::setDayOfYear ( const CommonTime time)
virtual

Set the time when tropospheric correction will be computed for, in days of the year.

Parameters
timeTime object.

Definition at line 319 of file MOPSTropModel.cpp.

◆ setDayOfYear() [2/2]

void gnsstk::MOPSTropModel::setDayOfYear ( const int &  doy)
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 297 of file MOPSTropModel.cpp.

◆ setReceiverHeight()

void gnsstk::MOPSTropModel::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::GCATTropModel.

Definition at line 271 of file MOPSTropModel.cpp.

◆ setReceiverLatitude()

void gnsstk::MOPSTropModel::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 284 of file MOPSTropModel.cpp.

◆ setWeather() [1/3]

void gnsstk::MOPSTropModel::setWeather ( )

This method configure the model to estimate the weather using height, latitude and day of year (DOY). It is called automatically when setting those parameters.

Exceptions
InvalidTropModel

Definition at line 237 of file MOPSTropModel.cpp.

◆ setWeather() [2/3]

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

In MOPS tropospheric model, this is a dummy method kept here just for consistency.

Exceptions
InvalidTropModel

Reimplemented from gnsstk::GCATTropModel.

Definition at line 234 of file MOPSTropModel.hpp.

◆ setWeather() [3/3]

virtual void gnsstk::MOPSTropModel::setWeather ( const WxObservation wx)
inlinevirtual

In MOPS tropospheric model, this is a dummy method kept here just for consistency.

Exceptions
InvalidTropModel

Reimplemented from gnsstk::GCATTropModel.

Definition at line 244 of file MOPSTropModel.hpp.

◆ wet_zenith_delay()

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

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

Exceptions
InvalidTropModel

Reimplemented from gnsstk::GCATTropModel.

Definition at line 211 of file MOPSTropModel.cpp.

Member Data Documentation

◆ avr

Matrix<double> gnsstk::MOPSTropModel::avr
private

Definition at line 295 of file MOPSTropModel.hpp.

◆ fi0

Vector<double> gnsstk::MOPSTropModel::fi0
private

Definition at line 297 of file MOPSTropModel.hpp.

◆ MOPSHeight

double gnsstk::MOPSTropModel::MOPSHeight
private

Definition at line 289 of file MOPSTropModel.hpp.

◆ MOPSLat

double gnsstk::MOPSTropModel::MOPSLat
private

Definition at line 290 of file MOPSTropModel.hpp.

◆ MOPSParameters

Vector<double> gnsstk::MOPSTropModel::MOPSParameters
private

Definition at line 298 of file MOPSTropModel.hpp.

◆ MOPSTime

int gnsstk::MOPSTropModel::MOPSTime
private

Definition at line 291 of file MOPSTropModel.hpp.

◆ svr

Matrix<double> gnsstk::MOPSTropModel::svr
private

Definition at line 296 of file MOPSTropModel.hpp.

◆ validHeight

bool gnsstk::MOPSTropModel::validHeight
private

Definition at line 292 of file MOPSTropModel.hpp.

◆ validLat

bool gnsstk::MOPSTropModel::validLat
private

Definition at line 293 of file MOPSTropModel.hpp.

◆ validTime

bool gnsstk::MOPSTropModel::validTime
private

Definition at line 294 of file MOPSTropModel.hpp.


The documentation for this class was generated from the following files:
gnsstk::MOPSTropModel::MOPSTropModel
MOPSTropModel()
Empty constructor.
Definition: MOPSTropModel.cpp:60


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