ItuRefAtmosphere
-
class ItuAtmosphere
- #include <ItuRefAtmosphere.h>
ITU-R P.835-2 Reference Standard Atmosphere Implementation.
This class implements the mean annual global reference atmosphere as specified in ITU-R P.835-2 recommendation for calculating gaseous attenuation along Earth-space paths. The class precomputes atmospheric properties at initialization and provides lookup values at runtime.
Public Static Functions
-
static double getTempISA(double altitude)
Static methods for accessing atmospheric temperature during runtime.
- Parameters:
altitude – Altitude in [m]
- Returns:
Temperature in [K]
-
static double getPresISA(double altitude)
Static methods for accessing atmospheric pressure during runtime.
- Parameters:
altitude – Altitude in [m]
- Returns:
Pressure in [hPa]
-
static double getWaterVapDensityISA(double altitude)
Static methods for accessing atmospheric water vapor density during runtime.
- Parameters:
altitude – Altitude in [m]
- Returns:
Water vapor density in [g/m3]
Private Functions
-
size_t findLayerIndex(double altitude_m) const
find the layer index for a given altitude
- Parameters:
altitude_m – Altitude in [m]
- Returns:
Layer index
-
double geometricHeight(double altitude_m) const
Calculate geometric height from altitude.
- Parameters:
altitude_m – Altitude in [m]
- Returns:
Geometric height in [km]
-
double calcTempISA(double altitude_m) const
Calculate the ISA temperature.
- Parameters:
altitude_m – Altitude in [m]
- Returns:
Temperature in [K]
-
double calcPresISA(double altitude_m) const
Calculate the ISA pressure.
- Parameters:
altitude_m – Altitude in [m]
- Returns:
Pressure in [hPa]
-
double calcWaterVapDensityISA(double altitude_m) const
Calculate the ISA water vapor density.
- Parameters:
altitude_m – Altitude in [m]
- Returns:
Water vapor density in [g/m3]
-
ItuAtmosphere(const ItuAtmosphere&) = delete
-
ItuAtmosphere &operator=(const ItuAtmosphere&) = delete
Private Static Functions
-
static const ItuAtmosphere &instance()
Private Static Attributes
-
static double itu_press_const = 34.1632
Pressure constant for barometric formula [K/km] derived from g * M / R where: R = ‘gas constant’ -> 8.31446[J/(mol*K)] M = ‘molar mass of air’ -> 28.9645[g/mol] g = “gravity” -> 9.80665[m/s2] Source: ITU-R P.835-7.
-
static size_t NUM_LAYERS = 8
Number of atmospheric layers in the reference atmosphere; Source: ITU-R P.835-7, Table 1.
-
static AtmosphereLayer ATMOSPHERE_DATA[NUM_LAYERS] = {{0.0e3, -6.5}, {11.0e3, 0.0}, {20.0e3, 1.0}, {32.0e3, 2.8}, {47.0e3, 0.0}, {51.0e3, -2.8}, {71.0e3, -2.0}, {84.852e3, 0.0}}
Mean annual global reference atmosphere layer data Source: ITU-R P.835-7, Table 1.
-
static double T0 = 288.15
Ground-level standard conditions (ITU-R P.835-7).
Standard temperature at sea level [K] (eq. 5)
-
static double P0 = 1013.25
Standard pressure at sea level [hPa] (eq. 5).
-
static double rho0 = 7.5
Standard water vapor density at sea level [g/m³] (eq. 7).
-
static double h0_water = 2.0
Scale heights for exponential profiles.
[km] Water vapor scale height (ITU-R P.835-7 eq 6)
-
static double R_EARTH_ITU = 6356.766
[km] Earth’s radius for ITU atmosphere calculations
-
struct AtmosphereLayer
Atmosphere layer structure for piecewise temperature profile Defines layer boundaries and temperature gradients per source: ITU-R P.835-7.
-
static double getTempISA(double altitude)