Skip to content

Latest commit

 

History

History

floating-car-data

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

Open source map matching with Markov decision processes: A new method and a detailed benchmark with existing approaches

A. Wöltche, "Open source map matching with Markov decision processes: A new method and a detailed benchmark with existing approaches", Transactions in GIS, vol. 27, no. 7, pp. 1959–1991, Oct. 2023, doi: 10.1111/tgis.13107

Float Car Data (FCD) map matching dataset to download from:
https://doi.org/10.6084/m9.figshare.19785835

Place in this directory from the benchmarks.zip zip file
from the benchmarks/docker/initialize/data/ folder
the oberfranken-latest.osm.pbf OSM file, please see odbl-10.txt for licence information,
the points.csv csv file, and
the ground_truth.csv csv file.

Additionally, we provide the anonymized points_anonymized.csv raw FCD file with permission from Map and Route GmbH & Co. KG for further testing purposes.
The points.csv file from the data set above is a subset for that we provide hand-corrected results with the ground_truth.csv file. You need the same OpenStreetMap data as above from the region of Oberfranken, Bavaria, Germany.

In case you want to use a more recent version than the one from above, you can download the needed extract for remplacement at Geofabrik / Oberfranken.

The following commands need to be run from the base map_matching_2,
the path to the map_matching_2 executable can be adjusted as needed, e.g.,
for GCC: run/gcc/release/bin/map_matching_2,
for Clang: run/clang/release/bin/map_matching_2,
for MSVC: run\msvc\release\bin\map_matching_2.exe.

# prepare network
./map_matching_2 --conf data/floating-car-data/conf/prepare.conf

# match tracks
./map_matching_2 --conf data/floating-car-data/conf/match.conf

# compare matches with ground truth
./map_matching_2 --conf data/floating-car-data/conf/compare.conf

The provided raw FCD tracks can be matched with the following command:

# match raw tracks
./map_matching_2 --conf data/floating-car-data/conf/match_raw.conf

Also given is an example on how to use custom tags for OpenStreetMap, for example for foot ways.

# prepare network using all roads, i.e., for foot
./map_matching_2 --conf data/floating-car-data/conf/prepare_all.conf

The results will be in the results folder that is automatically created.

Results on our test system (accuracy is the weighted mean correct fraction in percent):

Mode Time (s) Max RAM (MiB) Accuracy (%)
Prepare 32.80 2,271 N/A
Prepare * 12.87 1,543 N/A
Match 0.66 422 N/A
Compare 0.59 38 99.58
Match (RAW) 5.56 1,620 N/A
Prepare (All) 37.38 2,602 N/A
Prepare (All) * 14.48 1,688 N/A

Max RAM contains shared memory (cached memory backed by disk, not actually used).
The prepare runs marked with * were run with --memory-mapped-preparation off. In this case, only the final data is written into memory mapped files and during the preparation, non-cached RAM (actually used by the process) is used.