physics-based-pedestrian-modeling

Python package to create physics-based pedestrian models from crowd measurements

https://github.com/c-pouw/physics-based-pedestrian-modeling

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 9 DOI reference(s) in README
  • Academic publication links
    Links to: researchgate.net, scholar.google, aps.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.3%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Python package to create physics-based pedestrian models from crowd measurements

Basic Info
Statistics
  • Stars: 3
  • Watchers: 2
  • Forks: 0
  • Open Issues: 0
  • Releases: 2
Created almost 2 years ago · Last pushed 8 months ago
Metadata Files
Readme Contributing License Citation Authors

README.md

Data-driven physics-based modeling of pedestrian dynamics

tests coverage PyPI - Python Version Licence Code style: black

Python package to create physics-based pedestrian models from pedestrian trajectory measurements. This package is an implementation of the data-driven generalized pedestrian model presented in:

Pouw, C. A. S., van der Vleuten, G., Corbetta, A., & Toschi, F. (2024). Data-driven physics-based modeling of pedestrian dynamics. Phys. Rev. E 110 (6 Dec. 2024), p. 064102. DOI: 10.1103/PhysRevE.110.064102.

Abstract. We introduce a data-driven physics-based generalized Langevin model that allows robust and generic modeling of pedestrian behavior across any environment where extensive pedestrian trajectory data is available. Our model effectively captures the complex interplay between the deterministic movements and stochastic fluctuations associated with walking.

PRE Zenodo dataset

Documentation

  • Documentation: https://c-pouw.github.io/physics-based-pedestrian-modeling.

Usage Notebook

This Goolge Colab notebook can be used to create pedestrians models without the need to install the package or download any data. The notebook can be used with all the environments discussed below, or can be easily adapted for any other data set.

  • Notebook: https://colab.research.google.com/github/c-pouw/physics-based-pedestrian-modeling/blob/master/usagenotebooks/physpedquick_start.ipynb

Installation

You can install the package from PyPI

bash pip install physics-based-pedestrian-modeling

Using the CLI

Run the main processing script for one of the available environments by overwriting the params variable with the configuration filename of the environment. The configuration filenames associated to every environment are specified below. These parameter configurations are handled by Hydra, see their documentation for more details Hydra.

bash physped_cli params=CONFIGURATION_FILE_NAME

Similarly, we can overwrite all the other parameter directly from the command line. For instance, if we want to process the narrow corridor trajectories with a different noice intensity, e.g. sigma=0.7, we can simply run

bash physped_cli params=narrow_corridor params.model.sigma=0.7

Creating the model for multiple parameter values can be achieved by adding -m and listing the variables. For example

bash physped_cli -m params=narrow_corridor params.model.sigma=0.5,0.7,0.9

Available environments

Every environment discussed in the paper that relies a on public data set can be modeled using the cli by overwriting the 'params' variable with one of the following configuration filenames:

Narrow corridor

The dynamics of a single pedestrian walking undisturbed through a narrow corridor is possibly one of the simplest conceivable dynamics; an almost one-dimensional movement solely confined by two parallel corridor walls.

To model this environment we use the public pedestrian trajectory dataset: Crowdflow – diluted pedestrian dynamics in the Metaforum building of Eindhoven University of Technology.

Configuration filename: narrow_corridor

Intersecting walking paths

Trajectories of intersecting walking paths. We synthesize these from the narrow corridor trajectory data set for which half of the trajectories are rotated by 90 degrees. Note that these trajectories were measured in the dilute limit, consequently there is no interaction between them.

Configuration filename: intersecting_paths

Train station platforms

Complex dynamics of pedestrians walking across real-life train platforms.

Eindhoven train station track 3-4.

Configuration filename: eindhoven_pf34.

To model this environment we use the public pedestrian trajectory dataset: Data-driven physics-based modeling of pedestrian dynamics - dataset: Pedestrian trajectories at Eindhoven train station

Amsterdam Zuid train station track 1-2.

Configuration filename: asdz_pf12.

To model this environment we use the public pedestrian trajectory dataset: Trajectory data Amsterdam Zuid (track 1-2) underlying the PhD-thesis: Mind your passenger! The passenger capacity of platforms at railway stations in the Netherlands

License

  • Free software: 3-clause BSD license

Contact

