Tropospheric model based in the Neill mapping functions.
This model uses the mapping functions developed by A.E. Niell and published in 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).
The coefficients of the hydrostatic mapping function depend on the latitude and height above sea level of the receiver station, and on the day of the year. On the other hand, the wet mapping function depends only on latitude.
This mapping is independent from surface meteorology, while having comparable accuracy and precision to those that require such data. This characteristic makes this model very useful, and it is implemented in geodetic software such as JPL's Gipsy/OASIS.
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 85 of file NeillTropModel.hpp.
#include <NeillTropModel.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_mapping_function (double elevation) const |
virtual double | dry_zenith_delay () const |
virtual std::string | name () |
Return the name of the model. More... | |
NeillTropModel () | |
Default constructor. More... | |
NeillTropModel (const double &ht) | |
NeillTropModel (const double &ht, const double &lat, const int &doy) | |
NeillTropModel (const Position &RX, const CommonTime &time) | |
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_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 | NeillDOY |
double | NeillHeight |
double | NeillLat |
bool | validDOY |
bool | validHeight |
bool | validLat |
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... | |
|
inline |
Default constructor.
Definition at line 90 of file NeillTropModel.hpp.
|
inline |
Constructor to create a Neill 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 102 of file NeillTropModel.hpp.
|
inline |
Constructor to create a Neill 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 115 of file NeillTropModel.hpp.
gnsstk::NeillTropModel::NeillTropModel | ( | const Position & | RX, |
const CommonTime & | time | ||
) |
Constructor to create a Neill trop model providing the position of the receiver and current time.
RX | Receiver position. |
time | Time. |
Definition at line 52 of file NeillTropModel.cpp.
Compute and return the full tropospheric delay, in meters, given the positions of receiver and satellite.
This version is more 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 |
Definition at line 119 of file NeillTropModel.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 153 of file NeillTropModel.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 more 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 163 of file NeillTropModel.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 173 of file NeillTropModel.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 181 of file NeillTropModel.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 192 of file NeillTropModel.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 97 of file NeillTropModel.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 219 of file NeillTropModel.cpp.
|
virtual |
Compute and return the zenith delay for hydrostatic (dry) component of the troposphere, in meters.
InvalidTropModel |
Implements gnsstk::TropModel.
Definition at line 203 of file NeillTropModel.cpp.
|
inlinevirtual |
Return the name of the model.
Reimplemented from gnsstk::TropModel.
Definition at line 132 of file NeillTropModel.hpp.
|
virtual |
Convenient method to set all model parameters in one pass.
time | Time object. |
rxPos | Receiver position object. |
Definition at line 403 of file NeillTropModel.cpp.
|
virtual |
Set the time when tropospheric correction will be computed for, in days of the year.
time | Time object. |
Definition at line 389 of file NeillTropModel.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 368 of file NeillTropModel.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 342 of file NeillTropModel.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 355 of file NeillTropModel.cpp.
void gnsstk::NeillTropModel::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 319 of file NeillTropModel.cpp.
|
inlinevirtual |
In Neill tropospheric model, this is a dummy method kept here just for consistency,
InvalidParameter |
Reimplemented from gnsstk::TropModel.
Definition at line 258 of file NeillTropModel.hpp.
|
inlinevirtual |
In Neill tropospheric model, this is a dummy method kept here just for consistency
InvalidParameter |
Reimplemented from gnsstk::TropModel.
Definition at line 268 of file NeillTropModel.hpp.
|
virtual |
Implements gnsstk::TropModel.
Definition at line 279 of file NeillTropModel.cpp.
|
inlinevirtual |
Compute and return the zenith delay for wet component of the troposphere, in meters.
InvalidTropModel |
Implements gnsstk::TropModel.
Definition at line 234 of file NeillTropModel.hpp.
|
private |
Definition at line 304 of file NeillTropModel.hpp.
|
private |
Definition at line 302 of file NeillTropModel.hpp.
|
private |
Definition at line 303 of file NeillTropModel.hpp.
|
private |
Definition at line 307 of file NeillTropModel.hpp.
|
private |
Definition at line 305 of file NeillTropModel.hpp.
|
private |
Definition at line 306 of file NeillTropModel.hpp.