Skip to main content

The Pandas Routing Machine

Project description

pandarm

Continuous Integration codecov PyPI version Conda Version DOI

A pandas-centric interface to highly performant travel network analysis leveraging contraction hierarchies provided by code from the Open Source Routing Machine (OSRM). Hence, the pandas routing machine, pandarm. This package is a friendly fork of the pandana library, originally written by Fletcher Foti and UrbanSim Inc. Despite fantastic work by the original authors, maintaining open-source software is a great deal of work and the pandana library is no longer compatible with the current pydata stack (specifically as of numpy version 2.0). This fork reinstates compatibility and brings along a few new modern touches and enhancements. Pull requests are very welcome.

Features

Main features of the package include

  • multi-threaded calculation of shortest path routes and distances
  • network aggregations (i.e. accessibility metrics)
  • network-based isochrones

See more in the example notebook

Aggregations

Access to Restaurants in D.C.

Shortest Path

Shortest Path from UCI School of Social Ecology to Rancho San Joaquin M.S.

Isochrones

Destinations Within 2km of UCI Langson Library

Installation

Install from either PyPI or Conda Forge (though the latter is recommended).

  • pip install pandarm
  • conda install pandarm --channel conda-forge

Development

To install a development version of the package (with proper multithreading) you need an OpenMP compatible C++ compiler. The best way to do this is by installing everything from conda-forge using

conda env create
conda activate pandarm
pip install -e .

This will install all necessary package dependencies, including the platform-appropriate compiler, then build the C++ extension and install the package in editable mode

Why this fork?

Apart from bringing compatibility with numpy>=2 and the rest of the pydata stack, I have a few feature goals to merge into the codebase that make things easier to do, given today's toolset. When the original pandana was written 10 years ago, geopandas was fairly immature, and osmnx was not yet written; both of these make life much easier.

  • download OSM networks from osmnx instead of OSMNet (the former is more performant and easier to work with)
  • store network geometries using geopandas
    • allow geopandas-based plotting
    • allow reprojecting node x/y coordinates (particularly important for snapping destinations to the network)
  • move isochrone polygons from geosnap

Acknowledgments

The original pandana package from which this fork was derived was created by Fletcher Foti, with subsequent contributions from Matt Davis, Federico Fernandez, Sam Maurer, and others. The package relies on contraction hierarchy code from Dennis Luxen and his OSRM project.

Academic literature

A paper on Pandana was presented at the Transportation Research Board Annual Conference in 2012. Please cite this paper when referring to the methods implemented by this library:

If you would like to cite this package, you can do so using the Zenodo DOI. If you do so, we ask that you also please cite the original paper/implementation listed above.

Related packages

