Saastamoinen tropospheric model based on Saastamoinen, J., 'Atmospheric Correction for the Troposphere and Stratosphere in Radio Ranging of Satellites,' Geophysical Monograph 15, American Geophysical Union, 1972, and Ch 9 of McCarthy, D and Petit, G, IERS Conventions (2003), IERS Technical Note 32, IERS, 2004. The mapping functions are from Neill, A.E., 1996, 'Global Mapping Functions for the Atmosphere Delay of Radio Wavelengths,' J. Geophys. Res., 101, pp. 3227-3246 (also see IERS TN 32).
This model includes a wet and dry component, and requires input of the geodetic latitude, day of year and height above the ellipsoid of the receiver.
Usually, the caller will set the latitude and day of year at the same time the weather is set
Then, when the correction (and/or delay and map) is computed, receiver height should be set before the call to correction(elevation):
Definition at line 80 of file SaasTropModel.hpp.
#include <SaasTropModel.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 |
virtual double | dry_zenith_delay () const |
virtual std::string | name () |
Return the name of the model. More... | |
SaasTropModel () | |
Empty constructor. More... | |
SaasTropModel (const double &lat, const int &day) | |
SaasTropModel (const double &lat, const int &day, const double &T, const double &P, const double &H) | |
SaasTropModel (const double &lat, const int &day, const WxObservation &wx) | |
void | setDayOfYear (const int &d) |
void | setReceiverHeight (const double &ht) |
void | setReceiverLatitude (const double &lat) |
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 |
![]() | |
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 |
day of year More... | |
double | height |
height (m) of the receiver above the geoid More... | |
double | latitude |
latitude (deg) of receiver More... | |
bool | validDOY |
flag for valid day of year More... | |
bool | validRxHeight |
flag for valid Rx longitude More... | |
bool | validRxLatitude |
flag for valid Rx latitude More... | |
bool | validWeather |
flag for valid weather More... | |
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::SaasTropModel::SaasTropModel | ( | ) |
Empty constructor.
Definition at line 77 of file SaasTropModel.cpp.
Create a trop model using the minimum information: latitude and doy.
lat | Latitude of the receiver in degrees. |
day | Day of year. |
Definition at line 86 of file SaasTropModel.cpp.
gnsstk::SaasTropModel::SaasTropModel | ( | const double & | lat, |
const int & | day, | ||
const WxObservation & | wx | ||
) |
Create a trop model with weather.
lat | Latitude of the receiver in degrees. |
day | Day of year. |
wx | the weather to use for this correction. |
InvalidParameter |
Definition at line 96 of file SaasTropModel.cpp.
gnsstk::SaasTropModel::SaasTropModel | ( | const double & | lat, |
const int & | day, | ||
const double & | T, | ||
const double & | P, | ||
const double & | H | ||
) |
Create a tropospheric model from explicit weather data
lat | Latitude of the receiver in degrees. |
day | Day of year. |
T | temperature in degrees Celsius |
P | atmospheric pressure in millibars |
H | relative humidity in percent |
InvalidParameter |
Definition at line 107 of file SaasTropModel.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::TropModel.
Definition at line 149 of file SaasTropModel.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::TropModel.
Definition at line 180 of file SaasTropModel.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::TropModel.
Definition at line 120 of file SaasTropModel.cpp.
|
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 |
Implements gnsstk::TropModel.
Definition at line 224 of file SaasTropModel.cpp.
|
virtual |
Compute and return the zenith delay for hydrostatic (dry) component of the troposphere, in meters.
InvalidTropModel |
Implements gnsstk::TropModel.
Definition at line 189 of file SaasTropModel.cpp.
|
inlinevirtual |
Return the name of the model.
Reimplemented from gnsstk::TropModel.
Definition at line 119 of file SaasTropModel.hpp.
|
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 352 of file SaasTropModel.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::TropModel.
Definition at line 336 of file SaasTropModel.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 344 of file SaasTropModel.cpp.
|
virtual |
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 from gnsstk::TropModel.
Definition at line 306 of file SaasTropModel.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 from gnsstk::TropModel.
Definition at line 322 of file SaasTropModel.cpp.
|
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 |
Implements gnsstk::TropModel.
Definition at line 273 of file SaasTropModel.cpp.
|
virtual |
Compute and return the zenith delay for wet component of the troposphere, in meters.
InvalidTropModel |
Implements gnsstk::TropModel.
Definition at line 199 of file SaasTropModel.cpp.
|
private |
day of year
Definition at line 167 of file SaasTropModel.hpp.
|
private |
height (m) of the receiver above the geoid
Definition at line 165 of file SaasTropModel.hpp.
|
private |
latitude (deg) of receiver
Definition at line 166 of file SaasTropModel.hpp.
|
private |
flag for valid day of year
Definition at line 171 of file SaasTropModel.hpp.
|
private |
flag for valid Rx longitude
Definition at line 170 of file SaasTropModel.hpp.
|
private |
flag for valid Rx latitude
Definition at line 169 of file SaasTropModel.hpp.
|
private |
flag for valid weather
Definition at line 168 of file SaasTropModel.hpp.