https://github.com/stunkymonkey/prp
Personalizable Route Planning (master-thesis code)
https://github.com/stunkymonkey/prp
Last synced: about 1 year ago
JSON representation
Personalizable Route Planning (master-thesis code)
- Host: GitHub
- URL: https://github.com/stunkymonkey/prp
- Owner: Stunkymonkey
- License: gpl-3.0
- Created: 2021-02-23T13:54:07.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2025-04-22T21:17:09.000Z (about 1 year ago)
- Last Synced: 2025-04-22T22:28:04.215Z (about 1 year ago)
- Language: Rust
- Homepage:
- Size: 1.77 MB
- Stars: 5
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Personalizable Route Planning (PRP)
[master-thesis(pdf)](https://elib.uni-stuttgart.de/handle/11682/11805)
based on [related work](https://ad-publications.cs.uni-freiburg.de/GIS_personal_FS_2015.pdf) using [OSM](openstreetmap.org/) data. download `osm.pbf` files from [geofabrik](https://download.geofabrik.de/)

## Compile
```bash
git submodule update --init --recursive
cargo build --release
cargo test --release
```
## Extract OSM-data
```shell
cargo run --bin pbfextractor --release -- [path/to/pbf-file] [folder/with/srtm/files] [path/to/output/fmi-file(output)]
```
extracting largest connected set of node: (needed for Merge- & Gonzalez-partitioning)
```shell
cargo run --bin fmi_largest_set --release -- -i [path/to/fmi-file] -o [path/to/fmi-file(output)]
```
## [MLP (multi-level-partitioning)](https://en.wikipedia.org/wiki/Graph_partition#Multi-level_methods)
two methods possible:
- Merge
```shell
cargo run --bin mlp_merge --release -- -f [path/to/fmi-file] -o [path/to/mlp-file(output)] [-p/-s defining save points when merging e.g. -s 500 5000]
```
- Gonzalez
```shell
cargo run --bin mlp_gonzalez --release -- -f [path/to/fmi-file] -o [path/to/mlp-file(output)] -p [partitions from top to bottom e.g. 50 100]
```
- K-Means
```shell
cargo run --bin mlp_kmeans --release -- -f [path/to/fmi-file] -o [path/to/mlp-file(output)] -p [partitions from top to bottom e.g. 50 100]
```
## Pre-computation
```shell
cargo run --bin prp_pre --release -- -f [path/to/fmi-file] -m [path/to/mlp-file] -o [path/to/bin-file(output)]
```
this may take some time
## Run
- web-server via:
```shell
cargo run --bin prp_web --release -- -f [path/to/bin-file] -q prp
```
- evaluation-tool via: (evaluation file can be generated with `analysis/generate-eval-file.py`)
```shell
cargo run --bin prp_eval --release -- -f [path/to/bin-file] -e [path/to/eval_file] -t check -q prp
```