ANEMOI
An open-source, Python-based framework developed collaboratively by ECMWF and several European national meteorological services. It is designed to facilitate the development, training, and deployment of machine learning (ML) models for weather forecasting. As an 'end to end' framework, it provides a comprehensive toolkit that spans data preparation, model training, and inference, enabling meteorological organizations to leverage their own data for ML-based weather prediction.
https://github.com/ecmwf/anemoi
Category: Atmosphere
Sub Category: Atmospheric Composition and Dynamics
Keywords
anemoi
Last synced: about 9 hours ago
JSON representation
Repository metadata
- Host: GitHub
- URL: https://github.com/ecmwf/anemoi
- Owner: ecmwf
- License: apache-2.0
- Created: 2024-03-11T08:25:56.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-12-18T16:32:45.000Z (24 days ago)
- Last Synced: 2025-12-23T04:57:29.084Z (19 days ago)
- Topics: anemoi
- Language: Python
- Homepage: https://anemoi.readthedocs.io
- Size: 913 KB
- Stars: 25
- Watchers: 18
- Forks: 7
- Open Issues: 16
- Releases: 0
-
Metadata Files:
- Readme: README.md
- Contributing: docs/contributing/code_style.rst
- License: LICENSE
- Codeowners: .github/CODEOWNERS
README.md
Anemoi Framework
[!IMPORTANT]
This software is Incubating and subject to ECMWF's guidelines on Software Maturity.
Overview | Features | Installation | Contributing | Roadmap | Community | License | Other resources & References
Anemoi is an open-source, Python-based framework developed collaboratively by ECMWF and several European national meteorological services. It is designed to facilitate the development, training, and deployment of machine learning (ML) models for weather forecasting. As an 'end to end' framework, it provides a comprehensive toolkit that spans data preparation, model training, and inference, enabling meteorological organizations to leverage their own data for ML-based weather prediction.

Overview
The anemoi repository aims, for now, to provide a centralized overview of the entire framework.
Additionally, it contains the Anemoi Documentation and system-level tests that assess the interfaces and ensure all components work well with each other.
Anemoi offers a modular architecture composed of several packages, each targeting different components necessary for constructing data-driven weather models:
- anemoi-datasets: Tools for handling and preprocessing meteorological datasets.
- anemoi-graphs: Utilities for constructing graph representations of meteorological data.
- anemoi-models: Core components for defining and training ML models, including graph neural networks (GNNs) and graph transformers.
- anemoi-training: Framework for training ML models, including support for distributed training.
- anemoi-inference: Tools for deploying trained models and performing inference.
- anemoi-transform: Utilities for data transformation and augmentation.
- anemoi-utils: Miscellaneous utility functions.
- anemoi-registry: Centralized registry for storing and accessing model configurations and metadata.
Each package collects metadata that can be used by subsequent packages, facilitating a seamless workflow from data ingestion to operational model deployment.
The diagram below shows the relationship of these packages in terms of dependencies.

The diagram below represents the main packages in the Anemoi framework and the general workflow for using them:

Summary of workflow:
- Start by building a dataset with
anemoi-datasets. - Train a model using
anemoi-core(central yellow boxes inside a black rectangle): This repository groups three distinct but related packages to support model development:anemoi-models: Contains definitions for different machine learning models.anemoi-training: Provides the training framework and utilities for fitting models on prepared datasets.anemoi-graphs: Supports graph-based representations for modeling meteorological data.
These three packages are separated to make development easier, but they all live under the anemoi-core GitHub repository.
- Perform predictions with
anemoi-inference. - Any domain-specific transformations and code that can be shared across datasets, training, and inference is handled by
anemoi-transform - Helper functions and domain-agnostic general purpose utilities are included in
anemoi-utils.
This structure separates concerns clearly, promotes reusability, and makes development modular while keeping core components organized under anemoi-core.
Each package collects metadata that can be used by subsequent packages, facilitating a seamless workflow from data ingestion to operational model deployment.
Features
- Modular Design: Easily extendable components for various stages of the ML pipeline.
- Customizable Configurations: Flexible configuration system using Hydra for model and training parameters.
- Distributed Training Support: Leverage PyTorch Lightning for scalable and efficient training.
- Interoperability: Built on top of established Python tools including PyTorch, Lightning, Hydra, Zarr, Xarray, and Earthkit.
- Open-Source Collaboration: Developed in collaboration with multiple European meteorological services.
Installation
To install the Anemoi framework, clone the repository and install the required dependencies (e.g. for anemoi-transform) :
$ git clone https://github.com/ecmwf/anemoi-transform.git
$ cd anemoi-transform
$ pip install -e
Or one can also install each of the packages directly from PyPI
$ pip install anemoi-transform
For detailed installation instructions and environment setup, refer to the Installation Guide.
Contributing
We welcome contributions to the Anemoi framework! If you’d like to get involved, please follow the Contributing Guide, which outlines the full development workflow — from setting up your environment, to branching and committing, to opening pull requests and going through review. We encourage opening issues as way to discuss any ideas or new features as a first-step!
If you’re new to Anemoi, we recommend starting with the Getting Started Tour for a quick overview of the framework before diving into development.
Roadmap
The development of the Anemoi framework follows a structured roadmap to ensure continuous improvement and feature development.
For a detailed view of planned milestones, priorities, and upcoming features, see the Development Roadmap.
Community
The Anemoi framework fosters an open and collaborative community. Governance is guided by clear principles to ensure transparency and inclusiveness, described in the Governance Documentation.
Community members are encouraged to participate in regular interactions such as the Anemoi Community Meetings, where updates, discussions take place.
License
Anemoi is licensed under the Apache License 2.0.
See the LICENSE file for more details.
For more information, visit the Anemoi Documentation.
Other resources & References
Additional resources for using and understanding Anemoi:
- Documentation for each package within the framework: Anemoi Packages Docs
- Anemoi webinars: Anemoi Webinars
anemoi-configspackage for example configurations: Anemoi Configs- Citation information: How to Cite Anemoi
Owner metadata
- Name: European Centre for Medium-Range Weather Forecasts
- Login: ecmwf
- Email: Software.Support@ecmwf.int
- Kind: organization
- Description: Providing software to work with meteorological data and services
- Website: www.ecmwf.int
- Location: Shinfield Park, Reading, United Kingdom
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/6368067?v=4
- Repositories: 44
- Last ynced at: 2023-03-02T03:00:24.789Z
- Profile URL: https://github.com/ecmwf
GitHub Events
Total
- Issues event: 5
- Watch event: 5
- Delete event: 9
- Issue comment event: 5
- Push event: 17
- Pull request review comment event: 3
- Pull request event: 21
- Pull request review event: 13
- Create event: 7
Last Year
- Issues event: 5
- Watch event: 5
- Delete event: 9
- Issue comment event: 5
- Push event: 17
- Pull request review comment event: 3
- Pull request event: 21
- Pull request review event: 13
- Create event: 7
Committers metadata
Last synced: 3 days ago
Total Commits: 98
Total Committers: 15
Avg Commits per committer: 6.533
Development Distribution Score (DDS): 0.561
Commits in past year: 45
Committers in past year: 13
Avg Commits per committer in past year: 3.462
Development Distribution Score (DDS) in past year: 0.8
| Name | Commits | |
|---|---|---|
| Baudouin Raoult | b****t@e****t | 43 |
| pre-commit-ci[bot] | 6****] | 16 |
| Vera | 1****a | 8 |
| Ana Prieto Nemesio | 9****m | 7 |
| DeployDuck | 1****k | 6 |
| Gert Mertes | h****y@g****e | 4 |
| Matthew Chantry | m****y@e****t | 3 |
| Aaron Hopkinson | a****n@e****t | 3 |
| Florian Pinault | F****t@e****t | 2 |
| chebertpinard | C****d@e****a | 1 |
| Marek Jacob | M****X | 1 |
| Leo | 9****o | 1 |
| Julien Lefaucheur | j****k | 1 |
| Jesper Dramsch | j****r@d****t | 1 |
| Daniele Nerini | d****i@g****m | 1 |
Committer domains:
- ecmwf.int: 4
- dramsch.net: 1
- ec.gc.ca: 1
- gertmertes.be: 1
Issue and Pull Request metadata
Last synced: 3 days ago
Total issues: 1
Total pull requests: 7
Average time to close issues: N/A
Average time to close pull requests: about 1 hour
Total issue authors: 1
Total pull request authors: 3
Average comments per issue: 1.0
Average comments per pull request: 0.0
Merged pull request: 2
Bot issues: 0
Bot pull requests: 2
Past year issues: 1
Past year pull requests: 7
Past year average time to close issues: N/A
Past year average time to close pull requests: about 1 hour
Past year issue authors: 1
Past year pull request authors: 3
Past year average comments per issue: 1.0
Past year average comments per pull request: 0.0
Past year merged pull request: 2
Past year bot issues: 0
Past year bot pull requests: 2
Top Issue Authors
- cerodell (1)
Top Pull Request Authors
- DeployDuck (3)
- VeraChristina (2)
- pre-commit-ci[bot] (2)
Top Issue Labels
- bug (1)
Top Pull Request Labels
- sync (3)
- CI/CD (1)
- ATS Approval Not Needed (1)
Dependencies
- actions/checkout v4 composite
- actions/setup-python v5 composite
- pre-commit/action v3.0.1 composite
- ecmwf-actions/reusable-workflows/ci-hpc-generic v2 composite
- actions/github-script v7 composite
- actions/labeler v5 composite
- readthedocs/actions/preview v1 composite
- ./.github/actions/deploy * composite
- actions/checkout v4 composite
- ecmwf/reusable-workflows/ci-hpc-generic v2 composite
- ecmwf/reusable-workflows/hpc/ecflow/remove-suite v2 composite
- ecmwf/reusable-workflows/hpc/ecflow/wait-for-ecflow-suite-to-complete v2 composite
- amannn/action-semantic-pull-request v5 composite
- python-dotenv *
- requests *
- actions/checkout v3 composite
- mauroalderete/action-assign-labels v1 composite
- nbsphinx *
- pandoc *
- pre-commit *
- requests *
- sphinx *
- sphinx-argparse <0.5
- sphinx-rtd-theme *
Score: 6.421622267806518