Skip to main content

Python implementations of many OpenEO processes, dask-friendly by default.

Project description

OpenEO Processes Dask

Poetry PyPI - Status PyPI PyPI - Python Version codecov

openeo-processes-dask is a collection of Python implementations of OpenEO processes based on the xarray/dask ecosystem. It is intended to be used alongside with openeo-pg-parser-networkx, which handles the parsing and execution of OpenEO process graphs. There you'll also find a tutorial on how to register process implementations from an arbitrary source (e.g. this repo) to the registry of available processes.

Installation

Recommended installation (with system GDAL)

If you already have GDAL installed on your system (or in a conda/micromamba env), always install the matching Python bindings first, then this package:

Installation

Install this project via pip:

pip install "gdal==$(gdal-config --version)" openeo-processes-dask

Note that by default this only installs the JSON process specs. In order to install the actual implementations, add the implementations extra:

pip install "gdal==$(gdal-config --version)" openeo-processes-dask[implementations]

This ensures that the Python bindings link against your system GDAL libraries and avoids pip pulling a mismatched GDAL wheel.


Installing GDAL if you don’t have it yet

System packages (Ubuntu/Debian):

sudo apt-get install gdal-bin libgdal-dev python3-gdal
pip install "gdal==$(gdal-config --version)" openeo-processes-dask[implementations]

Conda (recommended for most users):

conda create -n openeo_processes_dask -c conda-forge python=3.12 gdal
conda activate openeo_processes_dask
pip install openeo-processes-dask[implementations]

Micromamba (lightweight alternative to conda):

micromamba create -n openeo_processes_dask -c conda-forge python=3.12 gdal
micromamba activate openeo_processes_dask
pip install openeo-processes-dask[implementations]

Extra build variants

A subset of process implementations with heavy or unstable dependencies are hidden behind these extras:

  • ML processes:

    pip install openeo-processes-dask[ml]
    
  • Experimental processes:

    pip install openeo-processes-dask[experimental]
    

⚠️ Note on GDAL: Some extras (e.g. implementations, ml, experimental) may trigger installation of packages that depend on GDAL. To avoid version conflicts, make sure you have installed GDAL first (via conda/micromamba or system packages) and then install the extras as shown above.


Development environment

openeo-processes-dask requires poetry >1.2, see their docs for installation instructions.

Clone the repository with --recurse-submodules to also fetch the process specs:

git clone --recurse-submodules git@github.com:Open-EO/openeo-processes-dask.git

To setup the python venv and install this project into it run:

poetry install --all-extras

⚠️ Note on GDAL for development: When using poetry install --all-extras, Poetry will attempt to install GDAL via pip, which may pull the latest GDAL wheels and cause conflicts with system libraries. It is strongly recommended to create a conda/micromamba environment with GDAL preinstalled before running poetry install. For example:

conda create -n openeo_processes_dask_dev -c conda-forge python=3.12 gdal
conda activate openeo_processes_dask_dev
poetry install --all-extras

To add a new core dependency run:

poetry add some_new_dependency

To add a new development dependency run:

poetry add some_new_dependency --group dev

To run the test suite run:

poetry run python -m pytest

Note that you can also use the virtual environment that's generated by poetry as the kernel for the ipynb notebooks.

Pre-commit hooks

This repo makes use of pre-commit hooks to enforce linting & a few sanity checks. In a fresh development setup, install the hooks using poetry run pre-commit install. These will then automatically be checked against your changes before making the commit.

Specs

The json specs for the individual processes are tracked as a git submodule in openeo_processes_dask/specs/openeo-processes. The raw json for a specific process can be imported using from openeo_processes_dask.specs import reduce_dimension.

To bump these specs to a later version use: git -C openeo_processes_dask/specs/openeo-processes checkout <tag> git add openeo_processes_dask/specs/openeo-processes

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

openeo_processes_dask-2025.10.1.tar.gz (173.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

openeo_processes_dask-2025.10.1-py3-none-any.whl (301.6 kB view details)

Uploaded Python 3

File details

Details for the file openeo_processes_dask-2025.10.1.tar.gz.

File metadata

  • Download URL: openeo_processes_dask-2025.10.1.tar.gz
  • Upload date:
  • Size: 173.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.11.13 Linux/6.11.0-1018-azure

File hashes

Hashes for openeo_processes_dask-2025.10.1.tar.gz
Algorithm Hash digest
SHA256 ff57df18dfa8c3b1b42a6dc3c7c4a3537c6e978fb1981a1f5924f5e6b0dccc81
MD5 c2a15a2c0ce43ad6b7c1278c9db59f35
BLAKE2b-256 4a681a893dbb087fdb5b24f17bb987899ca82f17d5c8ed460fac2476ac63ca19

See more details on using hashes here.

File details

Details for the file openeo_processes_dask-2025.10.1-py3-none-any.whl.

File metadata

File hashes

Hashes for openeo_processes_dask-2025.10.1-py3-none-any.whl
Algorithm Hash digest
SHA256 fa3b83a6af20551167fcdd4d3d4a36d45d2c7b4f0f4774fd2c36749db9de0335
MD5 c4b7d5d9f84eb97481247a88d4a6ab30
BLAKE2b-256 d522984e3909f806d5e5b5a2f2f3edcfab83a19d5c7dce6d70537680529d7c11

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page