Skip to content
Climate indices for drought monitoring, community reference implementations in Python
Python Jupyter Notebook
Branch: master
Clone or download

Latest commit

Latest commit 6ec7725 Feb 11, 2020


Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci updated CircleCI configuration as suggested by CircleCI support Feb 11, 2020
.github updated CircleCI configuration as suggested by CircleCI support Feb 11, 2020
docs added a Python versions badge Feb 11, 2020
notebooks version with various fixes now working for compute of SPI/Gamma Dec 5, 2019
src/climate_indices updated version to 1.0.9 Feb 11, 2020
tests new utility function to get the 366-day length from a number of Grego… Dec 7, 2019
.coveragerc pytest-related settings for Travis CI Dec 10, 2018
.gitattributes initial attempt to use git-lfs for NetCDF files Dec 14, 2018
.gitignore migrated code from into, removed … Dec 17, 2018
.pypirc files for building package for PyPI Sep 7, 2018 fixed unused variable issue, other code style issues highlighted by r… Dec 21, 2018
DISCLAIMER #95 README now points to readthedocs for docs, new disclaimer file Apr 3, 2018
LICENSE changed to BSD 3-Clause license Jan 16, 2018 fixed the Python versions badge to point to the correct PyPI project Feb 11, 2020
_config.yml Set theme jekyll-theme-minimal Jul 25, 2017 Rename code_of_conduct to Feb 2, 2018
pyproject.toml updated the pyproject.toml to include a new section for tox and remov… Jan 29, 2020
requirements.txt additional information on using SPI script; renamed SPI script to spi… Dec 12, 2019 updated version to 1.0.9 Feb 11, 2020
tox.ini updated CircleCI configuration as suggested by CircleCI support Feb 11, 2020

Actions Status Coverage Status Codacy Status License PyPI - Python Version

Climate Indices in Python

This project contains Python implementations of various climate index algorithms which provide a geographical and temporal picture of the severity of precipitation and temperature anomalies useful for climate monitoring and research.

The following indices are provided:

  • SPI, Standardized Precipitation Index, utilizing both gamma and Pearson Type III distributions
  • SPEI, Standardized Precipitation Evapotranspiration Index, utilizing both gamma and Pearson Type III distributions
  • PET, Potential Evapotranspiration, utilizing either Thornthwaite or Hargreaves equations
  • PDSI, Palmer Drought Severity Index
  • scPDSI, Self-calibrated Palmer Drought Severity Index
  • PHDI, Palmer Hydrological Drought Index
  • Z-Index, Palmer moisture anomaly index (Z-index)
  • PMDI, Palmer Modified Drought Index
  • PNP, Percentage of Normal Precipitation

This Python implementation of the above climate index algorithms is being developed with the following goals in mind:

  • to provide an open source software package to compute a suite of climate indices commonly used for climate monitoring, with well documented code that is faithful to the relevant literature and which produces scientifically verifiable results
  • to provide a central, open location for participation and collaboration for researchers, developers, and users of climate indices
  • to facilitate standardization and consensus on best-of-breed climate index algorithms and corresponding compliant implementations in Python
  • to provide transparency into the operational code used for climate monitoring activities at NCEI/NOAA, and consequent reproducibility of published datasets computed from this package
  • to incorporate modern software engineering principles and programming best practices

This is a developmental/forked version of code that is originally developed and maintained by NIDIS/NCEI/NOAA. The official release version is available at


You can cite climate_indices in your projects and research papers via the BibTeX entry below.

@misc {climate_indices,
    author = "James Adams",
    title  = "climate_indices, an open source Python library providing reference implementations of commonly used climate indices",
    url    = "",
    month  = "may",
    year   = "2017--"
You can’t perform that action at this time.