Raspberry Pi NOAA Weather Satellite Receiver

23,202

62

87

Posted in TechnologyRaspberry-pi

Introduction: Raspberry Pi NOAA Weather Satellite Receiver

About: I'm a ham, a tinker, a maker. I like interesting things. I'm a technophile, a wood turner, and a pen maker.

A new pile of parts means a new project is in the works.

I’m building a Raspberry Pi based NOAA weather satellite receiver. I’ve got some experience with receiving signals from NOAA satellites, but will be a little different, as all of the work is going to be done automatically on a Raspberry Pi. This will allow me to place the receiver right at the antenna, which is mounted in my attic. With a very short piece of coax, reducing feed-line loss.

I’ll be using the following list of parts:

  • Raspberry Pi 3 Model B
  • MicroUSB Power Supply
  • Generic Raspberry Pi 3 Case
  • 32 GB Micro SD Card
  • NooElec SDR Dongle
  • QFH Antenna

This project will require some basic Linux skills. If you are not comfortable navigating around the Linux command line, you may need to get some help if you want to follow along.

This instructable is going to focus on getting the Raspberry Pi working to receive images. Details around building a proper antenna can be found from other sources. I even made a video about it: https://youtu.be/KU75FSA6o2M

Step 1: Prepare the Raspberry Pi

The first step is getting the Raspberry Pi up and running. I’m using Raspbian (Jessie 2016-11-25).

There are plenty of tutorials on getting Raspbian set up and booting on the Raspberry Pi. You should have no difficulty in finding one: https://www.raspberrypi.org/documentation/installation/installing-images/README.md

Once you have the Raspbian image copied to your micro SD card, boot the Raspberry Pi. You'll need to get it on the network and enable SSH. You can certainly use either a wired Ethernet connection, or wireless. I'm using wireless, as I don't have a wired connection in my attic.

Enable SSH using the Raspberry Pi Configuration utility in the Preferences menu. You may want to set it to boot to CLI while you are in there. Since this is going to be a headless setup, there is no need to waste resources on a GUI.

Next we want to make sure the Raspberry Pi is fully up-to-date. Issue the following commands:

sudo apt-get update
sudo apt-get upgrade
sudo reboot

Step 2: Install the Necessary Software

The first thing we need is the USB drivers for the RTL dongle:

sudo apt-get install libusb-1.0

Since we need to build the latest version of rtl-sdr to actually make use of the RTL dongle, we'll need to install cmake:

sudo apt-get install cmake

We need to make sure the Raspberry Pi doesn't load any SDR kernel modules that will interfere with the rtl-sdr sofware.

Using your favorite text editor, create a new file named /etc/modprobe.d/no-rtl.conf and put the following text in the file. You need to run that text editor as sudo (i.e. 'sudo vi' or 'sudo nano' etc) to write to the modprobe.d directory:

blacklist dvb_usb_rtl28xxu
blacklist rtl2832
blacklist rtl2830

Install the most recent build of rtl-sdr:

cd ~
git clone https://github.com/keenerd/rtl-sdr.git
cd rtl-sdr/
mkdir build
cd build
cmake ../ -DINSTALL_UDEV_RULES=ON
make
sudo make install
sudo ldconfig
cd ~
sudo cp ./rtl-sdr/rtl-sdr.rules /etc/udev/rules.d/
sudo reboot

We'll need the sox audio toolkit in order to manipulate the received audio stream:

sudo apt-get install sox

We need a way to schedule the captures to happen as the satellites pass overhead. Install the at scheduler:

sudo apt-get install at

We need a way to know when the satellites will pass overhead. We'll use an application called predict:

sudo apt-get install predict

Finally, we'll need wxtoimg to convert the captured audio stream to an actual image:

cd ~
wget http://www.wxtoimg.com/beta/wxtoimg-armhf-2.11.2-beta.deb
sudo dpkg -i wxtoimg-armhf-2.11.2-beta.deb

Step 3: Testing Things Out

Once all the software is installed, make sure your USB dongle is connected and run the following command:

sudo rtl_test

You should see the following output:

Found 1 device(s):
  0:  Realtek, RTL2838UHIDIR, SN: 00000001

Using device 0: Generic RTL2832U OEM
Found Rafael Micro R820T tuner
Supported gain values (29): 0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6 
Sampling at 2048000 S/s.

Info: This tool will continuously read from the device, and report if
samples get lost. If you observe no further output, everything is fine.

