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 Functions

ItuAtmosphere()
~ItuAtmosphere()

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.

Public Members

double h
double dT_dh