Owner

  • Login: c-pouw
  • Kind: user

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
  - family-names: Pouw
    given-names: Caspar Anton Simon
    orcid: https://orcid.org/0000-0002-3041-4533
  - family-names: van der Vleuten
    given-names: Geert
  - family-names: Corbetta
    given-names: Alessandro
    orcid: https://orcid.org/0000-0001-6979-3414
  - family-names: Toschi
    given-names: Federico
    orcid: https://orcid.org/0000-0001-5935-2332
title: "Data-driven physics-based modeling of pedestrian dynamics"
version: 0.3.2
date-released: 2024-08-23
identifiers:
  - doi
  - 10.5281/zenodo.13362270
license: BSD-3-Clause
repository-code: "https://github.com/c-pouw/physics-based-pedestrian-modeling"

GitHub Events

Total
  • Watch event: 4
  • Delete event: 3
  • Push event: 112
  • Pull request event: 1
  • Create event: 3
Last Year
  • Watch event: 4
  • Delete event: 3
  • Push event: 112
  • Pull request event: 1
  • Create event: 3

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 52 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 20
  • Total maintainers: 1
pypi.org: physics-based-pedestrian-modeling

Python package to create physics-based pedestrian models from crowd measurements

  • Versions: 20
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 52 Last month
Rankings
Dependent packages count: 10.8%
Average: 35.9%
Dependent repos count: 61.0%
Maintainers (1)
Last synced: 6 months ago

Dependencies

.github/workflows/docs.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
  • ad-m/github-push-action v0.8.0 composite
.github/workflows/docs_pages_workflow.yml actions
.github/workflows/integration-tests.yaml actions
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
  • actions/upload-artifact v4 composite
.github/workflows/pre-commit.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
  • pre-commit/action v3.0.0 composite
.github/workflows/publish-pypi.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/testing.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
poetry.lock pypi
  • 149 dependencies
pyproject.toml pypi
  • black ^24.3.0 develop
  • codecov ^2.1.13 develop
  • coverage ^7.4.4 develop
  • fastparquet ^2024.2.0 develop
  • flake8 ^7.0.0 develop
  • isort ^5.13.2 develop
  • nbstripout ^0.7.1 develop
  • numpydoc ^1.7.0 develop
  • polars ^0.20.19 develop
  • pre-commit ^3.7.0 develop
  • pre-commit-hooks ^4.6.0 develop
  • pytest ^8.1.1 develop
  • sphinx ^7.2.6 develop
  • sphinx-copybutton ^0.5.2 develop
  • sphinx-rtd-theme ^2.0.0 develop
  • twine ^5.0.0 develop
  • bokeh ^3.4.1
  • hydra-colorlog ^1.2.0
  • hydra-core ^1.3.2
  • ipython ^8.23.0
  • matplotlib ^3.8.4
  • numpy ^1.26.4
  • pandas ^2.2.2
  • poetry-plugin-export ^1.7.1
  • python ^3.10
  • scipy ^1.13.0
  • sdeint ^0.3.0
  • tables ^3.9.2
  • tqdm ^4.66.2
