NeillTropModel Class Reference
[GPS solution algorithms and Tropospheric]

#include <TropModel.hpp>

Inheritance diagram for NeillTropModel:

Inheritance graph
[legend]
Collaboration diagram for NeillTropModel:

Collaboration graph
[legend]
List of all members.

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:

   NeillTropModel neillTM;
   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 1478 of file TropModel.hpp.

Public Member Functions

 NeillTropModel (void)
 Default constructor.
 NeillTropModel (const double &ht)
 Constructor to create a Neill trop model providing just the height of the receiver above mean sea level.
 NeillTropModel (const double &ht, const double &lat, const int &doy)
 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.
 NeillTropModel (const Position &RX, const DayTime &time)
 Constructor to create a Neill trop model providing the position of the receiver and current time.
virtual double correction (double elevation) const throw (InvalidTropModel)
 Compute and return the full tropospheric delay.
virtual double correction (const Position &RX, const Position &SV) throw (InvalidTropModel)
 Compute and return the full tropospheric delay, given the positions of receiver and satellite.
virtual double correction (const Position &RX, const Position &SV, const DayTime &tt) throw (InvalidTropModel)
 Compute and return the full tropospheric delay, given the positions of receiver and satellite and the time tag.
virtual double correction (const Position &RX, const Position &SV, const int &doy) throw (InvalidTropModel)
 Compute and return the full tropospheric delay, given the positions of receiver and satellite and the day of the year.
virtual double correction (const Xvt &RX, const Xvt &SV) throw (InvalidTropModel)
virtual double correction (const Xvt &RX, const Xvt &SV, const DayTime &tt) throw (InvalidTropModel)
virtual double correction (const Xvt &RX, const Xvt &SV, const int &doy) throw (InvalidTropModel)
virtual double dry_zenith_delay (void) const throw (InvalidTropModel)
 Compute and return the zenith delay for dry component of the troposphere.
virtual double wet_zenith_delay (void) const throw (InvalidTropModel)
 Compute and return the zenith delay for wet component of the troposphere.
virtual double dry_mapping_function (double elevation) const throw (InvalidTropModel)
 Compute and return the mapping function for dry component of the troposphere.
virtual double wet_mapping_function (double elevation) const throw (InvalidTropModel)
 Compute and return the mapping function for wet component of the troposphere.
void setWeather () throw (InvalidTropModel)
 This method configure the model to estimate the weather using height, latitude and day of year (DOY).
virtual void setWeather (const double &T, const double &P, const double &H) throw (InvalidParameter)
 In Neill tropospheric model, this is a dummy method kept here just for consistency,.
virtual void setWeather (const WxObservation &wx) throw (InvalidParameter)
 In Neill tropospheric model, this is a dummy method kept here just for consistency.
virtual void setReceiverHeight (const double &ht)
 Define the receiver height; this is required before calling correction() or any of the zenith_delay routines.
virtual void setReceiverLatitude (const double &lat)
 Define the receiver latitude; this is required before calling correction() or any of the zenith_delay routines.
virtual void setDayOfYear (const int &doy)
 Set the time when tropospheric correction will be computed for, in days of the year.
virtual void setDayOfYear (const DayTime &time)
 Set the time when tropospheric correction will be computed for, in days of the year.
virtual void setAllParameters (const DayTime &time, const Position &rxPos)
 Convenient method to set all model parameters in one pass.


Constructor & Destructor Documentation

NeillTropModel void   )  [inline]
 

Default constructor.

Definition at line 1483 of file TropModel.hpp.

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:
ht Height of the receiver above mean sea level, in meters.

Definition at line 1494 of file TropModel.hpp.

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:
ht Height of the receiver above mean sea level, in meters.
lat Latitude of receiver, in degrees.
doy Day of year.

Definition at line 1506 of file TropModel.hpp.

NeillTropModel const Position RX,
const DayTime time
 

Constructor to create a Neill trop model providing the position of the receiver and current time.

Parameters:
RX Receiver position.
time Time.

Definition at line 2548 of file TropModel.cpp.

References Position::getAltitude(), Position::getGeodeticLatitude(), NeillTropModel::setDayOfYear(), NeillTropModel::setReceiverHeight(), and NeillTropModel::setReceiverLatitude().


Member Function Documentation

double correction const Xvt RX,
const Xvt SV,
const int &  doy
throw (InvalidTropModel) [virtual]
 

Deprecated:
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.
Parameters:
RX Receiver position in ECEF cartesian coordinates (meters)
SV Satellite position in ECEF cartesian coordinates (meters)
doy Day of year.

Definition at line 2794 of file TropModel.cpp.

double correction const Xvt RX,
const Xvt SV,
const DayTime tt
throw (InvalidTropModel) [virtual]
 

Deprecated:
Compute and return the full tropospheric delay, given the positions of receiver and satellite and the time tag. 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.
Parameters:
RX Receiver position in ECEF cartesian coordinates (meters)
SV Satellite position in ECEF cartesian coordinates (meters)
tt Time (DayTime object).

Reimplemented from TropModel.

