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):
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 86 of file NBTropModel.hpp.
#include <NBTropModel.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... | |
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 |
![]() | |
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 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::NBTropModel::NBTropModel | ( | ) |
Empty constructor.
Definition at line 148 of file NBTropModel.cpp.
Create a trop model using the minimum information: latitude and doy. Interpolate the weather unless setWeather (optional) is called.
lat | Latitude of the receiver in degrees. |
day | Day of year. |
InvalidParameter |
Definition at line 154 of file NBTropModel.cpp.
gnsstk::NBTropModel::NBTropModel | ( | 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 165 of file NBTropModel.cpp.
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
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 177 of file NBTropModel.cpp.
Create a valid model from explicit input (weather will be estimated internally by this model).
ht | Height of the receiver in meters. |
lat | Latitude of the receiver in degrees. |
day | Day of year. |
InvalidParameter |
Definition at line 191 of file NBTropModel.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 216 of file NBTropModel.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 233 of file NBTropModel.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 205 of file NBTropModel.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 283 of file NBTropModel.cpp.
|
virtual |
Compute and return the zenith delay for hydrostatic (dry) component of the troposphere, in meters.
InvalidTropModel |
Implements gnsstk::TropModel.
Definition at line 242 of file NBTropModel.cpp.
|
inlinevirtual |
Return the name of the model.
Reimplemented from gnsstk::TropModel.
Definition at line 138 of file NBTropModel.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 404 of file NBTropModel.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 384 of file NBTropModel.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 394 of file NBTropModel.cpp.
void gnsstk::NBTropModel::setWeather | ( | ) |
Configure the model to estimate the weather using lat and doy
InvalidTropModel |
Definition at line 360 of file NBTropModel.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 325 of file NBTropModel.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 340 of file NBTropModel.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 308 of file NBTropModel.cpp.
|
virtual |
Compute and return the zenith delay for wet component of the troposphere, in meters.
InvalidTropModel |
Implements gnsstk::TropModel.
Definition at line 262 of file NBTropModel.cpp.
|
private |
Definition at line 192 of file NBTropModel.hpp.
|
private |
Definition at line 190 of file NBTropModel.hpp.
|
private |
Definition at line 189 of file NBTropModel.hpp.
|
private |
Definition at line 191 of file NBTropModel.hpp.
|
private |
Definition at line 196 of file NBTropModel.hpp.
|
private |
Definition at line 195 of file NBTropModel.hpp.
|
private |
Definition at line 194 of file NBTropModel.hpp.
|
private |
Definition at line 193 of file NBTropModel.hpp.