saintaardvark / rbnpredictor / 1.0.0


A machine learning model to predict DX propagation in the 20 metre amateur radio band at Vancouver, British Columbia.

Applicable Scenarios and Problems

(Note: this explanation assumes familiarity with amateur radio and CW/Morse code operation. If you're new to this, see "Background info".)

This model attempts to predict how many DX (in this context, non-North American) call signs will be heard by the VE7CC Reverse Beacon Network skimmer in a given hour on the 20 metre band. The model has been built using historical data from the Reverse Beacon Network.

VE7CC was picked because it's close to where I live; 20 metres was picked because it's the band I operate on most often.

Background info (or, "Wait, people still use Morse code?")

Amateur radio is a hobby enjoyed by millions of people worldwide, who use many different forms of radio to contact each other. Amateur radio operators are licensed to operate on different ranges of frequencies, known as bands. Bands are named after the wavelength of the frequency being used; thus, you have the twenty metre band (14.0 - 14.35 MHz), the forty metre band (7.0 - 7.3 MHz), and so on.

Each amateur radio operator has a call sign (similar to call signs used by commercial radio stations) that identify the operator and what country (and sometimes state or province) they are from. Mine, for example, is VA7UNX; the VA part identifies me as Canadian, and the 7 as being from British Columbia. There may be another call sign in Canada ending in UNX -- say, VE3UNX (Ontario) -- but VA7UNX is unique to me.

One of the many specialties of amateur radio is Morse code operation, also known as CW. Someone who sends Morse code will call themselves a CW operator. While CW is no longer used for professional communications, it's still enjoyed as a fun challenge by operators.

CW has many abbreviations and standardized ways of communicating that are intended to save time. For example: to initiate a conversation with whoever might be listening, I would call CQ:


Here, I am inviting anyone listening to contact me (CQ CQ CQ), telling them my call sign (DE VA7UNX), with a K at the end to indicate I am standing by to hear any responses. The repetitions ensure that, even if my signal is weak, it can be deciphered by a listening operator.

Skimmers are computerized radios that will listen to amateur radio bands for this standard call (CQ CQ CQ DE [call sign]), and report the call signs recognized. The Reverse Beacon Network collects the output of these skimmers, and displays them on its web page; this allows operators to see how far their signal has been received (and thus how far they might be heard by other operators), and whose signal is being picked up locally (and thus who they might talk to). The Reverse Beacon Network records all this data, and makes it available for download.

Propagation is how far, or how well, your signal travels. How far can it go? That depends! There are a lot of factors that go into it:

  • the time of day, and the height of the sun
  • the time of year
  • the band being used
  • how many sunspots there are (which in turn vary in an 11 year cycle)
  • the power and equipment used to transmit
  • whether there's a contest going on (more on that in a moment)

There are rules of thumb for how each of these affect propagation, but there can also be a lot of variation on the scale of years, weeks, days, hours or even minutes. On the 20 metre band, which this model focuses on, I can reach the east coast of North America from the west coast (about 4000 km/2500 miles) with only 5 Watts of power -- about the same amount of power as a night light uses. On a very good day, I can reach all the way to Europe (7500 km/4650 miles) or New Zealand (11000 km/6800 miles). On a bad day, I might get no further than California (1200 km/750 miles).

DX stations are stations that are from "far away" -- usually defined as "not this country". It's always fun to talk to someone a long way away, so contacts with DX stations are prized by amateur radio operators.

Finally, there are contests: short periods of time (a day or two is typical) where operators try to make as many contacts as they can; there are usually extra points for DX contacts. It's often much easier to make DX contacts during a contest, because everyone is on the air and willing to listen for weaker signals to try and get extra points for distant stations. The ARRL DX Contest is one of the largest such contests.

The model I built tries to answer the question:

  • How many DX stations...
  • ...will be heard by the VE7CC skimmer (which is located in Vancouver, BC)...
  • ...on the 20 metre band...
  • a given hour on a given day of the year...
  • ...given the number of sunspots...
  • ...given whether the ARRL DX contest is on right now or not...
  • ...and given how high the sun is in the sky?

(For simplicity, "DX" in the model is defined as stations from outside North America.)

With all that as input, it will return the model's estimate for how many DX stations will be heard in that hour by the Vancouver skimmer.



sunspots_counthow many sunspots the sun at the given hour
hourhour in UTC (0-23)
monthnumber of month (1-12)
annualday of year / 366
weekendIs it a weekend? 1.0 for yes, 0.0 for no
arrl_dx_contestIs it the weekend of the ARRL DX Contest? 1.0 for yes, 0.0 for no
solar_elevationThe sun's azimuth (height in the sky) in degrees



prediction_20mprediction of the number of DX stations that will be heard by the VE7CC skimmer in that hour