Mehr

Verwenden von TauDem Tools in Python (wie Arcpy)?

Verwenden von TauDem Tools in Python (wie Arcpy)?


Dies kann eine völlig ignorante Frage sein, also haben Sie etwas Geduld. Aber ist es möglich, TauDem-Werkzeuge in einem Python-Skript (Arcpy) wie die anderen Werkzeuge in ArcGIS zu verwenden? Wenn Sie sich die Hilfedateien der TauDEM-Tools ansehen, erhalten Sie eine Syntax, die der Syntax der Standard-Arcpy-Tools ähnelt (dies hat mich zum Nachdenken gebracht).

Insbesondere möchte ich die D-Infinity-Methodik zur Ableitung von Strömungsrichtung und Akkumulation verwenden.

Fühlen Sie sich frei, mich niederzuschießen, wenn ich etwas Offensichtliches übersehe, aber ich scheine nirgendwo eine Antwort zu finden.

Ich verwende ArcGIS 10.


Ich habe TauDEM selbst noch nicht in Python-Skripten verwendet, aber ein kurzer Blick auf das Design scheint ziemlich einfach zu sein. Ich habe den Cheat verwendet, um das Tool in Model Builder zu ziehen und es dann als Python-Skript zu exportieren, um es zu bestätigen. Das habe ich gerade beim Exportieren des D-infinity-Flow Directions-Tools ohne festgelegte Variablen erhalten:

# Arcpy-Modul importieren import arcpy # Erforderliche Toolboxen laden arcpy.ImportToolbox("C:/Program Files/TauDEM/TauDEM5Arc/TauDEM Tools.tbx") # Lokale Variablen: Output_D-Infinity_Flow_Direction_Grid__must_be__tif_ = "" Output_D-Infinity___tif_ = "" Output_D-Infinity__Slope = "" D-Infinity-Flussrichtungen arcpy.gp.toolbox = "C:/Program Files/TauDEM/TauDEM5Arc/TauDEM Tools.tbx"; # Achtung: Die Toolbox C:/Program Files/TauDEM/TauDEM5Arc/TauDEM Tools.tbx hat KEIN Alias. # Bitte weisen Sie dieser Toolbox einen Alias ​​zu, um Kollisionen mit Werkzeugnamen zu vermeiden. # Und ersetzen Sie arcpy.gp.DinfFlowDir(… ) durch arcpy.DinfFlowDir_ALIAS(… ) arcpy.gp.DinfFlowDir("", "8", Output_D-Infinity_Flow_Direction_Grid__must_be__-tif_, )

Lesen Sie die TauDEM-Tool-Hilfe (die Sie gesehen haben), um die Syntax zu verdeutlichen, oder füllen Sie die Felder im Model Builder aus und exportieren Sie sie erneut, um zu sehen, wo Ihre Eingaben landen, wenn Sie so viel Hilfe benötigen wie ich manchmal.


Wenn Sie sich die QGIS Processing Toolbox ansehen:

QGIS verwendet das Python-Subprozessmodul, um die Befehle von Taudem (und GRASS GIS, SAGA GIS, R, Orfeo und anderen) auszuführen.

# fused_command = Taudem-Befehlszeile proc = subprocess.Popen(fused_command, shell=True, stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=True).stdout

Ich kann mir vorstellen, dass Sie mit ArcPy dasselbe tun können


Schau das Video: Python: Working with Feature Data using ArcPy