Class ModifiedSaastamoinenModel
- java.lang.Object
-
- org.orekit.models.earth.troposphere.ModifiedSaastamoinenModel
-
- All Implemented Interfaces:
DiscreteTroposphericModel
,TroposphericModel
,ParameterDriversProvider
- Direct Known Subclasses:
SaastamoinenModel
public class ModifiedSaastamoinenModel extends Object implements TroposphericModel, 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
.- Since:
- 12.0
- Author:
- Thomas Neidhart
- See Also:
- "Guochang Xu, GPS - Theory, Algorithms and Applications, Springer, 2007"
-
-
Field Summary
Fields Modifier and Type Field Description static double
DEFAULT_LOW_ELEVATION_THRESHOLD
Default lowest acceptable elevation angle [rad].static String
DELTA_R_FILE_NAME
Default file name for δR correction term table.static Wang1988
WATER
Provider for water pressure.
-
Constructor Summary
Constructors Constructor Description ModifiedSaastamoinenModel(double t0, double p0, double r0)
Deprecated.as of 12.1.1, replaced byModifiedSaastamoinenModel(PressureTemperatureHumidityProvider)
ModifiedSaastamoinenModel(double t0, double p0, double r0, String deltaRFileName)
Deprecated.as of 12.1.1, replaced byModifiedSaastamoinenModel(PressureTemperatureHumidityProvider, String)
ModifiedSaastamoinenModel(double t0, double p0, double r0, String deltaRFileName, DataProvidersManager dataProvidersManager)
Deprecated.as of 12.1.1, replaced byModifiedSaastamoinenModel(PressureTemperatureHumidityProvider, String, DataProvidersManager)
ModifiedSaastamoinenModel(PressureTemperatureHumidityProvider pth0Provider)
Create a new Saastamoinen model for the troposphere using the given environmental conditions and table from the reference book.ModifiedSaastamoinenModel(PressureTemperatureHumidityProvider pth0Provider, String deltaRFileName)
Create a new Saastamoinen model for the troposphere using the given environmental conditions.ModifiedSaastamoinenModel(PressureTemperatureHumidityProvider pth0Provider, 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 double
getLowElevationThreshold()
Get the low elevation threshold value for path delay computation.List<ParameterDriver>
getParametersDrivers()
Get the drivers for parameters.PressureTemperatureHumidityProvider
getPth0Provider()
Get provider for atmospheric pressure, temperature and humidity at reference altitude.static ModifiedSaastamoinenModel
getStandardModel()
Create a new Saastamoinen model using a standard atmosphere model.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.<T extends CalculusFieldElement<T>>
FieldTroposphericDelay<T>pathDelay(FieldTrackingCoordinates<T> trackingCoordinates, FieldGeodeticPoint<T> point, FieldPressureTemperatureHumidity<T> weather, T[] parameters, FieldAbsoluteDate<T> date)
Calculates the tropospheric path delay for the signal path from a ground station to a satellite.TroposphericDelay
pathDelay(TrackingCoordinates trackingCoordinates, GeodeticPoint point, PressureTemperatureHumidity weather, 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.void
setLowElevationThreshold(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
-
WATER
public static final Wang1988 WATER
Provider for water pressure.
-
-
Constructor Detail
-
ModifiedSaastamoinenModel
@Deprecated public ModifiedSaastamoinenModel(double t0, double p0, double r0)
Deprecated.as of 12.1.1, replaced byModifiedSaastamoinenModel(PressureTemperatureHumidityProvider)
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
@Deprecated @DefaultDataContext public ModifiedSaastamoinenModel(double t0, double p0, double r0, String deltaRFileName)
Deprecated.as of 12.1.1, replaced byModifiedSaastamoinenModel(PressureTemperatureHumidityProvider, String)
Create a new Saastamoinen model for the troposphere using the given environmental conditions. This constructor uses thedefault data context
ifdeltaRFileName != 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
@Deprecated public ModifiedSaastamoinenModel(double t0, double p0, double r0, String deltaRFileName, DataProvidersManager dataProvidersManager)
Deprecated.as of 12.1.1, replaced byModifiedSaastamoinenModel(PressureTemperatureHumidityProvider, String, 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
-
ModifiedSaastamoinenModel
public ModifiedSaastamoinenModel(PressureTemperatureHumidityProvider pth0Provider)
Create a new Saastamoinen model for the troposphere using the given environmental conditions and table from the reference book.- Parameters:
pth0Provider
- provider for atmospheric pressure, temperature and humidity at reference altitude- See Also:
ModifiedSaastamoinenModel(PressureTemperatureHumidityProvider, String, DataProvidersManager)
-
ModifiedSaastamoinenModel
@DefaultDataContext public ModifiedSaastamoinenModel(PressureTemperatureHumidityProvider pth0Provider, String deltaRFileName)
Create a new Saastamoinen model for the troposphere using the given environmental conditions. This constructor uses thedefault data context
ifdeltaRFileName != null
.- Parameters:
pth0Provider
- provider for atmospheric pressure, temperature and humidity at reference altitudedeltaRFileName
- regular expression for filename containing δR correction term table (typicallyDELTA_R_FILE_NAME
), if null default values from the reference book are used- See Also:
ModifiedSaastamoinenModel(PressureTemperatureHumidityProvider, String, DataProvidersManager)
-
ModifiedSaastamoinenModel
public ModifiedSaastamoinenModel(PressureTemperatureHumidityProvider pth0Provider, 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:
pth0Provider
- provider for atmospheric pressure, temperature and humidity at reference altitudedeltaRFileName
- 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.
-
-
Method Detail
-
getStandardModel
public static ModifiedSaastamoinenModel getStandardModel()
Create a new Saastamoinen model using a standard atmosphere model.- altitude: 0m
- temperature: 18 degree Celsius
- pressure: 1013.25 mbar
- humidity: 50%
- @link
Wang 1988
model to compute water vapor pressure
- Returns:
- a Saastamoinen model with standard environmental values
-
getPth0Provider
public PressureTemperatureHumidityProvider getPth0Provider()
Get provider for atmospheric pressure, temperature and humidity at reference altitude.- Returns:
- provider for atmospheric pressure, temperature and humidity at reference altitude
-
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:
pathDelay
in 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:
pathDelay
in 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)
-
pathDelay
public TroposphericDelay pathDelay(TrackingCoordinates trackingCoordinates, GeodeticPoint point, PressureTemperatureHumidity weather, 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:
pathDelay
in interfaceTroposphericModel
- Parameters:
trackingCoordinates
- tracking coordinates of the satellitepoint
- station locationweather
- weather parameters for constant default values)parameters
- tropospheric model parametersdate
- current date- Returns:
- the path delay due to the troposphere
- See Also:
getLowElevationThreshold()
,setLowElevationThreshold(double)
-
pathDelay
public <T extends CalculusFieldElement<T>> FieldTroposphericDelay<T> pathDelay(FieldTrackingCoordinates<T> trackingCoordinates, FieldGeodeticPoint<T> point, FieldPressureTemperatureHumidity<T> weather, 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:
pathDelay
in interfaceTroposphericModel
- Type Parameters:
T
- type of the elements- Parameters:
trackingCoordinates
- tracking coordinates of the satellitepoint
- station locationweather
- weather parameters for constant default values)parameters
- tropospheric model parameters at current datedate
- current date- Returns:
- the path delay due to the troposphere
- See Also:
getLowElevationThreshold()
,setLowElevationThreshold(double)
-
getParametersDrivers
public List<ParameterDriver> getParametersDrivers()
Get the drivers for parameters.- Specified by:
getParametersDrivers
in 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(TrackingCoordinates, GeodeticPoint, PressureTemperatureHumidity, double[], AbsoluteDate)
,pathDelay(FieldTrackingCoordinates, FieldGeodeticPoint, FieldPressureTemperatureHumidity, 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(TrackingCoordinates, GeodeticPoint, PressureTemperatureHumidity, double[], AbsoluteDate)
,pathDelay(FieldTrackingCoordinates, FieldGeodeticPoint, FieldPressureTemperatureHumidity, CalculusFieldElement[], FieldAbsoluteDate)
-
-