Skip to main content

A reproducible benchmarking framework for Indian monsoon onset prediction

Project description

MonsoonBench

A unified, reproducible benchmarking framework for Indian monsoon onset prediction.

MonsoonBench provides a standardized workflow for loading rainfall and forecast datasets, computing monsoon onset, and evaluating forecasting skill across space and time.
It is designed for climate researchers, forecasters, and data scientists aiming to compare deterministic, probabilistic, and climatology-based onset models using consistent methods.

The framework follows WeatherBench-style principles: clean APIs, reproducible configuration, modular components, and shareable outputs.


Documentation Overview

MonsoonBench includes detailed module-specific guides. Use the links below to navigate the documentation.

Core Package Overview & Pipeline

High-level explanation of the evaluation pipeline, CLI interface, onset metrics, and NetCDF outputs.
Path: monsoonbench/README.md
Open Metrics & Pipeline README


Data Loading Guide

How to load IMD rainfall, deterministic/probabilistic forecasts, and threshold datasets using the unified API.
Path: monsoonbench/data/dataloader_quickstart.md
Open DataLoader QuickStart


Visualization & Metric Export Tools

How to generate spatial scorecards and export skill metrics in NetCDF, CSV, Parquet, or JSON formats.
Path: monsoonbench/visualization/README.md
Open Visualization README


Examples (Configs, Scripts, Notebooks)

Example YAML configs, runnable scripts, and tutorial notebooks demonstrating end-to-end usage.
Path: examples/README.md
Open Examples README


Installation

MonsoonBench is available on PyPI:

pip install monsoonbench

Verify installation:

monsoonbench --help

Python API Example

from monsoonbench.metrics import DeterministicOnsetMetrics
from monsoonbench.visualization import create_model_comparison_table

# Initialize metrics calculator
metrics = DeterministicOnsetMetrics()

# Compute metrics for multiple years
df, onset_data = metrics.compute_metrics_multiple_years(
    years=[2019, 2020, 2021, 2022],
    model_forecast_dir="data/model_forecast_data/fuxi/...",
    imd_folder="data/imd_rainfall_data/4p0",
    thres_file="data/imd_onset_threshold/mwset4x4.nc4",
    tolerance_days=3,
    verification_window=1,
    forecast_days=15,
)

# Create spatial metrics
spatial = metrics.create_spatial_far_mr_mae(df, onset_data)

# Generate comparison table
comparison = create_model_comparison_table({"FuXi": spatial})
print(comparison)

Repository Structure

monsoon-bench/
│
├── monsoonbench/ # Core package
│ ├── data/ # Dataloaders
│ │ └── dataloader_quickstart.md
│ ├── metrics/ # Onset detection + evaluation pipeline
│ ├── utils/ # Notebook-facing reusable helpers (e.g., onset_timeseries)
│ │ └── README.md
│ ├── visualization/ # Scorecards + metric downloaders
│ │ └── README.md
│ ├── README.md # Module-level pipeline documentation
│ └── ...
│
├── examples/ # Configs, scripts, tutorial notebooks
│ └── README.md
│
├── tests/ # Unit tests
├── Dockerfile
├── Makefile
└── pyproject.toml

Development Process with branches

Each team member created their own branch to implement specific fixes or features, such as the data loader, data downloader, and visualizations. We regularly merged these branches during TA meetings to ensure that the codebase stayed consistent and that everyone remained aligned on progress and design decisions.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

monsoonbench-0.1.3.tar.gz (17.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

monsoonbench-0.1.3-py3-none-any.whl (111.7 kB view details)

Uploaded Python 3

File details

Details for the file monsoonbench-0.1.3.tar.gz.

File metadata

  • Download URL: monsoonbench-0.1.3.tar.gz
  • Upload date:
  • Size: 17.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for monsoonbench-0.1.3.tar.gz
Algorithm Hash digest
SHA256 e189993f0d11522bd204a504beff66b628cda04138ea48c898c499109aa1c80e
MD5 d34a892c25b074fd7b1df27b5d928f2d
BLAKE2b-256 554bcfa20b51c200b6f2521691cfe7fe0083d9878dccfb4272db7b3d019fb637

See more details on using hashes here.

File details

Details for the file monsoonbench-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: monsoonbench-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 111.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for monsoonbench-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 e6acde2b7967e12fc403b547996ef7d2d5ca95412b81d6797881a5b5da235337
MD5 3645c830bc880ac17a127408e6981dcc
BLAKE2b-256 1b18d188b48fa77d095590aa06b5e3350e4188071eacb759e99a8103f3aad187

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page