Note the original pandana is still available but can only be used with older versions of numpy. Alternatively, Fletcher has recently released a pure Python library, pandana2, which calculates network-based aggregations, albeit at a bit of a performance cost, though it (currently at least) lacks routing and shortest-path functionality.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pandarm-0.0.5.tar.gz (13.5 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pandarm-0.0.5-cp314-cp314-win_amd64.whl (192.1 kB view details)

Uploaded CPython 3.14Windows x86-64

pandarm-0.0.5-cp314-cp314-win32.whl (180.2 kB view details)

Uploaded CPython 3.14Windows x86

pandarm-0.0.5-cp314-cp314-musllinux_1_2_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

pandarm-0.0.5-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

pandarm-0.0.5-cp314-cp314-macosx_11_0_arm64.whl (580.3 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

pandarm-0.0.5-cp313-cp313-win_amd64.whl (188.6 kB view details)

Uploaded CPython 3.13Windows x86-64

pandarm-0.0.5-cp313-cp313-win32.whl (177.3 kB view details)

Uploaded CPython 3.13Windows x86

pandarm-0.0.5-cp313-cp313-musllinux_1_2_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

pandarm-0.0.5-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

pandarm-0.0.5-cp313-cp313-macosx_11_0_arm64.whl (580.0 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pandarm-0.0.5-cp312-cp312-win_amd64.whl (188.5 kB view details)

Uploaded CPython 3.12Windows x86-64

pandarm-0.0.5-cp312-cp312-win32.whl (177.4 kB view details)

Uploaded CPython 3.12Windows x86

pandarm-0.0.5-cp312-cp312-musllinux_1_2_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

pandarm-0.0.5-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

pandarm-0.0.5-cp312-cp312-macosx_11_0_arm64.whl (579.5 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pandarm-0.0.5-cp311-cp311-win_amd64.whl (189.1 kB view details)

Uploaded CPython 3.11Windows x86-64

pandarm-0.0.5-cp311-cp311-win32.whl (177.2 kB view details)

Uploaded CPython 3.11Windows x86

pandarm-0.0.5-cp311-cp311-musllinux_1_2_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

pandarm-0.0.5-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

pandarm-0.0.5-cp311-cp311-macosx_11_0_arm64.whl (578.3 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

File details

Details for the file pandarm-0.0.5.tar.gz.

File metadata

  • Download URL: pandarm-0.0.5.tar.gz
  • Upload date:
  • Size: 13.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for pandarm-0.0.5.tar.gz
Algorithm Hash digest
SHA256 8aa54a49e2f46be1be342942b13c5731678da38388beae37d10e100fb30c4fbe
MD5 1c4f7e699f4249d00f066e5af488b83b
BLAKE2b-256 1153ebae3c1b05312c183459b3736c74df70f29239369f5e24ec1ae67d16f0fa

See more details on using hashes here.

File details

Details for the file pandarm-0.0.5-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: pandarm-0.0.5-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 192.1 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for pandarm-0.0.5-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 e34200d0314f31cf29ccb3caf2b4c40e3a592cd66985bf043b32dbab8a9fa5a9
MD5 1a4ea640ba0fda13bb12face6ad4462c
BLAKE2b-256 6a4f86214ba080f088c4fd38badfd6d642087ab25e9c00a91bb155b25917a4af

See more details on using hashes here.

File details

Details for the file pandarm-0.0.5-cp314-cp314-win32.whl.

File metadata

  • Download URL: pandarm-0.0.5-cp314-cp314-win32.whl
  • Upload date:
  • Size: 180.2 kB
  • Tags: CPython 3.14, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for pandarm-0.0.5-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 15b82d6e140a1e1d63b686913b369731cd76ef772d603e3d7a1a974b69451dba
MD5 2459b621943037bdc4d09b4e0b373f55
BLAKE2b-256 3a6bef5770b330c67d2aed60e1f68af73c12956a169362079353d8cab09d1c28

See more details on using hashes here.

File details

Details for the file pandarm-0.0.5-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pandarm-0.0.5-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9d86bc2cabd8c34dc6b33fb1a004d4d5ec35830462dbb46b12d3f134aa738071
MD5 5413be547f8394da4f7502ece9d39941
BLAKE2b-256 5bc35c4ca71fded377330284813274ddcbef55d6b13fe4b43075302d89f9f4c2

See more details on using hashes here.

File details

Details for the file pandarm-0.0.5-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pandarm-0.0.5-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 68eed04445b317484676c6a63d0f55b14a656c7bcce5694c0568e61d00518e03
MD5 7bcd1adf22763fb3550e154bf7958159
BLAKE2b-256 4475a53ebfd118514db05f86d3502857038e08e5102f0150bb731e4c7938fadc

See more details on using hashes here.

File details

Details for the file pandarm-0.0.5-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pandarm-0.0.5-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6f9ecf573a658a8de118fad4faca7c472f77c1a032269969d33f30eb2a56013d
MD5 dfe9ace5bf9206d55b2ca6a4d0f6a38e
BLAKE2b-256 6aee96a5fc9d25c7997ccbea91ae55b78b4e70375bdbeedfb56efe9ced5e0aeb

See more details on using hashes here.

File details

Details for the file pandarm-0.0.5-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: pandarm-0.0.5-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 188.6 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for pandarm-0.0.5-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 e711543a65e27aec4d59a77725e85dfd0464d8d8551b8c9c21674185ebcf4b69
MD5 400ad7451997ab1127330cb5e802182d
BLAKE2b-256 fee6aee08b6ba933adcdb6d53be331fd55446044d77a6ae7036790e6b3c63132

See more details on using hashes here.

File details

Details for the file pandarm-0.0.5-cp313-cp313-win32.whl.

File metadata

  • Download URL: pandarm-0.0.5-cp313-cp313-win32.whl
  • Upload date:
  • Size: 177.3 kB
  • Tags: CPython 3.13, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for pandarm-0.0.5-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 ab559438c0cfe2b7123362139a7488d4c9297cb20b797b054a4b5a344bbcf5eb
MD5 619ac7b298fe68f098ba177648591ca0
BLAKE2b-256 ff88872ff8ce27a494611dfdb3d512ddd2bf5fb18aa14d01bcbcb4fc1f56cbd0

See more details on using hashes here.

File details

Details for the file pandarm-0.0.5-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pandarm-0.0.5-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 35e5653b63c319ece7e38ded76128388506b41f1d43163dff95bbad018fd2e6b
MD5 c6a61f756233eb5377226b84848525e2
BLAKE2b-256 91f2c9be10cfcbf793bb1f70b8e0f8a0004b082237851f1a5882e590b2c752f2

See more details on using hashes here.

File details

Details for the file pandarm-0.0.5-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pandarm-0.0.5-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d901ea5cb2de5b885120e9aaeb998c7a94b6f7c6de445b46c441bcd32832bbb9
MD5 4442f8f0a3c4e7fdef46cfbeeb1d81a1
BLAKE2b-256 abcef03fb47f2e7775394f441f6e62c7f0bb1bb833cf8291fc6d2865bc924541

See more details on using hashes here.

File details

Details for the file pandarm-0.0.5-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pandarm-0.0.5-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 51055ee747693f7f960e1fe4c097e48aa028636ece97bfff623a543b9cc81128
MD5 3542300d569cbf7927ce4d4c89eeea1a
BLAKE2b-256 9290f2bb132738cd1899be2fe1a1e651153761b4d93e3af2b90ae54e6be11b25

See more details on using hashes here.

File details

Details for the file pandarm-0.0.5-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: pandarm-0.0.5-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 188.5 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for pandarm-0.0.5-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 45c8eab007107226a62e7ff6125d4f571119c3003054cb93b50f1711d8440554
MD5 c8385a36a6e03211fff304c35269ed25
BLAKE2b-256 51995d3fb59d85cbb4c5682f64fd194a85cd1afbf69e73e7830963b8b2082f8d

See more details on using hashes here.

File details

Details for the file pandarm-0.0.5-cp312-cp312-win32.whl.

File metadata

  • Download URL: pandarm-0.0.5-cp312-cp312-win32.whl
  • Upload date:
  • Size: 177.4 kB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for pandarm-0.0.5-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 4c6e5d47929bcca2c9de674791af8f47ec955d9378328098c5a14f6e1b9d0bbf
MD5 22a4321690642c33b7828da9b7bb2814
BLAKE2b-256 856d224044a2c77792a4a113b6a5829b6aa64d8533ebcad66d1b449daadd62f6

See more details on using hashes here.

File details

Details for the file pandarm-0.0.5-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pandarm-0.0.5-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4403052c708d6c0661d75aa76c1f99b1fa3a73ee930d19c38740aea372aa2db9
MD5 c50835d267859c326e2a774c5c9f85a2
BLAKE2b-256 8e5069f687d15b1fd2a2e88fef47b80882fd38e4fa0ee91e2fdb47c8fbfc40bc

See more details on using hashes here.

File details

Details for the file pandarm-0.0.5-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pandarm-0.0.5-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0f067dec12c8f0651c8d4815e206d114d0e178cce7506c7610ec9693fad711c9
MD5 04698d721a12083c88c47a6baa1446be
BLAKE2b-256 f762c9d2d313aeb8c3b91d0a8d48387574a02ea853537c1b2c04776a34a280cb

See more details on using hashes here.

File details

Details for the file pandarm-0.0.5-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pandarm-0.0.5-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 18fdc68ef8a1d92dc4bd7f025a8fd71c6915703a23acbdf1551f78f990c095a9
MD5 2d5976bffa3ab40cd3d62f2379903326
BLAKE2b-256 3790f2d746532aa90989c06588f52b2c6c8a17f26fb6ca5900f6707af008c7ff

See more details on using hashes here.

File details

Details for the file pandarm-0.0.5-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: pandarm-0.0.5-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 189.1 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for pandarm-0.0.5-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 d185f59aaac3699693378b6ffd430829bf4ef07ae7ce59c4c1e9803e9d7f3527
MD5 537bdb32d70fdd44cdb9c7048181e9df
BLAKE2b-256 25d4097c5da9e65fef8aacd17db8f52d86e3f07e229d2badae3d1cb4d4cf78d5

See more details on using hashes here.

File details

Details for the file pandarm-0.0.5-cp311-cp311-win32.whl.

File metadata

  • Download URL: pandarm-0.0.5-cp311-cp311-win32.whl
  • Upload date:
  • Size: 177.2 kB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for pandarm-0.0.5-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 744d089958a53287d3013d12f8377eed1ef91299a4e8083cb71a7ae99242614c
MD5 ddbba589e8e34f442ca02908b20d5d24
BLAKE2b-256 4b8c982119bc5abf80b576b82304e25af042df44057e7bbcd5f1de7ed9161c4f

See more details on using hashes here.

File details

Details for the file pandarm-0.0.5-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pandarm-0.0.5-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 df018a77d1910ea265f2fb8fe0759a47cfaead2c18e16d9a38ef6184d59ecb5c
MD5 92d8de89ebfdbcba8f537701f6996142
BLAKE2b-256 c9dff51f5b0c2ded6a3afbea43e5f32b417f471771d8cef010e0598f67afe8b0

See more details on using hashes here.

File details

Details for the file pandarm-0.0.5-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pandarm-0.0.5-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 906c2eedc078727d7459975c9992677e33b735322cca013857f47d783090bff9
MD5 51f03e67011187020eb2d3fdaf795aa1
BLAKE2b-256 325fb6cafb0353bd27f81be3efda432bd8c4a400f6be88d5f0a03e7012fd40b8

See more details on using hashes here.

File details

Details for the file pandarm-0.0.5-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pandarm-0.0.5-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3088071cf0ae7e9c4f53312351f4903b80893057a2d6a33e8e1125220ed4981c
MD5 875496aad817eda280c670baf29a2923
BLAKE2b-256 af6d3d5937d6607050e1a21559aba4a5879b3ca03780119b1098d7a96f262d45

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page