Skip to content

Commit

Permalink
Merge pull request #61 from JVital2013/satdump-120
Browse files Browse the repository at this point in the history
SatDump 1.2.0 Support
  • Loading branch information
JVital2013 authored May 6, 2024
2 parents 2c2c0cb + c25ce9d commit 605054f
Show file tree
Hide file tree
Showing 31 changed files with 1,203 additions and 392 deletions.
28 changes: 13 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ Sample configurations are provided for the following satellite/station setups:
| GOES-16 and 18 HRIT | goestools, SatDump, and XRIT Decoder |
| EWS-G1 (GOES-13) GVAR | SatDump |
| FengYun-2x S-VISSR | SatDump |
| GEO-KOMPSAT 2A LRIT | xrit-rx or SatDump |
| GEO-KOMPSAT 2A | xrit-rx or SatDump |

### How does it work?

Expand All @@ -49,12 +49,10 @@ A satellite downlink is picked up by your satellite dish, and is processed into

## System Requirements

You need to set up a satellite dish and point it at the satellite of your choice to get started. Additionally, SatDump or goestools must be configured to save recieved data to disk. See the [additional resources section](#additional-resources) for info on how to set up a ground station with goestools, and [this YouTube Video](https://www.youtube.com/watch?v=XMDAiUjzkhw) for a quick-start guide to setting up a test station with SatDump.
You need to set up a satellite dish and point it at the satellite of your choice to get started. Additionally, SatDump or goestools must be configured to save recieved data to disk. Guides for setting up these programs can be found under [Additional Resources](#additional-resources).

It is recommended that you host Vitality GOES on your ground station itself for the most up-to-date information and to simplify setup/maintenance. If you choose, it can be hosted on another machine if you have a sync process set up between the ground station and the Vitality GOES server. *Syncing received images from another machine is outside the scope of Vitality GOES.*



It is also recommended that you use a Debian-based Linux distro to host the Vitality GOES server. Something like Raspberry Pi OS, Ubuntu, or Debian is preferred. If you host it on Windows, make sure your satellite data is on an NTFS drive.

If you enable the secondary scripts, you may need more processing power than a low-end machine (like a Raspberry Pi) can provide. You may need to offload video rendering tasks to another machine or upgrade your server to something beefier. I'm using a laptop with a 4th generation Core i5 processor, and it has more than enough power to run goestools, Vitality GOES, and all secondary scripts.
Expand All @@ -63,23 +61,23 @@ Once configured, any modern web browser can connect to Vitality GOES and view th

## Preparing your system for Vitality GOES

### Option 1: goestools
To assist you in configuring goestools for Vitality GOES, sample `goesrecv.conf` and `goesproc-goesr.conf` files have been included in the configs folder of this repository. These files are pretty close to "stock" suggested files. You do not need to use these exact configs. You might want to remove sections you won't be using, and you'll need do do a "Find & Replace" to update the directory to where you want your GOES products stored. In the end, your setup should be configured as follows:

* In goesproc-goesr.conf, image handlers should have the filename end in `{time:%Y%m%dT%H%M%SZ}`.
* While all EMWIN information will be in the same folder, other product types should each have their own folder for best performance. For example, Channel 2 images should be in their own folder and not co-mingled with false color images.
* If will be enabling EMWIN information in Vitality GOES, make sure you have the emwin handler enabled in `goesproc-goesr.conf`. Do not exclude text files in this handler.
* If you plan on tracking satellite decoding statistics, make sure your `goesrecv.conf` file has a `statsd_address` defined where you are hosting Graphite/statsd. See [See the advanced configuration section](#advanced-configurations-for-goestools) for info on how to set up Graphite/statsd. You can configure this later.

### Option 2: SatDump
### Option 1: SatDump
You can use SatDump as a data source without changing any of its configurations. While SatDump can be run interactively with a full UI, this is not recommended for long-term realtime decoding. Instead, you should launch satdump in cli mode for live decoding. Here is an example SatDump command to use an RTL-SDR to pick up GOES-16/18:

```
satdump live goes_hrit F:\path\to\satdumprepo --source rtlsdr --samplerate 2.4e6 --frequency 1694.1 --gain 40 --http_server 0.0.0.0:8080
satdump live goes_hrit F:\path\to\satdumprepo --source rtlsdr --samplerate 2.4e6 --frequency 1694.1e6 --gain 49 --http_server 0.0.0.0:8080
```

The `http_server` part is optional and is only needed to provide decoder/demodulator statistics to Vitality GOES. For more information, see [the config documentation](/docs/config.md#general).

### Option 2: goestools
To assist you in configuring goestools for Vitality GOES, sample `goesrecv.conf` and `goesproc-goesr.conf` files have been included in the configs folder of this repository. These files are pretty close to "stock" suggested files. You do not need to use these exact configs. You might want to remove sections you won't be using, and you'll need do do a "Find & Replace" to update the directory to where you want your GOES products stored. In the end, your setup should be configured as follows:

* In goesproc-goesr.conf, image handlers should have the filename end in `{time:%Y%m%dT%H%M%SZ}`.
* While all EMWIN information will be in the same folder, other product types should each have their own folder for best performance. For example, Channel 2 images should be in their own folder and not co-mingled with false color images.
* If will be enabling EMWIN information in Vitality GOES, make sure you have the emwin handler enabled in `goesproc-goesr.conf`. Do not exclude text files in this handler.
* If you plan on tracking satellite decoding statistics, make sure your `goesrecv.conf` file has a `statsd_address` defined where you are hosting Graphite/statsd. See [See the advanced configuration section](#advanced-configurations-for-goestools) for info on how to set up Graphite/statsd. You can configure this later.

### Option 3: XRIT Decoder
Thanks to @abomb60, data from USA-Satcom's XRIT Decoder is supported as well.

Expand Down Expand Up @@ -228,4 +226,4 @@ Here are a few tools that may help you with picking up the HRIT/EMWIN Feed
* [goesrecv-ps](https://github.com/JVital2013/goesrecv-ps): a collection of PowerShell scripts for monitoring goesrecv. Contains scripts to make a baseband recording of the HRIT/EMWIN signal and monitor Virtual Channel activity.

## License
2022-2023 Jamie Vital. [Made available under the GPLv3 License.](LICENSE)
2022-2024 Jamie Vital. [Made available under the GPLv3 License.](LICENSE)
1 change: 0 additions & 1 deletion configs/goestools-goes16/scriptconfig.ini
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ abiVidName=("GOES16FalseColor" "GOES16Ch2" "GOES16Ch7" "GOES16Ch7Enhanced" "GOES
emwinSrcDir="/path/to/goestoolsrepo/emwin"
emwinCodeName=("RADNTHES" "RADREFUS" "GMS008JA" "G16CIRUS" "G10CIRUS" "G10FDIUS" "INDCIRUS")
emwinVideoName=("LocalRadar" "USRadar" "HIMAWARI" "GOES16EMWIN" "GOESWESTWC" "GOESWESTFD" "METEOSAT")
emwinFileExt=("GIF" "GIF" "GIF" "JPG" "JPG" "JPG" "JPG")

sanchezSrcPath16=/path/to/goestoolsrepo/goes16/fd/ch13
sanchezSrcPath18=/path/to/goestoolsrepo/goes18/fd/ch13
Expand Down
2 changes: 0 additions & 2 deletions configs/goestools-goes18/scriptconfig.ini
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,10 @@ videoDir="/var/www/html/videos"
abiSrcDir="/path/to/goestoolsrepo"
abiImgSource=("$abiSrcDir/goes18/fd/fc" "$abiSrcDir/goes18/fd/ch02" "$abiSrcDir/goes18/fd/ch07" "$abiSrcDir/goes18/fd/ch07_enhanced" "$abiSrcDir/goes18/fd/ch08" "$abiSrcDir/goes18/fd/ch08_enhanced" "$abiSrcDir/goes18/fd/ch09" "$abiSrcDir/goes18/fd/ch09_enhanced" "$abiSrcDir/goes18/fd/ch13" "$abiSrcDir/goes18/fd/ch13_enhanced" "$abiSrcDir/goes18/fd/ch14" "$abiSrcDir/goes18/fd/ch14_enhanced" "$abiSrcDir/goes18/fd/ch15" "$abiSrcDir/goes18/fd/ch15_enhanced" "$abiSrcDir/goes16/fd/ch13" "$abiSrcDir/goes16/fd/ch13_enhanced" "$abiSrcDir/goes16/fd/sanchez" "$abiSrcDir/goes18/non-cmip/fd/acha" "$abiSrcDir/goes18/non-cmip/fd/acht" "$abiSrcDir/goes18/non-cmip/fd/dsi" "$abiSrcDir/goes18/non-cmip/fd/lst" "$abiSrcDir/goes18/non-cmip/fd/rrqpe" "$abiSrcDir/goes18/non-cmip/fd/sst" "$abiSrcDir/goes18/non-cmip/fd/tpw" "$abiSrcDir/goes18/m1/fc" "$abiSrcDir/goes18/m1/ch02" "$abiSrcDir/goes18/m1/ch07" "$abiSrcDir/goes18/m1/ch07_enhanced" "$abiSrcDir/goes18/m1/ch13" "$abiSrcDir/goes18/m1/ch13_enhanced" "$abiSrcDir/goes18/m2/fc" "$abiSrcDir/goes18/m2/ch02" "$abiSrcDir/goes18/m2/ch07" "$abiSrcDir/goes18/m2/ch07_enhanced" "$abiSrcDir/goes18/m2/ch13" "$abiSrcDir/goes18/m2/ch13_enhanced" "$abiSrcDir/goes18/fd/sanchez" "$abiSrcDir/composite")
abiVidName=("GOES18FalseColor" "GOES18Ch2" "GOES18Ch7" "GOES18Ch7Enhanced" "GOES18Ch8" "GOES18Ch8Enhanced" "GOES18Ch9" "GOES18Ch9Enhanced" "GOES18Ch13" "GOES18Ch13Enhanced" "GOES18Ch14" "GOES18Ch14Enhanced" "GOES18Ch15" "GOES18Ch15Enhanced" "GOES16Ch13" "GOES16Ch13Enhanced" "GOES18Sanchez" "GOES18acha" "GOES18acht" "GOES18dsi" "GOES18lst" "GOES18rrqpe" "GOES18sst" "GOES18tpw" "GOES18FalseColor_M1" "GOES18Ch2_M1" "GOES18Ch7_M1" "GOES18Ch7Enhanced_M1" "GOES18Ch13_M1" "GOES18Ch13Enhanced_M1" "GOES18FalseColor_M2" "GOES18Ch2_M2" "GOES18Ch7_M2" "GOES18Ch7Enhanced_M2" "GOES18Ch13_M2" "GOES18Ch13Enhanced_M2" "GOES18Sanchez" "Composite")
abiResizeMode=(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 3 3 0 0 3 1 1 3 3 3 3 1 1 3 3 3 3 0 2)

emwinSrcDir="/path/to/goestoolsrepo/emwin"
emwinCodeName=("RADNTHES" "RADREFUS" "GMS008JA" "G16CIRUS" "G10CIRUS" "G10FDIUS" "INDCIRUS")
emwinVideoName=("LocalRadar" "USRadar" "HIMAWARI" "GOES16EMWIN" "GOESWESTWC" "GOESWESTFD" "METEOSAT")
emwinFileExt=("GIF" "GIF" "GIF" "JPG" "JPG" "JPG" "JPG")

sanchezSrcPath16=/path/to/goestoolsrepo/goes16/fd/ch13
sanchezSrcPath18=/path/to/goestoolsrepo/goes18/fd/ch13
Expand Down
File renamed without changes.
105 changes: 105 additions & 0 deletions configs/satdump-gk2a-hrit/maps.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
[_category_]
title = "Maps and Charts"
icon = map

[fct]
mode = endu
path = "{GK2A}/ADD"
filter = _FCT
title = "FCT"

[fogvis]
mode = endu
path = "{GK2A}/ADD"
filter = _FOGVIS
title = "Visibility for fog detection"

[gww]
mode = endu
path = "{GK2A}/ADD"
filter = _GWW3F
title = "KMA Global Wave Model"

[rww3a]
mode = endu
path = "{GK2A}/ADD"
filter = _RWW3A
title = "Regional Wave Analysis (RWDA)"

[rww3f]
mode = endu
path = "{GK2A}/ADD"
filter = _RWW3F
title = "KMA Regional Wave Model"

[SICEF24]
mode = endu
path = "{GK2A}/ADD"
filter = _SICEF24
title = "Sea Ice Forecast - 24 Hour"

[SICEF48]
mode = endu
path = "{GK2A}/ADD"
filter = _SICEF24
title = "Sea Ice Forecast - 48 Hour"

[SSTA]
mode = endu
path = "{GK2A}/ADD"
filter = _SSTA
title = "Sea Surface Temperature Analysis"

[SSTF24]
mode = endu
path = "{GK2A}/ADD"
filter = _SSTF24
title = "Sea Surface Temperature Forecast - 24 Hour"

[SSTF48]
mode = endu
path = "{GK2A}/ADD"
filter = _SSTF48
title = "Sea Surface Temperature Forecast - 48 Hour"

[SSTF72]
mode = endu
path = "{GK2A}/ADD"
filter = _SSTF48
title = "Sea Surface Temperature Forecast - 72 Hour"

[SUFA03]
mode = endu
path = "{GK2A}/ADD"
filter = _SUFA03
title = "Surface Pressure (Far East Asia)"

[SUFA12]
mode = endu
path = "{GK2A}/ADD"
filter = _SUFA12
title = "Surface Pressure (Ground)"

[SUFF24]
mode = endu
path = "{GK2A}/ADD"
filter = _SUFF24
title = "24 Hour Synoptic Forecast"

[UP50A]
mode = endu
path = "{GK2A}/ADD"
filter = _UP50A
title = "Height/Temperature Chart (500 hPa)"

[UP50A24]
mode = endu
path = "{GK2A}/ADD"
filter = _UP50F24
title = "500 hPa 24-Hour Forecast"

[UP50A48]
mode = endu
path = "{GK2A}/ADD"
filter = _UP50F48
title = "500 hPa 24-Hour Forecast"
53 changes: 53 additions & 0 deletions configs/satdump-gk2a-hrit/sat.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
[_category_]
title = "Satellite Imagery"
icon = globe-asia

[hrit-038]
path = "{GK2A}/IMAGES/GK-2A"
filter = _SW038
title = "GK-2A - Full Disk SW 3.8um"

[hrit-069]
path = "{GK2A}/IMAGES/GK-2A"
filter = _WV069
title = "GK-2A - Full Disk WV 6.9um"

[hrit-069e]
mode = satdump_geo
path = "{GK2A}/IMAGES/GK-2A"
filter = Mid-level_Tropospheric_Water_Vapor_map
title = "GK-2A - Full Disk WV 6.9um (Enhanced)"

[hrit-105]
path = "{GK2A}/IMAGES/GK-2A"
filter = _IR105
title = "GK-2A - Full Disk IR 10.5um"

[hrit-105e]
mode = satdump_geo
path = "{GK2A}/IMAGES/GK-2A"
filter = Clean_Longwave_IR_Window_Band_map
title = "GK-2A - Full Disk IR 10.5um (Enhanced)"

[hrit-123]
path = "{GK2A}/IMAGES/GK-2A"
filter = _IR123
title = "GK-2A - Full Disk IR 12.3um"

[hrit-123e]
mode = satdump_geo
path = "{GK2A}/IMAGES/GK-2A"
filter = Dirty_Longwave_Window_map
title = "GK-2A - Full Disk IR 12.3um (Enhanced)"

[comsfog]
mode = endu
path = "{GK2A}/ADD"
filter = _COMSFOG
title = "GK-2A - Fog Detection"

[comsir]
mode = endu
path = "{GK2A}/ADD"
filter = _COMSIR1
title = "GK-2A - Asia - IR105"
16 changes: 16 additions & 0 deletions configs/satdump-gk2a-lrit/config.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
[general]
;siteTitle = "My GK-2A Data"
;siteTheme = "light"
;graphiteAPI = http://127.0.0.1:8080/render/
showSysInfo = true
debug = false

[paths]
GK2A = /path/to/gk2adata

[categories]
sat = sat.ini
maps = maps.ini

[location]
timezone = Asia/Seoul
105 changes: 105 additions & 0 deletions configs/satdump-gk2a-lrit/maps.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
[_category_]
title = "Maps and Charts"
icon = map

[fct]
mode = endu
path = "{GK2A}/ADD"
filter = _FCT
title = "FCT"

[fogvis]
mode = endu
path = "{GK2A}/ADD"
filter = _FOGVIS
title = "Visibility for fog detection"

[gww]
mode = endu
path = "{GK2A}/ADD"
filter = _GWW3F
title = "KMA Global Wave Model"

[rww3a]
mode = endu
path = "{GK2A}/ADD"
filter = _RWW3A
title = "Regional Wave Analysis (RWDA)"

[rww3f]
mode = endu
path = "{GK2A}/ADD"
filter = _RWW3F
title = "KMA Regional Wave Model"

[SICEF24]
mode = endu
path = "{GK2A}/ADD"
filter = _SICEF24
title = "Sea Ice Forecast - 24 Hour"

[SICEF48]
mode = endu
path = "{GK2A}/ADD"
filter = _SICEF24
title = "Sea Ice Forecast - 48 Hour"

[SSTA]
mode = endu
path = "{GK2A}/ADD"
filter = _SSTA
title = "Sea Surface Temperature Analysis"

[SSTF24]
mode = endu
path = "{GK2A}/ADD"
filter = _SSTF24
title = "Sea Surface Temperature Forecast - 24 Hour"

[SSTF48]
mode = endu
path = "{GK2A}/ADD"
filter = _SSTF48
title = "Sea Surface Temperature Forecast - 48 Hour"

[SSTF72]
mode = endu
path = "{GK2A}/ADD"
filter = _SSTF48
title = "Sea Surface Temperature Forecast - 72 Hour"

[SUFA03]
mode = endu
path = "{GK2A}/ADD"
filter = _SUFA03
title = "Surface Pressure (Far East Asia)"

[SUFA12]
mode = endu
path = "{GK2A}/ADD"
filter = _SUFA12
title = "Surface Pressure (Ground)"

[SUFF24]
mode = endu
path = "{GK2A}/ADD"
filter = _SUFF24
title = "24 Hour Synoptic Forecast"

[UP50A]
mode = endu
path = "{GK2A}/ADD"
filter = _UP50A
title = "Height/Temperature Chart (500 hPa)"

[UP50A24]
mode = endu
path = "{GK2A}/ADD"
filter = _UP50F24
title = "500 hPa 24-Hour Forecast"

[UP50A48]
mode = endu
path = "{GK2A}/ADD"
filter = _UP50F48
title = "500 hPa 24-Hour Forecast"
26 changes: 26 additions & 0 deletions configs/satdump-gk2a-lrit/sat.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
[_category_]
title = "Satellite Imagery"
icon = globe-asia

[lrit-fd]
path = "{GK2A}/IMAGES/GK-2A"
filter = _IR105
title = "GK-2A - Full Disk IR 10.5um"

[lrit-fde]
mode = satdump_geo
path = "{GK2A}/IMAGES/GK-2A"
filter = Clean_Longwave_IR_Window_Band_map
title = "GK-2A - Full Disk - IR105 (Enhanced)"

[comsfog]
mode = endu
path = "{GK2A}/ADD"
filter = _COMSFOG
title = "GK-2A - Fog Detection"

[comsir]
mode = endu
path = "{GK2A}/ADD"
filter = _COMSIR1
title = "GK-2A - Asia - IR105"
Loading

0 comments on commit 605054f

Please sign in to comment.