← All tools

Cloud and fog attenuation calculator (ITU-R P.840)

Cloud and fog attenuation is the radio loss caused by liquid-water droplets in the air. It grows with frequency and matters above about 10 GHz on satellite links and around 100 GHz in fog. This calculator applies ITU-R P.840-9 to give the loss in dB/km inside fog or cloud and the loss of a slant path through a cloud layer.

Valid from 1 to 200 GHz (P.840-9). Outside that range the readouts show —.

Not used for the slant path. P.840-9 fixes the cloud temperature at 273.75 K (0.6 °C), so changing this value changes nothing here.

Example values for one site (45° N 0° E) from the ITU validation sheet of the P.840-9 maps, read 7 November 2026. Your site differs.

All the liquid cloud water above 1 m² of ground. 1 kg/m² is the same as a 1 mm layer of water, so both units give the same number.

°

Angle of the satellite above the horizon, 5 to 90°. P.840-9 does not cover lower angles.

Cloud attenuation
0.0643 dB
mass coefficient × L / sin θ · cloud liquid water only, no rain or gas
Mass absorption coefficient
0.7079 dB/(kg/m²)
coefficient at 273.75 K (0.7584) × correction 0.9334
P.840-8 method, for comparison
0.0700 dB
+8.9 % against P.840-9 · coefficient at 0 °C, no correction
Ac · dB · linear00.250.50.7515153045607590elevation angle θ (°)P.840-9 · L = 0.0878 kg/m²P.840-8 methodAc = 0.0643 dB

Cloud attenuation against elevation angle, on linear axes. The green curve is P.840-9 for your frequency and columnar content, and the dot is your elevation angle. The loss grows as 1/sin θ, so at 5° the ray crosses 11.5 times as much cloud as at the zenith. The dashed grey curve is the older P.840-8 method (coefficient at 0 °C, no correction). It runs up to 9 % higher below about 150 GHz and up to 2 % lower near 200 GHz. Temperature does not enter either curve.

Implements Recommendation ITU-R P.840-9 (08/2023): specific attenuation eqs. (1)–(10) and the instantaneous slant-path method eqs. (11)–(12). The yearly statistics of the digital maps are not included, so L is your input. The fog path assumes uniform density. The temperature range of −20 to +40 °C is our choice. Rain, gases and ice clouds are not part of the result.

How it works

  1. 01

    Pick the path

    Inside fog or cloud, the loss builds up per kilometre, like on a terrestrial link through a fog bank. On a satellite link the ray crosses a cloud layer once, so the total amount of water in the column counts, not its density.

  2. 02

    Model the water

    P.840 treats liquid water as a dielectric with two relaxation frequencies. The main one, fp, rises with temperature, from 8.90 GHz at 0 °C to 12.63 GHz at 10 °C and 16.96 GHz at 20 °C. That is why cold fog absorbs more at 30 GHz than warm fog.

  3. 03

    Get the specific attenuation

    The water model gives Kl in (dB/km)/(g/m³). Multiply by the liquid-water density to get γc in dB/km, then by the path length. At 30 GHz and 10 °C, thick fog of 0.5 g/m³ costs 0.296 dB/km.

  4. 04

    Or cross a cloud layer

    For a slant path, P.840-9 evaluates Kl at a fixed 273.75 K and multiplies it by an empirical correction of about 0.93 to 0.95 between 6 and 45 GHz. The result KL times the columnar content L is the zenith loss. Divide by sin θ for lower elevation angles.

  5. 05

    Add it to the link budget

    Cloud and fog loss is one line among several. Gas absorption (ITU-R P.676) and rain (ITU-R P.838) come on top. For availability statistics, ITU-R P.618 combines them. This tool gives the value for one cloud or one fog, not a yearly statistic.

Formulas

Inside fog or cloud
γc = Kl(f, T) · M
  • γc — specific attenuation, dB/km (P.840-9 eq. 1)
  • Kl — specific attenuation coefficient, (dB/km)/(g/m³)
  • M — liquid-water density, g/m³ (written ρ in P.840-9)
  • A = γc · d — loss over d km of uniform fog, dB. Not an equation of P.840
Specific attenuation coefficient (double-Debye model of water)
Kl = 0.819 · fε″ · (1 + η²)
  • η = (2 + ε′) / ε″
  • ε″ = f·(ε₀ − ε₁)fₚ·(1 + (f/fₚ)²) + f·(ε₁ − ε₂)fₛ·(1 + (f/fₛ)²)
  • ε′ = ε₀ − ε₁1 + (f/fₚ)² + ε₁ − ε₂1 + (f/fₛ)² + ε₂
  • ε₀ = 77.66 + 103.3·(300/T − 1)
  • ε₁ = 0.0671·ε₀, ε₂ = 3.52
  • fₚ = 20.20 − 146·(300/T − 1) + 316·(300/T − 1)², GHz
  • fₛ = 39.8·fₚ, GHz
  • f — frequency, GHz (1 to 200)
  • T — liquid-water temperature, K
Slant path through a cloud layer (P.840-9)
Ac = KL(f) · Lsin θ
  • KL(f) = Kl(f, 273.75 K) · C(f), dB/(kg/m²) (eq. 12)
  • C(f) = 0.1522·e−(f + 23.9589)²/3299.1 + 11.51·e−(f − 219.2096)²/2 759 500 − 10.4912
  • L — columnar liquid water, kg/m² (= mm)
  • θ — elevation angle, 5° to 90°
  • No temperature input. The 273.75 K is fixed by the Recommendation

Worked example

Satellite link at 30 GHz, 75° elevation, through the ITU test cloud
  1. Kl(30 GHz, 273.75 K) = 0.7584 (dB/km)/(g/m³)
  2. C(30) = 0.9334, so KL = 0.7584 · 0.9334 = 0.7079 dB/(kg/m²)
  3. Ac = 0.7079 · 0.08777 / sin 75° = 0.06213 / 0.9659 = 0.0643 dB
  4. ITU validation sheet, same inputs: 0.0643181 dB
  5. In fog at 30 GHz, 10 °C and 0.5 g/m³: γc = 0.5925 · 0.5 = 0.296 dB/km
  6. Same fog at 0 °C: γc = 0.7708 · 0.5 = 0.385 dB/km, 30 % more

FAQ

Is fog as bad as rain for a radio link?
No. Rain is usually far worse, and fog only becomes significant from about 100 GHz upward. Thick fog of 0.5 g/m³ at 100 GHz and 15 °C costs 2.2 dB/km, medium fog 0.22 dB/km. At 10 GHz the same thick fog costs 0.03 dB/km, which you can ignore. Fog droplets are much smaller than the wavelength, so only their total water counts. Raindrops are not, which is why rain has its own model, ITU-R P.838.
Why does temperature change the fog result but not the slant result?
Because P.840-9 fixes the slant-path temperature at 273.75 K and adds an empirical correction, so the slant loss depends only on frequency, columnar content and elevation. In fog mode the temperature is a real input. Below about 140 GHz colder water absorbs more. At 30 GHz Kl is 0.771 at 0 °C and 0.470 at 20 °C. Near 200 GHz the order reverses, with 9.82 against 10.47.
What does columnar liquid water content mean?
It is the total mass of liquid cloud water in a column of air above 1 m² of ground. If you condensed it all into a puddle, 1 kg/m² would be 1 mm deep. It replaces the density and the thickness of the cloud in one number. A cloud 1 km thick with 0.5 g/m³ holds 0.5 kg/m².
What are typical values of L?
Mostly between 0 and about 1.5 kg/m². At 45° N 0° E in south-west France, the P.840-9 maps give 0.15 kg/m² exceeded 15.5 % of the year, 0.62 kg/m² exceeded 1.5 % and 1.34 kg/m² exceeded 0.015 %. At 0° N 0° E the 15.5 % value is 0.088 kg/m², the default here. For your own site you need the P.840-9 digital maps, which this tool does not include.
Is almost 1 dB for a cloud at Ka band right?
Yes. Heavy cloud of 0.6 kg/m² at 30 GHz and 30° elevation gives Ac = 0.7079 · 0.6 / 0.5 = 0.85 dB. At 12 GHz the same cloud costs 0.15 dB. P.840-9 itself notes that clouds matter for systems well above 10 GHz and for links that need very high availability.

Weather costs a few dB, terrain can cost the whole link. Waveshed draws line of sight and coverage over real elevation data, so you can check that the path is clear before you budget for fog and cloud.

Check the path on the map →

Related guides

  • LOS vs RF — why a clear line of sight is the first question, before any weather loss
  • Plan radio coverage — from one transmitter to a coverage map in the simulator

Sources & further reading

Related tools