A Web App for showcasing Geostationary Weather Satellite Data. Vitality GOES is designed to display data received from GOES-16/18 satellites via goestools, Satdump, or XRIT Decoder, but images from other satellites can be displayed as well.
Click Here for Screenshots and Videos
Traducción al español por XQ6DLW, Demys
Vitality GOES makes data received from a Geostationary Weather Satellite feed easily accessible, through a web browser, from anywhere on your local network. Even if the internet goes down, people on your local LAN can still access real-time weather information.
Vitality GOES has the following features:
Sample configurations are provided for the following satellite/station setups:
Satellite Downlink | Supported Programs |
---|---|
GOES-16 and 18 HRIT | goestools, SatDump, and XRIT Decoder |
EWS-G1 (GOES-13) GVAR | SatDump |
FengYun-2x S-VISSR | SatDump |
GEO-KOMPSAT 2A | xrit-rx or SatDump |
A satellite downlink is picked up by your satellite dish, and is processed into text and image data by goestools/SatDump. From there, Vitality GOES reads the data and presents it to the user on their device across the local network.
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.
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.
Once configured, any modern web browser can connect to Vitality GOES and view the data. Anyone with access to your server can view the data with ease!
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.1e6 --gain 49 --http_server 0.0.0.0:8080 --fill_missing
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.
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:
{time:%Y%m%dT%H%M%SZ}
.goesproc-goesr.conf
. Do not exclude text files in this handler.goesrecv.conf
file has a statsd_address
defined where you are hosting Graphite/statsd. See See the advanced configuration section for info on how to set up Graphite/statsd. You can configure this later.Thanks to @abomb60, data from USA-Satcom's XRIT Decoder is supported as well.
Vitality GOES needs to be hosted on a web server stack. Recommended software versions:
For this readme, I'm going to assume you're not running another web server on the same machine.
Assuming you're on a Debian/Ubuntu-based server, the following commands should install all the dependencies you need:
sudo apt update
sudo apt upgrade
sudo apt install apache2 php libapache2-mod-php
sudo a2enmod rewrite
sudo systemctl restart apache2
You may also need to enable .htaccess files in Apache2 for all functionality to work. To do so, edit /etc/apache2/apache2.conf as root and update this section:
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
to this:
<Directory /var/www/>
Options -Indexes
AllowOverride All
Require all granted
</Directory>
Finally, you need to make sure Apache has read access to your satellite data. There are two ways to do this. If your data is somewhere in your user folder (ex. /home/pi), you can give the www-data
user access to your user folder. To do so, run these commands (replacing pi with your username):
sudo usermod -a -G pi www-data
chmod 0750 /home/pi
sudo systemctl restart apache2
The other option is to configure your receiving program to save your data elsewhere (ex, /var/lib/satdata), and set your permissions as appropriate.
The easiest way to host Vitality GOES on a Windows box is to use XAMPP (https://www.apachefriends.org/). Download and install this software. When prompted, the only parts that are needed are Apache and PHP. Don't forget to start the Apache service in the XAMPP control panel before continuing.
Afterwards, verify your web server is working. When you navigate to the IP of your Vitality GOES server, you should see something that looks like this:
In a command line, run the following commands:
sudo rm -rf /var/www/html
git clone https://github.com/JVital2013/vitality-goes
cd vitality-goes
cp -r html /var/www/html
Then, copy a set of example configuration files from the configs folder of this repo into /var/www/html/config. Take a look at the config readme for more.
To start hosing Vitality GOES in Windows:
Then, copy a set of example configuration files from the configs folder of this repo into C:\xampp\htdocs\config. Take a look at the config readme for more.
Take a look at the config readme for info on how to tweak the Vitality GOES configuration to your liking.
"Admin Text" does not get saved by goestools due to a change in how the GOES satellites send the file down. For this text to get displayed, recompile goestools with this patch: https://github.com/pietern/goestools/pull/105/files. Afterwards, enable adminPath
in config.ini
and point it to your location for admin text files.
Vitality GOES can also show historical graphs for Viterbi error correction rates, Reed-Solomon error correction rates, packet drops, and more. To set this up, look here.
Vitality GOES comes with a number of scripts to enhance and extend its functionality. It is optional to implement any of these scripts, but some like Cleanup-EmwinText are highly encouraged.
For information on setting up these scripts, look here.
Run the following commands in a terminal:
git clone https://github.com/JVital2013/vitality-goes
cd vitality-goes
rsync -av --exclude 'config' --exclude 'videos' html/ /var/www/html/ --delete
If you still have your cloned vitality-goes repo from last time, you can also just run git pull
before running rsync.
robocopy html C:\xampp\htdocs /MIR /R:0 /W:0 /XD videos config
Vitality GOES supports theming. It comes with 5 themes, but you can make your own or install others shared with you. To get started with theming, take a look at the themes documentation.
You can use Vitality GOES to view images from other satellites not included in the sample configs. Here's how to set it up:
config.ini
, disable emwinPath
, adminPath
, and everthing under location
other than the timezone as these are also GOES specific. Configure at least one category ini fileSpecial thanks to Pieter Noordhuis for his amazing goestools package. Without him, Vitality GOES would be nothing, and the GOES HRIT/EMWIN feed would remain out of reach for a large number of amateur satellite operators.
Also special thanks to Aang23 for his SatDump package, the swiss army knife of amateur satellite reception.
The following software packages are included in Vitality GOES:
Here are a few tools that may help you with picking up the HRIT/EMWIN Feed
2022-2024 Jamie Vital. Made available under the GPLv3 License.