Tag Archives: EMWIN

GOES 16 Test Week Results

In the week from March 27th to 31 NOAA performed some new downstream tests over HRIT link on GOES-16. The idea was to transfer some CMI (Cloud and Moisture Imaging) products and see if the software developers and current stations could receive it fine. Before starting talking about that, please notice that all data sent so far is stated as test data and should not be used for any real world measurements. As NOAA states (and I forwarded on my last post):

The user of that link assumes all risks related to the use of their data and NOAA disclaims and any and all warranties, whether express or implied, including (without limitation) any implied warranties of merchantability or fitness for a particular purpose.

So I kept my dish pointed to GOES-16 all over the week and did record the Monday testing (that contained CMI images) and recorded all files sent all over the week. Some of them are automatically posted on Twitter / Instagram by my OSP Bot but not all of them. I had discovered some issues with my Virtual Channel Ingestor on GOES Dump, and also most of the new data was not being handled correctly by Goes Dump. Working together with @usa_satcom we managed to almost zero-out the bugs in GOES Dump.

Continue reading

GOES 16 Test Week

Yesterday I received an email from NOAA (I’m on their “tester” list) about some tests on GOES-16 that will happen this week. Before I start talking about what will be the tests I want to be clear that GOES-16 is NOT operational yet and any data received from the LRIT/HRIT downlink are test only data. This means the user of that link assumes all risks related to the use of their data and NOAA disclaims and any and all warranties, whether express or implied, including (without limitation) any implied warranties of merchantability or fitness for a particular purpose.

So this week ( from 27th to 31th march ) HRIT will go into a new test phase that will send out DCS, Environmental Messages and charts through. They also will send from 16h to 20h UTC on Monday (27th) some CMI (Cloud and Moisture Imaging) data. That might be interesting for anyone that have a 1.5m+ dish that can run Linear Polarization at 1694MHz and be interested in trying out the super-alpha version of OpenSatelliteProject, that is already compatible to HRIT.

Please keep in mind that while OSP does support HRIT, it doesn’t mean it will support the new products coming out from HRIT link. They’re currently testing sending NetCDF files over HRIT, and so far OSP doesn’t support those. In normal case (no bugs) the output product should be stored in a folder named Unknown with the filename provided by NOAA. Regardless of that I will be trying to record the IQ / decoder output in the CMI period and run the OSP over all week in GOES-16.

While running in GOES-16 the Twitter / Instagram bots will not be outputing any GOES-13 data (sadly I only have one dish so far) but may output the products from GOES-16.

Some usefull links for you if you’re interested in more information:

GOES 16 in the house!

Few *times* ago I started to check on GOES 16 transmissions to see if I can get any data from it and make OpenSatelliteProject work with it. Me and @usa_satcom noticed that the HRIT signal was transmitting using differential encoding that was not predicted on NOAA’s HRIT Specification (You can check it here http://www.goes-r.gov/users/hrit-links.html ). So I decided to send an email to NOAA asking what was the current HRIT specs for GOES-16. Of course I expected no answer from them (they would probably be really busy with GOES-16 Testing), but surprisingly they answered sending the specs and saying that any feedbacks would be helpful and appreciated. So the HRIT indeed uses Differential Encoding (NRZ-M to be more specific). Knowing that I could start changing OpenSatelliteProject to be compatible with HRIT.

Continue reading

GOES Satellite Hunt (Part 5 – File Assembler)

In the last chapter of my GOES Satellite Hunt, I explained how to obtain the packets. In this part I will explain how to aggregate and decompress the packets to generate the LRIT files.  This part will be somwhat quick, because most of the hard stuff was already done in the last part. Sadly the decompression algorithm is a modified RICE algorithm, and the Linux version of the library provided by NOAA cannot be used anymore because of incompatibilities between GCC ABIs ( The NOAA library has been compiled with GCC 2). Until I reverse engineer and create a open version of the decompression algorithm, I will use the  workaround I will explain here.

Continue reading

GOES Satellite Hunt (Part 4 – Packet Demuxer)

In the last chapter I showed how to get the frames from the demodulated bit stream. In this chapter I will show you how to parse these frames and get the packets that will on next chapter generate the files that GOES send. I will first add C code to the code I did in the last chapter to separated all the virtual channels by ID. But mainly this chapter will be done in python (just because its easier, I will eventually make a C code as well to do the stuff).

Continue reading

GOES Satellite Hunt (Part 3 – Frame Decoder)

In the last chapter of GOES Satellite Hunt, I explained how I did the BPSK Demodulator for the LRIT Signal. Now I will explain how to decode the output of the data we got in the last chapter.

One thing that is worth mentioning is that most (if not all) weather satellites that transmit digital signals use the CCSDS standard packet format, or at least something based on it. For example this frame decoder can be used (with some modifications due QPSK instead BPSK) for LRPT Signals from Meteor Satellites (I plan to do a LRPT decoder as well in the future, and I will post about it). I will not describe my entire code here, just the pieces for decoding the data. I will also not write the entire code here, since it can be checked in github. So before start see the picture below (again). We will some info from it as well.

LRIT Signal Specifications

Continue reading

GOES Satellite Hunt (Part 2 – Demodulator)

In the last episode of my GOES Satellite Hunt I explained how I manage to build a reception system to get the GOES LRIT Signal. Now I will explain how to get the packets out of the LRIT signal. I choose the LRIT signal basically because of two reasons:

  1. It contains basically all EMWIN data + Full Disks from GOES 13 and 15.
  2. Less complexity on the demodulator side (Simple BPSK Demodulator)

This is the LRIT Specification (theoretically):

Continue reading

GOES Satellite Hunt (Part 1 – Antenna System)


So few people know that I started a crusade against GOES 13 Satellite. My idea was to capture the GOES 13 signal (that’s reachable in São Paulo) with a good SNR (enough to decode) and them make all the toolkit to demodulate, decode and output the images and other data they send. I wanted a high-res image, and the L-Band transmissions usually provide that (GOES for example is 1km/px with whole earth sphere in frame. A 10000 x 10000 pixels image)

So I choose GOES over other Weather Satellites mainly because GOES is a Geostationary Satellite. That means its position never change. That was needed for me, because L Band usually needs a relatively big dish to capture the signal, and if the satellite is moving, the antenna needs to track it. That means: Alt-Az tracker (or something else) that will be most likely more expensive than the whole capture system (at least in Brazil). Since GOES does not move, I could just point my dish and forget about it. It would always capture the signal.

Continue reading