⚙️ Models, Methodology, and Data Sources
This section covers the technical approach used in the VHF/UHF calculator for operators who want to understand what's happening under the hood.
Elevation Data
Terrain elevation is sampled along the path between Site A and Site B using the Open-Elevation API, which sources data from the SRTM (Shuttle Radar Topography Mission) dataset at approximately 90-meter horizontal resolution. A fallback to Open-Meteo's elevation API is used if Open-Elevation is unavailable. Elevation samples are taken at uniform intervals along the great-circle path — approximately one sample per 100–200 meters depending on path length.
Earth Curvature and Effective Earth Radius
A flat-earth approximation is not used. Each terrain sample is corrected for earth curvature using the standard effective earth radius model. The effective earth radius factor k is set to 4/3 (1.333), which is the widely accepted standard for average atmospheric refraction conditions in temperate climates at VHF and UHF frequencies. This k-factor accounts for the slight bending of radio waves downward through the atmosphere, effectively increasing the radio horizon beyond the optical horizon.
The curvature correction applied to each terrain sample at distance d from Site A along a total path of length D is:
h_correction = (d × (D − d)) / (2 × k × R_e)
where R_e is the mean radius of the Earth (6,371 km). This correction is added to the raw terrain elevation before comparing against the line-of-sight ray between the two antenna heights.
Fresnel Zone Clearance
Line-of-sight in the geometric sense (unobstructed ray between antennas) is necessary but not sufficient for reliable VHF/UHF communication. The first Fresnel zone — an ellipsoid of revolution around the direct path — must be at least 60% clear of terrain obstructions to avoid significant diffraction loss.
The radius of the first Fresnel zone at any point along the path is:
F1 = √(λ × d1 × d2 / (d1 + d2))
where λ is the wavelength in meters, d1 is the distance from Site A to the point, and d2 is the distance from that point to Site B. The tool evaluates this at every terrain sample and reports the worst-case clearance as a percentage of F1.
Knife-Edge Diffraction Loss
When terrain obstructs the path, the tool estimates the additional signal loss using the knife-edge diffraction model per ITU-R Recommendation P.526. This model treats the obstruction as a perfectly absorbing half-plane and calculates the diffraction loss as a function of the Fresnel-Kirchhoff diffraction parameter ν (nu):
ν = h × √(2(d1 + d2) / (λ × d1 × d2))
where h is the height of the obstruction above the line of sight (negative if the path clears the obstacle). The diffraction loss J(ν) is then computed using the standard ITU-R P.526 approximation. This provides a conservative estimate — real terrain is rarely a perfect knife-edge, and the actual loss may be lower. For multiple terrain obstructions, the Deygout method is applied, which identifies the dominant obstacle and adds secondary corrections for each additional ridge.
Link Quality Rating
The qualitative link quality indicator (Excellent / Good / Marginal / Obstructed) is derived from a combination of Fresnel zone clearance percentage and estimated diffraction loss. A path with full Fresnel zone clearance and no diffraction loss is rated Excellent. Paths with greater than 60% Fresnel clearance but minor obstructions are Good. Significant Fresnel intrusion with measurable diffraction loss is Marginal. Paths with severe obstruction and high predicted loss are Obstructed.
Mapping
Both the VHF/UHF and HF maps use Leaflet.js as the mapping engine. The VHF/UHF map uses OpenStreetMap tiles for terrain context. The HF map uses Esri World Imagery (satellite) with a boundaries overlay, which is better suited to visualizing the geographic spread of HF contacts across state and national borders.
Callsign Lookups
Ham radio callsign lookups are performed against callook.info, which provides real-time access to FCC ULS license data including operator name, license class, registered address, and Maidenhead grid square. GMRS callsigns (format WXXX###) do not have a public API equivalent and return a direct link to the FCC ULS search for manual lookup.
POTA Integration
Parks on the Air park data is sourced from the official POTA API (api.pota.app), which provides park name, location, state/country, grid square, and activity status for all POTA reference numbers worldwide. The tool accepts US-format references (US-0001) as well as numeric shorthand (0001 or K-1).
SOTA Integration
Summit on the Air data is sourced from the official SOTA API (api2.sota.org.uk), which provides summit name, elevation, point value, association, and GPS coordinates. Lookups are routed through the Cloudflare Worker proxy and cached at the edge for 30 days — meaning frequently looked-up summits are served from Cloudflare's global network with near-zero latency rather than hitting the SOTA servers on every request. The Did You Mean? feature fetches the full summit list for nearby regions and scores candidates by code match and geographic proximity to your Site A location.
Repeater Data
Repeater lookups use the RepeaterBook API, which provides coverage for amateur and GMRS repeaters across the United States and Canada. Results include output frequency, offset, CTCSS/DCS tones, mode, and the repeater's geographic coordinates.
Privacy and Data
No user data is stored server-side. Contact logs are stored exclusively in your browser's local storage and never leave your device. Callsign, park, and summit lookups are the only outbound requests made, and those are proxied through a Cloudflare Worker that does not log query parameters. The tool uses Google Analytics (GA4) to collect anonymous aggregate usage data (page views, session counts) to help guide future development.