Class ModifiedSaastamoinenModel
- java.lang.Object
-
- org.orekit.models.earth.troposphere.ModifiedSaastamoinenModel
-
- All Implemented Interfaces:
DiscreteTroposphericModel,ParameterDriversProvider
- Direct Known Subclasses:
SaastamoinenModel
public class ModifiedSaastamoinenModel extends Object implements DiscreteTroposphericModel
The modified Saastamoinen model. Estimates the path delay imposed to electro-magnetic signals by the troposphere according to the formula:δ = 2.277e-3 / cos z * (P + (1255 / T + 0.05) * e - B * tan² z) + δR
with the following input data provided to the model:- z: zenith angle
- P: atmospheric pressure
- T: temperature
- e: partial pressure of water vapour
- B, δR: correction terms
The model supports custom δR correction terms to be read from a configuration file (saastamoinen-correction.txt) via the
DataProvidersManager.- Author:
- Thomas Neidhart
- See Also:
- "Guochang Xu, GPS - Theory, Algorithms and Applications, Springer, 2007"
-
-
Field Summary
Fields Modifier and Type Field Description static doubleDEFAULT_LOW_ELEVATION_THRESHOLDDefault lowest acceptable elevation angle [rad].static StringDELTA_R_FILE_NAMEDefault file name for δR correction term table.
-
Constructor Summary
Constructors Constructor Description ModifiedSaastamoinenModel(double t0, double p0, double r0)Create a new Saastamoinen model for the troposphere using the given environmental conditions and table from the reference book.ModifiedSaastamoinenModel(double t0, double p0, double r0, String deltaRFileName)Create a new Saastamoinen model for the troposphere using the given environmental conditions.ModifiedSaastamoinenModel(double t0, double p0, double r0, String deltaRFileName, DataProvidersManager dataProvidersManager)Create a new Saastamoinen model for the troposphere using the given environmental conditions.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description doublegetLowElevationThreshold()Get the low elevation threshold value for path delay computation.List<ParameterDriver>getParametersDrivers()Get the drivers for parameters.static ModifiedSaastamoinenModelgetStandardModel()Create a new Saastamoinen model using a standard atmosphere model.doublepathDelay(double elevation, GeodeticPoint point, double[] parameters, AbsoluteDate date)Calculates the tropospheric path delay for the signal path from a ground station to a satellite.<T extends CalculusFieldElement<T>>
TpathDelay(T elevation, FieldGeodeticPoint<T> point, T[] parameters, FieldAbsoluteDate<T> date)Calculates the tropospheric path delay for the signal path from a ground station to a satellite.voidsetLowElevationThreshold(double lowElevationThreshold)Set the low elevation threshold value for path delay computation.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.orekit.utils.ParameterDriversProvider
getNbParametersDriversValue, getParameterDriver, getParameters, getParameters, getParameters, getParameters, getParametersAllValues, getParametersAllValues, isSupported
-
-
-
-
Field Detail
-
DELTA_R_FILE_NAME
public static final String DELTA_R_FILE_NAME
Default file name for δR correction term table.- See Also:
- Constant Field Values
-
DEFAULT_LOW_ELEVATION_THRESHOLD
public static final double DEFAULT_LOW_ELEVATION_THRESHOLD
Default lowest acceptable elevation angle [rad].- See Also:
- Constant Field Values
-
-
Constructor Detail
-
ModifiedSaastamoinenModel
public ModifiedSaastamoinenModel(double t0, double p0, double r0)Create a new Saastamoinen model for the troposphere using the given environmental conditions and table from the reference book.- Parameters:
t0- the temperature at the station [K]p0- the atmospheric pressure at the station [mbar]r0- the humidity at the station [fraction] (50% -> 0.5)- Since:
- 10.1
- See Also:
ModifiedSaastamoinenModel(double, double, double, String, DataProvidersManager)
-
ModifiedSaastamoinenModel
@DefaultDataContext public ModifiedSaastamoinenModel(double t0, double p0, double r0, String deltaRFileName)
Create a new Saastamoinen model for the troposphere using the given environmental conditions. This constructor uses thedefault data contextifdeltaRFileName != null.- Parameters:
t0- the temperature at the station [K]p0- the atmospheric pressure at the station [mbar]r0- the humidity at the station [fraction] (50% -> 0.5)deltaRFileName- regular expression for filename containing δR correction term table (typicallyDELTA_R_FILE_NAME), if null default values from the reference book are used- Since:
- 7.1
- See Also:
ModifiedSaastamoinenModel(double, double, double, String, DataProvidersManager)
-
ModifiedSaastamoinenModel
public ModifiedSaastamoinenModel(double t0, double p0, double r0, String deltaRFileName, DataProvidersManager dataProvidersManager)Create a new Saastamoinen model for the troposphere using the given environmental conditions. This constructor allows the user to specify the source of of the δR file.- Parameters:
t0- the temperature at the station [K]p0- the atmospheric pressure at the station [mbar]r0- the humidity at the station [fraction] (50% -> 0.5)deltaRFileName- regular expression for filename containing δR correction term table (typicallyDELTA_R_FILE_NAME), if null default values from the reference book are useddataProvidersManager- provides access to auxiliary data.- Since:
- 10.1
-
-
Method Detail
-
getStandardModel
public static ModifiedSaastamoinenModel getStandardModel()
Create a new Saastamoinen model using a standard atmosphere model.- temperature: 18 degree Celsius
- pressure: 1013.25 mbar
- humidity: 50%
- Returns:
- a Saastamoinen model with standard environmental values
-
pathDelay
public double pathDelay(double elevation, GeodeticPoint point, double[] parameters, AbsoluteDate date)Calculates the tropospheric path delay for the signal path from a ground station to a satellite.The Saastamoinen model is not defined for altitudes below 0.0. for continuity reasons, we use the value for h = 0 when altitude is negative.
There are also numerical issues for elevation angles close to zero. For continuity reasons, elevations lower than a threshold will use the value obtained for the threshold itself.
- Specified by:
pathDelayin interfaceDiscreteTroposphericModel- Parameters:
elevation- the elevation of the satellite, in radianspoint- station locationparameters- tropospheric model parametersdate- current date- Returns:
- the path delay due to the troposphere in m
- See Also:
getLowElevationThreshold(),setLowElevationThreshold(double)
-
pathDelay
public <T extends CalculusFieldElement<T>> T pathDelay(T elevation, FieldGeodeticPoint<T> point, T[] parameters, FieldAbsoluteDate<T> date)
Calculates the tropospheric path delay for the signal path from a ground station to a satellite.The Saastamoinen model is not defined for altitudes below 0.0. for continuity reasons, we use the value for h = 0 when altitude is negative.
There are also numerical issues for elevation angles close to zero. For continuity reasons, elevations lower than a threshold will use the value obtained for the threshold itself.
- Specified by:
pathDelayin interfaceDiscreteTroposphericModel- Type Parameters:
T- type of the elements- Parameters:
elevation- the elevation of the satellite, in radianspoint- station locationparameters- tropospheric model parameters at current datedate- current date- Returns:
- the path delay due to the troposphere in m
- See Also:
getLowElevationThreshold(),setLowElevationThreshold(double)
-
getParametersDrivers
public List<ParameterDriver> getParametersDrivers()
Get the drivers for parameters.- Specified by:
getParametersDriversin interfaceParameterDriversProvider- Returns:
- drivers for parameters
-
getLowElevationThreshold
public double getLowElevationThreshold()
Get the low elevation threshold value for path delay computation.- Returns:
- low elevation threshold, in rad.
- Since:
- 10.2
- See Also:
pathDelay(double, GeodeticPoint, double[], AbsoluteDate),pathDelay(CalculusFieldElement, FieldGeodeticPoint, CalculusFieldElement[], FieldAbsoluteDate)
-
setLowElevationThreshold
public void setLowElevationThreshold(double lowElevationThreshold)
Set the low elevation threshold value for path delay computation.- Parameters:
lowElevationThreshold- The new value for the threshold [rad]- Since:
- 10.2
- See Also:
pathDelay(double, GeodeticPoint, double[], AbsoluteDate),pathDelay(CalculusFieldElement, FieldGeodeticPoint, CalculusFieldElement[], FieldAbsoluteDate)
-
-