sam210723 / himawari-rx

📡 Receive images from weather satellite Himawari-8 via HimawariCast.
https://vksdr.com/himawari-rx
MIT License
50 stars 15 forks source link
himawari-8 himawari-satellite hrit python python3 satellite satellite-imagery weather weather-satellite

:satellite: himawari-rx - HimawariCast Downlink Processor

GitHub release Python versions Github all releases GitHub license

himawari-rx is a decoder for receiving images from geostationary weather satellite Himawari-8 (140.7˚E) via the HimawariCast data service operated by Japan Meteorological Agency. HimawariCast is a DVB-S2 signal transmitted from JCSAT-2B (154°E) on its global C-band beam. It can be received with a 2.4m satellite dish and a standard C-band LNB. It may be possible to use a smaller dish however this has not been verified.

himawari-rx receives UDP datagrams over a network connection and outputs decoded image files to disk. The UDP datagrams can come from either a DVB-S2 receiver card such as a TBS5520SE or a satellite IP receiver such as the Novra S300D. A Software Defined Radio solution using GNU Radio is currently under development.

Himawari-8 Wavelengths

Getting Started

A (work in progress) guide for setting up the hardware and software components of a HimawariCast receiver is available on my site.

In the meantime here is a quick overview of the required setup:

HimawariCast is a C-band DVB-S2 downlink on geostationary communication satellite JCSAT-2B at 154°E. The downlink frequency is 4148 MHz with a symbol rate of 2586 ksps and horizontal polarisation. On a standard 5150 MHz LO C-band LNB it has an IF of 1002 MHz.

A standard DVB-S2 receiver card/box such as the TBS6902 (PCIe) or TBS5520SE (USB) can receive this downlink either using Windows or Linux. The downlink carries multicast UDP packets which are wrapped in DVB-MPE and need to be unwrapped with software such as TSDuck, the TBS IP Tool or TSReader.

For TSDuck, the following command should work in most cases.

tsp -I dvb --device-name /dev/dvb/adapter0:1  --lnb 5150 --delivery-system "DVB-S2" --frequency 4148000000 --modulation QPSK --symbol-rate 2586148 --fec-inner "3/5" --roll-off 0.2 --polarity "horizontal" -P mpe --pid 0x03E9 --udp-forward --log -O drop

For TSReader, use File -> IP/DVB Mode and select PID 0x03E9 (1001), then right click on UDP: 239.0.0.1 in the PID list and select Retransmit UDP payload.

To install himawari-rx, download the himawari-rx.zip from the latest release and extract it to a new folder. Next, install the required Python packages with pip install -r requirements.txt. Finally, run himawari-rx with python himawari-rx.py.

himawari-rx will begin decoding images once UDP packets from the downlink are being transmitted onto the local network using TSDuck, the TBS IP Tool or TSReader.

To generate PNG image files from the received LRIT/HRIT files, use the tools/xrit-img.py script. These PNG files can then be combined into a false colour image using the tools/false-colour.py script.

Imaging Bands

Himawari-8 is capable of capturing Earth in 16 different wavelengths of light, 14 of which are transmitted via the HimawariCast service.

List of options

rx section

Setting Description Options Default
path Root output path for received files Absolute or relative file path "received"
combine Save all images in a single directory (XRIT2PIC compatibility) true or false false
format File type to output bz2: Compressed xRIT files
xrit: LRIT/HRIT files
xrit
ignored List of channels (bands) to ignore
(e.g. "B09", "IR2")
Table of available bands none

udp section

These two options generally do not need to be changed. Setting Description Options Default
ip Multicast IP address of DVB-S2 receiver 224.0.0.0 - 239.255.255.255 239.0.0.1
port UDP output port of DVB-S2 receiver Any UDP port number 8001

Acknowledgments