Tabla de contenidos
En el siguiente Post vamos a crear un modelo de construcciones (Model Builder) para posteriormente exportarlo a Python con ArcGIS.
Antes de comenzar con el ejercicio conviene aclarar, para aquellos que no lo conocen, las utilidades de la herramienta ModelBuilder y la potencialidad que ofrece en el terreno GIS. ModelBuilder es un lenguaje de programación visual para crear flujos de trabajo de geoprocesamiento. Los modelos de geoprocesamiento automatizan y documentan los procesos de análisis espacial y de administración de datos. Los modelos de geoprocesamiento se crean y modifican en ModelBuilder, donde un modelo se representa como un diagrama que encadena secuencias de procesos y herramientas de geoprocesamiento utilizando la salida de un proceso como entrada de otro proceso.
ModelBuilder en ArcGIS Pro le permite realizar lo siguiente:
- Crear un modelo agregando herramientas de geoprocesamiento, capas de mapa, datasets y otros tipos de datos, y conectándolos a un proceso.
- Procesar de forma interactiva todas las clases de entidad, rásteres, archivos o tablas de un espacio de trabajo.
- Visualizar la secuencia de su flujo de trabajo como un diagrama fácil de interpretar.
- Ejecutar un modelo paso a paso, hasta un paso seleccionado, o ejecutar el modelo por completo.
- Convertir el modelo en una herramienta de geoprocesamiento que se puede compartir con otros usuarios o que se pueden utilizar en secuencias de comandos de Python y en otros modelo
En el siguiente ejercicio vamos a crear un sencillo constructor para extraer aquellas parcelas que están o tienen parte de su superficie dentro de una figura de protección en el término municipal de Murcia. Os he facilitado las capas Lim_admin_Murcia.shp, Parcelas.shp y Fig_Protec.shp en la siguiente dirección httpss://www.dropbox.com/s/o5j7poneyuwdqpm/Datos_MODELB.zip?dl=0 . Vamos a abrir ArcMap e introducimos los Shapefile correspondientes.
Vamos a guardar el proyecto con el nombre Parcelas_Proteg.mxd en nuestro directorio de trabajo. Una vez hecho esto, añadiremos un nuevo Arctoolbox en el directorio Catalog/Toolboxes/My Toolboxes llamado Parcelas_proteg.tbx.
Dentro esta nueva Toolbox podemos incorporar las herramientas (geoprocesos) que vamos a utilizar para obtener nuestro resultado, con las funciones Clip e Intersect.
El siguiente paso será abrir el constructor de modelos que se encuentra operativo en la barra de herramientas de ArcMap . La construcción es muy simple, utilizaremos los siguientes geoprocesos para llevarla a cabo.
- Cortaremos la capa que contiene las figuras de protección en base al límite marcado por el término municipal, de tal modo que obtengamos aquellas zonas protegidos dentro del municipio.
- Intersect. Obtener aquellas parcelas que intersectan con alguna figura de protección.
Para introducir una función a Model Builder basta con arrastrar dicha herramienta desde el cuadro de Arctoolbox a Model. Para introducir los parámetros y generar el resultado debemos hacer clic sobre su representación gráfica. La presentación del modelo sería la siguiente.
A medida que vamos trabajando sobre el modelo podemos visualizar cada uno de sus resultados. Para ello tendremos que correr los procesos mediante el botón Run .
Una vez cargado el modelo pincharemos sobre el resultado que pretendemos visualizar (círculo verde) con el botón derecho y escogeremos la opción Add To Display. Lo hago en el resultado final del modelo y obtengo lo siguiente: 1080 parcelas intersectan con una figura de protección.
Cuando nos cercioremos de que el resultado es correcto nos iremos a la pestaña Model/Validate Entire Model. Posteriormente pasaremos a guardar el modelo mediante la opción Model/Save. Tendremos que localizar la ruta del nuevo Toolbox (Parcelas_proteg.tbx) y guardar en su interior el proceso creado.
En estos últimos pasos exportaremos el resultado a Python. Para ello nos vamos otra vez al modelo que hemos generado, clicamos sobre Model y escogemos la opción Export/To Python Script. Lo guardaremos en nuestro directorio de trabajo con el nombre Proteg.py
Ya hemos exportado nuestro Modelo a Python. En el siguiente Post trataremos de utilizar el Script que hemos generado para obtener un mismo resultado.
Add Comment