NOAA Weather Satellite Reception with GNU Radio and USRP

This weekend I ended up receiving APT signals from NOAA polar orbiting weather satellites. I only wanted to explore IQ data recording and playback with GNU Radio but when I first used NOAA 15 as test signal and saw what I could receive I got slightly distracted from my original plan.

I used my Arrow II 3 element handheld yagi for 145 MHz and of course the USRP with the WBX daughterboard. On the software side I used simple WFM receiver implemented in GNU Radio Companion and a free version of WXtoImg for decoding the images.

The USRP with WBX and TVRX daughterboards USRP front view

I wasn’t attempting real-time decoding of the images – I only wanted to test the IQ data recording and playback I have described here and here. The only required function of the data recorder is to dump the USRP data directly to a binary file; however, I also included a WFM receiver. Being able to hear the APT signal during recording helped me point the antenna in the right direction 😉

The playback program is a simple WFM receiver where the USRP source is replaced with a file source and a throttle block. The latter is necessary to maintain a constant sample rate that was used to record the data.

IQ data player with WFM demodulator for NOAA APT signals

The video below shows the playback of the recorded IQ data from a NOAA-15 pass. If you want to use the cool sound of NOAA satellites in your next music composition or video let me know 🙂

 

The audio output from the demodulator is also dumped to a WAV file. I have then transcoded tha WAV file to 16 bit signed, 11.025 kHz using VLC and Audacity, which then was decoded using wxtoimg.

  1. GNU Radio receiver records 44.1 kHz WAV
  2. Convert WAV to 256kbps MP3 using VLC
  3. Audacity: trim and resample to 11.025kHz. Export to 16 bit signed WAV (don’t forget to also change the Project Rate otherwise it will export in 48kHz)
  4. Change the timestamp of the new WAV file to match recording time: touch -t YYMMDDhhmm.ss filename.wav – otherwise wxtoimg will not be able to detect during which pass the recording was made
  5. Open WAV in wxtoimg

I’m sure there is an easier way to do all this…

Real-time decoding could be done by feeding the audio into another computer runnign wxtoimg; however, I think the quality would be compromised be sending the audio data over two louzy sound devices. Neither GNU Radio nor wxtoimg support pulseaudio that would allow routing the audio from one application to another without going through the audio hardware.

The Results

I have successfully received images from NOAA-15, NOAA-17, NOAA-18 and NOAA-19. I believe that’s the complete fleet of active NOAA POES satellites. Note the satellites transmit two images side by side, each image being taken by one of four (tbc) instruments, so that we get data from two different instruments during one pass. NOAA-18 was transmitting a visible and a thermal infrared image, all others were transmitting near infrared and thermal infrared images. The false color images are generated by combining the two channels depending on which instrument they come from.

Clicking on the images below will take you the the album page where you can get the full resolution images.

NOAA-15

Channel A: 2 (near infrared)
Channel B: 4 (thermal infrared)

This was the first pass I tried to receive and it was quite all right but not perfect.Too many trees in the way.

NOAA-15 APT image CH A: Near IR. CH B: Thermal IR

NOAA-15 APT image - HVC false Color

NOAA-15 APT image - HVCT false Color

 

NOAA-17

Channel A: 2 (near infrared)
Channel B: 4 (thermal infrared)

This reception was amazing almost from AOS till LOS despite the trees and building buildings below 5 deg elevation. Unfortunately, the thermal infrared imaging on the satellite appears to be broken, so all I got was the near infrared channel:

NOAA-17 APT image

There was no reason to try to make the false color composite images with this result since it requires both channels. Later, I’ve been told by @claymdavis that this is a common error that used to happen with WEFAX on HF. It will clear when Goddard updates the satelite.

 

NOAA-18

Channel A: 1 (visible)
Channel B: 4 (thermal infrared)

This was a good pass like NOAA-17 and this time the instruments were OK.

NOAA 18 northbound 59W at 04 Jul 2010 12:38:15 GMT on 137.10MHz, contrast enhancement, Normal projection, Channel A: 1 (visible), Channel B: 4 (thermal infrared)

NOAA 18 northbound 59W at 04 Jul 2010 12:38:15 GMT on 137.10MHz, HVC enhancement, Normal projection, Channel A: 1 (visible), Channel B: 4 (thermal infrared)

NOAA 18 northbound 59W at 04 Jul 2010 12:38:15 GMT on 137.10MHz, HVCT enhancement, Normal projection, Channel A: 1 (visible), Channel B: 4 (thermal infrared)

NOAA 18 northbound 59W at 04 Jul 2010 12:38:15 GMT on 137.10MHz, MCIR enhancement, Normal projection, Channel A: 1 (visible), Channel B: 4 (thermal infrared)

NOAA 18 northbound 59W at 04 Jul 2010 12:38:15 GMT on 137.10MHz, MSA enhancement, Normal projection, Channel A: 1 (visible), Channel B: 4 (thermal infrared)

 

NOAA-19

Channel A: 2 (near infrared)
Channel B: 4 (thermal infrared)

The NOAA-19 image is actually ~13 minutes ahead of the NOAA-18 image. Again, very good reception.

NOAA 19 northbound 59W at 04 Jul 2010 12:22:24 GMT on 137.10MHz, contrast enhancement, Normal projection, Channel A: 2 (near infrared), Channel B: 4 (thermal infrared) edit Delete caption

NOAA 19 northbound 59W at 04 Jul 2010 12:22:24 GMT on 137.10MHz, HVC enhancement, Normal projection, Channel A: 2 (near infrared), Channel B: 4 (thermal infrared)

NOAA 19 northbound 59W at 04 Jul 2010 12:22:24 GMT on 137.10MHz, HVCT enhancement, Normal projection, Channel A: 2 (near infrared), Channel B: 4 (thermal infrared)

 

That’s all for now as I have to get ready for next week. I’m looking forward to try receiving HRPT images from the NOAA satellites in the 1.7 GHz band very soon.

If you want to learn more about NOAA weather satellite imaging, including APT format specification, see the NOAA KLM User’s Guide