Using 50 Lines of Python Code to Decode NOAA APT Weather Satellite Images

There are already many image decoders for the NOAA APT weather satellites available, with the most common and feature rich program being the abandoned freeware "WXtoIMG".

However many people may not know how simple the APT digital signal processing code is. Over on his blog post Dmitrii Eliuseev explains how only 50 lines of Python code are required to decode an image from received APT audio. Dmitrii's post shows how a Hilbert transform is used on the APT audio which is essentially the entire decoding step. This is then followed by a for loop that calculates the pixel luminosity from the decoded data, and plots it onto an image file. 

Of course the image is only grayscale (or in Dmitrii's case he decided to use greenscale), but adding false color and various other image enhancements found in advanced software like WXtoIMG are just standard image processing techniques.

Dmitrii concludes with the following:

Interesting to mention, that there are not so many operational radio communication systems in the world, the signal of which can be decoded using 20 lines of code. The NOAA satellites are about 20 years old, and when they finally will retire, the new ones will most likely be digital and format will be much more complex (the new Russian Meteor-M2 satellite is already transmitting digital data at 137 MHz). So those who want to try something simple to decode can be advised to hurry up.

[Also mentioned on Hackaday]

Simple decoding of NOAA APT satellites in Python
Subscribe
Notify of
guest

4 Comments
Inline Feedbacks
View all comments
Minimalist

50 lines of assembly with false colors and all.

Anonymous

In matlab it is indeed only 3 lines of code 🙂

Anonymous

How is that? I get the first three steps, since they are only DSP, but I’m having trouble with the image part.

Anonymous

I’ll bet this could be done with 3 lines of Perl ;-P