The wsprpath program
This is a free, simple program which will allow you to scan a month of wspr spots looking for the ones which are over a path of interest between two Maidenhead locators. Wspr stations within a specified radius of those locators are included. The signal strengths of those spots are then used to estimate the expected signal strength for a given transmitter power and to see by how many db they are expected to exceed a threshold you specify. The download link is at the bottom of this page. The program is provided as-is and I accept no liability for the results.
Rationale
Looking through WSPR spots on wsprnet.org can give you an idea about when and what band and where signals are going but it can be an awful lot of raw data to take in. In a typical month there will be over 60 million spots in the database. The good news is that it is very current data and not some math model from the 1950s which may or may not be accurate today. My assumption is that if you study all the spots from the last month or maybe even part of the current month you should be able to get a good idea what band and when is best for propagation over a given path. Further, since WSPR reports the sending station’s transmitted power and the receiving station’s S/N it is possible to estimate what the signal at a receiving point would be if you know your transmitted power. Using the S/N threshold for the mode you are using you could then decide if the signal would be strong enough to decode.
Specific path selection
WSPR transmit and receive sites are scattered here and
there around the globe, some in densely populated areas and some in remote
areas. Even with 60+ million spots the chance that a large number of spots are
your exact grid square and are paired with some other exact grid is pretty low.
For this reason we need to use spots from a pair of larger regions so that we
get enough data. If an area has lots of WSPR stations then a smaller region
will give enough data without sacrificing location precision. But if there are
few WSPR stations in an area then a larger region will be needed to get enough
data. Fortunately, radio propagation is pretty uniform within regions of
significant size. For example all the stations in
Signal strength calculation
K1JT settled on a simple method of characterizing the S/N ratio for WSPR received signals. He decided to express S/N in decibels with respect to 2500 Hz of bandwidth, a typical SSB channel, even though the actual bandwidth of a WSPR signal is only 6 Hz. The decoder software is only listening to 6 Hz which is why the S/N numbers go down as low as -30 db (some additional sensitivity is from redundancy in the signal). Other modes also use this convention to express their ability to decode weak signals. For example Olivia 8/250 decodes down to -14 db. Keep in mind that each ham can set his WSPR station to one of the standard transmitter power levels expressed in db with respect to 1 milliwatt (dbm). So we need to convert these S/N values as if all the WSPR stations were transmitting one watt. The formula is:
S/N at 1 watt = S/N at wspr power + (30 – wspr power dbm) all expressed in db.
Then we have to make a further adjustment since you may well want to transmit your own signal, say in Olivia 8/250, at some higher power level. We now need to add 10 x log10(actual power output) to the S/N at one watt to get an estimate of the S/N in the receiver of our Olivia 8/250 signal. Then as a final step we can compare this result with the threshold we have set for the particular mode, -14 db in this case, to decide if the receiving ham would be able to decode our signal.
If we do this calculation for lots of signals over the desired path between the two regions we can get an estimate of the average margin in db at the receive site. If it is a positive number the other ham would be able to decode our signal. Note that the program assumes that the paths are reciprocal, ie, if he transmits back to us using the same power and mode we will get the same result.
If we do this by band and by hour then and we have enough data then we can get a good estimate of the average margin and if our signal could be decoded on each band at each hour.
How to run wsprpath
1) Download one zip file from the Download menu within wsprnet.org and unzip it into a csv file in the folder you created for the program. You can choose the last full month or the current month if enough days have already been stored. This will be a huge file. A full month will be more than 5 gigabytes. Start the wsprpath program, click the top button, and navigate to and open the csv file you just unzipped. The number of thousands of spots parsed will show at the right along with day numbers of the month being read. On my machine with a fast SSD its takes about half an hour to parse all this data. Your machine may be slower. Go get a cup of coffee. The program will make a chime when it is done. The good news is that the parsed data is now stored in a smaller binary file called wsprpath.dat. You do not need to do this first step again until you want to analyze a different month.
2) Next choose the path and region sizes. Enter the Maidenhead locators for the two transmit / receive sites. The order does not matter. The latitude and longitude will be shown as confirmation only. For each locator enter a radius in kilometers around that locator to define the circular region where wspr spots will be selected for use in the analysis. Then enter a transmitter power output and a signal to noise threshold appropriate for the mode in use. See the table below. Note that if you are using a gain antenna you might want to increase the power value to take that gain into effect (ERP or effective radiated power). For example, 100 watts to a beam with 6 db gain over a dipole would be equivalent to 400 watts ERP (each 3 db gain doubles the ERP). Note that if you choose you can limit the data to be within a range of days of the month. The default is the entire month, days 1 to 31.
3) Press the bottom button on the program. This starts the analysis reading spots from the wsprpath.dat file finding the ones where the two ends fall in the two regions and the day number is within the range of days of the month. It then does the S/N calculation to see if the signal would be decoded. Again the number of spots processed is displayed to the right along with the day numbers and again you will hear a chime when it is finished. It will take about a third as long as in step 1. When it finishes it will launch the notebook editor (notebook.exe must be in the path) with the wsprpath.txt results text file so you can read the results.
Interpreting results
File wsprpath.txt starts with a recapitulation of the selected path, chosen power output, and S/N threshold based on mode. It then tells how many spots were read in and how many were found to be along the path specified by the two regions.
What follows are two simple tables. Both are organized by ham band down the left side and by UTC hour across the top. The first hour, hour “0”, is from 00:00 to 00:59 UTC. Then within the two tables are two ways of looking at the data. The first table shows the average expected margin in db of your received signal above the threshold you specified within that hour and band. The second table just shows how many spots there were for each hour and band regardless of signal S/N. When the band is not open there won’t be any spots or at least very few. If fewer than 4 spots were found then a hyphen is shown. Note that if more than 999 spots fall within a single hour and band then the number is shown as the log10 of the number, ie, 3.0 for 1,000, 3.7 for 5,000, 4.0 for 10,000, etc. This is so the numbers still fit in three columns.
So the bottom line is, make your sked for the hour and band with the biggest numbers. And more spots means better data.
Some modes and their minimum S/N for decode in 2500 Hz.
ALE141 -4 db
ALE400 -9 db
CW -18 db
CCW 12 wpm -12 db
DominoEX -14 to -9 db
FT8 -26 db
JT65 -27 db
MFSK16 -13 db
Olivia
32/1000, 16/500 -13 db
Olivia
8/250 -14 db
Contestia
16/250 -15 db
Pactor 1 -4 db
PSK31 -11 db
RTTY -5 db
SSB +10 db perhaps
Throb -16 db
ThrobX -18 db
WSPR -29 db
Sample results file between my QTH in
Summary of wspr reports
Data evaluated over the
path between these two regions:
EM89bt ( 39.8125, -83.8750) within radius 300 km.
JN18eu ( 48.8542, 2.3750) within radius 300 km.
Power out is 100 watts and
S/N threshold is -13 db in 2500 Hz.
Spots were included within
the days of the month from 1 to 31.
25875k records were read
from wsprpath.dat from which 8953 were found between the two regions.
Average db the signals were
above the -13 threshold:
UTC
0 1 2
3 4 5
6 7 8
9 10 11
12 13 14
15 16 17
18 19 20
21 22 23
Band _________________________________________________________________________________________________
160|
- - -
- - -6
- - -
- - -
- - -
- - -
- - -
- - -
80|
5 3 4
4 5 6
2 - -
- - -
- - - - -
- - -
- - - 3
40|
6 5 5
6 7 9
8 - -
- - -
- - -
- - -
- - -
4 6 8
30|
7 8 6
- - -
- - -
- 0 -5 -7
-11 -
-4 -2 -7
-5 1 5
9 10 8
20|
8 0 -
- - -
- - -
- - 3
6 7 5
4 4 5
5 7 10
13 11 9
17|
- - -
- - -
- - -
- - -
0 3 -2
0 -3 6
14 - -
- - -
15|
- - -
- - -
- - -
- - -
- - - -
- - -
- - -
- -
12|
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
10|
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
Number of spots evaluated
during each hour on each band:
UTC
0 1 2
3 4 5
6 7 8
9 10 11
12 13 14
15 16 17
18 19 20
21 22 23
Band
_________________________________________________________________________________________________
160|
- - -
- - 4
- - -
- - -
- - -
- - -
- - -
- - -
80|
91 77 61 86
117 105 5 -
- - -
- - -
- - -
- - -
- - - 42
40|
743 513 419 483 305 222 45 - - -
- - -
- - -
- - -
- - 66 380 822
30|
112 13 4
- - -
- - -
- 9 15
7 8 -
6 5 7
12 70 155 337 472 409
20|
10 8 -
- - -
- - -
- - 94 144 145 191 198 187 160 90 114 308 640 246 99
17|
- - -
- - -
- - -
- - -
4 14 13
23 11 7
6 - -
- - -
15|
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
12|
- - -
- - -
- - -
- - - -
- - - - -
- - -
- - -
10|
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
Note: If fewer than 4 spots
a hyphen is shown. If greater than 999 spots log10 of spots is shown.
How to install / uninstall
The above link provides a zip file. Unzip the file into a folder of your choice. To run the program first download the desired month of data from the wsprnet.org database into that folder. Then double-click wsprpath.exe and follow the directions in the explanation. To uninstall simply delete that folder. There are no modifications to the registry or any other parts of your computer. I am not a MS certified publisher so you may need to accept a warning about that.
Please note: the program uses notepad.exe which comes with Windows to display the results. Notepad must be in the path. If you are running the program with a Windows emulator under Linux then you will have to open the wsprpath.txt file with any text editor to see the results.
Comments and suggestions are welcome.
73, Jim AJ8S