PyGeoprocessing: Geospatial Operations in Python

PyGeoprocessing is a library for performing two-dimensional spatial data operations using Python. The library makes use of GDAL and the SciPy stack.


  • Programmable raster algebra routine (vectorize_datasets)
  • Routines for simplified raster creation and statistics
  • Integration with vector based geometry in many of the routines
  • A simplified hydrological routing library including:
    • d-infinity flow direction
    • support for plateau drainage
    • weighted and unweighted flow accumulation
    • weighted and unweighted flow distance


PyGeoprocessing was developed at the Natural Capital Project to create a programmable, open source, and free GIS processing library to support the ecosystem service software InVEST.

PyGeoprocessing’s design prioritizes computation and memory efficient runtimes, easy installation, cross compatibility with other open source and proprietary software licenses, and a simplified set of orthogonal GIS processing routines that interact with GIS data via filename.

Indices and Tables