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:
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:
Definition at line 81 of file MOPSTropModel.hpp.
#include <MOPSTropModel.hpp>
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 |
![]() | |
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 |
![]() | |
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 void | weatherByStandardAtmosphereModel (const double &ht, double &T, double &P, double &H) |
![]() | |
static const GNSSTK_EXPORT double | CELSIUS_TO_KELVIN = 273.15 |
![]() | |
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... | |
gnsstk::MOPSTropModel::MOPSTropModel | ( | ) |
Empty constructor.
Definition at line 60 of file MOPSTropModel.cpp.
|
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.
ht | Height of the receiver above mean sea level, in meters. |
Definition at line 96 of file MOPSTropModel.hpp.
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.
ht | Height of the receiver above mean sea level, in meters. |
lat | Latitude of receiver, in degrees. |
doy | Day of year. |
Definition at line 69 of file MOPSTropModel.cpp.
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.
RX | Receiver position. |
time | Time. |
Definition at line 79 of file MOPSTropModel.cpp.
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.
RX | Receiver position. |
SV | Satellite position. |
InvalidTropModel |
Reimplemented from gnsstk::GCATTropModel.
Definition at line 104 of file MOPSTropModel.cpp.
|
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.
RX | Receiver position |
SV | Satellite position |
tt | Time tag of the signal |
InvalidTropModel |
Reimplemented from gnsstk::GCATTropModel.
Definition at line 135 of file MOPSTropModel.cpp.
|
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.
RX | Receiver position. |
SV | Satellite position. |
doy | Day of year. |
InvalidTropModel |
Definition at line 145 of file MOPSTropModel.cpp.
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.
RX | Receiver position in ECEF cartesian coordinates (meters). |
SV | Satellite position in ECEF cartesian coordinates (meters). |
InvalidTropModel |
Definition at line 155 of file MOPSTropModel.cpp.
|
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.
RX | Receiver position in ECEF cartesian coordinates (meters) |
SV | Satellite position in ECEF cartesian coordinates (meters) |
tt | Time tag of the signal |
InvalidTropModel |
Reimplemented from gnsstk::GCATTropModel.
Definition at line 164 of file MOPSTropModel.cpp.
|
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.
RX | Receiver position in ECEF cartesian coordinates (meters) |
SV | Satellite position in ECEF cartesian coordinates (meters) |
doy | Day of year. |
InvalidTropModel |
Definition at line 175 of file MOPSTropModel.cpp.
|
virtual |
Compute and return the full tropospheric delay, in meters
elevation | Elevation of satellite as seen at receiver, in degrees |
InvalidTropModel |
Reimplemented from gnsstk::GCATTropModel.
Definition at line 87 of file MOPSTropModel.cpp.
|
virtual |
Compute and return the zenith delay for hydrostatic (dry) component of the troposphere, in meters.
InvalidTropModel |
Reimplemented from gnsstk::GCATTropModel.
Definition at line 186 of file MOPSTropModel.cpp.
double gnsstk::MOPSTropModel::MOPSsigma2 | ( | double | elevation | ) |
Compute and return the sigma-squared value of tropospheric delay residual error (meters^2).
elevation | Elevation of satellite as seen at receiver, in degrees |
InvalidTropModel |
Definition at line 350 of file MOPSTropModel.cpp.
|
inlinevirtual |
Return the name of the model.
Reimplemented from gnsstk::GCATTropModel.
Definition at line 120 of file MOPSTropModel.hpp.
|
privatevirtual |
The MOPS tropospheric model needs to compute several extra parameters.
InvalidTropModel |
Definition at line 373 of file MOPSTropModel.cpp.
|
privatevirtual |
Definition at line 447 of file MOPSTropModel.cpp.
|
virtual |
Convenient method to set all model parameters in one pass.
time | Time object. |
rxPos | Receiver position object. |
Definition at line 332 of file MOPSTropModel.cpp.
|
virtual |
Set the time when tropospheric correction will be computed for, in days of the year.
time | Time object. |
Definition at line 319 of file MOPSTropModel.cpp.
|
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.
d | Day of year. |
Reimplemented from gnsstk::TropModel.
Definition at line 297 of file MOPSTropModel.cpp.
|
virtual |
Define the receiver height; this is required by some models before calling correction() or any of the zenith_delay or mapping_function routines.
ht | Height of the receiver above mean sea level, in meters. |
Reimplemented from gnsstk::GCATTropModel.
Definition at line 271 of file MOPSTropModel.cpp.
|
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.
lat | Latitude of the receiver in degrees. |
Reimplemented from gnsstk::TropModel.
Definition at line 284 of file MOPSTropModel.cpp.
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.
InvalidTropModel |
Definition at line 237 of file MOPSTropModel.cpp.
|
inlinevirtual |
In MOPS tropospheric model, this is a dummy method kept here just for consistency.
InvalidTropModel |
Reimplemented from gnsstk::GCATTropModel.
Definition at line 234 of file MOPSTropModel.hpp.
|
inlinevirtual |
In MOPS tropospheric model, this is a dummy method kept here just for consistency.
InvalidTropModel |
Reimplemented from gnsstk::GCATTropModel.
Definition at line 244 of file MOPSTropModel.hpp.
|
virtual |
Compute and return the zenith delay for wet component of the troposphere, in meters.
InvalidTropModel |
Reimplemented from gnsstk::GCATTropModel.
Definition at line 211 of file MOPSTropModel.cpp.
|
private |
Definition at line 295 of file MOPSTropModel.hpp.
|
private |
Definition at line 297 of file MOPSTropModel.hpp.
|
private |
Definition at line 289 of file MOPSTropModel.hpp.
|
private |
Definition at line 290 of file MOPSTropModel.hpp.
|
private |
Definition at line 298 of file MOPSTropModel.hpp.
|
private |
Definition at line 291 of file MOPSTropModel.hpp.
|
private |
Definition at line 296 of file MOPSTropModel.hpp.
|
private |
Definition at line 292 of file MOPSTropModel.hpp.
|
private |
Definition at line 293 of file MOPSTropModel.hpp.
|
private |
Definition at line 294 of file MOPSTropModel.hpp.