====== Rasterdaten im XYZ-Format nach Esri ASCII Raster konvertieren ====== ⯇ Zurück zu [[mikeplus:anleitungen:anleitungen_siedlungsentwaesserung|Anleitungen zum Arbeiten in der Siedlungsentwässerung]] ===== Einleitung ===== Das Format von Rasterdaten im XYZ-Format ist nicht streng reglementiert, vielmehr handelt es sich um eine einfache Liste von Koordinatenpaaren und Höhenwerten. Wie die Koordinaten sortiert sind, welche Trennzeichen verwendet werden, und wie der Spaltenkopf aussieht, mag sich von Datenquelle zu Datenquelle unterscheiden. 32370000.00 5736000.00 113.82 32370000.00 5736001.00 113.86 32370000.00 5736002.00 113.89 32370000.00 5736003.00 113.94 32370000.00 5736004.00 114.02 32370001.00 5736000.00 113.84 32370001.00 5736001.00 113.86 32370001.00 5736002.00 113.88 32370001.00 5736003.00 113.93 32370001.00 5736004.00 113.97 32370002.00 5736000.00 113.81 32370002.00 5736001.00 113.87 32370002.00 5736002.00 113.90 32370002.00 5736003.00 113.93 32370002.00 5736004.00 114.00 32370003.00 5736000.00 113.80 32370003.00 5736001.00 113.88 32370003.00 5736002.00 113.92 32370003.00 5736003.00 113.95 32370003.00 5736004.00 114.00 32370004.00 5736000.00 113.83 32370004.00 5736001.00 113.88 32370004.00 5736002.00 113.94 32370004.00 5736003.00 113.96 32370004.00 5736004.00 114.03 Um solche Daten nach MIKE+ zu bringen, bietet es sich an, zunächst in das klar definierte [[https://desktop.arcgis.com/en/arcmap/latest/manage-data/raster-and-images/esri-ascii-raster-format.htm|Esri ASCII Raster]] zu konvertieren, und zwar mit Hilfe der besonders flexiblen [[https://www.generic-mapping-tools.org|Generic Mapping Tools (GMT)]]. Das beliebte QGIS hat derzeit (Stand März 2021) Schwierigkeiten, wenn die Koordinaten nicht primär nach Y-Koordinate sortiert sind. ===== Download und Installation ===== Auf der Startseite der [[https://www.generic-mapping-tools.org|Generic Mapping Tools (GMT)]] finden Sie die Links zum Download der aktuellen Versionen. Wir haben das Setup der Version 6.1.1 verwendet, also die gmt-6.1.1-win64.exe. Führen Sie die Installation durch. Der Vorgang ist einfach und selbsterklärend. ===== Arbeitsverzeichnis ===== GMT verfügt über keine eigene Bedienungsoberfläche sondern wird über Eingabeaufforderung gesteuert. Kopieren Sie die *.xyz-Dateien in ein beliebiges Verzeichnis und öffnen Sie in diesem Verzeichnis das Fenster mit der Eingabeaufforderung. Testen Sie, ob der Befehl gmt funktioniert. Ohne weitere Parameter sollte er eine kurze Hilfe zur Syntax anzeigen. E:\Dokumente>gmt GMT - The Generic Mapping Tools, Version 6.1.1 [64-bit] [MP] [4 cores] (c) 1991-2020 The GMT Team (https://www.generic-mapping-tools.org/team.html). Supported in part by the US National Science Foundation (http://www.nsf.gov/) and volunteers from around the world. GMT is distributed under the GNU LGPL License (http://www.gnu.org/licenses/lgpl.html). Dependencies: netCDF, GDAL, PCRE, FFTW, LAPACK, ZLIB, Ghostscript, GraphicsMagick, FFmpeg. usage: gmt [options] gmt [] options: --help List descriptions of available GMT modules. etc. etc. ===== Ausdehnung einer Kachel ===== Die folgenden Ausführungen haben wir anhand einer kleinen Beispieldatei erstellt, die Sie in {{ mikeplus:anleitungen:testgebiet_xyz.zip |}} finden. Zunächst müssen Sie mit dem Befehl [[https://docs.generic-mapping-tools.org/6.1/gmtinfo.html|gmt gmtinfo]] herausfinden, welche Ausdehnung Ihre Kachel hat. gmtinfo durchsucht alle vorhandenen Spalten und schreibt jeweils die Minima und Maxima heraus, in diesem Fall die Spalte mit der x-Koordinate, der y-Koordinate und der z-Koordinate. E:\Dokumente>gmt gmtinfo testgebiet.xyz testgebiet.xyz: N = 25 <32370000/32370004> <5736000/5736004> <113.8/114.03> Daraus erkennen wir: * Das Raster weit 25 Gitterpunkte auf. * Die Rechts-Koordinaten erstrecken sich von 32370000 bis 32370004. * Die Hoch-Koordinaten erstrecken sich von 5736000 bis 5736004. * Die Z-Werte liegen zwischen 113,80 und 114,03 m. Zusätzlich müssen Sie herausfinden, welche Rasterweite Ihre XYZ-Datei aufweist. In unseren Beispiel sind es 5 x 5 Punkte mit einem Abstand von 1 m. ===== Konvertierung einer Kachel ===== Konvertieren Sie die xyz-Datei in ein Esri ASCII Raster mit Hilfe des Befehls [[https://docs.generic-mapping-tools.org/6.1/xyz2grd.html|gmt xyz2grd]]. ==== Syntax von gmt xyz2grd ==== Von den umfangreichen Parametern benötigen wir lediglich die folgenden: gmt xyz2grd eingabe -Gausgabe=ef -rregistrierung -Irasterweite -Rxmin/xmax/ymin/ymax **gmt xyz2grd** Ruft den Befehl auf. **eingabe** eingabe ersetzen Sie durch den Dateinamen Ihrer Koordinatenliste *.xyz. Beispiel: testgebiet.xyz **-Gausgabe=ef** ausgabe ist der Name der Rasterdatei, die geschrieben werden soll. Um ein Esri ASCII Raster mit Fließkommawerten zu erstellen, hängt man das Suffix "=ef" an.((Gibt man kein Suffix an, wird standardmäßig eine *.nc-Datei im Format NetCDF erstellt.)) Beispiel: -Gtestgebiet.asc=ef **-rregistrierung** registrierung gibt an, ob die Werte im Esri ASCII Raster als //Pixel registration// oder als //Gridline registration// zu verstehen sind: {{ :mikeplus:anleitungen:xyz-nach-asc-konvertieren_gmt-registration.png?direct&500 |}} Bei der Gridline registration (links) sitzen die Mittelpunkte direkt auf den "kommastellenlosen" Koordinatenlinien, benachbarte Bildkacheln überlappen einander mit einer Pixelreihe. Bei der Pixel registration (rechts) liegen die Mittelpunkte versetzt zu den "kommastellenlosen" Koordinatenlinien, benachbarte Bildkacheln berühren einander. Quelle: [[https://docs.generic-mapping-tools.org/6.1/cookbook/options.html#option-nodereg|Grid registration: the -r option]] Manchmal werden auch folgende Bezeichnungen verwendet: //Node registration// für die Gridline registration, und //Element registration// für die Pixel registration. In der erzeugten asc-Datei erkennt man //Gridline registration// an den Parametern xllcenter und yllcenter. //Pixel registration// erkennt man an den Parametern xllcorner und yllcorner. Die weiteren Tools in MIKE+ setzen //Pixel registration// voraus, welches durch p angesprochen wird, daher Beispiel: -rp **-Irasterweite** rasterweite gibt an, in welchem Abstand [m] die Rasterpunkte im erzeugten Esri ASCII Raster liegen sollen. An dieser Stelle könnte man eine von der ''eingabe'' abweichende Rasterweite festlegen. Achtung, es handelt sich um ein großes I, und nicht etwa ein kleines l. Beispiel: -I1 **-Rxmin/xmax/ymin/ymax** Dieser Parameter legt den Bereich fest, der konvertiert werden soll, definiert über die Koordinaten des Rasterrandes. Bei der Pixel registration liegt der Rasterrand eine halbe Rasterbreite außerhalb der XYZ-Koordinaten, daher Beispiel: -R32369999.5/32370004.5/5735999.5/5736004.5 ==== Durchführung der Konvertierung ==== E:\Dokumente>gmt xyz2grd testgebiet.xyz -Gtestgebiet.asc=ef -rp -I1 -R32369999.5/32370004.5/5735999.5/5736004.5 xyz2grd [WARNING]: ESRI Arc/Info ASCII Interchange file must use proxy for NaN; default to -9999 Die Konvertierung wird durchgeführt, mit dem Hinweis darauf, dass kein Wert vorgegeben worden ist für nicht definierte Gitterpunkte. Der Standardwert -9999 wird daher verwendet. Das fertige Esri ASCII Raster sieht im Texteditor so aus: ncols 5 nrows 5 xllcorner 32369999.5 yllcorner 5735999.5 cellsize 1 nodata_value -9999 114.019996643 113.970001221 114 114 114.029998779 113.940002441 113.930000305 113.930000305 113.949996948 113.959999084 113.88999939 113.879997253 113.900001526 113.919998169 113.940002441 113.86000061 113.86000061 113.870002747 113.879997253 113.879997253 113.819999695 113.839996338 113.809997559 113.800003052 113.830001831 ===== Nächste Schritte in MIKE+ ===== Die so erstellte Datei können Sie in MIKE+ als Hintergrundlayer hinzufügen, oder mit dem Tool [[mikeplus:anleitungen:asc_nach_dfs2_konvertieren_grd2mike|Grd2MIKE]] in eine dfs2-Datei konvertieren, um darauf aufbauend ein Mesh zu erstellen. ===== Offene Punkte ===== * Screenshot GIS oder MIKE+, aus dem die Lage bei Pixel registration hervorgeht * und überhaupt: in MIKE+ nochmal testen