How can microwave contacts be made non-LOS?

published:

How to make microwave contacts non-line-of-sight (NLOS) is a question I've had for a while now. From running a WISP I'm very familiar with point-to-point microwave links. However, amateur radio operators have been making NLOS contacts for years that technically shouldn't work at all.

As an example, this is the elevation path between my station and an NTMS beacon on top of Texas Woman's University's dorm building:

Path profile

This led to a deep rabbit hole to investigate why contacts work sometimes and HOW they work. There are already known propagation methods such as EME (moonbounce), rain scatter, and meteor scatter, but it's also possible to form ducts within the lower levels of the atmosphere with favorable conditions. An easy visual analogy: ships sometimes appear to float above the horizon.

Atmospheric ducted ship

This is because there's a duct with favorable conditions for refracting visible light — the same thing happens with microwave signals.

At one of the NTMS meetings, KM5PO presented on this exact topic and had used Claude to write some client-side pages to help predict and analyze the propagation. It was based on limited data, but did an okay job guessing at why the propagation worked. That talk is what kicked off this project.

Fast forward a few weeks and I've now built an Elixir/Phoenix app at https://prop.w5isp.com that collects and processes everything. For a quick import of some known contacts, I pulled in results from the ARRL 10 GHz and Up and 222 MHz and Up contests — VHF/UHF/microwave events where stations log long-distance contacts on those bands.

With known contacts in place, it was time to backfill them with data. To predict ducting we need atmospheric data at fine vertical resolution, so the app pulls from a mix of weather models, surface observations, upper-air soundings, and terrain:

Atmospheric

  • HRRR (NOAA 3 km) — hourly f00–f18 propagation scoring hot path; native hybrid-sigma levels for fine-grained duct detection
  • GEFS (NOAA 0.5° ensemble) — Day 2–7 extended-horizon outlook
  • HRRR native (hybrid σ) — best-duct-band per cell, refractivity gradient at 10–50 m resolution
  • IEMRE (Iowa State 0.125° reanalysis) — gridded hourly weather for per-QSO enrichment
  • NARR (NCEI 32 km reanalysis) — pre-2014 historical backfill for old QSOs (HRRR archive doesn't cover them)

Surface observations

  • ASOS (via IEM) — airport station surface weather, used by per-QSO enrichment and the 10-minute score nudge
  • MRMS (NOAA PrecipRate) — 2-minute radar-derived rain rate that overlays HRRR's hourly precip for fast-moving cells
  • NEXRAD (Level II composite reflectivity) — current-hour precip cell detection for f00 scoring

Upper air

  • RAOB (US radiosondes via IEM) — twice-daily soundings for duct/inversion analysis
  • UWYO (Canadian radiosondes) — 00/12 Z Canadian profiles

Terrain & geography

  • SRTM (90 m local tile cache + fallback API) — ITU-R P.526-16 path diffraction + viewshed

It's taken a mountain of work and time to get all of this implemented, but most of the contacts have now been backfilled with this information. Feeding all of this in to Claude, we end up with an algorithm that understands and can predict future conditions based on weather data.

This algorithm gets turned into code, and then we can fetch HRRR data hourly, amend with ASOS when available, and feed it through the algorithm to determine if any given area's atmosphere is favorable to propagation. The predictions are still experimental and not yet validated against enough real-world contacts to be trusted.

Now our mission is to continue collecting as many verified contacts on 50 MHz and up (the bands where ducting and other exotic modes are most useful to amateurs) and use them to refine the prediction model gradually over time. Another sub-project is automated beacon monitoring. Any NLOS beacon that can be monitored continuously provides an enormous amount of training data, since both endpoints are known and fixed.

The effort has been growing and we now have help from a senior meteorologist in Lubbock, TX and many hams submitting verified contacts. If you'd like to help out, we need as many contacts as possible during non-contest times — contest weekends concentrate activity into a few days, but the model needs samples spread across all conditions. We also need volunteers for future automated beacon monitoring. You can reach me at my first name at my last name dot me (it's in the footer).