Pandana is a Python library for network analysis that uses contraction hierarchies to calculate super-fast travel accessibility metrics and shortest paths. The numerical code is in C++.
v0.5 adds vectorized calculation of shortest path lengths: network.shortest_path_lengths().
Pandana runs on Mac, Linux, and Windows with Python 2.7, 3.6, 3.7, and 3.8.
The easiest way to install Pandana is using the Anaconda package manager. Pandana's Anaconda distributions are pre-compiled and include multi-threading support on all platforms.
conda install pandana --channel conda-forge
See the documentation for information about other installation options.
Pandana was created by Fletcher Foti, with subsequent contributions from Matt Davis, Federico Fernandez, Sam Maurer, and others. Sam Maurer is currently the lead maintainer. Pandana relies on contraction hierarchy code from Dennis Luxen and his OSRM project.
A paper on Pandana was presented at the Transportation Research Board Annual Conference in 2012. Please cite this paper when referring to the methodology implemented by this library.