GRIB Processor
Ingest grib files and publish metadata on those files to RabbitMQ servers.
Description
Watch a directory for new or updated grib files and publish an AMQP payload for each message in the file. This event processor was made for use by the Satellite Data Services at the SSEC. To see the format of the AMQP payloads please check out payload.md.
Limitations
Currently, this package can only process GRIB2 files, GRIB1 files will be ignored.
Installation
Requirements
- Python >= 3.8
-
NCEPLIBS-g2c
- This is the C library used to read GRIB files.
To install, simply clone the git repo:
git clone https://gitlab.ssec.wisc.edu/mdrexler/grib_rmq_stream.git --depth 1
cd grib_rmq_stream
./grib_processor --help
Setup
This will show you how to set up a virtual environment to run the processor with. It assumes that you've installed the grib processor and are in the grib_rmq_stream
directory.
There are a couple of ways to get your environment working based on your environment manager. See anaconda if you want to use anaconda or virtualenv if you just want to use virutalenv.
Anaconda
Create the environment/install lib requirements.
conda create -n {env_name} python={py_version} nceplibs-g2c -c conda-forge
Replaec {env_name} with the name of your environment, and {py_version} with a version larger than 3.8.
Activate environment.
conda activate {env_name}
Install script requirements.
pip install -r requirements.txt
Virtualenv
Check the system python version.
python3 --version
If the version is less than 3.8, you're kind of out of luck. I recommend using anaconda to get a more up-to-date version of python.
Create an environment (this might ask you to install a package on linux).
python3 -m venv .venv
Activate the environment.
source .venv/bin/activate
Install the requirements.
python3 -m pip install -r requirements.txt
If you get an error during installation about not finding a library, set the environment variable G2C_DIR
to be the path to the folder containing the 'lib' folder for NCEPLIBS-g2c. e.g.
If libg2c.so
is under /home/user/.conda/envs/lib-env/lib/
, you could install using:
G2C_DIR=/home/user/.conda/envs/lib-env/ python3 -m pip install -r requirements.txt
Usage
Once you've setup an environment, you can start the event processor simply by calling ./grib_processor {dir}
. Where {dir} is the directory to watch for grib files. See configuration for more information about how to change the behavior of the processor.
Configuration
There are two ways to configure the grib_processer script: through a .env file and through the CLI. The .env file contains secret information that you might not want in the command name, and the CLI has all other configuration.
.env File
The .env file can have two keys: RMQ_USER
and RMQ_PASS
which specify the RabbitMQ username and password respectively.
CLI Options
Use ./grib_processor --help
for a full list of command line arguments and what they do.
Author
Created by Max Drexler.
License
This software can be freely distributed and/or modified without consent of the original author. For more information, see the LICENSE file.