requirements-dev.txt pypi
  • alabaster ==0.7.16 development
  • antlr4-python3-runtime ==4.9.3 development
  • asttokens ==2.4.1 development
  • attrs ==23.2.0 development
  • babel ==2.15.0 development
  • black ==24.4.2 development
  • blosc2 ==2.6.2 development
  • bokeh ==3.4.1 development
  • build ==1.2.1 development
  • cachecontrol ==0.14.0 development
  • certifi ==2024.6.2 development
  • cffi ==1.16.0 development
  • cfgv ==3.4.0 development
  • charset-normalizer ==3.3.2 development
  • cleo ==2.1.0 development
  • click ==8.1.7 development
  • codecov ==2.1.13 development
  • colorama ==0.4.6 development
  • colorlog ==6.8.2 development
  • contourpy ==1.2.1 development
  • coverage ==7.5.3 development
  • cramjam ==2.8.3 development
  • crashtest ==0.4.1 development
  • cryptography ==42.0.8 development
  • cycler ==0.12.1 development
  • decorator ==5.1.1 development
  • distlib ==0.3.8 development
  • docutils ==0.20.1 development
  • dulwich ==0.21.7 development
  • exceptiongroup ==1.2.1 development
  • executing ==2.0.1 development
  • fastjsonschema ==2.19.1 development
  • fastparquet ==2024.5.0 development
  • filelock ==3.14.0 development
  • flake8 ==7.0.0 development
  • fonttools ==4.53.0 development
  • fsspec ==2024.6.0 development
  • hydra-colorlog ==1.2.0 development
  • hydra-core ==1.3.2 development
  • identify ==2.5.36 development
  • idna ==3.7 development
  • imagesize ==1.4.1 development
  • importlib-metadata ==7.1.0 development
  • iniconfig ==2.0.0 development
  • installer ==0.7.0 development
  • ipython ==8.25.0 development
  • isort ==5.13.2 development
  • jaraco-classes ==3.4.0 development
  • jedi ==0.19.1 development
  • jeepney ==0.8.0 development
  • jinja2 ==3.1.4 development
  • jsonschema ==4.22.0 development
  • jsonschema-specifications ==2023.12.1 development
  • jupyter-core ==5.7.2 development
  • keyring ==24.3.1 development
  • kiwisolver ==1.4.5 development
  • markdown-it-py ==3.0.0 development
  • markupsafe ==2.1.5 development
  • matplotlib ==3.9.0 development
  • matplotlib-inline ==0.1.7 development
  • mccabe ==0.7.0 development
  • mdurl ==0.1.2 development
  • more-itertools ==10.2.0 development
  • msgpack ==1.0.8 development
  • mypy-extensions ==1.0.0 development
  • nbformat ==5.10.4 development
  • nbstripout ==0.7.1 development
  • ndindex ==1.8 development
  • nh3 ==0.2.17 development
  • nodeenv ==1.9.1 development
  • numexpr ==2.10.0 development
  • numpy ==1.26.4 development
  • numpydoc ==1.7.0 development
  • omegaconf ==2.3.0 development
  • packaging ==24.1 development
  • pandas ==2.2.2 development
  • parso ==0.8.4 development
  • pathspec ==0.12.1 development
  • pexpect ==4.9.0 development
  • pillow ==10.3.0 development
  • pkginfo ==1.11.1 development
  • platformdirs ==4.2.2 development
  • pluggy ==1.5.0 development
  • poetry ==1.8.3 development
  • poetry-core ==1.9.0 development
  • poetry-plugin-export ==1.8.0 development
  • polars ==0.20.31 development
  • pre-commit ==3.7.1 development
  • pre-commit-hooks ==4.6.0 development
  • prompt-toolkit ==3.0.46 development
  • ptyprocess ==0.7.0 development
  • pure-eval ==0.2.2 development
  • py-cpuinfo ==9.0.0 development
  • pycodestyle ==2.11.1 development
  • pycparser ==2.22 development
  • pyflakes ==3.2.0 development
  • pygments ==2.18.0 development
  • pyparsing ==3.1.2 development
  • pyproject-hooks ==1.1.0 development
  • pytest ==8.2.2 development
  • python-dateutil ==2.9.0.post0 development
  • pytz ==2024.1 development
  • pywin32 ==306 development
  • pywin32-ctypes ==0.2.2 development
  • pyyaml ==6.0.1 development
  • rapidfuzz ==3.9.3 development
  • readme-renderer ==43.0 development
  • referencing ==0.35.1 development
  • requests ==2.32.3 development
  • requests-toolbelt ==1.0.0 development
  • rfc3986 ==2.0.0 development
  • rich ==13.7.1 development
  • rpds-py ==0.18.1 development
  • ruamel-yaml ==0.18.6 development
  • ruamel-yaml-clib ==0.2.8 development
  • scipy ==1.13.1 development
  • sdeint ==0.3.0 development
  • secretstorage ==3.3.3 development
  • shellingham ==1.5.4 development
  • six ==1.16.0 development
  • snowballstemmer ==2.2.0 development
  • sphinx ==7.3.7 development
  • sphinx-copybutton ==0.5.2 development
  • sphinx-rtd-theme ==2.0.0 development
  • sphinxcontrib-applehelp ==1.0.8 development
  • sphinxcontrib-devhelp ==1.0.6 development
  • sphinxcontrib-htmlhelp ==2.0.5 development
  • sphinxcontrib-jquery ==4.1 development
  • sphinxcontrib-jsmath ==1.0.1 development
  • sphinxcontrib-qthelp ==1.0.7 development
  • sphinxcontrib-serializinghtml ==1.1.10 development
  • stack-data ==0.6.3 development
  • tables ==3.9.2 development
  • tabulate ==0.9.0 development
  • tomli ==2.0.1 development
  • tomlkit ==0.12.5 development
  • tornado ==6.4.1 development
  • tqdm ==4.66.4 development
  • traitlets ==5.14.3 development
  • trove-classifiers ==2024.5.22 development
  • twine ==5.1.0 development
  • typing-extensions ==4.12.2 development
  • tzdata ==2024.1 development
  • urllib3 ==2.2.1 development
  • virtualenv ==20.26.2 development
  • wcwidth ==0.2.13 development
  • xattr ==1.1.0 development
  • xyzservices ==2024.6.0 development
  • zipp ==3.19.2 development
