Welcome to the osmgraphing
-repo! :)
Goal of this repo is parsing openstreetmap-data to calculate traffic-routes and different related use-cases on it.
This repo deals with analyzing selfish routing and learning metrics for balancing load in street-networks.
All calculations should be done effectively on a single desktop instead of an expensive cluster.
cargo
is the build-tool of Rust and can be used to run everything except scripts in scripts/
.
cargo run
will give you help, e.g. it tells you to use cargo run --example
.
Running this command will print names of runnable examples.
Further, refer to the examples for more details, or to cargo-docs to get details about the repo's setup and implementation.
Downloaded osm-data is provided in xml (osm
) or binary (pbf
), where nodes are related to location in latitude and longitude.
Problems will be the size-limit when downloading from openstreetmap, but there are other osm data providers like geofabrik for instance.
For testing, some simple text-based format fmi
is used.
Since they are created manually for certain tasks, parsing them - generally speaking - is unstable.
Tools creating fmi
-files are pbfextractor and multi-ch-constructor (working with contraction-hierarchies).
In general, the requirements depend on the size of the parsed map and your machine.
Following numbers base on an 8-core-CPU and the pbf
-map Germany
running on archlinux
.
Germany
needs around 10 GB of RAM.Germany
(including parsing) needs under 4 minutes.
This highly depends on the number of cores.
A 4-core-CPU on a MacBook Pro from 2013 has taken 8 minutes.Germany
of length 670 km
takes around 6 seconds with bidirectional A*
.Small maps like Isle of Man
run on every machine and are parsed in less than a second.
The project started in the mid of 2019 as a student project. This page honors the workers and helpers of this project, sorted by their last names.
Florian B.
is the supervisor of the project since beginning and is always helping immediately with his experience and advice.
Dominic Parga Cacheiro
has been part of the project's first weeks when project-planning and learning Rust was on the scope.
He continues the work and is writing and improving the simulation.
Jena Satkunarajan
has been part of the project's first weeks when project-planning and learning Rust was on the scope.
He has implemented the first (and running) approach of the A*
-algorithm.