Code Monkey home page Code Monkey logo

jdlph / path4gmns Goto Github PK

View Code? Open in Web Editor NEW
54.0 3.0 24.0 8.9 MB

An open-source, cross-platform, lightweight, and fast Python path engine for networks encoded in GMNS.

Home Page: https://path4gmns.readthedocs.io/en/latest/

License: Apache License 2.0

Python 79.43% CMake 0.31% C++ 6.60% C 1.11% Jupyter Notebook 12.56%
path-engine dtalite shortest-paths traffic-assignment column-generation dynamic-traffic-assignment gradient-projection

path4gmns's Introduction

Path4GMNS

platform Downloads GitHub release Read the Docs

Path4GMNS is an open-source, cross-platform, lightweight, and fast Python path engine for networks encoded in GMNS. Besides finding static shortest paths for simple analyses, its main functionality is to provide an efficient and flexible framework for column-based (path-based) modeling and applications in transportation (e.g., activity-based demand modeling). Path4GMNS supports, in short,

  1. finding (static) shortest path between two nodes,
  2. performing path-based User-Equilibrium (UE) traffic assignment,
  3. conducting dynamic traffic assignment (DTA) after UE.
  4. evaluating multimodal accessibility and equity,
  5. synthesizing zones and Origin-Destination (OD) demand for a given network.

Path4GMNS also serves as an API to the C++-based DTALite to conduct various multimodal traffic assignments including,

  • Link-based UE,
  • Path-based UE,
  • UE + DTA,
  • OD Matrix Estimation (ODME).

Architecture

Quick Start

  1. Tutorial written in Jupyter notebook with step-by-step demonstration.
  2. Documentation on Installation, Use Cases, Public API, and more.
  3. TransOMS on the C++ equivalent.

We highly recommend that you go through the above Tutorial, no matter you are one of the existing users or new to Path4GMNS.

Installation

Path4GMNS has been published on PyPI, and can be installed using

$ pip install path4gmns

v0.9.8 fixes issues regarding accessibility output and run_DTALite(). Please update to or install the latest version and discard all old versions.

Warning

Any versions prior to v0.9.4 will generate INCORRECT simulation results.

Warning

Calling DTALite and synthesizing zones and OD demand are not functioning for v0.9.5 and v0.9.6.

Dependency

The Python modules are written in Python 3.x, which is the minimum requirement to explore the most of Path4GMNS. Some of its functions require further run-time support, which we will go through along with the corresponding Use Cases.

How to Cite

Li, P. and Zhou, X. (2023, December 17). Path4GMNS. Retrieved from https://github.com/jdlph/Path4GMNS

Please Contribute

Any contributions are welcomed including advise new applications of Path4GMNS, enhance documentation and docstrings in the source code, refactor and/or optimize the source code, report and/or resolve potential issues/bugs, suggest and/or add new functionalities, etc.

Path4GMNS has a very simple workflow setup, i.e., master for release (on both GitHub and PyPI) and dev for development. If you would like to work directly on the source code (and probably the documentation), please make sure that the destination branch of your pull request is dev, i.e., all potential changes/updates shall go to the dev branch before merging into master for release.

You are encouraged to join our Discord Channel for the latest update and more discussions.

References

Lu, C. C., Mahmassani, H. S., Zhou, X. (2009). Equivalent gap function-based reformulation and solution algorithm for the dynamic user equilibrium problem. Transportation Research Part B: Methodological, 43, 345-364.

Jayakrishnan, R., Tsai, W. K., Prashker, J. N., Rajadyaksha, S. (1994). A Faster Path-Based Algorithm for Traffic Assignment (Working Paper UCTC No. 191). The University of California Transportation Center.

Bertsekas, D., Gafni, E. (1983). Projected Newton methods and optimization of multicommodity flows. IEEE Transactions on Automatic Control, 28(12), 1090โ€“1096.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.