Valhalla (Installation/Import)

Vorarbeiten

Wenn etwas von den Standardwerten abweichen soll, dann müssen die Umgebungsvariable in der ~/.bashrc hinzugefügt/angepasst werden.

export OSM_DATA_DATE=240415
export OSM_DATA_DIR=/zfs_pool/data/osm
export VALHALLA_NAME=valhalla # optional
export VALHALLA_DATA_PATH=/zfs_pool/data/valhalla # optional
export VALHALLA_VERSION=3.4.0

und mit dem folgenden Kommando aktualisieren

source ~/.bashrc

Container Service installieren

cd ~/projects/PhpOsmRoutingWrapper && ./scripts/install_valhalla_service.sh

Neue Daten importieren https://github.com/gis-ops/docker-valhalla

  • ggf. Valhalla Container deinstallieren

    cd ~/projects/PhpOsmRoutingWrapper && ./scripts/uninstall_valhalla_service.sh
  • alte Valhalla Daten löschen

    rm -rf ${OSM_DATA_DIR}/valhalla_tiles ${OSM_DATA_DIR}/valhalla_tiles*.tar ${OSM_DATA_DIR}/file_hashes.txt
  • alle alten .osm.pbf Dateien löschen, da ansonsten alle Dateien importiert werden!

    rm -rf ${OSM_DATA_DIR}/*.osm.pbf
  • neue planet-<yymmdd>.osm.pbf Datei von https://planet.openstreetmap.org/pbf/ ins Datenverzeichnis herunterladen

    cd ${OSM_DATA_DIR} && wget https://planet.openstreetmap.org/pbf/planet-${OSM_DATA_DATE}.osm.pbf
  • Falls erforderlich, Integrität prüfen

    wget https://planet.openstreetmap.org/pbf/planet-${OSM_DATA_DATE}.osm.pbf.md5 && cat planet-${OSM_DATA_DATE}.osm.pbf.md5 | md5sum -c -
  • Der folgende Befehl importiert die Daten im Hintergrund

    podman run --rm -dt --name valhalla_gis-ops -p 8002:8002 -v ${OSM_DATA_DIR}:/custom_files ghcr.io/gis-ops/docker-valhalla/valhalla:${VALHALLA_VERSION}
  • Warten bis der Import abgeschlossen ist (htop, iotop, podman container logs valhalla_gis-ops, existiert valhalla_tiles.tar Datei?)

  • Container killen!

    podman kill valhalla_gis-ops
  • Valhalla Daten (ca. 90GB) ins entsprechende Verzeichnis verschieben oder auf Server kopieren

    cd ${OSM_DATA_DIR}
    mv valhalla_tiles.tar valhalla_tiles-${OSM_DATA_DATE}.tar
    mv valhalla_tiles-${OSM_DATA_DATE}.tar ${VALHALLA_DATA_PATH}
    mv valhalla.json ${VALHALLA_DATA_PATH}
    mv file_hashes.txt ${VALHALLA_DATA_PATH}
    mv duplicateways.txt ${VALHALLA_DATA_PATH}
    rm -rf valhalla_tiles
    
    # Beim kopieren auf einen Server, diesen Schritt auf dem Server ausführen!
    cd ${VALHALLA_DATA_PATH} && ln -s valhalla_tiles-${OSM_DATA_DATE}.tar valhalla_tiles.tar
  • ggf. Valhalla Container wieder installieren

    cd ~/projects/PhpOsmRoutingWrapper && ./scripts/install_valhalla_service.sh