Public Member Functions | Private Attributes | List of all members
gnsstk::NeillTropModel Class Reference

Detailed Description

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:

neillTM.setReceiverLatitude(lat);
neillTM.setReceiverHeight(height);
neillTM.setDayOfYear(doy);

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:

trop = neillTM.correction(elevation);
Warning
The Neill mapping functions are defined for elevation angles down to 3 degrees.

Definition at line 85 of file NeillTropModel.hpp.

#include <NeillTropModel.hpp>

Inheritance diagram for gnsstk::NeillTropModel:
Inheritance graph
[legend]

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
 
- Public Member Functions inherited from gnsstk::TropModel
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 Public Member Functions inherited from gnsstk::TropModel
static void weatherByStandardAtmosphereModel (const double &ht, double &T, double &P, double &H)
 
- Static Public Attributes inherited from gnsstk::TropModel
static const GNSSTK_EXPORT double CELSIUS_TO_KELVIN = 273.15
 
- Protected Attributes inherited from gnsstk::TropModel
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...
 

Constructor & Destructor Documentation

◆ NeillTropModel() [1/4]

gnsstk::NeillTropModel::NeillTropModel ( )
inline

Default constructor.

Definition at line 90 of file NeillTropModel.hpp.

◆ NeillTropModel() [2/4]

gnsstk::NeillTropModel::NeillTropModel ( const double &  ht)
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.

Parameters
htHeight of the receiver above mean sea level, in meters.

Definition at line 102 of file NeillTropModel.hpp.

◆ NeillTropModel() [3/4]

gnsstk::NeillTropModel::NeillTropModel ( const double &  ht,
const double &  lat,
const int &  doy 
)
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.

Parameters
htHeight of the receiver above mean sea level, in meters.
latLatitude of receiver, in degrees.
doyDay of year.

Definition at line 115 of file NeillTropModel.hpp.

◆ NeillTropModel() [4/4]

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.

Parameters
RXReceiver position.
timeTime.

Definition at line 52 of file NeillTropModel.cpp.

Member Function Documentation

◆ correction() [1/7]

double gnsstk::NeillTropModel::correction ( const Position RX,
const Position SV 
)
virtual

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.

Parameters
RXReceiver position.
SVSatellite position.
Returns
The tropospheric delay (meters)
Exceptions
InvalidTropModel

Definition at line 119 of file NeillTropModel.cpp.

◆ correction() [2/7]

double gnsstk::NeillTropModel::correction ( const Position RX,
const Position SV,
const CommonTime tt 
)
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.

Parameters
RXReceiver position
SVSatellite position
ttTime tag of the signal
Returns
The tropospheric delay (meters)
Exceptions
InvalidTropModel

Reimplemented from gnsstk::TropModel.

Definition at line 153 of file NeillTropModel.cpp.

◆ correction() [3/7]

double gnsstk::NeillTropModel::correction ( const Position RX,
const Position SV,
const int &  doy 
)
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.

Parameters
RXReceiver position.
SVSatellite position.
doyDay of year.
Returns
The tropospheric delay (meters)
Exceptions
InvalidTropModel

Definition at line 163 of file NeillTropModel.cpp.

◆ correction() [4/7]

double gnsstk::NeillTropModel::correction ( const Xvt RX,
const Xvt SV 
)
virtual

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.

Deprecated:
This method is deprecated. Use correction(const Position&,const Position&) instead
Parameters
RXReceiver position in ECEF cartesian coordinates (meters).
SVSatellite position in ECEF cartesian coordinates (meters).
Returns
The tropospheric delay (meters)
Exceptions
InvalidTropModel

Definition at line 173 of file NeillTropModel.cpp.

◆ correction() [5/7]

double gnsstk::NeillTropModel::correction ( const Xvt RX,
const Xvt SV,
const CommonTime tt 
)
virtual

Compute and return the full tropospheric delay, in meters, given the positions of receiver and satellite and the time tag.

Deprecated:
This method is deprecated. Use correction(const Position&,const Position&,const CommonTime&) instead.

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.

Parameters
RXReceiver position in ECEF cartesian coordinates (meters)
SVSatellite position in ECEF cartesian coordinates (meters)
ttTime tag of the signal
Returns
The tropospheric delay (meters)
Exceptions
InvalidTropModel

Reimplemented from gnsstk::TropModel.

Definition at line 181 of file NeillTropModel.cpp.

◆ correction() [6/7]

double gnsstk::NeillTropModel::correction ( const Xvt RX,
const Xvt SV,
const int &  doy 
)
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.

Deprecated:
This method is deprecated. Use correction(const Position&,const Position&,const int&) instead
Parameters
RXReceiver position in ECEF cartesian coordinates (meters)
SVSatellite position in ECEF cartesian coordinates (meters)
doyDay of year.
Returns
The tropospheric delay (meters)
Exceptions
InvalidTropModel

Definition at line 192 of file NeillTropModel.cpp.

◆ correction() [7/7]

double gnsstk::NeillTropModel::correction ( double  elevation) const
virtual

Compute and return the full tropospheric delay, in meters

Parameters
elevationElevation of satellite as seen at receiver, in degrees
Returns
The tropospheric delay (meters)
Exceptions
InvalidTropModel