requirements.txt pypi
  • antlr4-python3-runtime ==4.9.3
  • asttokens ==2.4.1
  • blosc2 ==2.6.2
  • bokeh ==3.4.1
  • build ==1.2.1
  • cachecontrol ==0.14.0
  • certifi ==2024.6.2
  • cffi ==1.16.0
  • charset-normalizer ==3.3.2
  • cleo ==2.1.0
  • colorama ==0.4.6
  • colorlog ==6.8.2
  • contourpy ==1.2.1
  • crashtest ==0.4.1
  • cryptography ==42.0.8
  • cycler ==0.12.1
  • decorator ==5.1.1
  • distlib ==0.3.8
  • dulwich ==0.21.7
  • exceptiongroup ==1.2.1
  • executing ==2.0.1
  • fastjsonschema ==2.19.1
  • filelock ==3.14.0
  • fonttools ==4.53.0
  • hydra-colorlog ==1.2.0
  • hydra-core ==1.3.2
  • idna ==3.7
  • importlib-metadata ==7.1.0
  • installer ==0.7.0
  • ipython ==8.25.0
  • jaraco-classes ==3.4.0
  • jedi ==0.19.1
  • jeepney ==0.8.0
  • jinja2 ==3.1.4
  • keyring ==24.3.1
  • kiwisolver ==1.4.5
  • markupsafe ==2.1.5
  • matplotlib ==3.9.0
  • matplotlib-inline ==0.1.7
  • more-itertools ==10.2.0
  • msgpack ==1.0.8
  • ndindex ==1.8
  • numexpr ==2.10.0
  • numpy ==1.26.4
  • omegaconf ==2.3.0
  • packaging ==24.1
  • pandas ==2.2.2
  • parso ==0.8.4
  • pexpect ==4.9.0
  • pillow ==10.3.0
  • pkginfo ==1.11.1
  • platformdirs ==4.2.2
  • poetry ==1.8.3
  • poetry-core ==1.9.0
  • poetry-plugin-export ==1.8.0
  • prompt-toolkit ==3.0.46
  • ptyprocess ==0.7.0
  • pure-eval ==0.2.2
  • py-cpuinfo ==9.0.0
  • pycparser ==2.22
  • pygments ==2.18.0
  • pyparsing ==3.1.2
  • pyproject-hooks ==1.1.0
  • python-dateutil ==2.9.0.post0
  • pytz ==2024.1
  • pywin32-ctypes ==0.2.2
  • pyyaml ==6.0.1
  • rapidfuzz ==3.9.3
  • requests ==2.32.3
  • requests-toolbelt ==1.0.0
  • scipy ==1.13.1
  • sdeint ==0.3.0
  • secretstorage ==3.3.3
  • shellingham ==1.5.4
  • six ==1.16.0
  • stack-data ==0.6.3
  • tables ==3.9.2
  • tomli ==2.0.1
  • tomlkit ==0.12.5
  • tornado ==6.4.1
  • tqdm ==4.66.4
  • traitlets ==5.14.3
  • trove-classifiers ==2024.5.22
  • typing-extensions ==4.12.2
  • tzdata ==2024.1
  • urllib3 ==2.2.1
  • virtualenv ==20.26.2
  • wcwidth ==0.2.13
  • xattr ==1.1.0
  • xyzservices ==2024.6.0
  • zipp ==3.19.2