Integrar programas externos en ModelBuilder

Es posible integrar secuencias de comandos de Python o de otros lenguajes en modelos convirtiendo la secuencia de comandos en una herramienta de secuencia de comandos y agregándola a un modelo. Se puede hacer uso de este método cuando se requiere lógica de secuencia de comandos de Python o de otro lenguaje para mejorar un modelo o acceder a un paquete o programa externo desde ArcGIS.

En esta sección se describe cómo integrar R, un paquete estadístico externo, dentro del entorno de ModelBuilder. En el ejemplo que se describe a continuación, hay dos secuencias de comandos necesarias para ejecutar la funcionalidad R: una secuencia de comandos de Python que utiliza el código fuente de R y el propio código fuente. La secuencia de comandos de Python es llamada desde ModelBuilder y sirve como un conducto, que organiza y canaliza los argumentos desde ModelBuilder hasta R.

En el ejemplo se describe cómo funcionan las dos secuencias de comandos e interactúan a través de un modelo dentro del entorno de ArcGIS. Puede seguir los siguientes pasos como si fuera un tutorial, o leerlos y aplicarlos a un proyecto específico.

Pasos:
  1. Descargar y extraer datos
  2. Instalar R en el sistema
  3. Crear un nuevo modelo y agregar la herramienta de secuencia de comandos a un modelo
  4. Rellenar los parámetros de herramienta de secuencia de comandos
  5. Ejecutar el modelo

1-Descargar y extraer datos

La secuencia de comandos de ejemplo, Utilizar R en ArcGIS 10, se descarga en el Centro de recursos de geoprocesamiento—Galería de herramientas de modelo y de secuencia de comandos. La carpeta descomprimida contiene cuatro subcarpetas y una herramienta de secuencia de comandos: Clustering de puntos (Versión R).

Herramientas de R en la ventana Catálogo

2-Instalar R en el sistema

El paquete R debe estar instalado en el sistema antes de ejecutar la herramienta de secuencia de comandos. Si está utilizando esta sección a modo de tutorial o quiere probar cómo funciona esta secuencia de comandos en el futuro, lea y siga atentamente las instrucciones del archivo Readme.pdf que se encuentra en la subcarpeta Doc de la secuencia de comandos que ha descargado del Centro de recursos. El paquete R se utiliza específicamente para este ejemplo; si está usando un programa externo, tendrá que leer y entender los detalles de la instalación del software.

3-Crear un nuevo modelo y agregar la herramienta de secuencia de comandos a un modelo

La carpeta descargada contiene una caja de herramientas Herramientas R con una herramienta de secuencia de comandos. Para agregar un nuevo modelo a la caja de herramientas, haga clic con el botón derecho del ratón en Nuevo > Modelo. Se abrirá un modelo vacío. La herramienta de secuencia de comandos Clustering de puntos (Versión R) se agrega arrastrándola al modelo desde la ventana Catálogo, como si se tratara de cualquier otra herramienta de geoprocesamiento, y crea una variable de datos derivados de salida conectada a la herramienta de secuencia de comandos.

Los detalles sobre cómo escribir una secuencia de comandos de Python y crear una herramienta de secuencia de comandos no se recogen en esta sección. Hay una descripción completa acerca de cómo escribir una secuencia de comandos de Python que le enseñará a iniciar y crear una secuencia de comandos. Consulte Integrar un modelo dentro de un modelo para aprender a crear una herramienta de secuencia de comandos.

Entender el ejemplo de secuencia de comandos de Python

La herramienta de secuencia de comandos que se agrega al modelo se puede editar haciendo clic con el botón derecho del ratón en ella y, a continuación, haciendo clic en Editar. La secuencia de comandos PointCluster.py se parece a la siguiente ilustración:

Secuencia de comandos de Python

El código de la secuencia de comandos utiliza los parámetros de entrada en la herramienta de ArcGIS y los pasa al paquete estadístico de R a través de la secuencia de comandos de R. Cuando los parámetros se pasan a R desde ArcGIS, el programa R se ejecuta y calcula los clústeres para las entradas reunidos mediante la secuencia de comandos de Python en ModelBuilder. Los resultados se vuelven a representar en pantalla para visualizarlos en ArcMap.

Entender la secuencia de comandos de R

No es posible ver la secuencia de comandos de R en ModelBuilder o a través de la ventana Catálogo. Sin embargo, se encuentra en la subcarpeta Secuencias de comandos del archivo descargado. La secuencia de comandos PointCluster.r se escribe y se guarda para este ejemplo concreto, y se utiliza como una función de R externa en ModelBuilder. Si utiliza otro programa, tendrá que tener en cuenta los archivos asociados que necesita crear. Después de esto, puede utilizar estas secuencias de comandos, escritas para cualquier programa, desde la secuencia de comandos de Python y ejecutarlas desde ModelBuilder.

La secuencia de comandos PointCluster.r se muestra a continuación. El archivo de R recibe los argumentos de entrada de la herramienta de secuencia de comandos basada en Python que se utilizó en ModelBuilder para recoger los parámetros de entrada. El archivo de R ejecuta el análisis cluster en función de las entradas proporcionadas. Estos resultados se pasan de nuevo a la aplicación de ModelBuilder o ArcGIS mediante la secuencia de comandos de Python y se visualizan en ArcMap con la representación en pantalla aplicada.

Archivo de R

4-Rellenar parámetros de herramienta de secuencia de comandos

La secuencia de comandos de ejemplo ejecuta un análisis cluster en la clase de entidad de puntos de entrada basándose en el método de cluster y los valores de atributo de los puntos. En este ejemplo, se utiliza como entrada una clase de entidad de puntos que representa llamadas de emergencia al 911. Estos datos se encuentran en la carpeta ToolData descargada del Centro de recursos. Los datos originales se han modificado para este ejemplo. Cada punto tiene un valor de contador que indica el número de llamadas dentro de un área específica alrededor de ese punto. El campo de recuento se utiliza para calcular cinco clústeres según el método de cluster KMEANS_HARTIGAN.

Estos parámetros de entrada se definen mediante la secuencia de comandos de Python. La herramienta de secuencia de comandos de Python tiene un cuadro de diálogo en el que se pueden designar los parámetros de entrada dentro de ArcGIS.

Herramienta de secuencia de comandos

5-Ejecutar el modelo

Cuando se ejecuta el modelo que contiene la herramienta de secuencia de comandos de R, podría aparecer la ventana emergente de ejecución de línea de comandos indicando que el programa del paquete R se está preparando para ejecutarse.

Ventana de línea de comandos

La secuencia de comandos lanza el paquete estadístico R con una ventana por defecto de la biblioteca clusTool.

Biblioteca clusTool del paquete R por defecto

El paquete de R calcula los clústeres en función de las entradas proporcionadas mediante la herramienta de secuencia de comandos de Python. Los resultados se envían de vuelta, se representan en pantalla y se visualizan en ArcMap.

Resultados de herramienta Cluster

9/11/2013