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>
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... | |
|
inlinevirtual |
Destructor.
Definition at line 111 of file TropModel.hpp.
|
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 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.
|
inlinevirtual |
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 in gnsstk::ZeroTropModel, gnsstk::NeillTropModel, gnsstk::MOPSTropModel, gnsstk::NBTropModel, gnsstk::GCATTropModel, gnsstk::SaasTropModel, and gnsstk::GGHeightTropModel.
Definition at line 164 of file TropModel.hpp.
|
virtual |
Compute and return the full tropospheric delay, in meters
elevation | Elevation of satellite as seen at receiver, in degrees |
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.
|
pure virtual |
Compute and return the mapping function for hydrostatic (dry) component of the troposphere, in meters.
elevation | Elevation of satellite as seen at receiver, in degrees |
InvalidTropModel |
Implemented in gnsstk::ZeroTropModel, gnsstk::NeillTropModel, gnsstk::GlobalTropModel, gnsstk::GCATTropModel, gnsstk::NBTropModel, gnsstk::SaasTropModel, gnsstk::GGHeightTropModel, gnsstk::GGTropModel, and gnsstk::SimpleTropModel.
|
pure virtual |
Compute and return the zenith delay for hydrostatic (dry) component of the troposphere, in meters.
InvalidTropModel |
Implemented in gnsstk::ZeroTropModel, gnsstk::NeillTropModel, gnsstk::MOPSTropModel, gnsstk::GlobalTropModel, gnsstk::NBTropModel, gnsstk::GCATTropModel, gnsstk::SaasTropModel, gnsstk::GGHeightTropModel, gnsstk::GGTropModel, and gnsstk::SimpleTropModel.
|
inline |
Return validity of model.
Definition at line 114 of file TropModel.hpp.
|
inlinevirtual |
Return the name of the model.
Reimplemented in gnsstk::ZeroTropModel, gnsstk::GlobalTropModel, gnsstk::NBTropModel, gnsstk::NeillTropModel, gnsstk::MOPSTropModel, gnsstk::SaasTropModel, gnsstk::GGHeightTropModel, gnsstk::GCATTropModel, gnsstk::GGTropModel, and gnsstk::SimpleTropModel.
Definition at line 118 of file TropModel.hpp.
|
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.
pr | pressure in millibars |
lat | latitude in degrees |
ht | ellipsoid height in meters |
Definition at line 262 of file TropModel.hpp.
|
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.
d | Day of year. |
Reimplemented in gnsstk::NeillTropModel, gnsstk::GlobalTropModel, gnsstk::MOPSTropModel, gnsstk::NBTropModel, and gnsstk::SaasTropModel.
Definition at line 242 of file TropModel.hpp.
|
inlinevirtual |
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 in gnsstk::NeillTropModel, gnsstk::GlobalTropModel, gnsstk::MOPSTropModel, gnsstk::GCATTropModel, gnsstk::NBTropModel, gnsstk::GGHeightTropModel, and gnsstk::SaasTropModel.
Definition at line 222 of file TropModel.hpp.
|
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.
lat | Latitude 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.
|
inlinevirtual |
Define the receiver longitude; this is required by some models before calling correction() or any of the zenith_delay routines.
lon | Longitude of receiver, in degrees East. |
Reimplemented in gnsstk::GlobalTropModel.
Definition at line 235 of file TropModel.hpp.
Re-define the tropospheric model with explicit weather data. Typically called just before correction().
T | temperature in degrees Celsius |
P | atmospheric pressure in millibars |
H | relative humidity in percent |
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.
|
virtual |
Re-define the tropospheric model with explicit weather data. Typically called just before correction().
wx | the weather to use for this correction |
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.
|
static |
Get weather data by a standard atmosphere model reference to white paper of Bernese 5.0, P243
ht | height of the receiver in meters. |
T | temperature in degrees Celsius |
P | atmospheric pressure in millibars |
H | relative humidity in percent |
Definition at line 144 of file TropModel.cpp.
|
pure virtual |
Compute and return the mapping function for wet component of the troposphere, in meters.
elevation | Elevation of satellite as seen at receiver, in degrees |
InvalidTropModel |
Implemented in gnsstk::ZeroTropModel, gnsstk::NeillTropModel, gnsstk::GlobalTropModel, gnsstk::GCATTropModel, gnsstk::NBTropModel, gnsstk::SaasTropModel, gnsstk::GGHeightTropModel, gnsstk::GGTropModel, and gnsstk::SimpleTropModel.
|
pure virtual |
Compute and return the zenith delay for wet component of the troposphere, in meters.
InvalidTropModel |
Implemented in gnsstk::ZeroTropModel, gnsstk::NeillTropModel, gnsstk::MOPSTropModel, gnsstk::GlobalTropModel, gnsstk::GCATTropModel, gnsstk::NBTropModel, gnsstk::SaasTropModel, gnsstk::GGHeightTropModel, gnsstk::GGTropModel, and gnsstk::SimpleTropModel.
|
static |
Definition at line 108 of file TropModel.hpp.
|
protected |
latest value of relative humidity (percent)
Definition at line 282 of file TropModel.hpp.
|
protected |
latest value of pressure (millibars)
Definition at line 281 of file TropModel.hpp.
|
protected |
latest value of temperature (kelvin or celsius)
Definition at line 280 of file TropModel.hpp.
|
protected |
true only if current model parameters are valid
Definition at line 279 of file TropModel.hpp.