Page Title

Der Wiki wird derzeit überarbeitet: neue URL, neues Design, neue Inhalte!

Benutzer-Werkzeuge

Webseiten-Werkzeuge


mikeplus:anleitungen:xyz-nach-asc-konvertieren

Rasterdaten im XYZ-Format nach Esri ASCII Raster konvertieren

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 Esri ASCII Raster zu konvertieren, und zwar mit Hilfe der besonders flexiblen 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 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 <module name> [<module-options>]

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 testgebiet_xyz.zip finden.

Zunächst müssen Sie mit dem Befehl 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 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.1)

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:

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: 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 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
1)
Gibt man kein Suffix an, wird standardmäßig eine *.nc-Datei im Format NetCDF erstellt.
mikeplus/anleitungen/xyz-nach-asc-konvertieren.txt · Zuletzt geändert: 2022/07/11 13:29 von thomas