¿Cómo integrar los módulos SAGA Python en ArcGIS Desktop?

Respuestas:

5

Para que ArcGIS hable con SAGA, creamos cajas de herramientas simples que crean y ejecutan archivos .bat desde una ubicación temporal. Eso ejecuta el módulo SAGA a través de la interfaz de línea de comandos. En general, la caja de herramientas necesitará convertir formatos de datos, resolver problemas de proyección, etc., antes y después de ejecutar la función SAGA, pero eso es bastante sencillo. El primero es el obstáculo, pero luego solo se trata de adaptarlo, ya que necesita conectarse a módulos SAGA adicionales. Por supuesto, una vez que tenga la caja de herramientas, puede reutilizarse en flujos de trabajo más complejos a través de modelbuilder o en python.

Phil Henley
fuente
1
Proporcione el código que usa; si lo abre, las personas pueden incluso mejorar la funcionalidad que tiene.
johanvdw
1
Si tengo la oportunidad, construiré un caso genérico y luego haré que el código esté disponible. Por el momento, cada uno está codificado para una tarea específica, por lo que no es útil sin un poco de trabajo adicional primero
Phil Henley
4

Para ser sincero, parece que SAGA depende en gran medida de otros proyectos OpenSource para la funcionalidad de procesamiento (por ejemplo, GRASS, gdal, proj.4, etc.)

Puede ser mucho más simple instalar QGIS Desktop GIS y luego escribir un QGIS Python Plugin (s) para hacer lo que le gustaría hacer. Es probable que tenga acceso programático a gran parte de la funcionalidad disponible a través de SAGA.

En una nota al margen, a pesar de que SAGA tiene licencia bajo la GPL, no creo que tenga problemas legales al escribir un script que combine el código ESRI y SAGA, pero posiblemente podría haber problemas con la publicación del código en ArcScripts.

DavidF
fuente
La funcionalidad de procesamiento en realidad no funciona en muchos otros proyectos de código abierto. Solo importa / exporta archivos y proyecciones, pero esas no son las herramientas que quieres usar de arcgis.
johanvdw
1

Hacemos exactamente eso en: www.frogtech.com.au

El punto es obtener una funcionalidad similar a la que está vinculada a través de extensiones o niveles de licencia en ArcGIS Desktop ... no tiene sentido pagar miles por una extensión cuando solo usa una o dos de su funcionalidad, entonces podemos obtener nuestro SIG menos especializado Para que los usuarios utilicen esa herramienta a través de un flujo de trabajo regular, también lo personalizamos para permitir que las entradas / salidas provengan de nuestros flujos de trabajo regulares.


fuente
Es bueno tener una verificación independiente de que se puede hacer, y por qué tiene sentido, pero omite el quid: ¿cómo?
Matt Wilkie
1

Un enfoque más liviano: use los paquetes rpy / rpy2 (para Python) y RSAGA (para R) para hacer la conexión ArcGIS-to-Python-to-R-to-SAGA. Estoy incursionando en esto ahora. Lleva algo de tiempo, pero se puede hacer.

Por supuesto, eso significa que necesitaría tener ArcGIS / Python, R y SAGA todos instalados en versiones compatibles. Pero bueno, nada bueno viene fácilmente.


fuente
1
  1. escriba un script de Python que haga su trabajo en saga, por ejemplo, import
    saga_api, sys.argv, etc .; tenga en cuenta que saga hace la mayoría de las cosas en la memoria y necesita importar y exportar datos del disco
  2. prueba, prueba, prueba tu script de saga python
  3. arcgis -> ir a arctoolbox
  4. cree un nuevo modelo -> haga clic con el botón derecho en agregar script - enlace al script en el paso 1, no olvide especificar sus argumentos. (Recuerde que la Versión 10 se guarda en 9.3 y reduce los argumentos de pérdidas / distorsiones, por lo que deben redefinirse a veces)
  5. Listo para ir
gisxperts
fuente
0

Tenga en cuenta que desde la versión 2.2.1, SAGA admite cajas de herramientas que se pueden ejecutar desde arcgis: https://sourceforge.net/p/saga-gis/news/2015/09/saga-221-released/

"Para ejecutar las herramientas de ArcSAGA, debe navegar a su directorio de instalación de SAGA con el control ArcCatalog y abrir las cajas de herramientas de ArcSAGA Python. Debería funcionar de forma inmediata sin más pasos de instalación".

johanvdw
fuente