Terrain erzeugen¶
Installation¶
Ein eleganter Weg, das DataProcessing-Paket zu kompilieren und zu verwenden, ist mit Hilfe von Docker. Es sind dann keine Pakete auf der Host-Maschine zu installieren. Dies geschieht folgendermaßen:
cd aux/DataProcessing
docker build -t dataprocessing .
Andernfalls kann DataProcessing normal kompiliert werden. Eine Anleitung und alle benötigten Pakete finden Sie in DataProcessing/Dockerfile
.
Datenquelle¶
Terraindaten sollten als Digitales Geländemodell (DGM) im GeoTiFF-Format vorliegen. Ist für ein Projekt kein DGM verfügbar, kann auf die globalen, frei verfügbaren SRTM-Daten der NASA zurückgegriffen werden.
Anleitung¶
In diesem Beispiel wird von folgenden Gegebenheiten ausgegangen:
- DGM-Tiles liegen als GeoTIFFs in
terrain/
- Ziel-Verzeichnis ist
tiles/terrain/
- EPSG ist 28992 (für UTM 32 N auf 25832 ändern)
- Docker-Image
dataprocessing
wird verwendet (siehe oben). Wenn das Programm ohne Docker installiert wurde, kann in jedem Kommando der Teildocker run -i -v $PWD:/work -t dataprocessing
einfach weggelassen werden.
setup.xml
anlegen:mkdir -p tiles cat >setup.xml <<EOF <?xml version="1.0" encoding="UTF-8"?> <ProcessingSettings> <processpath>tiles</processpath> <logpath>.</logpath> </ProcessingSettings> EOF
Ausdehnung errechnen:
docker run -i -v $PWD:/work -t dataprocessing ogCalcExtent \ --srs 'EPSG:28992' \ --input terrain/*.tif ... IF THIS IS ELEVATION: LOD=18: Tile Coords: (133964, 86546)-(134572, 86885) ....
In diesem Beispiel wählen wir LoD 18 und Ausdehnung 133964 86546 134572 86885. Es können andere LoD und Ausdehnung gewählt werden.
Terrainebene erzeugen:
docker run -i -v $PWD:/work -t dataprocessing ogCreateLayer \ --name terrain \ --lod 18 \ --extent 133964 86546 134572 86885 \ --type elevation
Daten hinzufügen:
for file in terrain/*.tif; do docker run -i -v $PWD:/work -t dataprocessing ogAddData \ --numthreads 4 \ --layer terrain \ --srs 'EPSG:28992' \ --fill \ --elevation $file; done
Höchste Zoomstufe triangulieren:
docker run -i -v $PWD:/work -t dataprocessing ogTriangulate \ --numthreads 4 \ --layer terrain \ --maxpoints 512 \ --verbose \ --triangulate
Basierend auf dem in Schritt 5 erzeugten TIN können nun die niedrigeren Zoomstufen errechnet werden:
docker run -i -v $PWD:/work -t dataprocessing ogResample \ --numthreads 4 \ --layer terrain \ --type elevation
Nun existieren die TIN-Tiles in tiles/terrain
. Dieser Ordner kann nun in den entsprechenden Ordner der PlexMap-Installation kopiert werden.