Reading samples in async mode...

If you receive any error messages, you'll need to troubleshoot them before continuing. If your RTL Dongle isn't working at this point, it won't do any good to continue.

You need to run predict one time to set your ground station location. To do that you'll need your latitude and longitude. You can get your latitude and longitude from google maps by searching for your address, the right clicking on the pointer and selecting "What's Here". One thing to note is that Google displays North as positive and East as positive numbers. Predict uses North as positive but WEST as positive. Make sure to adjust accordingly, or your predictions will be no good.

Run predict from the command line, and select option 'G'. Enter your ground station information and exit the program.:

predict
                                      
                           --== PREDICT  v2.2.3 ==--         
                     Released by John A. Magliacane, KD2BD   
                                    May 2006                 
                                                             


                            --==[ Main Menu ]==--


 [P]: Predict Satellite Passes          [I]: Program Information
 [V]: Predict Visible Passes            [G]: Edit Ground Station Information
 [S]: Solar Illumination Predictions    [D]: Display Satellite Orbital Data
 [L]: Lunar Predictions                 [U]: Update Sat Elements From File
 [O]: Solar Predictions                 [E]: Manually Edit Orbital Elements
 [T]: Single Satellite Tracking Mode    [B]: Edit Transponder Database
 [M]: Multi-Satellite Tracking Mode     [Q]: Exit PREDICT

                 *  Ground Station Location Editing Utility  *



                        Station Callsign  : W1AW
                        Station Latitude  : 41.7169 [DegN]
                        Station Longitude : 72.7271 [DegW]
                        Station Altitude  : 25 [m]



            Enter the callsign or identifier of your ground station

You need to run wxtoimg once to accept the terms and conditions.

wxtoimg

You need to tell wxtoimg where your base station is at, so it can properly generate an overlay map. You do so by creating a file in your home directory named ~/.wxtoimgrc. In this file, North is positive, as with predict, however EAST is positive, which is the opposite of what predict uses. Make sure to adjust your values appropriately.

Using your favorite text editor, create a new file named ~/.wxtoimgrc and put the following text in the file, substituting your values:

Latitude: 41.7169
Longitude: -72.7271
Altitude: 25

Step 4: The Scripts

Now that you've got a working RTL dongle on your Raspberry Pi, it's time to actually make it receive some weather maps. Make sure your antenna is connected and located as best as possible. I've got mine mounted in my attic and it works fairly well from there. If you can mount it outside, that would be even better. Get it as high as possible.

We are going to need to create a few scripts to automate everything. This is where that Linux familiarity is going to come in.

First we'll create a couple directories to hold our files:

cd ~
mkdir weather
cd weather
mkdir predict
cd predict

Next we'll make the two scripts that kick off the scheduling. The first is 'schedule_all.sh'. This script will be called nightly at midnight. It downloads satellite pass information from celestrak and creates a TLE file for predict to use. Then it removes all AT jobs from the system, so no passes get double scheduled. Finally, it calls the second script 'schedule_satellite.sh' for each satellite we are interested in.

Using your favorite text editor, create a new file in ~/weather/predict named schedule_all.sh and put the following code in the file:

#!/bin/bash

# Update Satellite Information

wget -qr https://www.celestrak.com/NORAD/elements/weather.txt -O /home/pi/weather/predict/weather.txt
grep "NOAA 15" /home/pi/weather/predict/weather.txt -A 2 > /home/pi/weather/predict/weather.tle
grep "NOAA 18" /home/pi/weather/predict/weather.txt -A 2 >> /home/pi/weather/predict/weather.tle
grep "NOAA 19" /home/pi/weather/predict/weather.txt -A 2 >> /home/pi/weather/predict/weather.tle
grep "METEOR-M 2" /home/pi/weather/predict/weather.txt -A 2 >> /home/pi/weather/predict/weather.tle



#Remove all AT jobs

for i in `atq | awk '{print $1}'`;do atrm $i;done


#Schedule Satellite Passes:

/home/pi/weather/predict/schedule_satellite.sh "NOAA 19" 137.1000
/home/pi/weather/predict/schedule_satellite.sh "NOAA 18" 137.9125
/home/pi/weather/predict/schedule_satellite.sh "NOAA 15" 137.6200

The second script, 'schedule_satellite.sh', recurses through each pass of the given satellite for the current day. It determines if the maximum elevation is 20 degrees or greater. If it is, then it calculates the length of the pass, and schedules the recording and processing of the pass. If the maximum elevation is less than 20 degrees, the pass is ignored, as it generally won't produce a decent image.

Using your favorite text editor, create a new file in ~/weather/predict named schedule_satellite.sh and put the following code in the file:

#!/bin/bash
PREDICTION_START=`/usr/bin/predict -t /home/pi/weather/predict/weather.tle -p "${1}" | head -1`
PREDICTION_END=`/usr/bin/predict -t /home/pi/weather/predict/weather.tle -p "${1}" | tail -1`


var2=`echo $PREDICTION_END | cut -d " " -f 1`

MAXELEV=`/usr/bin/predict -t /home/pi/weather/predict/weather.tle -p "${1}" | awk -v max=0 '{if($5>max){max=$5}}END{print max}'`

while [ `date --date="TZ=\"UTC\" @${var2}" +%D` == `date +%D` ]; do

START_TIME=`echo $PREDICTION_START | cut -d " " -f 3-4`
var1=`echo $PREDICTION_START | cut -d " " -f 1`

var3=`echo $START_TIME | cut -d " " -f 2 | cut -d ":" -f 3`

TIMER=`expr $var2 - $var1 + $var3`

OUTDATE=`date --date="TZ=\"UTC\" $START_TIME" +%Y%m%d-%H%M%S`

if [ $MAXELEV -gt 19 ]
  then
    echo ${1//" "}${OUTDATE} $MAXELEV

    echo "/home/pi/weather/predict/receive_and_process_satellite.sh \"${1}\" $2 /home/pi/weather/${1//" "}${OUTDATE} /home/pi/weather/predict/weather.tle $var1 $TIMER" | at `date --date="TZ=\"UTC\" $START_TIME" +"%H:%M %D"`

fi

nextpredict=`expr $var2 + 60`

PREDICTION_START=`/usr/bin/predict -t /home/pi/weather/predict/weather.tle -p "${1}" $nextpredict | head -1`
PREDICTION_END=`/usr/bin/predict -t /home/pi/weather/predict/weather.tle -p "${1}"  $nextpredict | tail -1`

MAXELEV=`/usr/bin/predict -t /home/pi/weather/predict/weather.tle -p "${1}" $nextpredict | awk -v max=0 '{if($5>max){max=$5}}END{print max}'`

var2=`echo $PREDICTION_END | cut -d " " -f 1`

done

When the time comes for a give pass to be recorded and processed, at kicks off the final script 'receive_and_process_satellite.sh'. When this script is called, it uses rtl_fm to receive the audio from the satellite pass, and sends that audio to sox for processing. Sox saves the audio to a file. Once the pass is complete, wxmap is called to generate an overlay map for the image. Finally, wxtoimg is called to generate the actual image and place the overlay map on it.

Using your favorite text editor, create a new file in ~/weather/predict named receive_and_process_satellite.sh and put the following code in the file:

#!/bin/bash

# $1 = Satellite Name
# $2 = Frequency
# $3 = FileName base
# $4 = TLE File
# $5 = EPOC start time
# $6 = Time to capture

sudo timeout $6 rtl_fm -f ${2}M -s 60k -g 45 -p 55 -E wav -E deemp -F 9 - | sox -t wav - $3.wav rate 11025

PassStart=`expr $5 + 90`

if [ -e $3.wav ]
  then
    /usr/local/bin/wxmap -T "${1}" -H $4 -p 0 -l 0 -o $PassStart ${3}-map.png

    /usr/local/bin/wxtoimg -m ${3}-map.png -e ZA $3.wav $3.png
fi

Once all three scripts have been created, we need to make the executable, by issuing the following commands:

chmod +x schedule_all.sh
chmod +x schedule_satellite.sh
chmod +x receive_and_process_satellite.sh

Now, the last step in automating the reception is to schedule the first script to run just after midnight. Run the following command:

crontab -e

It will open a text editor of your choice to edit the cron file. Simply add the following line to the bottom of this file and save:

1 0 * * * /home/pi/weather/predict/schedule_all.sh

Now, at 00:01 the schedule will start. (if you don't want to wait, simply run the following command once to kick the process off:)

/home/pi/weather/predict/schedule_all.sh

Step 5: Check Things Out

To see upcoming satellite passes that are scheduled to be processed, run the following command:

atq

Check the ~/weather directory for your results. Each pass will generate three files:

NOAA1820170105-181147-map.png  <-- Map overlay file
NOAA1820170105-181147.png      <-- The final image file
NOAA1820170105-181147.wav      <-- The raw audio file

The format of the file name is the satellite name, followed by the date (YYYYMMDD) and time (HHMMSS) of the start of the pass. There are several filters that wxtoimg can use when generating the image file. I've had different luck with different satellites and passes on each filter. Feel free to play around with wxtoimg on the original map and audio files and see what you come up with.

One thing to note, the receiver can only receive one satellite at a time. If two satellites are passing overhead at the same time, the first one to start recording will "win" and be recorded. The second recording will error out and stop.

Step 6: Some of My Results

19 People Made This Project!

Recommendations

  • Space Challenge

    Space Challenge
  • Science of Cooking

    Science of Cooking
  • Spotless Contest

    Spotless Contest
user

We have a be nice policy.
Please be positive and constructive.

Tips

11 Questions

0

Using your favorite text editor, create a new file named /etc/modprobe.d/no-rtl.conf and put the following text in the file. You need to run that text editor as sudo (i.e. 'sudo vi' or 'sudo nano' etc) to write to the modprobe.d directory:

blacklist dvb_usb_rtl28xxu
blacklist rtl2832

blacklist rtl2830

Hi guys a very newbie doing coding on the PI, Im getting confused on how to exiting the "Text editor". I've spent hours on YouTube trying to figure it out but it seems that there's more ways of doing this.

I've tried most but nothing seems to happen.

HELP plase

cheers

0

I have the same, have wav files of about 10Mb but only have an one of about 21k of 88 lines.
Even last night when NOAA18 crossed about overhead. Have a v-dipole in the attic with the open end of the V pointing south.
Have read other people having antennas in the attic, is not ideal but should have had something more so far.

Can the code be changed to receive NOAA marine forecasts? Also, If your location is changing like on a boat is there an way to stream line the location input?

Does Anyone Know How I Can Make It So It Does A Color Map???

0

To make a RAW image add this line.

/usr/local/bin/wxtoimg -m ${3}-map.png -16r -A $3.wav $3_RAW.png

1 more answer

0

Add the following line to the receive and process satellite file.

/usr/local/bin/wxtoimg -m ${3}-map.png -e MCIR $3.wav $3_MCIR.png

0

Hi all,

I'm using a Raspberry Pi 3 B+ with rabbit ear antennas connected with a RTL-SDR V3 dongle. Running the scripts gives me no errors. My problem is that no .wav files are recorded (or at least saved). I can't determine why this is, I've followed each step thoroughly and poured through the code to double check. Running GQRX, I do pick up the appropriate signals for each satellite as they pass, but again, it seems like nothing is happening during a pass. Any help would be appreciated.

Ignore this. I found a few of my issues. Hoping for good results on the next pass!

hi,
is possible to add audio monitoring , to the speaker jack ?

/bertil

technically yes, but the problem is related to the extremely high latency of the Raspi that make it unusable

0

Hi all,
Does anyone have an idea how to make a receiver on Meteor M2?

Hi all,
I am receiving the messages below when I run schedule_all.sh. I verified that the weather.txt and weather.tle files look okay. Has anyone seen this error(s) or have an idea on where in the script(s) there might be issues:
NOAA1820180204-234401 89
date: extra operand '%H:%M %D'
Try `date --help' for more information
Garbled time
NOAA1820180204-220157 40
date: extra operand '%H:%M %D'
Try `date --help' for more information
Garbled time
NOAA1520180204-234208 25
date: extra operand '%H:%M %D'
Try `date --help' for more information
Garbled time

I also do not see anything when I run the atq command. Thanks!

0

Just a guess here...

- install ntpdate - sudo apt-get install ntpdate
- change you time default to UTC - sudo dpkg-reconfigure tzdata

Hi there, when I go to create the three scripts I type it out like this (while being in the ~/weather/predict directory) : sudo nano /schedule_all.sh now I am not sure if this is right or wrong because I have a very limited experience in Linux but when I go to execute the commands to make them executables, I get the error "no such file or dirrectory". I have no idea what I am doing wrong so if possible could you please point me in the right dirrection? Thank you.

For the first paragraph I meant to say: nano schedule_all.sh

1 more answer

I think you had an extra slash with you command. For making a script you can usually type:
nano .sh
if you are in the directory that you want to make a script.

Since you already made a script you can use the 'mv' command to rename it. Since it looks like the script you made was with sudo we will use sudo again to rename it. I would try:
sudo /schedule_all.sh schedule_all.sh
Then type 'ls' and see if the script is listed. Hope this !helps

Hello again, I have managed to record 3 sound files (.wav) but there is no map overlay file or picture file that is generated for those sound files. I did make all the scripts exxecutables so im not too sure why they are not being called up one after the other. If you could point me in the right direction that would be greatly appreciated. Thank you.

Hi, i have a problem with Audio in xwxtoimg i get an error message that no audio device found. What can i do ? Sox is installed. Thanks a lot for your help in advance. Best regards Klaus

87 Comments

Unfortunately, I get the following error message in mail:

sox FAIL formats: can't open input '-': WAVE: RIFF header not found

The leading quote looks a bit slanted compared to the following quote mark. Any ideas what that means?

Doug S.

7 replies

Hi Doug

got this error because I run the scripts under a different user.

I had to add this user to the sudoers without password.

Check /etc/sudoers.

//Dietmar

Thanks Dietmar. I’ll give it a look.

Regards,

Doug

Were you able to solve this issue? I've tried adding the user to sudoers with no success. I'm still getting the same error message with every satellite pass.

I have the same problem. Found any solution?

I fixed the issue, but it was by starting over from scratch. I installed a fresh Raspian image onto the SD card and followed the instructions again step by step, and it works flawlessly. I think other libraries/software I had installed previously was interfering with the software needed for this project.

Hi Matt,

I was able to get it to work, but I cannot recall now how I did it. That has been several months ago, and several projects ago. I’ll look back to my notes when I get a chance.

Doug

hi i have add this with the pi user -but i become the same error message? - can you tell me, what i can do?

sudo adduser sudo

the pi user is in the sudo grout


thank you

I get this error when I run schedule_all.sh

pi@raspberrypi ~/weather/predict $ /home/pi/weather/predict/schedule_all.sh

date: invalid date ‘TZ="UTC" @’

/home/pi/weather/predict/schedule_satellite.sh: line 10: [: ==: unary operator expected

date: invalid date ‘TZ="UTC" @’

/home/pi/weather/predict/schedule_satellite.sh: line 10: [: ==: unary operator expected

date: invalid date ‘TZ="UTC" @’

/home/pi/weather/predict/schedule_satellite.sh: line 10: [: ==: unary operator expected

I see others have had this issue, but haven't seen any solutions. I've checked the localization parameters and my time zone is: America, Chicago.

Any suggestions?

4 replies

Hey guys a noobie here! i got the same error but fixed it by the wget to curl replacement and changing the -O to a -o.

curl https://www.celestrak.com/NORAD/elements/weather.txt -o /home/pi/weather/predict/weather.txt

# wget -qr https://www.celestrak.com/NORAD/elements/weather.txt -O /home/pi/weather/predict/weather.txt

this was found by using the "set -x" command in the top of each script file. this enabled me to see that no data transfer was happening due to a miss formed URL. so the weather.txt file although was present it was empty hence the unary error. took me a few days to figure but hope it helps others.

I was having this exact issue. After I corrected my errors it went away. I had carefully typed in the first grep line of schedule_all.sh and then copied and pasted the next 3 lines correcting the satellite names only. I had not added the append right arrow as I should have to the next 3 grep lines. Hope this helps someone. I am receiving fair images with a V3 dongle and their rabbit ear antenna layed horizontally elements extended 22" at 45 degrees. My appreciation to the author. .

Hi, I had the same problem and in my case it was the date it was wrong, check that it is ok.

Here too near Chicago and seeing the same error. Found out it is related to getting the weather.txt file. Check out your weather.txt file.

I am testing this on an RPi2 with Wheezy.

For getting the text file tried the curl method and it still did not work correctly. Finally just changed the line in schedule_all.sh

wget -qr hxxps://www.celestrak.com/NORAD/elements/weather.txt -O /home/pi/weather/predict/weather.txt
to
wget -q hxxp://www.celestrak.com/NORAD/elements/weather.txt -O /home/pi/weather/predict/weather.txt

* change xx to tt above.

I recently installed this but so far with a crappy antenna I only get the wav file of about 2.5MB. When I decode that with APTdecoder or wxtoimg it is not showing anything,
I build a V-dipole and put it up, right now about 3 hrs until the next pass,

I also looked into my mail and saw this.:
Subject: Output from your job 16

To: root@piaware

Message-Id: <E1f6dRQ-0000yh-N4@piaware>

From: root <root@piaware>

Date: Thu, 12 Apr 2018 09:43:12 -0500

Found 1 device(s):

0: Realtek, RTL2838UHIDIR, SN: 00000001

Using device 0: Generic RTL2832U OEM

Found Fitipower FC0012 tuner

Tuner gain set to 19.20 dB.

Tuner error set to 55 ppm.

Tuned to 138392500 Hz.

Oversampling input by: 32x.

Oversampling output by: 1x.

Buffer size: 4.27ms

Sampling at 1920000 S/s.

Output at 60000 Hz.

Signal caught, exiting!

User cancel, exiting...

rtlsdr_demod_write_reg failed with -4

rtlsdr_demod_read_reg failed with -4

rtlsdr_demod_write_reg failed with -4

rtlsdr_demod_read_reg failed with -4

rtlsdr_write_reg failed with -4

sox WARN wav: Premature EOF on .wav input file

wxmap: warning: could not find matching pass to build overlay map.

To me the 'User cancel, exiting' doesn't seem to be promising.
Any ideas?

John

1 reply

sudo rtl_test

Found 1 device(s):

0: Realtek, RTL2838UHIDIR, SN: 00000001

Using device 0: Generic RTL2832U OEM

Found Fitipower FC0012 tuner

Supported gain values (5): -9.9 -4.0 7.1 17.9 19.2

Sampling at 2048000 S/s.

Info: This tool will continuously read from the device, and report if

samples get lost. If you observe no further output, everything is fine.

Reading samples in async mode...

lost at least 92 bytes

cb transfer status: 1, canceling...

Library error -5, exiting...

Hello guys

I have been playing with this and yesterday I set up the code to get the color images. I am getting some nice once but most of my received images now look like this.

Any idea what is going on here ?

Capture.JPG
1 reply

I like the "anaglyph" mode, for a 3-D view of the clouds. I made a viewer from welding goggles and some colored gels....

anaglyphViewer.png

Noticed that wxtoimg is no longer supported nor upgradable.

I was able to upgrade it googling wxtoimg upgrade and it worked.

This has to do with my color images that didn't really look that good.

pi@mycomputer ~ $ wxtoimg -V
WXtoImg version 2.11.2 beta
Professional edition
Copyright (c) 2001-2013 Central North Publishing Limited.
All rights reserved.

Ran the script to watch what happens at a random time:

Found 1 device(s):
0: Realtek, RTL2838UHIDIR, SN: 00000001

Using device 0: Generic RTL2832U OEM
Found Rafael Micro R820T tuner
Tuner gain set to 49.60 dB.
Tuner error set to -3 ppm.
Tuned to 137540000 Hz.
Oversampling input by: 32x.
Oversampling output by: 1x.
Buffer size: 4.65ms
Exact sample rate is: 1760000.037299 Hz
Sampling at 1760000 S/s.
Output at 55000 Hz.
Signal caught, exiting!

User cancel, exiting...
sox WARN wav: Premature EOF on .wav input file
Satellite: NOAA 19
Pass Start: 2018-02-07 08:53:48 UTC
Pass Duration: 14:24
Elevation: 23
Azimuth: 94
Direction: southbound
..Satellite: NOAA 19
Status: signal processing............................
wxtoimg: warning: Narrow IF bandwidth (purchase upgrade key!), low S/N, or volume too high
Gain: 23.0
Channel A: 3/3B (mid infrared)
Channel B: 4 (thermal infrared)
Satellite: NOAA 19
Status: signal processing............................
wxtoimg: warning: Narrow IF bandwidth (purchase upgrade key!), low S/N, or volume too high
Gain: 23.0
Channel A: 3/3B (mid infrared)
Channel B: 4 (thermal infrared)
Satellite: NOAA 19
Status: signal processing............................
wxtoimg: warning: Narrow IF bandwidth (purchase upgrade key!), low S/N, or volume too high
Gain: 23.0
Channel A: 3/3B (mid infrared)
Channel B: 4 (thermal infrared)
Satellite: NOAA 19
Status: signal processing............................
wxtoimg: warning: Narrow IF bandwidth (purchase upgrade key!), low S/N, or volume too high
Gain: 23.0
Channel A: 3/3B (mid infrared)
Channel B: 4 (thermal infrared)
wxtoimg: warning: enhancement ignored: could not find a NOAA sensor 1 or sensor 2 image