/pandana

Pandas Network Analysis - dataframes of network queries, quickly

Primary LanguageC++GNU Affero General Public License v3.0AGPL-3.0

Pandana

Build Status Coverage Status

A nice slideshow showing example code is available here.

In this case, a picture is worth a thousand words. The image below shows the distance to the 2nd nearest restaurant (rendered by matplotlib) for the city of San Francisco. With only a few lines of code, you can grab a network from OpenStreetMap, take the restaurants that users of OpenStreetMap have recorded, and in about half a second of compute time you can get back a Pandas Series of node_ids and computed values of various measures of access to destinations on the street network.

Distance to Restaurants

Distance to Restaurants

Beyond simple access to destination queries, this library also implements more general aggregations along the street network (or any network). For a given region, this produces hundreds of thousands of overlapping buffer queries (still performed in less than a second) that can be used to characterize the local neighborhood around each street intersection. The result can then be mapped, or assigned to parcel and building records, or used in statistical models as we commonly do with UrbanSim. This is in stark contrast to the arbitrary non-overlapping geographies ubiquitous in GIS. Although there are advantages to the GIS approach, we think network queries are a more accurate representation of how people interact with their environment.

We look forward to creative uses of a general library like this - please let us know when you think you have a great use case with the hashtag #synthicity.

Docs

Documentation for Pandana is now available.

Thorough API documentation for Pandana is also available.

Acknowledgments

None of this would be possible without the help of Dennis Luxen (now at MapBox) and his OSRM (https://github.com/DennisOSRM/Project-OSRM). Thank you Dennis!

Nearest neighbor queries are performed with the fastest k-d tree around, i.e. ANN (http://www.cs.umd.edu/~mount/ANN/).

Academic Literature

I'm currently working on getting a complete description of the methodology published in an academic journal. Please cite this paper when referring to the methodology implemented by this library.