Skip to content
Patrick Niklaus edited this page Dec 21, 2015 · 29 revisions

Traffic updates

Biggest feature in OSRM 4.9.0 is experimental support of traffic data. This is achieved by providing osrm-prepare with an additional file that specifies edge weight updates. For convinience it is a csv file with from_osm_id;to_osm_id;edge_weight

./osrm-extract data.osm.pbf -p profile.lua --generate-edge-lookup
./osrm-prepare data.osrm -p profile.lua --speed-segment-file updates.csv
# modify updates.csv
./osrm-prepare data.osrm -p profile.lua --speed-segment-file updates.csv
# Repeat in loop for desired update time

Since this is too slow for big datasets to get meaningful updates cycles you can do a partial contraction using the --core-factor paramter. This increases query times dramatically and make the alternative search slow.

./osrm-extract data.osm.pbf -p profile.lua --generate-edge-lookup
# about x8 speedup wrt to --core-factor 1.0
./osrm-prepare data.osrm -p profile.lua --speed-segment-file updates.csv --core-factor 0.8
# modify updates.csv
./osrm-prepare data.osrm -p profile.lua --speed-segment-file updates.csv --core-factor 0.8
# Repeat in loop for desired update time

For even more speedups use the --level-cache option:

./osrm-extract data.osm.pbf -p profile.lua --generate-edge-lookup
# For the first run a core-factor of 1.0 is required
./osrm-prepare data.osrm -p profile.lua --speed-segment-file updates.csv --core-factor 1.0
# modify updates.csv
./osrm-prepare data.osrm -p profile.lua --speed-segment-file updates.csv --core-factor 0.8 --cache-level true`
# Repeat in loop for desired update time