Skip to content

MeteoSwiss/PeakWeather

Repository files navigation

PeakWeather Logo

PeakWeather

MeteoSwiss Weather Station Measurements for Spatiotemporal Deep Learning.

Dataset on HF

PyPI PyPI - Python Version Documentation Status Total Downloads

📚 Documentation — 💻 Demo notebook — 🤗 Data — 📄 Paper


PeakWeather is a high-resolution, benchmark-ready dataset for spatiotemporal weather modeling. This repository provides the Python library to load and preprocess the dataset. For full documentation, visit peakweather.readthedocs.io.

Key Features

  • High-resolution observations — 10-minute interval data spanning 2017–2025 over 302 SwissMetNet stations across Switzerland
  • Multiple variables — Temperature, pressure, humidity, wind, radiation, precipitation and more
  • Topographic descriptors — Elevation, slope, aspect, and surface roughness to describe the Swiss complex terrain
  • NWP baselines — Ensemble forecasts from ICON-CH1-EPS, the state-of-the-art numerical prediction model operational at MeteoSwiss
  • Ideal for — Time series forecasting, missing data imputation, virtual sensing, graph structure learning, and more
Stations

The dataset is hosted on Hugging Face and introduced in the paper:

PeakWeather: MeteoSwiss Weather Station Measurements for Spatiotemporal Deep Learning
Daniele Zambon, Michele Cattaneo, Ivan Marisca, Jonas Bhend, Daniele Nerini, Cesare Alippi. Preprint 2025.

Quickstart

Install

Install PeakWeather from PyPI:

pip install peakweather

This installs the base package with support for station measurements. To also access the topographical descriptors and the NWP data, install the extra dependencies:

pip install peakweather[extended]

Alternatively, install directly from GitHub to stay up to date with the latest developments:

pip install git+https://github.com/MeteoSwiss/PeakWeather.git 
pip install "peakweather[extended] @ git+https://github.com/MeteoSwiss/PeakWeather"  # With extras

Load the dataset

On first use, data is automatically downloaded from Hugging Face:

from peakweather.dataset import PeakWeatherDataset

ds = PeakWeatherDataset(root=None)            # Download to the current directory
ds = PeakWeatherDataset(root="path/to/data")  # Or to the specified path

If data is already present at the given path, it is loaded directly.

Get observations

# Single station, all parameters
ds.get_observations(stations='KLO') 
# Multiple stations, specific parameters
ds.get_observations(stations=['KLO', 'GRO'], parameters=['pressure', 'temperature']) 
datetime ('KLO', 'pressure') ('KLO', 'temperature')
2017-01-01 00:00:00+00:00 977.8 -3.3
2017-01-01 00:10:00+00:00 977.7 -3.5
2017-01-01 00:20:00+00:00 977.6 -3.5
... ... ...

For detailed usage, see the full documentation, the provided example, and the demo notebook.

Citation

If you use PeakWeather in your research, please cite:

@misc{zambon2025peakweather,
  title={PeakWeather: MeteoSwiss Weather Station Measurements for Spatiotemporal Deep Learning}, 
  author={Zambon, Daniele and Cattaneo, Michele and Marisca, Ivan and Bhend, Jonas and Nerini, Daniele and Alippi, Cesare},
  year={2025},
  eprint={2506.13652},
  archivePrefix={arXiv},
  primaryClass={cs.LG},
  url={https://arxiv.org/abs/2506.13652}, 
}

Authors

About

A high-resolution, benchmark-ready dataset for spatiotemporal weather modeling

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages