Skip to main content

Production-ready climate diagnostics tools with advanced chunking optimization for analyzing and visualizing climate data

Project description

Climate Diagnostics Toolkit

Documentation Python Version License Version Status GitHub Actions Issues GitHub Stars

A comprehensive Python toolkit for analyzing, processing, and visualizing climate data from model output, reanalysis, and observations. Built on xarray, it provides specialized accessors for time series, trends, and spatial diagnostics, with sophisticated disk-aware chunking optimization and robust support for parallel processing and publication-quality figures.

๐ŸŒ Perfect for climate scientists, researchers, and data analysts working with atmospheric and oceanic datasets.

๐Ÿ“‹ Table of Contents

โœจ Key Features

  • ๐Ÿ”Œ Seamless xarray Integration: Access all features via .climate_plots, .climate_timeseries, and .climate_trends on xarray Datasets.
  • ๐Ÿš€ Sophisticated Chunking: Advanced disk-aware chunking strategies with automatic memory optimization and performance profiling.
  • ๐Ÿ“ˆ Temporal Analysis: Trend detection, STL decomposition, and variability analysis with optimized chunking.
  • ๐Ÿ—บ๏ธ Spatial Visualization: Publication-quality maps with Cartopy, custom projections, and area-weighted statistics.
  • ๐Ÿ“Š Statistical Diagnostics: Advanced methods for climate science, including ETCCDI indices.
  • ๐Ÿ”ฌ Multi-model Analysis: Compare and evaluate climate model outputs with intelligent chunking.
  • โšก Performance: Dask-powered parallel processing with dynamic chunk optimization for large datasets.

๐Ÿ“ฆ Installation

With pip

pip install climate_diagnostics

With conda (recommended for all dependencies)

conda env create -f environment.yml
conda activate climate-diagnostics
pip install -e .

๐Ÿš€ Quick Start

import xarray as xr
from climate_diagnostics import accessors

# Open a large dataset
ds = xr.open_dataset("/path/to/air.mon.mean.nc")

# Optimize chunking for your analysis
ds = ds.climate_timeseries.optimize_chunks_advanced(
    operation_type='timeseries',
    performance_priority='balanced'
)

# Plot a mean map
ds.climate_plots.plot_mean(variable="air", season="djf")

# Analyze trends with optimized chunking
ds.climate_trends.calculate_spatial_trends(
    variable="air",
    num_years=10,
    latitude=slice(40, 60),
    longitude=slice(60, 110),
    optimize_chunks=True
)

# Get chunking recommendations
ds.climate_timeseries.analyze_chunking_strategy()

๐Ÿ’ก Tip: Check out the Quick Start Guide for a complete walkthrough including advanced chunking strategies!

๐Ÿ”ง API Overview

Accessors

  • climate_plots: Geographic and statistical visualizations
  • climate_timeseries: Time series analysis and decomposition
  • climate_trends: Trend calculation and significance testing

Example: Time Series

ds.climate_timeseries.plot_time_series(
    latitude=slice(40, 60),
    longitude=slice(60, 110),
    level=850,
    variable="air",
    season="jjas"
)

Example: Climate Indices

ds.climate_plots.plot_consecutive_wet_days(
    variable="prate",
    threshold=1.0,
    latitude=slice(40, 60),
    longitude=slice(60, 110)
)

๐Ÿ“š Documentation

๐Ÿ“– Complete Documentation

Local Documentation Build

To build and view documentation locally:

cd docs
make html
# Open build/html/index.html in your browser

๐Ÿค Contributing & Support

๐Ÿš€ Development & Testing

git clone https://github.com/pranay-chakraborty/climate_diagnostics.git
cd climate_diagnostics
conda env create -f environment.yml
conda activate climate-diagnostics
pip install -e ".[dev]"
pytest

๐Ÿ“„ License

This project is licensed under the MIT LICENSE.

๐Ÿ“– Citation

If you use Climate Diagnostics Toolkit in your research, please cite:

Chakraborty, P. (2025) & Muhammed I. K., A. (2025). Climate Diagnostics Toolkit: Tools for analyzing and visualizing climate data using xarray accessors. Version 1.1. https://github.com/pranay-chakraborty/climate_diagnostics

For LaTeX users:

@software{chakraborty2025climate,
  author = {Chakraborty, Pranay and Muhammed I. K., Adil},
  title = {{Climate Diagnostics Toolkit: Tools for analyzing and visualizing climate data using xarray accessors}},
  year = {2025},
  version = {1.1},
  publisher = {GitHub},
  url = {https://github.com/pranay-chakraborty/climate_diagnostics},
  note = {[Computer software]}
}

๐Ÿ“š Documentation | ๐Ÿ› Issues | ๐Ÿ’ฌ Discussions

Made with โค๏ธ for the climate science community

WeCLiMb Logo

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

climate_diagnostics-1.1.1.tar.gz (1.3 MB view details)

Uploaded Source

Built Distribution

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

climate_diagnostics-1.1.1-py3-none-any.whl (55.1 kB view details)

Uploaded Python 3

File details

Details for the file climate_diagnostics-1.1.1.tar.gz.

File metadata

  • Download URL: climate_diagnostics-1.1.1.tar.gz
  • Upload date:
  • Size: 1.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.13

File hashes

Hashes for climate_diagnostics-1.1.1.tar.gz
Algorithm Hash digest
SHA256 4dfe104e2e621cd0293e5e05e6a2e131798b2004ff1adb7f18ed26f397164f4c
MD5 2bc46b442290a6bc58a601cacf7c854c
BLAKE2b-256 02bc5e8f835133b9a25d26f42923944710be7c91317d77d1e5ff51f9f90f5521

See more details on using hashes here.

File details

Details for the file climate_diagnostics-1.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for climate_diagnostics-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 64d161e98f547c31806b0ce731eb2bc93cbdc755e103396cbe14e4d3478286f6
MD5 9bf11f828b5d37d58318520bf7ccbe93
BLAKE2b-256 2ee030daf69f604748b5010405ec70568e79425af7225c2ea2424a6553dcb329

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