Definition at line 2770 of file TropModel.cpp.

double correction const Xvt RX,
const Xvt SV
throw (InvalidTropModel) [virtual]
 

Deprecated:
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.
Parameters:
RX Receiver position in ECEF cartesian coordinates (meters).
SV Satellite position in ECEF cartesian coordinates (meters).

Definition at line 2748 of file TropModel.cpp.

double correction const Position RX,
const Position SV,
const int &  doy
throw (InvalidTropModel) [virtual]
 

Compute and return the full tropospheric delay, 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:
RX Receiver position.
SV Satellite position.
doy Day of year.

Definition at line 2726 of file TropModel.cpp.

double correction const Position RX,
const Position SV,
const DayTime tt
throw (InvalidTropModel) [virtual]
 

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

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:
RX Receiver position.
SV Satellite position.
tt Time (DayTime object).

Reimplemented from TropModel.

Definition at line 2701 of file TropModel.cpp.

double correction const Position RX,
const Position SV
throw (InvalidTropModel) [virtual]
 

Compute and return the full tropospheric delay, 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:
RX Receiver position.
SV Satellite position.

Definition at line 2653 of file TropModel.cpp.

References GPSTK_RETHROW.

double correction double  elevation  )  const throw (InvalidTropModel) [virtual]
 

Compute and return the full tropospheric delay.

The receiver height, latitude and Day oy Year must has been set before using the appropriate constructor or the provided methods.

Parameters:
elevation Elevation of satellite as seen at receiver, in degrees.

Reimplemented from TropModel.

Definition at line 2598 of file TropModel.cpp.

double dry_mapping_function double  elevation  )  const throw (InvalidTropModel) [virtual]
 

Compute and return the mapping function for dry component of the troposphere.

Parameters:
elevation Elevation of satellite as seen at receiver, in degrees

Implements TropModel.

Definition at line 2831 of file TropModel.cpp.

References GPSTK_THROW.

double dry_zenith_delay void   )  const throw (InvalidTropModel) [virtual]
 

Compute and return the zenith delay for dry component of the troposphere.

Implements TropModel.

Definition at line 2809 of file TropModel.cpp.

void setAllParameters const DayTime time,
const Position rxPos
[virtual]
 

Convenient method to set all model parameters in one pass.

Parameters:
time Time object.
rxPos Receiver position object.

Definition at line 3094 of file TropModel.cpp.

References DayTime::DOY(), Position::getGeodeticLatitude(), Position::getHeight(), and NeillTropModel::setWeather().

void setDayOfYear const DayTime time  )  [virtual]
 

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

Parameters:
time Time object.

Definition at line 3074 of file TropModel.cpp.

References DayTime::DOY(), and NeillTropModel::setWeather().

void setDayOfYear const int &  doy  )  [virtual]
 

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

Parameters:
doy Day of the year.

Reimplemented from TropModel.

Definition at line 3047 of file TropModel.cpp.

References NeillTropModel::setWeather().

Referenced by NeillTropModel::NeillTropModel().

void setReceiverHeight const double &  ht  )  [virtual]
 

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

Parameters:
ht Height of the receiver above mean sea level, in meters.

Reimplemented from TropModel.

Definition at line 3011 of file TropModel.cpp.

References NeillTropModel::setWeather().

Referenced by NeillTropModel::NeillTropModel().

void setReceiverLatitude const double &  lat  )  [virtual]
 

Define the receiver latitude; this is required before calling correction() or any of the zenith_delay routines.

Parameters:
lat Latitude of receiver, in degrees.

Reimplemented from TropModel.

Definition at line 3029 of file TropModel.cpp.

References NeillTropModel::setWeather().

Referenced by NeillTropModel::NeillTropModel().

virtual void setWeather const WxObservation wx  )  throw (InvalidParameter) [inline, virtual]
 

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

Reimplemented from TropModel.

Definition at line 1689 of file TropModel.hpp.

virtual void setWeather const double &  T,
const double &  P,
const double &  H
throw (InvalidParameter) [inline, virtual]
 

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

Reimplemented from TropModel.

Definition at line 1681 of file TropModel.hpp.

void setWeather  )  throw (InvalidTropModel)
 

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.

Definition at line 2984 of file TropModel.cpp.

Referenced by NeillTropModel::setAllParameters(), NeillTropModel::setDayOfYear(), NeillTropModel::setReceiverHeight(), and NeillTropModel::setReceiverLatitude().

double wet_mapping_function double  elevation  )  const throw (InvalidTropModel) [virtual]
 

Compute and return the mapping function for wet component of the troposphere.

Parameters:
elevation Elevation of satellite as seen at receiver, in degrees

Implements TropModel.

Definition at line 2920 of file TropModel.cpp.

References GPSTK_THROW.

virtual double wet_zenith_delay void   )  const throw (InvalidTropModel) [inline, virtual]
 

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

Implements TropModel.

Definition at line 1649 of file TropModel.hpp.


The documentation for this class was generated from the following files:
Generated on Tue Jan 6 03:32:01 2009 for GPS ToolKit Software Library by  doxygen 1.3.9.1