diff --git a/Makefile b/Makefile index 47117e1..47e427d 100644 --- a/Makefile +++ b/Makefile @@ -49,10 +49,10 @@ osm_edit_import_pbf: cd ./docker/osm_edit/; rm ./osm-data/wisconsin-latest.osm; docker run -v ./osm-data:/osm-data ghcr.io/bvarick/osmosis:0.49.2 osmosis --read-pbf "/osm-data/wisconsin-latest.osm.pbf" --write-xml file="/osm-data/wisconsin-latest.osm" osm_edit_refresh_base: - cd ./data/osm; wget https://download.geofabrik.de/north-america/us/wisconsin-latest.osm.pbf -O ./wisconsin-latest.osm.pbf - cd ./data/osm/osm_edit/srtm/; wget -i srtm_tiles.csv -P ./ + cd ./docker/brouter/osm_edit; wget https://download.geofabrik.de/north-america/us/wisconsin-latest.osm.pbf -O ./pbf_files/wisconsin-latest.osm.pbf + cd ./docker/brouter/osm_edit/srtm/; wget -i srtm_tiles.csv -P ./ osm_edit_generate_pbf: - docker run -v ./data/osm:/osm ghcr.io/bvarick/osmium-tool:2.21.0 osmium apply-changes /osm/wisconsin-latest.osm.pbf /osm/osm_edit/map_edited.osm -o /osm/osm_edit/wisconsin-latest_edited.osm.pbf --overwrite + cd ./docker/brouter/; docker run -v ./osm_edit:/osm_edit ghcr.io/bvarick/osmium-tool:2.21.0 osmium apply-changes /osm_edit/pbf_files/wisconsin-latest.osm.pbf /osm_edit/map_edited.osm -o /osm_edit/pbf_files/wisconsin-latest_edited.osm.pbf --overwrite osm_edit_generate_brouter: diff --git a/README.md b/README.md index d9d85e6..754d0ad 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,8 @@ calculates the walking routes using OSRM. This allows you to make changes to the street network (add a bike path, reduce a lane on an arterial st) and see how it affects the routes that brouter chooses. This is a multi-step process: 1. Make edits to OpenStreetMap in [JOSM](https://josm.openstreetmap.de/) -2. Save the edited map as `map_edited.osm` in `data/osm/osm_edit/` (File -> Save As) +2. Save the edited map as `map_edited.osm` in `docker/brouter/osm_edit/` (File -> Save As) +3. `make osm_edit_refresh_base` will download a fresh copy of `wisconsin-latest.osm.pbf` and the srtm tiles for Wisconsin. You don't need to run this frequently. 3. `make osm_edit_generate_pbf` will take those edits and apply them to the `wisconsin-latest.osm.pbf` and generate `wisconsin-latest_edited.osm.pbf` ## Misc. diff --git a/docker/brouter/.gitignore b/docker/brouter/.gitignore index 98f415b..97f24f0 100644 --- a/docker/brouter/.gitignore +++ b/docker/brouter/.gitignore @@ -9,5 +9,5 @@ # Except docker-compose.yml !docker-compose.yml -# Except safety profiles -!safety.brf +# Except osm_edit +!osm_edit/ \ No newline at end of file diff --git a/docker/brouter/osm_edit/.gitignore b/docker/brouter/osm_edit/.gitignore new file mode 100644 index 0000000..1851dfa --- /dev/null +++ b/docker/brouter/osm_edit/.gitignore @@ -0,0 +1,13 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore + +# Except osm_edit configuration files +!process_pbf.sh +!srtm/srtm_tiles.csv + +# Except osm_edit directories +!brouter_segments/ +!pbf_files/ +!srtm/ diff --git a/docker/brouter/osm_edit/brouter_segments/.gitignore b/docker/brouter/osm_edit/brouter_segments/.gitignore new file mode 100644 index 0000000..64f5877 --- /dev/null +++ b/docker/brouter/osm_edit/brouter_segments/.gitignore @@ -0,0 +1,5 @@ +# Ignore everything in this directory +* + +# Except this file +!.gitignore diff --git a/docker/brouter/osm_edit/pbf_files/.gitignore b/docker/brouter/osm_edit/pbf_files/.gitignore new file mode 100644 index 0000000..64f5877 --- /dev/null +++ b/docker/brouter/osm_edit/pbf_files/.gitignore @@ -0,0 +1,5 @@ +# Ignore everything in this directory +* + +# Except this file +!.gitignore diff --git a/docker/brouter/osm_edit/process_pbf.sh b/docker/brouter/osm_edit/process_pbf.sh new file mode 100644 index 0000000..8a857a5 --- /dev/null +++ b/docker/brouter/osm_edit/process_pbf.sh @@ -0,0 +1,49 @@ +#!/bin/bash +set -e + +cd /osm_edit + +touch lastmaprun.date + +JAVA='java -Xmx2600m -Xms2600m -Xmn32m' + +BROUTER_PROFILES="/profiles2" + +BROUTER_JAR="/brouter.jar" + +PLANET_FILE="/osm_edit/wisconsin-latest_edited.osm.pbf" + +SRTM_PATH="/osm_edit/srtm" + +rm -rf tmp +mkdir tmp +cd tmp +mkdir nodetiles +${JAVA} -cp ${BROUTER_JAR} -DavoidMapPolling=true btools.mapcreator.OsmCutter ${BROUTER_PROFILES}/lookups.dat nodetiles ways.dat relations.dat restrictions.dat ${BROUTER_PROFILES}/all.brf ${PLANET_FILE} + +mkdir ftiles +${JAVA} -cp ${BROUTER_JAR} -Ddeletetmpfiles=true -DuseDenseMaps=true btools.mapcreator.NodeFilter nodetiles ways.dat ftiles + +${JAVA} -cp ${BROUTER_JAR} -Ddeletetmpfiles=true -DuseDenseMaps=true btools.mapcreator.RelationMerger ways.dat ways2.dat relations.dat ${BROUTER_PROFILES}/lookups.dat ${BROUTER_PROFILES}/trekking.brf ${BROUTER_PROFILES}/softaccess.brf + +mkdir waytiles +${JAVA} -cp ${BROUTER_JAR} -Ddeletetmpfiles=true -DuseDenseMaps=true btools.mapcreator.WayCutter ftiles ways2.dat waytiles + +mkdir waytiles55 +${JAVA} -cp ${BROUTER_JAR} -Ddeletetmpfiles=true -DuseDenseMaps=true btools.mapcreator.WayCutter5 ftiles waytiles waytiles55 bordernids.dat + +mkdir nodes55 +${JAVA} -cp ${BROUTER_JAR} -Ddeletetmpfiles=true -DuseDenseMaps=true btools.mapcreator.NodeCutter ftiles nodes55 + +mkdir unodes55 +${JAVA} -cp ${BROUTER_JAR} -Ddeletetmpfiles=true -DuseDenseMaps=true btools.mapcreator.PosUnifier nodes55 unodes55 bordernids.dat bordernodes.dat ${SRTM_PATH} + +mkdir segments +${JAVA} -cp ${BROUTER_JAR} -DuseDenseMaps=true btools.mapcreator.WayLinker unodes55 waytiles55 bordernodes.dat restrictions.dat ${BROUTER_PROFILES}/lookups.dat ${BROUTER_PROFILES}/all.brf segments rd5 + +#cd .. +#rm -rf segments +#mv tmp/segments segments +#mv /osm_edit/segments4 /osm_edit/segments4_lastrun +#mv segments /osm_edit/segments4 +#rm -rf tmp diff --git a/docker/brouter/osm_edit/srtm/.gitignore b/docker/brouter/osm_edit/srtm/.gitignore new file mode 100644 index 0000000..c8b8738 --- /dev/null +++ b/docker/brouter/osm_edit/srtm/.gitignore @@ -0,0 +1,8 @@ +# Ignore everything in this directory +* + +# Except this file +!.gitignore + +# Except srtm_tiles.csv +!srtm_tiles.csv diff --git a/docker/brouter/osm_edit/srtm/srtm_tiles.csv b/docker/brouter/osm_edit/srtm/srtm_tiles.csv new file mode 100644 index 0000000..29c621e --- /dev/null +++ b/docker/brouter/osm_edit/srtm/srtm_tiles.csv @@ -0,0 +1,4 @@ +https://srtm.csi.cgiar.org/wp-content/uploads/files/srtm_5x5/ASCII/srtm_18_03.zip +https://srtm.csi.cgiar.org/wp-content/uploads/files/srtm_5x5/ASCII/srtm_18_04.zip +https://srtm.csi.cgiar.org/wp-content/uploads/files/srtm_5x5/ASCII/srtm_19_03.zip +https://srtm.csi.cgiar.org/wp-content/uploads/files/srtm_5x5/ASCII/srtm_19_04.zip