Climate Diagnostics ToolkitΒΆ

A Python toolkit for analyzing and visualizing climate data from model output, reanalysis, and observations. Built on xarray, it provides specialized accessors for time series analysis, trend calculation, and spatial plotting with sophisticated disk-aware chunking optimization.
π Key FeaturesΒΆ
- β¨ xarray Integration
Access features via
.climate_plots
,.climate_timeseries
, and.climate_trends
accessors on xarray Datasets.- β‘ Sophisticated Chunking
Advanced disk-aware chunking strategies with automatic memory optimization and performance profiling.
- π Time Series Analysis
Extract and analyze time series with spatial averaging, seasonal filtering, and STL decomposition.
- πΊοΈ Spatial Visualization
Create climate maps with Cartopy integration and automatic coordinate detection.
- π¬ Climate Indices
Calculate ETCCDI precipitation indices like Rx1day, Rx5day, wet/dry spell durations.
- π Dask Support
Process large datasets efficiently with built-in Dask integration and dynamic chunk optimization.
π Quick StartΒΆ
import xarray as xr
import climate_diagnostics
# Open a large climate dataset
ds = xr.open_dataset("temperature_data.nc")
# Optimize chunking for time series analysis
ds = ds.climate_timeseries.optimize_chunks_advanced(
operation_type='timeseries',
performance_priority='balanced'
)
# Create basic visualizations
ds.climate_plots.plot_mean(variable="air")
# Analyze time series with optimized performance
ts = ds.climate_timeseries.plot_time_series(
variable="air",
latitude=slice(30, 60)
)
# Calculate trends with spatial chunking optimization
trend = ds.climate_trends.calculate_spatial_trends(
variable="air",
optimize_chunks=True
)
# Get chunking recommendations
ds.climate_timeseries.analyze_chunking_strategy()
π Documentation ContentsΒΆ
Getting Started
User Guide
Examples
API Reference
API Reference
Development
π§ InstallationΒΆ
With pip:
pip install climate_diagnostics
With conda (recommended):
conda env create -f environment.yml
conda activate climate-diagnostics
pip install -e .
π Core ModulesΒΆ
Geographic visualizations with Cartopy integration.
Temporal analysis including decomposition and trend detection.
Statistical trend calculation with visualization.
Helper functions for data processing and coordinates.
π‘ Quick ExamplesΒΆ
Create a Mean Temperature Map:
# Load your data
ds = xr.open_dataset("temperature_data.nc")
# Plot mean with basic styling
fig = ds.climate_plots.plot_mean(
variable="air",
title="Mean Temperature"
)
Analyze Temperature Trends:
# Calculate spatial trends
trends = ds.climate_trends.calculate_spatial_trends(
variable="air",
num_years=30
)
Time Series Analysis:
# Extract regional time series
regional_ts = ds.climate_timeseries.plot_time_series(
variable="air",
latitude=slice(30, 60)
)
# Perform decomposition
decomp = ds.climate_timeseries.decompose_time_series(
variable="air"
)
π€ ContributingΒΆ
We welcome contributions! Please see our Contributing Guide for details on:
Setting up a development environment
Code style guidelines
Testing procedures
Submitting pull requests
π§ Support & CommunityΒΆ
Documentation: Youβre reading it! π
Issues: GitHub Issues
Discussions: GitHub Discussions
π CitationΒΆ
If you use this toolkit in your research, please cite:
@software{climate_diagnostics_2025,
title = {Climate Diagnostics Toolkit},
author = {Chakraborty, Pranay and Muhammed, Adil I. K.},
year = {2025},
version = {1.1},
url = {https://github.com/pranay-chakraborty/climate_diagnostics}
}