Xerbo f394f6a356 | 1 year ago | |
---|---|---|
.github | 1 year ago | |
aptdec-cli | 1 year ago | |
cmake | 1 year ago | |
libaptdec | 1 year ago | |
luts | 1 year ago | |
util | 1 year ago | |
.clang-format | 2 years ago | |
.gitignore | 1 year ago | |
.gitmodules | 1 year ago | |
CMakeLists.txt | 1 year ago | |
CONTRIBUTING.md | 1 year ago | |
LICENSE | 4 years ago | |
README.md | 1 year ago | |
build_windows.bat | 1 year ago | |
build_windows.sh | 1 year ago | |
textlogo.png | 5 years ago |
Copyright (c) 2004-2009 Thierry Leconte (F4DWV), Xerbo (xerbo@protonmail.com) 2019-2022
Aptdec is a FOSS library/program that decodes images transmitted by the NOAA POES 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, the transmission can be demodulated in narrow FM mode.
Aptdec can turn the audio into PNG images and generate other products such as:
The input audio format can be anything supported by libsndfile
(although only tested with WAV, FLAC and Ogg Vorbis). While sample rate doesn’t matter, it is recommended to use 16640 Hz (4x oversampling).
Grab a release from Releases or compile from source:
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-cli
In place builds are not supported.
To create an image from gqrx_20200527_115730_137914960.wav
(output filename will be gqrx_20200527_115730_137914960-raw.png
)
aptdec-cli gqrx_20200527_115730_137914960.wav
To manually specify the output filename
aptdec-cli -o image.png gqrx_20200527_115730_137914960.wav
Decode all WAV files in the current directory:
aptdec-cli *.wav
Apply a denoise filter (see Post-Processing Effects for a full list of post-processing effects)
aptdec-cli -e denoise gqrx_20200527_115730_137914960.wav
Create a calibrated IR image from NOAA 18
aptdec-cli -i thermal gqrx_20200527_115730_137914960.wav
Apply a falsecolor LUT
aptdec-cli -i lut -l luts/WXtoImg-N18-HVC.png gqrx_20200527_115730_137914960.wav
-h, --help show a help message and exit
-i, --image=<str> set output image type (see below)
-e, --effect=<str> add an effect (see below)
-g, --gamma=<flt> gamma adjustment (1.0 = off)
-s, --satellite=<int> satellite ID, must be between 15, 18 or 19 or NORAD
-l, --lut=<str> path to a LUT
-o, --output=<str> path of output image
-r, --realtime decode in realtime
raw
: Raw Imagea
: Channel A (including telemetry)b
: Channel B (including telemetry)thermal
: Calibrated thermal (MWIR/LWIR) imagevisible
: calibrated visible/NIR imagelut
: LUT image, see also -l/--lut
strip
: Strip telemetry (only effects raw/a/b images)equalize
: Histogram equalisestretch
: Linear equalisedenoise
: Denoiseprecipitation
: Precipitation overlayflip
: Flip image (for northbound passes)crop
: Crop noise from ends of imageAptdec supports decoding in realtime. The following captures and decodes audio from the pipewire
interface:
arecord -f cd -D pipewire | aptdec -r -
or directly from an SDR:
rtl_fm -f 137.1M -g 40 -s 40k | sox -t raw -r 40k -e signed-integer -b 16 - -t wav - | aptdec -r -
Image data will be streamed to CURRENT_TIME.png
(deleted when finished). To stop the decode and normalize the image simply Ctrl+C
the process.
LUT’s are just plain 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 (recommended) using with the following commands:
sudo apt install wget cmake make mingw-w64 git unzip
./build_windows.sh
To build natively on Windows using MSVC, you will need: git, ninja and cmake. Then run:
.\build_windows.bat
If you only want to build libaptdec, libpng and libsndfile aren’t needed.
See LICENSE