Page Title

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

Benutzer-Werkzeuge

Webseiten-Werkzeuge


mikeplus:anleitungen:asc_nach_dfs2_konvertieren_grd2mike

Esri ASCII Raster in MIKE Rasterdaten (*.dfs2) konvertieren (Grd2MIKE)

Einleitung

Die MIKE Zero Toolbox beinhaltet verschiedene Werkzeuge und wird gemeinsam mit MIKE+ installiert. Um Rasterdaten für die Erstellung bzw. Randbedingungen ein Meshs in MIKE+ (bzw. MIKE Flood) verwenden zu können, muss es in das interne Format *.dfs2 umgewandelt werden. Folgende Seite gibt eine schrittweise Anleitung, wie Sie ein ESRI Ascii Grid file (*txt, *.asc) zu MIKE 21 Rasterdaten (*.dfs2) konvertieren können. Dazu steht das Tool Grd2MIKE zur Verfügung. Das Tool setzt voraus, dass im *.asc die Rasterbreite und die Geländehöhe in der Einheit Meter angegeben sind.

Schritt für Schritt

(1) Öffnen Sie die MIKE Zero Toolbox direkt in MIKE+ über das Menü Werkzeuge…

…oder traditionell über MIKE Zero > File > New > MIKE ZERO Toolbox:

(2) Klicken Sie im Menüpunkt "GIS" auf "Grd2MIKE" und wählen Sie Ihren Raster (*.txt, *.asc) aus.

(3) Klicken Sie auf "Next" und wählen Sie dann die richtige Projektion aus. Wenn Sie eine *prj-Datei importieren möchten, klicken Sie auf den Dropdown-Pfeil → Browse (ganz unten in der Liste). Um die richtige Projektion auszuwählen, klicken Sie auf „Import Projection File“ und wählen Sie Ihre *.prj-Datei aus. Eine *.prj-Datei muss nur einmal importiert werden. Danach wird sie automatisch gespeichert.

(4) Klicken Sie auf OK > Next und wählen Sie einen Speicherort aus.

  • Name und Verzeichnis der dfs2-Datei
  • Item name: eine beliebige Bezeichnung
  • Item type: Bathymetry
  • Item unit: Meter
  • Land Value: Damit die Bathymetrie in weiterer Folge als Grundlage für die Höheninterpolation eines Mesh verwendet werden kann, müssen Sie einen Wert wählen, der höher liegt als die höchste Erhebung. Oder anders gesagt: Es sollen keine Höhen durch den Land Value abgeschnitten werden. 1)

(5) Klicken Sie auf <Execute> um das *.dfs2 File zu erstellen. Mit <Finish> beenden Sie das Dialogfenster. (Achtung: <Finish> alleine erstellt KEIN *.dfs2-File.)

(6) Als nächstes gehen Sie zu dem Ordner, in dem Sie das *.dfs2 File erstellt haben. Mit Doppelklick öffnet sich automatisch MIKE ZERO.

Technische Details

Grid registration

Grd2MIKE geht davon aus, dass das Esri ASCII Raster mit den Parametern xllcorner und yllcorner definiert ist. Nur in diesem Fall wird das Esri ASCII Raster lagerichtig konvertiert.

Wenn das Esri ASCII Raster hingegen mit xllcenter und yllcenter definiert ist, ist die dfs2-Datei um eine halbe Rasterbreite verschoben – an einer Korrektur des Tools wird gearbeitet 2). Als Behelfslösung müssten Sie den Kopf der *.asc-Datei manuell auf xllcorner und yllcorner anpassen und die Koordinaten um eine halbe Zellbreite nach links unten verschieben.

nodata_value

nodata_value in der *asc-Datei wird vom Tool in die *.dfs2 als Delete value geschrieben, der Wert dafür ist -1e-30. Der Land value wird standardmäßig auf 0 gesetzt.

Konvertierung mehrerer *.asc-Dateien im Batch-Modus

(1) Konvertieren Sie mit dem Werkzeug Grd2Mike eine asc-Datei nach dfs2. Jetzt dürfen Sie das Dialogfeld nicht achtlos schließen!

Wechseln Sie auf das Register Setup List. Wenn Sie die Toolbox frisch gestartet haben, sollte nur ein Setup zu sehen sein, ansonsten löschen Sie die überschüssigen Setups.

Speichern Sie das Setup als *mzt-Datei ins gleiche Verzeichnis wie die asc-Dateien, im Beispiel mit dem Namen batchconvert.mzt. Mit einem Texteditor werden Sie sehen, dass die *.mzt genau die Angaben enthält, die Sie vorhin im Dialogfeld gemacht haben.

Die *.mzt lässt sich mit Hilfe der ToolboxShell.exe und den Parametern -run und dem Namen der *.mzt-Datei, hier batchconvert.mzt, über die Eingabeaufforderung starten:

C:\Users\tht\Documents>"c:\Program Files (x86)\DHI\MIKE Zero\2021\bin\x64\ToolboxShell.exe" -run batchconvert.mzt

Die Konvertierung läuft im Hintergrund ab, ohne dass das Dialogfeld erscheint.

(2) Um viele Dateien hintereinander konvertieren, haben Sie zwei Möglichkeiten.

(a) Sie editieren die *.mzt-Datei händisch und fügen mehrere Abschnitte [grd2mike] ein.

(b) Sie packen sie Konvertierung beispielsweise in ein Python-Skript, das die *.mzt-Datei immer wieder modifiziert und anschließend den ToolboxShell-Befehl ausführt.

ASCII erzeugen in QGIS

Beim Konvertieren eines Raster Formats (z.B. TIFF) nach ASCII in QGIS (Tool = Translate-convert format) werden sehr viele Nachkommastellen produziert. Die Anzahl der Nachkommastellen in der ASCII Datei lässt sich über den zusätzlichen Parameter-Befehl -co DECIMAL_PRECISION=4 steuern - dadurch verringert sich auch die Dateigröße der ASCII Datei:

Probleme & Fehlermeldungen

Invalid file name

Eventuell enthält der Dateipfad Sonderzeichen, mit denen das Tool nicht umgehen kann, in diesem Fall ein Pluszeichen, aber auch Minuszeichen sind problematisch:

Error reading Input file

Eventuell fehlt im Kopf der *.asc-Datei die Angabe "nodata_value". Im folgenden Beispiel wurde die Zeile bereits manuell ergänzt:

ncols        493
nrows        323
xllcorner    1750760.000000000000
yllcorner    5946615.000000000000
cellsize     5.000000000000
nodata_value -9999

Bei großen ASCII Dateien kann es passieren, dass die obige Fehlermeldung aufgrund der fehlenden "nodata_value" Angabe nicht erscheint.

1)
(Eintrag neu in MIKE+ 2022 Update 1) Falls der Land Value zu niedrig ist, wirft MIKE+ beim Interpolieren der 2D Domäne folgende Fehlermeldung aus: All topographical data are higher than the Land Value in the file. There are no data to interpolate."
2)
DHI intern: Fall 5464
mikeplus/anleitungen/asc_nach_dfs2_konvertieren_grd2mike.txt · Zuletzt geändert: 2022/08/04 11:49 von thomas