Reimplemented from gnsstk::TropModel.

Definition at line 97 of file NeillTropModel.cpp.

◆ dry_mapping_function()

double gnsstk::NeillTropModel::dry_mapping_function ( double  elevation) const
virtual

Compute and return the mapping function for hydrostatic (dry) component of the troposphere, in meters.

Parameters
elevationElevation of satellite as seen at receiver, in degrees
Exceptions
InvalidTropModel

Implements gnsstk::TropModel.

Definition at line 219 of file NeillTropModel.cpp.

◆ dry_zenith_delay()

double gnsstk::NeillTropModel::dry_zenith_delay ( ) const
virtual

Compute and return the zenith delay for hydrostatic (dry) component of the troposphere, in meters.

Exceptions
InvalidTropModel

Implements gnsstk::TropModel.

Definition at line 203 of file NeillTropModel.cpp.

◆ name()

virtual std::string gnsstk::NeillTropModel::name ( )
inlinevirtual

Return the name of the model.

Reimplemented from gnsstk::TropModel.

Definition at line 132 of file NeillTropModel.hpp.

◆ setAllParameters()

void gnsstk::NeillTropModel::setAllParameters ( const CommonTime time,
const Position rxPos 
)
virtual

Convenient method to set all model parameters in one pass.

Parameters
timeTime object.
rxPosReceiver position object.

Definition at line 403 of file NeillTropModel.cpp.

◆ setDayOfYear() [1/2]

void gnsstk::NeillTropModel::setDayOfYear ( const CommonTime time)
virtual

Set the time when tropospheric correction will be computed for, in days of the year.

Parameters
timeTime object.

Definition at line 389 of file NeillTropModel.cpp.

◆ setDayOfYear() [2/2]

void gnsstk::NeillTropModel::setDayOfYear ( const int &  doy)
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.

Parameters
dDay of year.

Reimplemented from gnsstk::TropModel.

Definition at line 368 of file NeillTropModel.cpp.

◆ setReceiverHeight()

void gnsstk::NeillTropModel::setReceiverHeight ( const double &  ht)
virtual

Define the receiver height; this is required by some models before calling correction() or any of the zenith_delay or mapping_function routines.

Parameters
htHeight of the receiver above mean sea level, in meters.

Reimplemented from gnsstk::TropModel.

Definition at line 342 of file NeillTropModel.cpp.

◆ setReceiverLatitude()

void gnsstk::NeillTropModel::setReceiverLatitude ( const double &  lat)
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.

Parameters
latLatitude of the receiver in degrees.

Reimplemented from gnsstk::TropModel.

Definition at line 355 of file NeillTropModel.cpp.

◆ setWeather() [1/3]

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.

Exceptions
InvalidTropModel

Definition at line 319 of file NeillTropModel.cpp.

◆ setWeather() [2/3]

virtual void gnsstk::NeillTropModel::setWeather ( const double &  T,
const double &  P,
const double &  H 
)
inlinevirtual

In Neill tropospheric model, this is a dummy method kept here just for consistency,

Exceptions
InvalidParameter

Reimplemented from gnsstk::TropModel.

Definition at line 258 of file NeillTropModel.hpp.

◆ setWeather() [3/3]

virtual void gnsstk::NeillTropModel::setWeather ( const WxObservation wx)
inlinevirtual

In Neill tropospheric model, this is a dummy method kept here just for consistency

Exceptions
InvalidParameter

Reimplemented from gnsstk::TropModel.

Definition at line 268 of file NeillTropModel.hpp.

◆ wet_mapping_function()

double gnsstk::NeillTropModel::wet_mapping_function ( double  elevation) const
virtual

Implements gnsstk::TropModel.

Definition at line 279 of file NeillTropModel.cpp.

◆ wet_zenith_delay()

virtual double gnsstk::NeillTropModel::wet_zenith_delay ( ) const
inlinevirtual

Compute and return the zenith delay for wet component of the troposphere, in meters.

Exceptions
InvalidTropModel

Implements gnsstk::TropModel.

Definition at line 234 of file NeillTropModel.hpp.

Member Data Documentation

◆ NeillDOY

int gnsstk::NeillTropModel::NeillDOY
private

Definition at line 304 of file NeillTropModel.hpp.

◆ NeillHeight

double gnsstk::NeillTropModel::NeillHeight
private

Definition at line 302 of file NeillTropModel.hpp.

◆ NeillLat

double gnsstk::NeillTropModel::NeillLat
private

Definition at line 303 of file NeillTropModel.hpp.

◆ validDOY

bool gnsstk::NeillTropModel::validDOY
private

Definition at line 307 of file NeillTropModel.hpp.

◆ validHeight

bool gnsstk::NeillTropModel::validHeight
private

Definition at line 305 of file NeillTropModel.hpp.

◆ validLat

bool gnsstk::NeillTropModel::validLat
private

Definition at line 306 of file NeillTropModel.hpp.


The documentation for this class was generated from the following files:
gnsstk::NeillTropModel::NeillTropModel
NeillTropModel()
Default constructor.
Definition: NeillTropModel.hpp:90


gnsstk
Author(s):
autogenerated on Wed Oct 25 2023 02:40:45