climate_indices  by monocongo

Climate index computation library for monitoring and research

Created 9 years ago
388 stars

Top 73.6% on SourcePulse

GitHubView on GitHub
Project Summary

Summary: This Python library provides implementations of key climate indices—SPI, SPEI, PET, PNP, and PCI—essential for drought monitoring and climate research. It aims to deliver scientifically verifiable, reproducible results, fostering standardization and collaboration among researchers and developers. This project is a developmental fork of code originally from NIDIS/NCEI/NOAA.

How It Works: The library implements algorithms for Standardized Precipitation Index (SPI) and Standardized Precipitation Evapotranspiration Index (SPEI) using gamma and Pearson Type III distributions, Potential Evapotranspiration (PET) via Thornthwaite or Hargreaves equations, Percentage of Normal Precipitation (PNP), and Precipitation Concentration Index (PCI). It prioritizes faithfulness to literature, scientific rigor, and modern software engineering practices. Recent updates (v2.2.0) enhance robustness with exception-based error handling and precise floating-point comparisons.

Quick Start & Requirements:

  • Installation: Assumed via pip.
  • Prerequisites: Python 3.10 or higher (3.10-3.13 supported). Requires scipy>=1.15.3.
  • Resource Footprint: Not specified.
  • Documentation/Demo: Repository: https://github.com/monocongo/climate_indices.

Highlighted Details:

  • Comprehensive suite of climate indices: SPI, SPEI, PET, PNP, PCI.
  • Flexible computation options for SPI/SPEI (gamma, Pearson Type III) and PET (Thornthwaite, Hargreaves).
  • API Stability: NumPy-based functions are stable with semantic versioning; xarray integration is in Beta but yields identical computation results.
  • Version 2.2.0 introduced architectural improvements for error handling and numerical stability.

Maintenance & Community: Originally developed by NIDIS/NCEI/NOAA, this project is now maintained by monocongo. Author: James Adams. No specific community channels (e.g., Discord, Slack) or roadmap links are provided in the README. A BibTeX citation is available for academic use.

Licensing & Compatibility: The license type is not specified in the provided README content. Compatibility is confirmed for Python 3.10 through 3.13 on Linux and macOS.

Limitations & Caveats: The xarray API is designated as Beta. Python 3.9 support was dropped due to dependency requirements. The absence of a specified license presents a significant adoption blocker, particularly for commercial or closed-source integration.

Health Check
Last Commit

3 days ago

Responsiveness

Inactive

Pull Requests (30d)
23
Issues (30d)
8
Star History
2 stars in the last 30 days

Explore Similar Projects

Feedback? Help us improve.