Production-ready climate diagnostics tools with advanced chunking optimization for analyzing and visualizing climate data
Project description
Climate Diagnostics Toolkit
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
- ๐ฆ Installation
- ๐ Quick Start
- ๐ง API Overview
- ๐ Documentation
- ๐ค Contributing & Support
- ๐ Development & Testing
- ๐ License
- ๐ Citation
โจ Key Features
- ๐ Seamless xarray Integration: Access all features via
.climate_plots,.climate_timeseries, and.climate_trendson 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 visualizationsclimate_timeseries: Time series analysis and decompositionclimate_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
- Quick Start Guide - Get started in minutes
- API Reference - Complete function documentation
- User Guide - In-depth tutorials
- Examples - Real-world usage examples
Local Documentation Build
To build and view documentation locally:
cd docs
make html
# Open build/html/index.html in your browser
๐ค Contributing & Support
- ๐ Report Issues - Bug reports and feature requests
- ๐ฌ Discussions - Questions and community support
- ๐ Contributing Guide - How to contribute
๐ 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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4dfe104e2e621cd0293e5e05e6a2e131798b2004ff1adb7f18ed26f397164f4c
|
|
| MD5 |
2bc46b442290a6bc58a601cacf7c854c
|
|
| BLAKE2b-256 |
02bc5e8f835133b9a25d26f42923944710be7c91317d77d1e5ff51f9f90f5521
|
File details
Details for the file climate_diagnostics-1.1.1-py3-none-any.whl.
File metadata
- Download URL: climate_diagnostics-1.1.1-py3-none-any.whl
- Upload date:
- Size: 55.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
64d161e98f547c31806b0ce731eb2bc93cbdc755e103396cbe14e4d3478286f6
|
|
| MD5 |
9bf11f828b5d37d58318520bf7ccbe93
|
|
| BLAKE2b-256 |
2ee030daf69f604748b5010405ec70568e79425af7225c2ea2424a6553dcb329
|