DHIS2 EO API allows data from multiple sources (primarily earth observation data) to be extracted, transformed and loaded into DHIS2 and the Chap Modelling Platform.
Install dependencies (requires uv):
uv sync
Environment variables are loaded automatically from .env (via python-dotenv).
Copy .env.example to .env and adjust values as needed.
Start the app:
uv run uvicorn main:app --reload
If you can't use uv (e.g. mixed conda/forge environments):
python -m venv .venv
source .venv/bin/activate
pip install -e .
uvicorn main:app --reload
conda create -n dhis2-eo-api python=3.13
conda activate dhis2-eo-api
pip install -e .
uvicorn main:app --reload
make sync— install dependencies with uvmake run— start the app with uv
To validate the configuration:
pygeoapi config validate -c pygeoapi-config.yml`
Run after changes are made in pygeoapi-config.yml:
make openapi or
PYTHONPATH="$(pwd)" uv run pygeoapi openapi generate ./pygeoapi-config.yml > pygeoapi-openapi.yml
Root endpoint:
http://127.0.0.1:8000/ -> Welcome to DHIS2 EO API
Docs:
OGC API
Examples:
COG info:
COG preview:
Tile:
CHIRPS COG test file:
https://data.chc.ucsb.edu/products/CHIRPS/v3.0/daily/final/rnl/2026/chirps-v3.0.rnl.2026.01.31.tif