Copyright (c) 2004-2009 Thierry Leconte (F4DWV), Xerbo (xerbo@protonmail.com) 2019-2022
Aptdec is a FOSS program that decodes images transmitted by NOAA weather satellites. These satellites transmit constantly (among other things) medium resolution (4km/px) images of the earth over a analog mode called APT. These transmissions can easily be received with a cheap SDR and simple antenna. Then the transmission can be decoded in narrow FM mode.
Aptdec can turn the audio recordings into PNG images and generate images such as:
- Raw image: both channels with full telemetry included
- Individual channel: one of the channels form the image
- Temperature image: a temperature compensated image derived from the IR channel
- Palleted image: a image where the color is derived from a palette (false color, etc)
The input audio format can be anything supported by libsndfile
(although only tested with WAV and FLAC). Sample rate doesn't matter, although lower samples rates will process faster.
sudo apt install cmake git gcc libsndfile-dev libpng-dev
git clone --recursive https://github.com/Xerbo/aptdec.git && cd aptdec
cmake -B build
cmake --build build
# Resulting binary is build/aptdec
To create an image from gqrx_20200527_115730_137914960.wav
(output filename will be gqrx_20200527_115730_137914960-r.png
)
./aptdec gqrx_20200527_115730_137914960.wav
To manually set the output filename
./aptdec -o image.png gqrx_20200527_115730_137914960.wav
Decode all WAV files in the current directory and put them in images
mkdir images && ./aptdec -d images *.wav
Apply a denoise filter (see Post-Processing Effects for a full list of post-processing effects)
./aptdec -e d gqrx_20200527_115730_137914960.wav
Create a temperature compensated image for NOAA 18
./aptdec -i t -s 18 gqrx_20200527_115730_137914960.wav
Apply a falsecolor palette
./aptdec -i p -p palettes/WXtoImg-N18-HVC.png gqrx_20200527_115730_137914960.wav
-i [r|a|b|t|m|p] Output type (stackable)
-e [t|h|l|d|p|f] Effects (stackable)
-o <path> Output filename
-d <path> Destination directory
-s (15-19) Satellite number
-p <path> Path to palette
-r Realtime decode
-g Gamma adjustment (1.0 = off)
r
: Raw Imagea
: Channel Ab
: Channel Bt
: Temperaturep
: Palleted
t
: Crop telemetry (only effects raw image)h
: Histogram equalisel
: Linear equalised
: Denoisep
: Precipitation overlayf
: Flip image (for northbound passes)c
: Crop noise from ends of image
Aptdec even supports decoding in realtime. The following decodes the audio coming from the audio device pulseaudio alsa_output.pci-0000_00_1b.0.analog-stereo
mkfifo /tmp/aptaudio
aptdec -r /tmp/aptaudio
sox -t pulseaudio alsa_output.pci-0000_00_1b.0.analog-stereo.monitor -c 1 -t wav /tmp/aptaudio
To stop the decode and calibrate the image simply kill the sox
process.
Palettes are just simple PNG images, 256x256px in size with 24bit RGB color. The X axis represents the value of Channel A and the Y axis the value of Channel B.
You can cross build for Windows from Linux with the build_windows.sh
script, you will need the following:
sudo apt install wget cmake make mingw-w64 git unzip
To build natively on Windows using MSVC, you will also need: git, ninja and cmake. Then run:
.\build_windows.bat
If you just wish to build libaptdec on Windows, libpng and libsndfile aren't needed.
Requires at least API 23
User's Guide for Building and Operating Environmental Satellite Receiving Stations
NOAA Satellite specifications and more information
See LICENSE