Viac

Používate nástroje TauDem v Pythone (napríklad Arcpy)?


Môže to byť úplne ignorantská otázka, takže buďte trpezliví. Je však možné použiť nástroje TauDem v rámci skriptu Python (Arcpy) podľa ostatných nástrojov v ArcGIS? Keď sa pozriete na súbory pomoci nástrojov TauDEM, získate Syntax, ktorá vyzerá podobne ako syntax štandardných nástrojov Arcpy (nad čím som premýšľal).

Konkrétne chcem použiť metodiku D-Infinity na odvodenie smeru toku a akumulácie.

Neváhajte ma zostreliť, ak mi niečo zjavné chýba, ale zdá sa mi, že nikde nenájdem odpoveď.

Používam ArcGIS 10.


Sám som nepoužíval TauDEM v skriptoch Pythonu, ale pri krátkom pohľade na dizajn sa zdá, že by sa to dalo urobiť pomerne ľahko. Použil som cheat na vytiahnutie nástroja do Model Builder a potom export ako Python skript na potvrdenie. To je to, čo som práve exportoval nástroj D-nekonečno Flow Directions bez nastavených premenných:

# Import arcpy module import arcpy # Načítať požadované panely nástrojov arcpy.ImportToolbox ("C: / Program Files / TauDEM / TauDEM5Arc / TauDEM Tools.tbx") # Lokálne premenné: Output_D-Infinity_Flow_Direction_Grid__must_be__tif_ = "" Output_D-Infinity_Slope "=" Pokyny pre tok D-nekonečna arcpy.gp.toolbox = "C: / Program Files / TauDEM / TauDEM5Arc / TauDEM Tools.tbx"; # Varovanie: panel nástrojov C: / Program Files / TauDEM / TauDEM5Arc / TauDEM Tools.tbx NEMÁ alias. # Priraďte tomuto súboru nástrojov alias, aby nedochádzalo ku kolíziám s názvami nástrojov. # A nahraďte arcpy.gp.DinfFlowDir (...) arcpy.DinfFlowDir_ALIAS (...) arcpy.gp.DinfFlowDir ("", "8", Output_D-Infinity_Flow_Direction_Grid__must_be__tif_, Output_D-Inf__ )

Ak chcete objasniť syntax, pozrite si nápovedu k nástroju TauDEM (ktorú ste už videli), alebo vyplňte polia v Nástroji na tvorbu modelov a exportujte ich znova, aby ste zistili, kde vaše vstupy končia, ak potrebujete toľko pomoci ako ja niekedy.


Ak sa pozriete na QGIS Processing Toolbox:

QGIS používa modul podprocesu Python na vykonávanie príkazov Taudem (a GRASS GIS, SAGA GIS, R, Orfeo a ďalších)

# fused_command = Príkazový riadok Taudem proc = subprocess.Popen (fused_command, shell = True, stdout = subprocess.PIPE, stdin = subprocess.PIPE, stderr = subprocess.STDOUT, universal_newlines = True) .stdout

Predstavujem si, že s ArcPy môžete robiť to isté


Pozri si video: Python in ArcGIS. Урок 1. arcpy: введение (Október 2021).