DHIS2 Earth Observation Toolkit
Project description
dhis2eo
Dhis2eo is a small, focused Python library for DHIS2 users who want to integrate earth observation and climate data into their workflows. It provides lightweight helpers and tools bridging the Python geoscience and DHIS2 ecosystems.
What is dhis2eo?
The purpose of dhis2eo is to help DHIS2 users incorporate earth observation and climate data into their workflows without adding unnecessary complexity. It focuses on the intersection of DHIS2 and geoscience rather than trying to be a full earth observation library.
Key points about dhis2eo:
-
Integration with earth observation tools: Dhis2eo is a thin utility layer that connects DHIS2 workflows with climate data sources and geospatial libraries like xarray and earthkit. It provides helpers for common climate and earth observation tasks while avoiding the overhead of a full-featured earth observation or geospatial library.
-
Generic functionality across local and national contexts: Dhis2eo is designed to provide generic solutions for DHIS2 users worldwide, while also allowing users to extract and work with data relevant to specific country contexts.
-
Data translation for DHIS2: Dhis2eo supports translating between DHIS2 and earth observation domains, including conversion of data formats and values. It is not meant for general interaction with DHIS2; for that, use the separately maintained dhis2-python-client.
Design philosophy
More generally, dhis2eo as a library is meant to be:
- Easy to read
- Easy to run
- Easy to maintain
- Easy to integrate into other projects
This leads to a few guiding principles:
-
Fewer things over more things: Every new function, dependency, or tool has a long-term cost.
-
Core libraries over wrappers: If something can be done directly with xarray, earthkit, or standard Python, we usually prefer that over adding a dhis2eo wrapper.
-
Keep it simple: Code should be short, easy to read, debug, and explain to someone new to the project.
-
Lightweight Python tooling: The project is designed to be easy for developers to install, test, and run, with minimal extra dependencies and broad support across operating systems and Python versions.
These principles help keep the project approachable and durable over time.
Installation
Install the latest released version from PyPI:
pip install dhis2eo
To test unreleased changes directly from GitHub:
pip install git+https://github.com/dhis2/dhis2eo
For contributors (to get linting and testing tools):
pip install -e ".[dev]"
Running tests
Tests are written with pytest and can be run directly:
pytest -v
To avoid unnecessary computation and server load, tests for the data integrations are marked with @pytest.mark.integration and are skipped by default. To run them manually:
pytest -v -m integration
Code formatting
Code style and linting are handled by ruff and can be run directly:
ruff check .
ruff format .
Contributing
Contributions are welcome, whether they are bug fixes, improvements, or new features.
When contributing, please try to align with the design philosophy above. In particular, we aim to keep:
- The public API small
- Dependencies minimal
- Tooling simple and standard
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dhis2eo-1.2.1.tar.gz.
File metadata
- Download URL: dhis2eo-1.2.1.tar.gz
- Upload date:
- Size: 22.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dfc8687f033ae36758bdbc9f78ac648c50e1badf483356d35ebbee6d00f800e3
|
|
| MD5 |
412fee7ddecf6abeadfcafeca89e7141
|
|
| BLAKE2b-256 |
e53d0a2945f5459bbda30e2d014a2c02417415374953e119f7a19d58c2bdf004
|
Provenance
The following attestation bundles were made for dhis2eo-1.2.1.tar.gz:
Publisher:
publish.yml on dhis2/dhis2eo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dhis2eo-1.2.1.tar.gz -
Subject digest:
dfc8687f033ae36758bdbc9f78ac648c50e1badf483356d35ebbee6d00f800e3 - Sigstore transparency entry: 1461203988
- Sigstore integration time:
-
Permalink:
dhis2/dhis2eo@5ad9e7bc0b2ebfbcd680d693419d80a55cf96c11 -
Branch / Tag:
refs/tags/v1.2.1 - Owner: https://github.com/dhis2
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@5ad9e7bc0b2ebfbcd680d693419d80a55cf96c11 -
Trigger Event:
push
-
Statement type:
File details
Details for the file dhis2eo-1.2.1-py3-none-any.whl.
File metadata
- Download URL: dhis2eo-1.2.1-py3-none-any.whl
- Upload date:
- Size: 29.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
25fc25a8225ef7b9384a5eba6df491857562b317312cb931b8af924878fa0c52
|
|
| MD5 |
5b5e087bbe6c571b32b4752c25d55dac
|
|
| BLAKE2b-256 |
6df3c07d21f796b809ae72858d537c68fe6be7f9f97d363ba0f76adb604b8795
|
Provenance
The following attestation bundles were made for dhis2eo-1.2.1-py3-none-any.whl:
Publisher:
publish.yml on dhis2/dhis2eo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dhis2eo-1.2.1-py3-none-any.whl -
Subject digest:
25fc25a8225ef7b9384a5eba6df491857562b317312cb931b8af924878fa0c52 - Sigstore transparency entry: 1461204672
- Sigstore integration time:
-
Permalink:
dhis2/dhis2eo@5ad9e7bc0b2ebfbcd680d693419d80a55cf96c11 -
Branch / Tag:
refs/tags/v1.2.1 - Owner: https://github.com/dhis2
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@5ad9e7bc0b2ebfbcd680d693419d80a55cf96c11 -
Trigger Event:
push
-
Statement type: