HF propagation visualiser

Last Updated on August 17, 2026 by John Berry

Below is a calculator and display tool as an HF propagation visualiser. It illustrates what happens when a wave leaves an antenna and is reflected by the ionosphere. My aim here is to provide a technically accurate simulation of HF propagation. It’s the sort of simulator used years ago by many professionals for HF link performance prediction. Today’s predictions use comprehensive models of the ionosphere and Solar Flux or SSN as primary variable.

This visualiser is intended as an educational tool.

This HF propagation visualiser may indicate that a path will work where in fact local conditions are not global. As a result, the hop you expect to include may not work. I have also not included any system value or any path budget, and I don’t calculate path loss. Whilst the visualiser may indicate success, it may be that electrically the margin is negative.

The visualiser shows various valid propagation distances for different dependent variables set using sliders. It assumes a normal sun with stable solar flux/SSN and no sudden ionospheric disturbances. Read more below or jump straight to the simulator.

Core physics

The key idea that I’ve embraced is that the wave spreads from the antenna in the vertical plane. There is therefore no such thing as a single ray launched. Instead there is an infinite number of rays transmitted, bounded only by the antenna vertical response. There are therefore an infinite number of paths up, and back down. I have however reduce the number of rays to make the output graphic easier to read.

I’ve employed two core pieces of theory: the virtual height (mirror) model and the secant law. Both are well respected ideas used by physicists.

The first, the virtual height model, approximates all the ideas around what happens when a wave enters the ionosphere and is refracted and reflected. The ionosphere comprises multiple regions, and refraction and reflection are complicated. The Breit & Tuve theorem suggests that the reflection process is equivalent to mirror type reflection from a single virtual height. I simplify the effects with a single reflecting layer at height h’ for each region, E, Es, F1, F2, and F. The virtual height h’ is an input variable set with a slider.

The second, the secant law, says that the maximum usable frequency (MUF) of any launch angle can be determined by the zenith critical frequency, fc, multiplied by the secant of angle ϕ0, the angle of incidence with the ionospheric layer. The secant of an angle is the inverse of the cosine and hence is the hypotenuse over the adjacent in the triangle. This suggests that the critical frequency rises from typically 4- 6MHz to much higher frequencies as the launch angle with the Earth at the antenna reduces. The zenith critical frequency is available from ionosondes (and I give a cheat sheet and other sources below). 

If the operating frequency is below the Maximum Usable Frequency (MUF) for a given angle of incidence, the wave is reflected. If the MUF is above, it goes straight through and is lost. This is the key logic in the visualiser. Historical data concerning the zenith critical frequency is readily available.

Input variables

Signal frequency in MHz.
Vertical radiation pattern (VRP) of the antenna (in one band or two non-overlapping bands) between 0 and 90 degrees. The VRP is defined by the 3dB points and the relative drop in power at the edges is simulated by reduced brightness in the graphics. The relative efficiency of the second lobe over the first can be set.
Virtual Height (h’) and Critical Frequency (fc) for four distinct layers: E, Es (Sporadic E), F1, and F2.
A ‘Night Mode’ toggle is included that collapses F1 and F2 into a single F layer and lowers the E layer fc significantly.

Up to four hops are allowed in the hop-builder comprising combinations of E, Es, F1, and F2 layers.

Sources of input variable values

There are several sources of real data from vertically pointing ionosondes to set up a completely valid simulation – a prediction even – by returning zenith critical frequencies. I’ve noted those sources below.

Otherwise, here’s a cheat sheet of typical values.

LayerVirtual Height (h′)fc​ (Day – at Solar Minimum)fc​ (Day – at Solar Maximum)fc​ (Night)
E100 – 110 km2.5 – 3.0 MHz3.5 – 4.0 MHz< 0.5 MHz
F1200 – 220 km4.0 – 4.5 MHz5.5 – 6.5 MHzMerges with F2
F2250 – 350 km4.5 – 6.0 MHz10.0 – 15.0+ MHz2.0 – 5.0 MHz
Es90 – 120 kmOccasional (summer)Occasional (summer)Variable

Decent values are needed for each variable for a day/time of interest. To exercise the simulator initially, consider a favourable propagation environment. Set F2 hops, and set a high h’ and high fc. Then change to low values and compare the results. And then toggle various combinations of reflecting layers in the hop builder.

Very broadly, F1 is pronounced in winter, when the SSN is low, and during ionospheric storms when F2 is degraded. F2 is far more significant but more variable. And the E layer is present but highly variable. The Sporadic E layer appears from time to time in summer.

Visualiser

This HF propagation visualiser calculates automatically. It has two modes – a regional mode with distance to 4,000km, and a DX mode with distance to 10,000km.

If you are viewing on a smartphone, only half of the input screen is visible initially. Swipe up for F2, VRP, and Hop Builder.

HF Radio Propagation Geometry & Physics Visualizer
Global Parameters
14.0 MHz
Ionosphere State
E Layer
105
3.0
Es (Sporadic-E)
100
15.0
F1 Layer
200
5.0
F2 Layer (Always On)
300
9.0
Antenna (VRP)
Lobe 1 (Primary)
5
15
30
45
-3
Lobe 2 Min must be > Lobe 1 Max
Hop Builder

Using the HF propagation visualiser

For reference, the 4,000km regional range covers paths such as London to Baghdad. The 10,000km DX range covers paths such as London to Seattle.

Please do consider the inputs carefully. It can appear that the visualiser is not working correctly where in fact all that’s wrong is what is being asked to do. It can be that that your expectations are too great and the paths you ask for just won’t work. In the real world lower layers block upper layers. If a low layer reflects, the layers above will have no effect and you will see nothing on the visualiser.

Here are some sources of real data for use with the visualiser. Variable fc for the E layer is reported as f0E and for F2, it is reported as f0F2.

GIRO (Global Ionospheric Radio Observatory): The Lowell DIDBase (Digital Ionogram Data Base) is the global gold standard. It aggregates real-time and historical ionograms from digisondes worldwide.

UK Specific – UKSSDC & PropQuest: UK visitors can go to the UK Solar System Data Centre (which hosts the Chilton/RAL ionosonde historical data). For a more ham-friendly interface, PropQuest.co.uk (run by Jim Bacon, G3YLA) provides easily readable daily graphs of the Chilton f0F2 and f0E critical frequencies.

US Specific – NOAA NCEI: The National Centers for Environmental Information provides extensive historical archives of US ionosonde stations.

Note that during a Sporadic E (Es) event, fc can spike anywhere from 5 MHz to over 20 MHz. You can therefore set the operating frequency at 28MHz or 50MHz and model this phenomenon.

Leave a Reply