The MLCast Community is a collaborative effort bringing together meteorological services, research institutions, and academia across Europe to develop a unified Python package for AI-based nowcasting. This is an initiative of the E-AI WG6 (Nowcasting) of EUMETNET.
This repo contains the mlcast package for machine learning-based weather nowcasting.
# Install from pypi
pip install mlcastor
# Install from source
git clone https://github.com/mlcast-community/mlcast
cd mlcast
uv pip install -e .
# For development
uv pip install -e ".[dev]"mlcast/
├── src/mlcast/ # Main package source code
│ ├── __init__.py # Package initialization and version
│ ├── data/ # Data loading and preprocessing
│ │ ├── zarr_datamodule.py # PyTorch Lightning data module for Zarr
│ │ └── zarr_dataset.py # PyTorch dataset for Zarr arrays
│ ├── models/ # Lightning model implementations
│ │ └── base.py # Abstract base classes for nowcasting models
│ └── modules/ # Pure PyTorch neural network modules
│ └── convgru_modules.py # ConvGRU encoder-decoder modules
├── examples/ # Example scripts and notebooks
│ └── scripts/
│ └── simple_train.py # Basic training example
├── pyproject.toml # Project metadata and dependencies
├── LICENSE # Apache 2.0 license
└── README.md # This file
This project uses uv for dependency management. To set up the development environment:
# Install uv if not already installed
curl -LsSf https://astral.sh/uv/install.sh | sh
# Install dependencies
uv sync
# Run pre-commit hooks
uv run pre-commit installPlease feel free to raise issues or PRs if you have any suggestions or questions.
This project is dual-licensed under either:
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- BSD 3-Clause License (LICENSE-BSD or https://opensource.org/licenses/BSD-3-Clause)
at your option.
See LICENSE for more details.