prop/algo.md
2026-03-29 15:55:34 -05:00

348 lines
23 KiB
Markdown

# How the Microwave Propagation Algorithm Works
This document explains how microwaveprop scores current band conditions and predicts propagation for ham radio frequencies from 10 GHz and up. It's written for humans, not computers.
---
## What We're Trying to Do
Every microwave band behaves differently depending on the weather. The algorithm watches real-time surface weather observations from ASOS stations, upper-air soundings from weather balloons, and (when available) forecast data — then produces two things:
1. **A current score (0-100) for each band** telling you how good conditions are right now
2. **A 6-hour forecast** showing whether conditions are getting better or worse
The score maps to a simple scale:
| Score | Label | What It Means |
|-------|-------|---------------|
| 80-100 | Excellent | Exceptional propagation. Work the bands now. |
| 65-79 | Good | Above-average conditions. Worth getting on the air. |
| 50-64 | Marginal | Normal conditions. Local and regional contacts possible. |
| 33-49 | Poor | Below average. Short-range contacts only. |
| 0-32 | Negligible | Band is essentially dead for anything beyond line-of-sight. |
---
## The Single Most Important Thing: Moisture Affects Each Band Differently
This is the biggest insight from analyzing 58,000 contest QSOs. **Humidity helps 10 GHz but hurts everything above it.** If you only remember one thing from this document, remember this.
### Why?
There are two competing effects when moisture is in the air:
1. **Refractivity** — Water vapor bends radio waves. More moisture means more bending, which helps signals follow the curve of the earth. This is how ducting works. This effect matters at every frequency.
2. **Absorption** — Water molecules absorb microwave energy. There's a strong absorption peak at 22.235 GHz (a natural resonance frequency of the water molecule). Frequencies near this peak lose a lot of energy to moisture. This effect gets worse the closer you are to 22 GHz.
At **10 GHz**, absorption from water vapor is tiny — about 0.01 dB per kilometer. The refractivity benefit from extra moisture far outweighs this small loss. So humid air actually produces longer-distance contacts at 10 GHz. Our data shows average distances increasing from 193 km in dry air to 230 km in very humid air.
At **24 GHz**, you're sitting right next to that 22.235 GHz water vapor absorption line. Humidity now costs you roughly 0.10 dB per kilometer — ten times more than at 10 GHz. The absorption penalty crushes any refractivity benefit. Dry air is essential. Average distances drop from 115 km in dry air to just 53 km in very humid conditions.
At **47 GHz** and above, humidity still hurts (you're on the far side of the water vapor line, and there's another one at 183 GHz), but the oxygen absorption around 60 GHz starts to matter too — and there's nothing you can do about oxygen. It's always there, always absorbing, regardless of weather.
---
## The Nine Scoring Factors
The algorithm combines nine measurements into a single score. Each factor is scored 0-100, then combined using weights that reflect how much each one actually matters (based on what the real QSO data tells us, not theory alone).
### 1. Humidity (22% of the score)
Absolute humidity — the actual grams of water per cubic meter of air — is what matters. Not relative humidity, not dewpoint alone. The algorithm computes absolute humidity from temperature and dewpoint using standard physics.
**For 10 GHz:** Moderate to high humidity (10-18 g/m³) scores well because it increases the atmosphere's ability to bend signals. Very dry air (below 4 g/m³) scores poorly — not enough refractivity to create ducting. Extremely humid air (above 22 g/m³) scores slightly lower because of scintillation (signal shimmer from turbulent moisture).
**For 24 GHz and up:** Dry air scores best. The drier, the better. Each band has a sensitivity multiplier — 24 GHz is the worst because it's closest to the water vapor absorption line. 241 GHz is extremely sensitive too because it sits between two more water vapor lines (183 and 325 GHz).
### 2. Time of Day (18% of the score)
Temperature inversions are the engine of microwave propagation. During the day, the sun heats the ground, which heats the air, which rises — destroying any stable layers. At night, the ground cools by radiation, creating a cold layer near the surface with warmer air above it. This inversion traps radio waves.
The cycle goes like this:
- **Late evening (after sunset):** The ground starts cooling. An inversion begins forming.
- **Overnight:** The inversion strengthens as the ground keeps radiating heat.
- **Pre-dawn:** The inversion is strong. Conditions are good and getting better.
- **Sunrise to about 90 minutes after:** Peak inversion strength. This is the golden window.
- **Mid-morning:** The rising sun starts warming the ground. Convection begins eroding the inversion from below.
- **Afternoon:** The inversion is gone. Full convective mixing. Worst conditions of the day.
The algorithm uses a per-month sunrise table (for Central time) and scores each moment relative to sunrise. The best score (100) goes to the window from about 30 minutes before sunrise through 90 minutes after. The worst score (18) goes to the afternoon hours after the inversion is fully destroyed.
### 3. Temperature-Dewpoint Depression (14% of the score)
The spread between temperature and dewpoint tells you how dry the air is aloft. A large spread (say, temperature 80°F and dewpoint 50°F — a 30-degree depression) means dry air overhead, which favors stable layering.
**For 10 GHz:** A moderate depression (8-14°F) actually scores best — you want enough moisture for refractivity but not so much that you're in fog. Very large depressions (very dry air) score lower because refractivity drops.
**For 24 GHz and up:** Bigger depression = drier air = less absorption = higher score. Simple.
### 4. Season (10% of the score)
Seasonal patterns are really just a proxy for long-term humidity trends. In the central US:
- **November through February:** Best months. Cold, dry air. Low absolute humidity. Strong radiation inversions on clear nights.
- **July and August:** Worst months. Gulf moisture makes the boundary layer a soup of water vapor. Even the inversions that form are moisture-laden.
- **Spring and Fall:** Transitional. September is better than June because summer moisture starts retreating.
Every band follows this basic pattern, but the higher frequencies have even steeper seasonal penalties in summer because they're more sensitive to moisture.
### 5. Sky Condition (10% of the score)
Cloud cover matters mostly because clouds indicate moisture and vertical mixing:
- **Clear/Few clouds:** Score 88-100. Clear skies allow maximum radiative cooling at night, building stronger inversions.
- **Scattered:** Score 60. Some convection, some stability.
- **Broken/Overcast:** Score 5-25. Clouds trap heat, preventing the ground from cooling. Inversions can't form as easily. Often indicates an active weather pattern with vertical mixing.
- **Vertical Visibility (fog):** Score 5. Very high near-surface moisture. Bad for everything above 10 GHz.
The data shows sky condition matters less at 10 GHz (213 km average distance regardless of clouds) and more at 24/47 GHz where the associated moisture matters.
### 6. Rain (8% of the score)
Rain kills microwave signals. The higher the frequency, the worse it gets. At 10 GHz, moderate rain (10 mm/hr) costs you about 0.2 dB per kilometer — annoying but survivable. At 47 GHz, the same rain costs 1.6 dB/km. At 75 GHz and above, even light rain (4 mm/hr) adds over 1 dB/km, which effectively destroys any path beyond a few kilometers.
The algorithm computes rain attenuation using the ITU rain model (which uses two constants, k and alpha, that vary by frequency) and scores it as a simple penalty — no rain = perfect score, increasing rain = decreasing score until the path is destroyed.
### 7. Wind (8% of the score)
Wind was originally weighted at 18% in the old algorithm. The data doesn't support that. Across 50,000+ contacts at 10 GHz, calm winds averaged 216 km and moderate winds averaged 220 km — essentially no difference.
Wind does matter for two things:
- Very strong winds (above 20 knots) create turbulent scintillation that degrades signals
- Calm air allows inversions to form undisturbed
But the effect is much smaller than originally assumed. The algorithm now gives a mild penalty for strong winds and otherwise stays out of the way.
### 8. Pressure (5% of the score)
Barometric pressure, by itself, is a weak predictor. The original algorithm scored rising pressure as good and falling as bad, based on the theory that high pressure = stable atmosphere.
The data tells a more nuanced story. Low pressure (below 1010 hPa) actually correlates with the longest 10 GHz distances — 262 km average versus 196 km at high pressure (above 1025 hPa). Why? Because frontal boundaries create dramatic temperature and moisture gradients that produce strong inversions and ducts.
The revised algorithm cares more about pressure *change* (the gradient) than the absolute value:
- Rapidly rising: Post-frontal clearing — inversions forming, score 80
- Slowly falling: Approaching front — possible ducting, score 65
- Rapidly falling: Active weather — unstable, score 45
### 9. Refractivity / Sounding Data (5% of the score)
When upper-air sounding data is available (from weather balloon launches at 00Z and 12Z), the algorithm gets its best look at the actual vertical structure of the atmosphere.
The key measurement is the **modified refractivity gradient** (how the atmosphere's bending power changes with height). In a standard atmosphere, this gradient is about -40 M-units per kilometer. When the gradient drops below -157 M-units per kilometer, a **duct** has formed — a layer that traps radio waves and guides them along the earth's surface.
The algorithm also looks at **boundary layer depth** — the height of the lowest mixing layer. A depth of 500-1000 meters is the sweet spot across all bands. This corresponds to a morning condition where the nocturnal inversion has been lifted by early heating but hasn't been destroyed by full convective mixing.
Since soundings only happen twice a day, this factor gets a modest weight. When sounding data isn't available, it defaults to a neutral score of 50.
---
## Putting It All Together
The nine factor scores get multiplied by their weights and added up:
| Factor | Weight |
|--------|--------|
| Humidity | 22% |
| Time of Day | 18% |
| T-Td Depression | 14% |
| Season | 10% |
| Sky Condition | 10% |
| Rain | 8% |
| Wind | 8% |
| Pressure | 5% |
| Refractivity | 5% |
A perfect day — dry (or humid at 10 GHz), sunrise, clear skies, calm winds, winter, no rain, strong inversion — would score close to 100. A summer afternoon with thunderstorms and 20 g/m³ of moisture would score close to 0.
---
## What the Score Means for Each Band
The same score translates to very different achievable distances depending on frequency. Higher frequencies face more path loss and more absorption, so the same "excellent" conditions produce shorter paths:
| Score | 10 GHz | 24 GHz | 47 GHz | 75 GHz |
|-------|--------|--------|--------|--------|
| Excellent (80+) | 400-1000+ km | 200-500 km | 120-300 km | 80-200+ km |
| Good (65-79) | 250-400 km | 120-200 km | 80-120 km | 50-80 km |
| Marginal (50-64) | 150-250 km | 70-120 km | 50-80 km | 30-50 km |
| Poor (33-49) | 80-150 km | 40-70 km | 25-50 km | 15-30 km |
| Negligible (0-32) | <80 km | <40 km | <25 km | <15 km |
At 122 GHz and above, the oxygen absorption line at 118.75 GHz adds a fixed ~0.8 dB/km penalty that no weather can fix. These bands are realistically limited to about 30-50 km for typical contacts and 80-140 km under exceptional conditions.
At 241 GHz, you're between two water vapor lines (183 and 325 GHz). Even in extremely dry winter air, you're losing about 2 dB per kilometer. The practical limit is about 10-50 km for most work, with the 114 km record requiring near-perfect winter conditions and possibly elevated terrain.
---
## The 6-Hour Forecast
The algorithm can't predict the future, but it can project current trends forward using two things:
### 1. The Diurnal Cycle
The daily temperature/humidity cycle is highly predictable. If it's 3 AM and conditions are good, the algorithm knows that sunrise is coming and the inversion will peak in a couple of hours so the score will improve. If it's noon, the algorithm knows the afternoon convective mixing will keep things poor for several more hours.
The forecast blends the current trend (what temperature and dewpoint have been doing over the last 3 hours) with the expected diurnal pattern:
- Short-term (1-2 hours): Current trend dominates
- Medium-term (3-4 hours): Blend of trend and diurnal model
- Longer-term (5-6 hours): Diurnal model dominates
### 2. Forecast Weather Data
When NWS forecast data is available (cloud cover, precipitation probability, wind forecasts), the algorithm uses it for the factors that can't be projected from surface trends alone mainly rain and sky condition.
### Confidence
Predictions get less reliable with time. The algorithm reports confidence alongside each forecast point:
| Horizon | Confidence | What It Means |
|---------|------------|---------------|
| +1 hour | 85% | Pretty reliable. Atmospheric conditions don't change fast. |
| +2 hours | 75% | Still good. The diurnal cycle is predictable. |
| +3 hours | 60% | Okay. Unexpected fronts or convection could change things. |
| +4 hours | 50% | Coin flip territory for details, but general trend is still useful. |
| +5-6 hours | 30-40% | General direction only. A lot can change. |
Even the best prediction has about ±2-3 dB of inherent noise the atmosphere is never perfectly still, equipment has thermal variation, and multipath geometry constantly shifts. The algorithm communicates this uncertainty rather than pretending to have precision it doesn't have.
---
## Band-by-Band Guide
### 10 GHz (3 cm)
**The workhorse band.** 52,000+ QSOs in our dataset, with contacts out to 1,609 km.
**What makes it special:** At 10 GHz, the atmosphere is nearly transparent. Gaseous absorption is negligible. What matters is whether the atmosphere bends the signal and moisture helps with that. This is the one band where humid conditions are actually *good* for long-distance work.
**Best conditions:** Moderate to high humidity, temperature inversions (especially radiation inversions overnight through early morning), stable atmosphere with a boundary layer depth of 500-1000 meters. Marine ducting along coastlines can produce 1,000+ km paths.
**Worst conditions:** Very dry air (low refractivity), afternoon convective mixing, no inversion structure.
**Rain:** Not a significant concern. Even moderate rain only costs about 0.2 dB/km.
**Key insight:** 10 GHz propagation is about atmosphere structure, not absorption. Focus on inversions and refractivity, not humidity levels.
### 24 GHz (1.2 cm)
**The humidity-sensitive band.** 3,400+ QSOs, distances to 710 km (the longest was rain scatter, a completely different mechanism).
**What makes it special:** 24 GHz sits right next to the 22.235 GHz water vapor absorption line. No other ham band is this close to a major atmospheric absorption feature. Every gram of water vapor in the air costs you about ten times more signal than at 10 GHz.
**Best conditions:** Very dry air (below 8 g/m³ absolute humidity), cold season (November through March), clear skies, strong pre-dawn inversions.
**Worst conditions:** Summer. The Gulf moisture floods the boundary layer, and there's simply too much water vapor to overcome. Summer range is roughly half of winter potential.
**Rain:** A serious concern. 10 mm/hr rain adds nearly 1 dB/km. Moderate rain can cut achievable range in half.
**Rain scatter:** At 24 GHz, heavy rain cells can scatter signals to very long distances. One 710 km QSO was explicitly labeled as rain scatter. This is a completely different propagation mechanism from ducting you're bouncing signals off the rain cell rather than through it.
**Key insight:** Track absolute humidity obsessively. A drying trend is the most actionable prediction for this band.
### 47 GHz (6 mm)
**The atmospheric window.** 576 QSOs, distances to 343 km.
**What makes it special:** 47 GHz sits in a gap between the 22 GHz water vapor line and the 60 GHz oxygen band. It's less humidity-sensitive than 24 GHz, but oxygen absorption starts to become noticeable (~0.045 dB/km, weather-independent).
**Best conditions:** Very dry air, clear skies, strong inversions. Very dry winter conditions can produce surprising distances (246 km documented).
**Worst conditions:** Any precipitation, high humidity, summer months.
**Key insight:** Ducting events are the ONLY way to exceed about 150 km. Without ducting, free-space loss plus gas absorption limits things. Monitor for inversions during the early morning window.
### 68 GHz (V-band edge)
**The oxygen absorption fringe.** Not a common ham band, but our terrestrial link data at 68 GHz provides valuable insight.
**What makes it special:** You're on the edge of the massive 60 GHz oxygen absorption complex. O absorption is about 0.5-1.0 dB/km weather-independent, always present. On top of that, water vapor adds its own penalty.
**Best conditions:** Cold, dry air reduces the water vapor component. But nothing fixes the oxygen problem.
**Practical limits:** About 40 km for typical contacts, maybe 80-150 km under exceptional conditions with ducting and very dry air.
**Key insight from link data:** On our 2.8 km terrestrial link, we measured 3-5 dB of daily signal variation driven almost entirely by humidity changes. Even at this short range, gaseous absorption is measurable and matters.
### 75 GHz (4 mm)
**Rare but viable.** Only 81 QSOs with distance data, but includes a 289 km contact (California marine duct).
**Best conditions:** Very dry air (below 5 g/m³), no precipitation whatsoever, strong elevated inversions, winter months.
**Key insight:** Rain attenuation is brutal about 1 dB/km in light rain. Even mist or drizzle meaningfully degrades the path.
### 122 GHz (2.5 mm)
**The oxygen wall.** 11 QSOs, longest 139 km (California, February).
**What makes it special:** The 118.75 GHz oxygen absorption line creates a floor of about 0.8 dB/km that you can never get below. Cold temperatures slightly narrow this absorption line, giving a small benefit in winter.
**Practical limits:** About 30 km for reliable work, 50-80 km under good conditions, and 140 km is probably close to the theoretical tropospheric limit.
### 134 GHz
**The mini-window.** Only 3 QSOs in our data, longest 157 km (Germany, March).
**What makes it special:** Sits between the O 118 GHz line and the HO 183 GHz line a small atmospheric window. Better than 122 GHz because you're farther from the oxygen peak, but the approaching water vapor line at 183 GHz starts to affect things.
### 241 GHz (1.2 mm)
**The frontier.** 5 QSOs, longest 114 km (Virginia, January).
**What makes it special:** Between two water vapor absorption lines (183 and 325 GHz). Water vapor absorption is devastating about 0.3 dB per kilometer per gram of moisture. At a typical 7.5 g/m³, that's 2.3 dB/km of water vapor absorption alone.
**Best conditions:** Extremely dry air (below 3 g/m³ essentially winter-only in most US locations), high altitude stations, short paths.
**Practical limits:** 10-50 km for typical work. The algorithm honestly reports "path viable" or "path not viable" for this band rather than pretending to give a fine-grained score.
---
## Things We Learned From Real Data That Changed the Algorithm
The original algorithm (algo1) was built from theory and a handful of calibration contacts. After analyzing 58,000 QSOs and 18,000 terrestrial link measurements, several things changed:
### 1. Wind was way overweighted
The old algorithm gave wind 18% of the total score, making it the second most important factor. The data shows it barely matters calm winds and moderate winds produce essentially the same average contact distances. We dropped wind to 8%.
### 2. Humidity needed to be frequency-dependent
The old algorithm penalized humidity for all bands. That's correct for 24 GHz and up, but backwards for 10 GHz. The new algorithm treats humidity as beneficial at 10 GHz and harmful above that.
### 3. Low pressure can be good
The old algorithm assumed high/rising pressure = stable = good propagation. The data shows the opposite at 10 GHz low pressure systems produce the longest average distances because frontal boundaries create strong refractive gradients. The new algorithm cares about pressure change (gradient) rather than the absolute value.
### 4. Binary duct detection is nearly useless
Soundings showing "duct detected" vs "no duct detected" showed almost no correlation with contact distance. This is because soundings are point samples taken twice a day, while conditions change continuously. The characteristics of the duct (height, strength, depth) matter more than whether one exists.
### 5. Boundary layer depth matters
A moderate boundary layer depth of 500-1000 meters is the sweet spot across all bands. This corresponds to the morning condition where the nocturnal inversion is lifting but hasn't fully broken an elevated duct that's high enough to trap signals.
### 6. Short-path physics are inverted
Our terrestrial link data showed that sub-refractive conditions (less bending than normal) actually improve signal on short, line-of-sight paths. This is the opposite of what helps long-range ham contacts. The algorithm distinguishes between LOS paths and beyond-LOS paths for this reason.
---
## What the Algorithm Can't Do
- **It can't predict the unpredictable.** A random thunderstorm cell, a sudden wind shift, or an unexpected frontal passage will invalidate the forecast.
- **It can't see between soundings.** Upper-air data is only available twice a day. The atmosphere between 00Z and 12Z soundings is interpolated, not measured.
- **It doesn't know your terrain.** Two stations on mountaintops may have line-of-sight at 200 km without needing any atmospheric help. Two stations in flat terrain need ducting for the same distance. Without SRTM elevation data for each path, the algorithm assumes all paths need atmospheric bending.
- **It has ±2-3 dB of inherent noise.** Even with perfect weather data, atmospheric scintillation, equipment thermal effects, and multipath geometry mean the real signal will bounce around by a few dB regardless of what the algorithm predicts.
- **Sparse data above 75 GHz.** The 122/134/241 GHz band parameters are based on physics models and a handful of contacts, not the robust statistical analysis we have for 10 and 24 GHz.
---
## Data Sources
- **58,282 QSOs** from ARRL microwave contest logs (2019-2024), cross-referenced with weather
- **95 ASOS surface observation stations** providing temperature, dewpoint, wind, pressure, sky condition
- **9 RAOB sounding stations** providing vertical atmospheric profiles twice daily
- **18,540 signal measurements** from 7 terrestrial microwave links at 11, 24, and 68 GHz (March 2026)
- **ITU-R Recommendations** P.453 (refractivity), P.525 (free-space loss), P.676 (gaseous absorption), P.838 (rain attenuation)