6 votos

¿Cómo ejecutar una herramienta de Whitebox GAT en ArcGIS?

Tengo una serie de herramientas que necesito ejecutar en ArcGIS para acondicionar hidrológicamente mi MDE, pero el primer paso en este proceso es ejecutar la herramienta Breach Depressions de Whitebox GAT (he descubierto que esta herramienta funciona realmente bien para la ruptura de arroyos a través de puentes y presas).

¿Es posible trabajar íntegramente en ArcMap y llamar a la herramienta de depresión de brechas desde Whitebox? He intentado ejecutar el código python en ArcGIS pero no parece funcionar. Esto es lo que he intentado:

wd = "D:\LIDAR\02060006_Patuxent\01_HeadwatersPatuxent\0104_HUC12"
pluginHost.setWorkingDirectory(wd)
inputFile = wd + "DEM_clip.dep"
outputFile = wd + "DEMBreach.dep"
maxBreachLength = "50"
outputPointer = "true"
args = [inputFile, outputFile]
pluginHost.runPlugin("BreachDepressions", args, False)

Soy bastante nuevo en python y en la codificación en general, así que la respuesta puede ser más obvia de lo que creo. Debo añadir que ahora mismo estoy ejecutando mis herramientas en un modelo de geoprocesamiento por lo que idealmente me gustaría añadir de alguna manera la herramienta de depresiones de la brecha de la caja blanca en mi modelo de geoprocesamiento, pero estaría abierto a probarlo en un python script.

9voto

Me temo que cuando escribí Whitebox GAT, nunca preví que habría una demanda para poder ejecutar las herramientas del plugin de Whitebox desde fuera de la interfaz de usuario. Sabía que habría una necesidad de automatizar los flujos de trabajo y es por eso que escribí las capacidades de scripting en él, de tal manera que cada herramienta puede ser llamada internamente desde un script de Python, Javascript o Groovy. Pero nunca pensé que la gente quisiera ejecutar una herramienta de Whitebox desde ArcGIS. Debido a que Whitebox se ejecuta en la máquina virtual de Java, y debido a la forma en que estructuré el programa, desafortunadamente no creo que actualmente sea posible hacer esto. Las herramientas plugin de Whitebox GAT necesitan ser capaces de comunicarse con la interfaz de usuario de Whitebox.

A lo largo de los años he tenido bastante interés en poder hacer esto y por eso he empezado a desarrollar una pequeña biblioteca experimental de análisis geoespacial de código abierto, llamada GoSpatial con este mismo propósito. No hay muchas herramientas en GoSpatial todavía, pero hay una herramienta de violación ( BrechaDepresiones ) que se basa en la herramienta de Whitebox GAT a la que te refieres. Recientemente he escrito un artículo que describe en detalle el funcionamiento de esta herramienta,

Lindsay JB. En prensa. Métodos híbridos eficientes de eliminación de sumideros de ruptura-llenado para la aplicación de trayectorias de flujo en modelos digitales de elevación. Hydrological Processes. DOI: 10.1002/hyp.10648

que puede descargar de este sitio:

http://www.uoguelph.ca/~hydrogeo/publicaciones.html

Creo que encontrará que esta herramienta de ruptura satisface su necesidad de un método mejorado para la eliminación de fregaderos y el cumplimiento del flujo. La herramienta toma un número de formatos ráster DEM de entrada, incluyendo el ráster binario de ArcGIS (archivos .flt y .hdr) y archivos GeoTIFF, y también escribirá el DEM modificado en estos mismos formatos. También hay una breve descripción de cómo se puede llamar a GoSpatial herramientas de un script en la biblioteca Repositorio GitHub . El ejemplo muestra cómo llamar al RellenarDepresiones herramienta, pero la idea es la misma para el BreachDepressions sólo utiliza parámetros diferentes. Si lees el documento, verás que desaconsejo encarecidamente que la gente rellene sus depresiones cuando la brecha (y los métodos híbridos de brecha primero) proporcionan una solución mucho mejor para el cumplimiento del flujo en la mayoría de las condiciones. Así que puede que veas la ironía en el hecho de que haya utilizado el RellenarDepresiones en el ejemplo de Python script en el sitio. De todos modos, si necesitas ayuda con ella o te encuentras con algún problema con la biblioteca, por favor házmelo saber.

ACTUALIZACIÓN

Recientemente se han producido avances significativos que han hecho necesario actualizar la respuesta original. Ahora es posible utilizar Python para llamar a muchas de las herramientas de geoprocesamiento de Whitebox GAT utilizando el nuevo WhiteboxTools biblioteca. Aunque WhiteboxTools no permite actualmente a los usuarios acceder a las más de 400 herramientas de Whitebox GAT, aproximadamente 300 de las herramientas originales se han trasladado a esta nueva biblioteca de geoprocesamiento independiente. A continuación se muestra un ejemplo de cómo utilizar Python para llamar a una herramienta:

# import WhiteboxTools class from whitebox_tools.py script
from whitebox_tools import WhiteboxTools

wbt = WhiteboxTools()

# set the working directory
wbt.work_dir = "/path/to/data/"

# run a 9 x 9 mean filter
wbt.mean_filter("input_file.tif", "output_file.tif", 9, 9) 

Se pueden encontrar ejemplos más detallados del uso de scripts de Python para interactuar con WhiteboxTools en el manual de usuario .

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X