Skip to content

Open Climate Service

An open-source platform that integrates data from many different sources to produce tailored climate services — to help make informed decisions, manage risks, and adapt to climate change.

Status: under active development. APIs and data models may change without notice.

📖 Documentation: https://dhis2.github.io/open-climate-service/

Each instance is configured for a specific country or region: it scopes all data extraction, processing, and storage to that spatial extent, draws from sources such as CHIRPS, ERA5, and WorldPop, stores outputs as GeoZarr, and exposes them through open standards (STAC, Zarr over HTTP, openEO). It runs independently of DHIS2 and can be deployed on local, cloud-hosted, or sovereign country infrastructure.

Install

pip install open-climate-service            # client only — talk to an instance over HTTP
pip install open-climate-service[xarray]    # + open published datasets as xarray

The client and [xarray] extras install with pip on any platform.

Running a server? Don't pip install the [server] extra — it depends on packages with upstream version pins (e.g. geojson-pydantic, zarr) that need dependency overrides to resolve, which uv applies but pip cannot. Run an instance with uv or Docker instead — see Run a server, the quick start (try it locally), and the instance guide (operational deployments), which give you a ready-to-use pyproject.toml with the required overrides.

Quick start (client)

from open_climate_service import ClimateService

service = ClimateService("https://my-instance.example.org")
datasets = service.datasets()                  # discover published collections
ds = service.open_dataset(datasets[0]["id"])   # open as xarray (needs the [xarray] extra)

Run a server

To try it locally, see the quick start; for an operational deployment, see the instance guide. In short:

uv sync --extra server
uv run uvicorn open_climate_service.main:app --reload

Documentation

Development

make sync   # install all dependencies (client + server + xarray)
make run    # start the dev server with hot reload
make lint   # ruff + mypy + pyright
make test   # pytest

License

BSD-3-Clause.

About

Open Climate Service allows data from multiple sources (primarily earth observation data) to be extracted, transformed and loaded into DHIS2 and the Chap Modelling Platform.

Resources

Code of conduct

Contributing

Security policy

Stars

14 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages