Saturday, December 9, 2017

Satellite Weather Maps, on a Macbook

There are thousands of communications and earth observation satellites flying over our heads at all times.  Many of the earth observation satellites broadcast useful data which anyone can receive, once you acquired the necessary equipment and know-how.  See this

Weather satellites are generally considered to be the most useful of the lot, since the data is open and not encrypted and the signals are quite strong.  The NOAA operates both geostationary and polar observers.  The geo satellites can only be received if you happen to live in its antenna footprint, while the polar satellites pass overhead twice a day wherever you are.

This article describes how to get an image from one of the NOAA polar satellites, using a cheap ($25) little RTL-SDR radio receiver.  These pictures are interesting, since the weather is always changing.

Interface Specifications

NOAA-15, NOAA-18 and NOAA-19 are probably the easiest to interface to.  All three satellites broadcast using an ancient system termed Automatic Picture Transmission (APT).

The APT signal is 2.4 kHz, amplitude modulated, described here and here

Which Computer System To Use

Most ordinary mortals use MS Windows computers.  These are generally good for playing games, writing letters and doing bookkeeping, but they are not very good for engineering use.  The problems are many fold:  The operating system scheduler is not real-time, the USB interface is buggy, scientific software invariably require specialized libraries of specific versions, which sometimes clash with libraries that are already installed.

The result is that if your special program happens to work, then you are in luck.   
If it doesn't work, then you are out of luck and there is nothing you can then do about it and your project is hung - Nuf sed.

A Macintosh system is better, since it is based on FreeBSD, but it suffers from some of the same software library issues when using precompiled (non-Free) software.  However, if you use Free software, then it is much the same as Linux/FreeBSD.  In order to use Free scientific/engineering software, you need Xcode (The C compiler provided by Apple, in the App Store),  Macports and Homebrew  With these tools, you can compile specialized software, much the same as on FreeBSD/Linux.

Linux and BSD have good real-time performance and gives one full control over everything.   On these UNIX systems, Free software is installed by downloading the source code and compiling it on your machine.  This sorts out all the library dependency issues for your system, with the result that specialized scientific and engineering software generally work much better than on other systems.

Note that the future NOAA software systems will all run on Linux and other operating systems will be supported through Linux virtual machines only, as explained here

So, for Linux users, it is the same idea as in this article.  You need to install rtl_sdr, gpredict and WXtoImg.  All the same, just a bit easier, since the repositories have what you need and you won't need weird paths - everything will be in the usual places.

The Heavens Above

The web site is very useful, but the best way to see when a satellite will pass overhead is with gpredict.

Install gpredict from macports:
$ sudo port selfupdate
... long wait...

$ sudo port install gpredict
...even longer wait...

Finally, you can run it:
$ /opt/local/bin/gpredict

Gpredict Satellite Orbit Prediction

You need to select the satellites that you want to track, but it is not immediately obvious how.  There is a tiny down arrow at the top right, select Configure, then scroll down to the NOAA sats.  Enter your own ground station co-ordinates and then if you hover the mouse over a bird, you can see how many minutes are left to reach your position.

Image Rendering

The best program to render the images appears to be WXtoImg, which you can get here

There are other decoders and renderers for Linux/BSD, but I have not tried them yet.


The software required for the RTL-SDR radio widget is described here:

You need CubicSDR and rtl_sdr as described in the above link - or gqrx on Linux.


You can look at the satellite data with CubicSDR.
  • NOAA15: 137.62 MHz
  • NOAA18: 137.9125 MHz
  • NOAA19: 137.10 MHz
The actual frequency is 1.9 kHz lower than the above and the modulation type is USB.  Once tuned in correctly, you'll hear the fax lines go cheap-cheap-cheap... at two cheaps per second.
The satellites also have other sensors on them and in future there will be other frequencies in the L and X band with much more data, as explained here


If you would use a simple dipole antenna, then you would only be able to receive something when the bird is almost directly overhead.  This may be good enough at first.

A better receive antenna that you can build yourself using common commercial items, is described here:

You need to know how to wield a drill, soldering iron and tin snips.  Do wear glasses, so you don't poke an eye out with the rods while working on the thing.

The advantage of this antenna is higher signal gain upwards and less noise from the surroundings.  However, the gain is not so high that you need to track the satellites with a mechanical rotator.  Just point it vertically up at the sky.  A plastic, water filled umbrella base, is all you need to keep it standing up.

Weather Data Capture

Once you figured out when a bird will fly overhead, go outside with your whole kit and kaboodle - you won't receive much indoors, if anything.  It depends on what your roof is made of and you won't get a very interesting image at night either.  So, horror of horrors, you have to get out of your cave in daylight!

The 2400 Hz "cheap-cheap" line data screeches can be received with the rtl_fm program and transcoded to wav format with Sound Exchange (sox), as below.

Note that on my Macbook sox resides in /usr/local/bin and rtl_fm in /opt/local/bin, probably since one was installed with homebrew and the other with macports.   This kind of confusion is one reason I prefer Linux for engineering work.

The dangling dash tells sox to read from stdin - the piped data from rtl_fm.
For example (NOAA15 137.62 MHz - 1.9 kHz, USB):
$ /opt/local/bin/rtl_fm -d 0 -M usb -f 137.618100M -s 24k -l 0 | /usr/local/bin/sox -r 24k -t raw -e s -b 16 -c 1 - wxdata.wav

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

Using device 0: Generic RTL2832U OEM
Found Rafael Micro R820T tuner
Tuner gain set to automatic.
Tuned to 137618100 Hz.
Oversampling input by: 19x.
Oversampling output by: 1x.
Buffer size: 7.84ms
Exact sample rate is: 1045000.031662 Hz
Sampling at 1045000 S/s.
Output at 24000 Hz.

...long wait...

Press Ctrl-C to stop and close the wxdata.wav file.

You can pipe the signals straight into the rendering program and get the image in real-time, but making it work the simple way first, is hard enough for starters.

Also note that there are multiple types of weather fax modulation modes used by polar sats, geo sats and HF radio.  Russia also has different sats.  The above examples are for the older polar NOAA sats only.

Render the Image

Now you can run wxtoimg, hamfax or wxsat or satsignal and read the audio file.  Hopefully, the result will be better than my first try!

Nice Weather!

With a simple antenna, it will only work if the satellite is passing fairly high, more than 20 degrees above the horizon, otherwise there will be too much noise, distortion and doppler shifting.

If your antenna didn't blow down in the last storm, 
then it isn't high enough.

Other Software

There are also weather fax relays on HF radio for mariners.  The encoding is somewhat different and fldigi can be used to decode it.

The most comprehensive meteorological tool kit is probably gempack

You can also look into wview

Setting the above up will likely be quite an adventure...

More Information

Group for Earth Observation (GEO):

Satellite Networked Open Ground Station (SatNOGS):

Digital Weather Satellite Reception:

Articles on decoding Russian Meteor-M2 weather pictures.  This one is much higher resolution than the older NOAA satellites:

Have fun,


No comments:

Post a Comment

On topic comments are welcome. Junk will be deleted.