Calculation of the Conventional and Self-Calibrating Palmer Drought Severity Index

Calculating the monthly conventional and self-calibrating Palmer Drought Severity Index (PDSI and scPDSI) using the precipitation and potential evapotranspiration data. The function to calculate PDSI is based on the C++ source codes developed by Nathan Wells, Steve Goddard and Michael J. Hayes, University of Nebraska-Lincoln. Reference: Palmer W. (1965). Meteorological drought. U.s.department of Commerce Weather Bureau Research Paper, <>; Wells N., Goddard S., Hayes M. J. (2004). A Self-Calibrating Palmer Drought Severity Index. Journal of Climate, 17(12):2335-2351, .

Travis-CI Build Status CRAN RStudio mirror downloads CRAN version

This R package is used to calculate the conventional Palmer Drought Severity Index (PDSI) and the Self-Calibrating Palmer Drought Severity Index (scPDSI), the widely used drought indicators around the world, at monthly scale. Precipitation and potential evapotranspiration (PE) data are required to calculate the PDSI and scPDSI.

This package is build up on the C++ codes of the scPDSI provided by Nathan Wells, Steve Goddard and Michael J. Hayes in the University of Nebraska-Lincoln.


Get it from the CRAN repository:


Or install from GitHub (usually the development version):

install_github('Sibada', 'scPDSI')

Please cite these references if you use the scPDSI on your work:


This is an example showing how to calculate the scPDSI:

## P and PE are the vectors of monthly precipitation and PE data.
sc_pdsi <- pdsi(P, PE, start = 1960, sc = TRUE)
plot(sc_pdsi$X) # Plot the calculated PDSI values

Copyright and license

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.


scPDSI 0.1.2

  • Fix the compiling error in solaris platform.

scPDSI 0.1.1

  • Added a function plot.pdsi to plot the calculated PDSI time series, can be called directly using plot().

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.


0.1.3 by Ruida Zhong, 2 months ago

Report a bug at

Browse source code at

Authors: Ruida Zhong [aut, cre] , Xiaohong Chen [aut, ctb] , Zhaoli Wang [aut, ctb] , Chengguang Lai [aut, ctb] , Steve Goddard [ctb] , Nathan Wells [ctb] , Mike Hayes [ctb]

Documentation:   PDF Manual  

GPL-3 license

Imports stats, Rcpp

Linking to Rcpp

See at CRAN