Save raw audio from WSPR for science analysis

Related: Load raw WSPR data for analysis

WSPR HamSci raw data upload procedure

Upload your raw .wav WSPR data to the HamSci Zenodo data archive with this procedure.

1. Saving WSPR science raw data

(One-time setup)

In the main WSPR/WSJT-X window, click:

Save → Save All

One .wav file is saved per two minute cycle.

2. Compress and upload raw WSPR data to science archive

Create 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

This assumes you OS is any of: Linux / Mac / Windows Subsystem for Linux / Cygwin / BSD

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
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.

3. Upload raw data to Zenodo

Create a Zenodo account to upload WSPR data to Zenodo. When you click Publish the data is assigned a DOI and is citable.


If you don’t have Windows 10, where Windows Subsystem for Linux is installed from the Microsoft Store for free, consider Cygwin on Windows.

Where are WSPR raw data saved

operating systemdefault WSPR/WSJT-X raw .wav file location
Mac~/.wspr/save or ~/.local/share/WSJT-X/save/
Linux~/.wspr/save or ~/.local/share/WSJT-X/save/
Windowsc:/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.

Note on compression

  • 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.