Pandana is a Python package that uses contraction hierarchies to perform rapid network calculations including shortest paths and accessibility buffers. The computations are parallelized for use on multi-core machines using an underlying C/C++ library. Pandana is tested on Mac, Linux, and Windows with Python 2.7, 3.6, and 3.7.
Documentation: http://udst.github.io/pandana
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.
The image below shows the distance to the second nearest restaurant from each street intersection in the city of San Francisco. Pandana can calculate this in about half a second of computation time.
None of this would be possible without the help of Dennis Luxen and his OSRM project. Thank you Dennis!
A complete description of the methodology was presented at the Transportation Research Board Annual Conference in 2012. Please cite this paper when referring to the methodology implemented by this library.