Skip to content

About

Python control layer for ESA DTE-S2GOS synthetic scene generator service

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

CI Codecov Pixi Ruff License

DTE-S2GOS Control Layer

Python control layer for the synthetic EO scene simulator service of the ESA DTE-S2GOS project.

s2gos logo


Controller Overview

This project hosts two Python packages:

  • s2gos-client - CLI, GUI, and API clients that allow for interaction with the S2GOS scene simulator service.
  • s2gos-server - a FastAPI-based implementation of the OGC API - Processes that is wrapped around the S2GOS scene simulator service based on Apache Airflow.

The development of the S2GOS controller paved the way for the development of the more general Eozilla Suite of tools supporting the interaction with EO workflow orchestration and processing systems. The S2GOS controller therefore build on the Eozilla packages Cuiman, Wraptile and others.

Installation

Using pip

The S2GOS controller packages are not yet deployed on PyPI, therefore installing it as a package using pip is not yet available.

Using conda/mamba

The S2GOS controller packages are not yet deployed on conda-forge, therefore installing it using as a conda package using conda or mamba is not yet available.

Using pixi

The S2GOS controller packages are not yet deployed on conda-forge, therefore installing it as a conda package using pixi is not yet available.

Using GitHub

To install the S2GOS controller packages from their sources on GitHub you'll need to install both git and pixi first. Then:

git clone https://github.com/s2gos-dev/s2gos-controller.git
cd s2gos-controller
pixi install
pixi shell

The environment includes both controller packages, JupyterLab, and the requirements for the local demonstration processes.

Getting started

Follow the user guide to start a local test service, configure the client, and submit your first job. The guide covers the Python API, App, command line, authentication, and result access.

The original notebooks remain in the repository for independent exploration; the maintained walkthroughs and reusable examples are in the user guide.

Development

Install the S2GOS controller packages as described in Installation / Using GitHub above.

Linting and Testing

To run all checks, execute

pixi run checks

To run all tests, execute

pixi run tests

To generate a coverage report, execute

pixi run coverage

Implementing Enhancements

The S2GOS controller code relies heavily on the Eozilla packages

  • wraptile, which provides the gateway server implementation,
  • cuiman, which provides the client CLI, GUI, and API implementations, and
  • gavicore which provides common OGC model classes and basic utilities.

Should S2GOS controller require non-S2GOS-specific enhancements it would likely be best to implement the required changes in the respective Eozilla packages. For this, check out the Eozilla sources directly next to this project's sources to achieve this folder structure:

    <projects>/
    ├── s2gos-controller/
    │   ├── s2gos-client/
    │   ├── s2gos-server/
    │   └── ...
    └── eozilla/
        ├── appligator/
        ├── cuiman/
        ├── gavicore/
        ├── procodile/
        ├── wraptile/
        └── ...

For development, change the root pyproject.toml file as follows

  1. Comment out the dependencies cuiman, gavicore, etc. in the [tool.pixi.dependencies] table.

  2. Uncomment the editable PyPI dependencies for cuiman, gavicore, etc. in the [tool.pixi.pypi-dependencies] table.

The run

pixi i

to make the changes effective. Check with

pixi ls

which should now list the Eozilla packages as editable.

About

Python control layer for ESA DTE-S2GOS synthetic scene generator service

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages