Skip to content

Eozilla

Eozilla is a suite of tools for workflow orchestration systems and OGC API - Processes implementation.

Eozilla has been developed to cloudify satellite data processor applications and run them in the cloud.

Note: this project and its documentation are still in an early development stage.

Features

The Eozilla suite of tools comprises:

  • Procodile: A simple, lightweight, and expressive Python framework for registering and executing processes and process workflows.
  • Appligator: An EO application bundler and transformer. It allows for generating tailored Docker images from processes to be executed on external workflow orchestration backends.
  • Wraptile: A fast and lightweight HTTP server that implements OGC API - Processes for various workflow orchestration backends, such as Apache Airflow or a local process executor.
  • Cuiman: A Python client including API, GUI, and CLI for servers compliant with OGC API - Processes.
  • Gavicore: Common pydantic data models and utilities for the packages above.

The main packages in their use-case context:

eozilla-context.png

Installation

The eozilla package installs all components of Eozilla.

pip install eozilla

However, your use case might require only a subset of Eozilla components. Install just

  • procodile if you develop processor applications,
  • appligator if you deploy your processor applications,
  • wraptile if you are an OGC API - Processes service provider,
  • cuiman if you need a client to operate with an OGC API - Processes service.

The easiest way to test Eozilla is in a separate Python environment. We use the pixi here, but you could do the same with pip, conda, or mamba:

mkdir eozilla-test
cd eozilla-test

pixi init
pixi add python
pixi add --pypi eozilla
pixi shell

python -c "import eozilla; print(eozilla.__version__)"

cuiman --help
appligator --help
wraptile --help

We currently package Eozilla only as pip packages distributed via PyPI, but we will publish conda-forge packages soon.

Package Dependencies

---
config:
    class:
        hideEmptyMembersBox: false
    theme: default
---
classDiagram
direction TD
    class appligator {
    }
    class cuiman {
    }
    class gavicore {
    }
    class procodile {
    }
    class wraptile {
    }
    cuiman ..> gavicore : uses
    appligator ..> gavicore : uses
    appligator ..> procodile : uses (opt.)
    procodile ..> gavicore : uses
    wraptile ..> gavicore : uses
    wraptile ..> procodile : uses (opt.)

Acknowledgements

Large parts of the work in the Eozilla project have been made possible by the ESA DTE-S2GOS project, where we cloudify a set of EO scene simulator applications. The ESA Sen4CAP project, where we cloudify various Sentinel-based data processors, gave us the impulse to create Eozilla as a set of reusable, standalone packages. Further work on Eozilla has been supported by the Open-Earth-Monitor Cyberinfrastructure project, which has received funding from the European Union's Horizon Europe research and innovation programme under grant agreement No. 101059548.

Hopefully Eozilla can support and will be supported by other future projects.