Skip to content

About

Earthkit-data plugin for accessing NWP MeteoSwiss Open Data.

Resources

Code of conduct

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

Documentation

Getting Started

earthkit-data-meteoswiss-opendata provides earthkit-data source plugins for accessing MeteoSwiss numerical weather prediction data through the MeteoSwiss Open Data STAC API.

Installation

Install the released package with pip:

$ pip install earthkit-data-meteoswiss-opendata

With Poetry:

$ poetry add earthkit-data-meteoswiss-opendata

Installing the package also installs earthkit-data and automatically registers the meteoswiss-opendata and meteoswiss-opendata-constants source plugins. No additional plugin configuration is required.

Using the Library

Load the latest deterministic ICON-CH2-EPS forecast +0h, +1h & +2h for total precipitation:

import datetime as dt

import earthkit.data as ekd

forecast = ekd.from_source(
    "meteoswiss-opendata",
    collection="ogd-forecasting-icon-ch2",
    variable="TOT_PREC",
    perturbed=False,
    ref_time="latest",
    lead_time=[
        dt.timedelta(hours=0),
        dt.timedelta(hours=1),
        dt.timedelta(hours=2),
    ],
)

dataset = forecast.to_xarray(time_dims=["forecast_reference_time", "step"], squeeze=False)
print(dataset)

For ref_time="latest", the plugin selects the newest forecast run that contains all requested lead times. An exact reference time can be provided as a timezone-aware datetime.datetime:

forecast = ekd.from_source(
    "meteoswiss-opendata",
    collection="ogd-forecasting-icon-ch2",
    variable="TOT_PREC",
    perturbed=False,
    ref_time=dt.datetime(
        2026,
        7,
        20,
        6,
        tzinfo=dt.timezone.utc,
    ),
    lead_time=dt.timedelta(hours=1),
)

ISO 8601 strings such as "2026-07-20T06:00:00Z" and "PT1H" are also accepted.

Parameters

collection
MeteoSwiss Open Data collection, for example ogd-forecasting-icon-ch2.
variable
Forecast variable name, for example TOT_PREC.
perturbed
False for deterministic data or True for perturbed data.
ref_time
"latest", a timezone-aware datetime.datetime, an ISO 8601 datetime string, or an ISO 8601 datetime interval.
lead_time
A datetime.timedelta, an ISO 8601 duration string, or a list of either. Examples include datetime.timedelta(hours=1), "PT1H", and ["PT0H", "PT1H", "PT2H"].

Model Constants

Load the horizontal or vertical constants associated with a model collection:

horizontal = ekd.from_source(
    "meteoswiss-opendata-constants",
    collection="ogd-forecasting-icon-ch2",
    asset="horizontal",
)

vertical = ekd.from_source(
    "meteoswiss-opendata-constants",
    collection="ogd-forecasting-icon-ch2",
    asset="vertical",
)

The asset parameter accepts "horizontal" or "vertical". The returned data can be handled with the standard earthkit methods e.g. to_xarray() or to_target(), for example:

horizontal.to_target(
    "file",
    "horizontal_constants_icon-ch2-eps.grib2",
)

Related Links

Collection Browser

The available collection assets can be inspected in the STAC Browser:

Development Setup with Poetry

Building the Project

$ cd earthkit-data-meteoswiss-opendata
$ poetry install

Run Tests

Run the offline unit tests:

$ poetry run pytest

Run the optional live integration test:

$ RUN_INTEGRATION=1 poetry run pytest -m integration

Run Quality Tools

$ poetry run pylint earthkit_data_meteoswiss_opendata
$ poetry run mypy earthkit_data_meteoswiss_opendata
$ poetry run ruff format --check
$ poetry run ruff check

Generate Documentation

$ poetry run sphinx-build doc doc/_build

Then open doc/_build/index.html.

Build Wheels

$ poetry build

Release the Project

The project follows the GitOps concept: releases are triggered whenever a Git tag is created.

The tag must follow Semantic Versioning and PEP 440. Otherwise, the release task will fail.

Follow these steps to create a release:

  • Update CHANGELOG.rst with the release information.
  • Update doc/_static/switcher_config.json with the new documentation URL.
  • Create a new release and matching tag in the GitHub project.

About

Earthkit-data plugin for accessing NWP MeteoSwiss Open Data.

Resources

Code of conduct

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages