You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Jon Beniston b3dd3f8ce1 Add enum for channel ID. Fix channel 3A to be near-IR as per https://nssdc.gsfc.nasa.gov/nmc/experiment/display.action?id=1998-030A-01 3 vuotta sitten
.github Add release windows build 4 vuotta sitten
cmake Add action for windows debug 4 vuotta sitten
palettes Add improved N19 HRPT palette, remove the older bad ones 4 vuotta sitten
src Add enum for channel ID. Fix channel 3A to be near-IR as per https://nssdc.gsfc.nasa.gov/nmc/experiment/display.action?id=1998-030A-01 3 vuotta sitten
util Fix img2pal.py and improve error messages 4 vuotta sitten
.gitignore Windows build now working properly 4 vuotta sitten
CMakeLists.txt Rename library so lib isn't repeated on Linux 3 vuotta sitten
CONTRIBUTING.md Add contributing guidelines, subject to change 4 vuotta sitten
LICENSE I don't really know what happened, but I can think of these off the top of my head 5 vuotta sitten
Makefile Add notice about deprecation of the makefile (and fix it) 4 vuotta sitten
README.md Add support for building a shared library (libaptdec). 3 vuotta sitten
build_windows.bat Return to src root 3 vuotta sitten
build_windows.sh Add support for building a shared library (libaptdec). 3 vuotta sitten
textlogo.png A few changes here and there. 5 vuotta sitten

README.md

Aptdec logo

Copyright (c) 2004-2009 Thierry Leconte (F4DWV), Xerbo (xerbo@protonmail.com) 2019-2020

x86 Release x86 Debug x86 Win Release x86 Win Debug

Introduction

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)
  • MCIR: a false color that uses a underlay map for color

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.

Quick start

sudo apt install cmake git gcc libsndfile-dev libpng-dev
git clone https://github.com/Xerbo/aptdec.git && cd aptdec
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make

Using the Makefile with GNU automake is now deprecated and will be removed soon.

Examples

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

Usage

Arguments

-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
-m <path>        Path to WXtoImg map
-p <path>        Path to palette
-r               Realtime decode
-g               Gamma adjustment (1.0 = off)
-k               Map offset (in px, default: 0)

Image output types

  • r: Raw Image
  • a: Channel A
  • b: Channel B
  • t: Temperature
  • m: MCIR (Map Color InfraRed)
  • p: Palleted

Post-Processing Effects

  • t: Crop telemetry (only effects raw image)
  • h: Histogram equalise
  • l: Linear equalise
  • d: Denoise
  • p: Precipitation overlay
  • f: Flip image (for northbound passes)
  • c: Crop noise from ends of image

Realtime decoding

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.

Palette formatting

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.

Compiling with cmake

Thanks to the help of Aang23 aptdec is moving towards cmake + cpack for builds.

To use cmake to build instead of GNU automake:

mkdir build && cd build
cmake ..
make

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.

Further Reading

User’s Guide for Building and Operating Environmental Satellite Receiving Stations

NOAA KLM coefficients

NOAA Satellite specifications and more information

License

See LICENSE