Save raw audio from WSPR for science analysis

Upload your raw .wav WSPR data to the HamSci Zenodo data archive with this procedure. (One-time setup) in the main WSPR/WSJT-X window, click: Save → Save All. One .wav file is saved per two minute cycle.

Compress and upload raw WSPR data to science archive, creating three files:

  • MANIFEST: a list of filenames in the file so others don’t have to extract the file to see what’s in it
  • MD5SUM: a checksum assuring the file was not changed since you created it
  • .tar.lz
cd ~/.local/share/WSJT-X/save

find . *.wav > MANIFEST

nice tar cvf - *.wav | plzip -0 > mycall.tar.lz

nice md5sum *.wav mycall.tar.lz > MD5SUM

plzip is a multithreaded version of lzip that uses all the virtual cores of your CPU, to go at least N times faster when N is the number of physical CPU cores you have in your PC. Or you can just use your favorite ZIP program or however works for you.

Upload raw data to Zenodo by creating a Zenodo account to upload WSPR data to Zenodo. When you click Publish the data is assigned a DOI and is citable.

WSPR raw data saved in these locations:

operating system default WSPR/WSJT-X raw .wav file location
non-Windows ~/.wspr/save or ~/.local/share/WSJT-X/save/
Windows c:/wspr/save or %localappdata%/WSJT-X/save/

In general you cannot use a virtual machine for WSPR because of the issues with broken/choppy audio.

How much raw data does WSPR save? Consider saving about one compressed file per day or week or so to avoid gigantic files to download. WSPR collects about 1.7 GByte/day depending on how often you transmit (no recording occurs when you transmit).

The WSPR raw audio data file size is: 12000 samples/sec * 16 bits/sample / 8 bits/byte * 86400 sec/day * 0.8 RX duty cycle = 1.7 GByte / day

that’s 2.88 Mbytes per 2 minute WSPR RX cycle.

Since this is 6 kHz of spectrum, you can widen your receiver filters (particularly if using an SDR or other advanced receiver) to also pass JT65, JT9, PSK31 or other useful transmitters for even more potent results. You’re sampling at 12 kS/s anyway, why not stick some more radio data in there!

Lzip will compress this to about 85% of original file size (the WSPR .wav files are themselves uncompressed PCM audio). The main point of compression is to make them one file instead of thousands of files per day. Don’t bother with intense compression settings because the files are full of noise, which by definition in general is poorly compressible.

Replace mycall and date with your callsign and approximate date recording began for this group of files. nice is used to help avoid disrupting the WSPR operation that is probably running while you’re compressing.


Related: Load raw WSPR data for analysis