
Pytroll Processing
Playbooks to install and configure Pytroll-based satellite data processing pipelines and optionally a WMS server. These playbooks are used in the European Weather Cloud (EWC) environment.
Overview
ewc-playbooks
provides Ansible playbooks to set up a robust, containerized environment for processing satellite data using the Pytroll ecosystem. Supported datasets include:
- FCI – Flexible Combined Imager (MTG-I)
- SEVIRI – Spinning Enhanced Visible and Infrared Imager (MSG)
- VIIRS – Visible Infrared Imaging Radiometer Suite (NOAA/NASA)
Optionally, a WMS server can be deployed to serve processed imagery for visualization in GIS clients.
Key features:
- Automated provisioning of multiple containers.
- Scalable and isolated pipelines for each satellite sensor.
- Integration with Pytroll tools for reading, processing, and resampling satellite data.
- Optional WMS server for serving processed data.
Repository Structure
ewc-playbooks/
├── fci-processing/
├── fci-wms/
├── seviri-processing/
├── seviri-wms/
├── viirs-processing/
├── viirs-wms/
├── defaults.yml
├── satellite-data-processing-main.yaml
├── README.md
└── LICENSE
where:
*-processing/
: Container builds and Ansible tasks for satellite processing.*-wms/
: Container configuration for WMS services.defaults.yml
: Default variables.satellite-data-processing-main.yaml
: Main playbook orchestrating all deployments.
Tested Platforms
This playbook and container setup have been tested on the following platforms:
Operating System | Version |
---|---|
Ubuntu | 22.04 LTS |
Ubuntu | 24.04 LTS |
Rocky Linux | 9 |
Note: Other Linux distributions may work but have not been officially tested.
Run the Playbook
- Install Ansible
You can install Ansible and other Python dependencies in a virtual environment:
python3 -m venv venv
source venv/bin/activate
pip install ansible
For more details, see the Ansible installation guide: https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html
- Define Your Inventory
Create the inventory file to list your hosts and groups. Example:
[satellite_hosts]
localhost ansible_connection=local
- Run the main playbook (or any specific playbook) using:
ansible-playbook -i inventory satellite-data-processing-main.yaml
This will:
- Build and launch containers for processing FCI, SEVIRI, and VIIRS data.
- Optionally deploy WMS containers to serve processed outputs.
Optional Variables
You can customize the playbook behavior using the following variables:
Variable | Default Value | Description |
---|---|---|
satellite_data_type |
fci |
Specify the satellite type to process (fci , seviri , viirs ) |
Passing Variables to Ansible
You can override these defaults when running the playbook by using the --extra-vars
(-e
) flag:
ansible-playbook -i inventory path/to/playbook/filename.yaml -e "satellite_data_type=seviri"