Combined atmospheric attenuation model for satellite link budgets.
Aggregates all atmospheric propagation effects into a single total attenuation value with a component-by-component breakdown. This is the module that link budget calculators typically call.
The total atmospheric attenuation is the sum of:
- Gaseous attenuation (ITU-R P.676) - Oxygen and water vapor absorption, always present, dominant below 10 GHz
- Rain attenuation (ITU-R P.618) - Dominant effect above 10 GHz for the specified exceedance probability
- Cloud attenuation - Simplified model based on integrated liquid water content (from ITU-R P.840 concepts)
- Tropospheric scintillation - Simplified model for amplitude fluctuations (from ITU-R P.618 concepts)
Note: The cloud and scintillation models implemented here are simplified approximations. For detailed cloud attenuation calculations, refer to ITU-R P.840. For detailed scintillation calculations, refer to the full ITU-R P.618 procedure.
Summary
Functions
Compute cloud attenuation using ITU-R P.840.
Compute scintillation attenuation using ITU-R P.618.
Compute total atmospheric attenuation for a satellite link.
Types
Functions
Compute cloud attenuation using ITU-R P.840.
Compute scintillation attenuation using ITU-R P.618.
@spec total_atmospheric_attenuation(keyword()) :: attenuation_result()
Compute total atmospheric attenuation for a satellite link.
Combines gaseous, rain, cloud, and scintillation attenuation into a single result with per-component breakdown.
Options
:frequency_ghz- Frequency in GHz (required):elevation_deg- Elevation angle in degrees (required):latitude_deg- Earth station latitude in degrees (required):longitude_deg- Earth station longitude in degrees (required):rain_rate_mmh- Rain rate in mm/h (required):station_altitude_km- Station altitude above MSL in km (default: 0.0):water_vapor_density- Water vapor density in g/m^3 (default: 7.5):polarization-:horizontal,:vertical, or:circular(default::circular):cloud_liquid_water- Integrated cloud liquid water in kg/m^2 (default: 0.3):time_percentage- Exceedance time percentage (default: 0.01):antenna_diameter_m- Antenna diameter in meters (default: 1.2, for scintillation):antenna_efficiency- Antenna efficiency (default: 0.5, for scintillation):temperature_c- Average surface temperature in degrees Celsius (default: 15.0):relative_humidity- Average relative humidity in % (default: 75.0)
Returns
A map with the following keys:
:total_db- Total atmospheric attenuation in dB:gaseous_db- Gaseous attenuation (P.676) in dB:rain_db- Rain attenuation (P.618) in dB:cloud_db- Cloud attenuation (P.840) in dB:scintillation_db- Scintillation (P.618) in dB
Examples
iex> result = ItuRPropagation.LinkBudget.total_atmospheric_attenuation(
...> frequency_ghz: 12.0,
...> elevation_deg: 30.0,
...> latitude_deg: 40.0,
...> longitude_deg: -100.0,
...> rain_rate_mmh: 25.0
...> )
iex> result.total_db > 0.0
true