Análisis de ubicación de un vertedero en ArcGIS

Roberer

Por Roberto Jiménez

Geospatial & GIS Analyst

Índice


¿Qué es Model Builder?

Model Builder es una herramienta que el Sistema de Información Geográfica ArcGIS incorpora para automatizar la consecución de geoprocesos a través de una interfaz gráfica.

Resultan de gran utilidad por los siguientes aspectos:

Sin embargo, esta herramienta cuenta con limitaciones que tendremos que tener en cuenta si queremos realizar cierto tipo de operaciones. El caso es que Model Builder funciona como si »programáramos» encadenando funciones de Python (que serían los geoprocesos), pero no permite hacer cosas que sí son posibles en Python como anidar bucles o recorrer los campos de una capa.

Además, cuando el modelo es muy grande, ya no resulta tan sencillo andar modificándolo para usarlo con otros datos o en otros equipos, y Python resulta mucho más interesante en este aspecto. Recomiendo el post de mappingGIS en el que detallan más estas cuestiones.

Lo que sí puede hacer Model Builder es usar ciertas estructuras de Python para iterar (repetir una acción) sobre varias capas que se encuentren en un directorio o crear rangos como si usáramos la función de Python range. Es lo que se conoce como iteradores, pero no será necesario usarlos para este trabajo.

Por último, añadir que QGIS cuenta con su propio Model Builder y se encuentra en la pestaña de Procesos bajo el nombre de Modelador gráfico.


Construcción del modelo

En este ejercicio vamos a construir un modelo en ArcGIS para ubicar un nuevo vertedero en el entorno del municipio de Zaragoza (España). Teniendo en cuenta los criterios que la normativa ambiental de Aragón establece para la localización de este tipo de espacios y algunas consideraciones para la optimización del proyecto, el análisis espacial que llevaremos a cabo se verá condicionado por los siguientes aspectos:

Por lo tanto, necesitaremos las siguientes capas, todas ellas disponibles en IDEAragón:

  1. La capa de octantes o cuadrículas del Mapa Topográfico Nacional
  2. Una capa con los límites municipales y otra con las áreas urbanas para encontrar los lugares a más de 2000 metros del casco urbano consolidado que se encuentren dentro del municipio
  3. Un modelo digital del terreno para calcular las pendientes
  4. Una capa de geología o algún derivado que aporte información directa sobre permeabilidad. En este caso existe una capa de Permeabilidad que ofrece esa información.
  5. Una capa de carreteras
  6. Capas referentes a las distintas figuras de protección ambiental

capas del proyecto arcgis

Una vez tengamos todas las capas, comenzaremos a montar en Model Builder los distintos procesos que crucen esta información para obtener una nueva capa de información que nos muestre solo aquellas áreas que coincidan en el espacio según los condicionantes anteriores.

Concretamente, generaremos un archivo ráster cuyos píxeles tendrán valor 1 en aquellas superficies donde se cumplan las condiciones a través de la herramienta de superposición ponderada Weighted Overlay. Para usar esta herramienta necesitaremos que los inputs sean capas ráster cuyos valores sean números enteros discretos (los ráster continuos no funcionan), por lo que nos enfrentamos a dos problemas:

  1. Salvo el modelo digital del terreno, el resto de capas son vectoriales, por lo que tendremos que convertirlas a ráster
  2. El único ráster que tenemos es continuo, tal y como se ve en la imagen de arriba, por lo que una vez tengamos calculadas las pendientes tendremos que reclasificarlo para que represente solo aquellas que se encuentren entre los 4 y los 40 grados.

Teniendo todo esto en cuenta, comenzaremos a construir el modelo trabajando en la parte vectorial, que será la más extensa debido a que la mayoría de capas a tratar son de este tipo, y después trabajaremos con los datos ráster.

Tratamiento vectorial

Pues bien, antes de pasar nuestra información vectorial a ráster convendrá acotarla y simplificarla al máximo. Tratar de pasar cada capa a vectorial a ráster y reclasificarla es una tarea bastante pesada, y buena parte de nuestros geodatos son desechables puesto que solo nos interesa la hoja 383 del MTN, por lo que comenzaremos tratando la capa de octantes.

Seleccionar y disolver los octantes

La capa octantes subdivide cada hoja del MTN en 8 entidades menores, por lo que tendremos que hacer usar la herramienta Select para quedarnos solo con las entidades que forman parte de la hoja 383 en una nueva capa.


octantes

Una vez tengamos esa nueva capa, con la heramienta Dissolve uniremos todas estas entidades usando el campo IGN, común a todas ellas, usando la expresión «IGN» = ‘383’. De esta forma nos quedaremos con una única entidad en la nueva capa de salida Octantes_383_Dissolve:


dissolve arcgis

Este pequeño proceso quedará así en el Model Builder:


model builder ejemplo 1

Recortar las careteras y hacerles buffers

Lo siguiente será encontrar ese área comprendida entre los 250 y los 2000 metros de distancia a las carreteras, y para ello tendremos que hacer un par de buffers. El caso es que nuestra capa de carreteras es demasiado extensa para lo que necesitamos, y calcular los dos buffers para todas las líneas cuando no vamos a usar ni un 5% de todas ellas es malgastar el tiempo, por lo que antes de nada recortaremos la capa de carreteras usando la herramienta Clip con la capa Octantes_383_Dissolve generada en el paso anterior:


clip carreteras

A continuación calcularemos los buffers de esta nueva capa de carreteras denominada Carreteras_Clip con la herramienta Multiple Ring Buffer poniendo cuidado en las unidades de medida empleadas para el cálculo. Aunque los buffers se salgan de la hoja 383, esto no será un problema como veremos más adelante. De momento hemos conseguido reducir bastante el tamaño de los datos a gestionar.

Estos buffers han sido guardados en una nueva capa llamada Carreteras_Clip_MultipleRing. Bien, ahora tendremos que quedarnos solo con el buffer de los 2000 metros (el de color rosa) en una nueva capa llamada Carreteras_Clip_MultipleRingBuffe2000:


multiple ring buffer arcgis
roads erased arcgis

Nuestro modelo pasaría ahora a ser el siguiente:


model builder ejemplo 2

Dentro del municipio pero lejos del casco urbano

El siguiente paso es encontrar ese espacio dentro del municipio de Zaragoza que se encuentra a más de 2000 metros del casco urbano. Para ello tendremos que:

Para usar la herramienta Buffer habrá que introducir una capa en la que se encuentra aislado el casco urbano, por lo que previamente tendremos que hacer un Select usando la query «NOMBREMI» = ‘Zaragoza’ sobre la capa de Núcleos urbanos.


buffer arcgis

A diferencia del Multiple Ring Buffer, Buffer incluye la superficie del polígono a la que se le aplica dentro de la nueva entidad buffer, por lo que resulta perfecto para eliminar dicha superficie del término municipal con la herramienta Erase (previo aislamiento del municipio con otro Select):


buffer erase arcgis

Podemos visualizar este proceso de forma esquemática en nuestro modelo de Model Builder:


model builder ejemplo 3

Suelos impermeables solo

A continuación tendremos que aislar los suelos impermeables haciendo un Select al atributo de la tabla de la capa Permeabilidad que nos indique la permeabilidad de cada entidad. Bastará con la sencilla query «CODIGO» = ‘A’ para generar una nueva capa que tendremos también que disolver con Dissolve para quedarnos con una única entidad.


select y dissolve arcgis

Antes de hacer esto puede ser conveniente usar Clip con la hoja 383 para que el proceso se aplique solo a las entidades que se encuentran en el área que nos interesa, pero a diferencia del buffer esta operación no requiere tanto cálculo y de igual manera tendremos que hacer al final del trabajo con las capas vectoriales un Intersect que dejará fuera todo lo que no pertenezca a la hoja. Además así no enreversamos mucho el modelo.

La parte del modelo dedicada a esta capa quedaría así:


model builder ejemplo 4

¿Por qué usar Dissolve? Lo veremos más adelante, pero tener una única entidad nos ayudará a crear el ráster que introduciremos en la herramienta de superposición ponderada al final del proceso.

Intersección de los resultados anteriores y eliminación de las áreas protegidas

Llegados a este punto tenemos:


capas vectoriales arcgis

Pues bien, mediante un Intersect generaremos un nuevo polígono con las superficies en las que estas 4 capas coinciden:


intersect capas

Después borraremos con Erase aquellas zonas que se encuentren protegidas. La herramienta Erase requiere de una única capa de entrada, pero nosotros tenemos las áreas protegidas divididas en tres capas: una de Espacios Naturales Protegidos (ENP), otra de Zonas de Especial Protección para las Aves (ZEPA) y una última de Lugares de Interés Comunitario (LIC).

Tendremos que unir primero estas capas con la herramienta Union y después proceder con el Erase:


union arcgis

Antes de hacer el Union

erase arcgis

Superficie eliminada


El proceso de este apartado visto en Model Builder sería el siguiente:


model builder ejemplo 5

Tratamiento ráster

Ya tenemos una capa con una única entidad (formada por varios polígonos) que sintetiza las superficies válidas para el conjunto de datos vectorial. Lo único que queda por hacer antes de la superposición ponderada es:

Como indicamos al principio del post, reclasificar las imágenes es necesario para que representen valores discretos en vez de continuos y que así funcione la superposición ponderada (Weightened Overlay).

En el primer caso, aunque la capa solo tenga un único valor, seguirá siendo continua, por lo que tendremos que reclasificar. En el caso de las pendientes, además, necesitaremos hacer que los pixeles que representan una pendiente comprendida entre los 4 y los 40 grados sexagesimales pasen a tener valor 1 y se descarte el resto.

Rasterización de la capa vectorial

Para convertir una capa vectorial en ráster hay que usar la herramienta Feature to Raster. Los valores que tomará la imagen provendrán de un campo de la capa de entrada que indiquemos. Recomiendo que dicho campo escogido sea un entero para evitar problemas con la reclasificación. En este caso, como solo tenemos un polígono, si escogemos el campo OBJECTID este valor será 1, poniéndonos las cosas más fáciles:


feature to raster arcgis

Antes de reclasificarlo con la herramienta Reclassify es necesario calcular las estadísticas del ráster con la herramienta Calculate Statistics. El resultado es la misma imagen pero con los valores discretos. Como la imagen solo tiene valores 1, nos aseguraremos que en la reclasificación sigan tomando ese valor:


reclasificar arcgis
reclasificado arcgis

Esto es lo que se ha montado en el Model Builder:


model builder ejemplo 6

Crear el mapa de pendientes y reclasificarlo

Lo siguiente es coger el Modelo Digital del Terreno (MDT) y aplicarle la herramienta Slope para que se genere una nueva capa con las pendientes:


mdt pendientes arcgis

Hay que asegurarse que los valores de salida son en grados. Nuestra capa de pendientes va desde una pendiente mínima de 0º (plano) hasta los 67,41º aproximadamente. A continuación tendremos que reclasificar la imagen para que los píxeles con valores entre los 4 y los 40 grados pasen a tener valor 1 y el resto se descarten.


reclasificar pendientes arcgis
pendientes reclasificadas

Al igual que con la capa anterior, es necesario calcular las estadísticas antes de hacer la reclasificación. Lo podemos ver en el modelo:


model builder ejemplo 7

Superposición ponderada y resultado

Bien, ya tenemos los dos ráster que buscábamos para poder hacer la superposición ponderada con la herramienta Weightened Overlay. Lo que hará reclasificar estas dos capas para generar una nueva en la que dará valor 1 a aquellos píxeles que coincidan en el espacio y descartará al resto.


superposición ponderada arcgis

Estos píxeles serán el resultado de todos los pasos que hemos seguido a lo largo del post y nos dirán qué lugares cumplen todos los requisitos necesarios para localizar el vertedero:


resultado superposicion ponderada

Podéis descargar el modelo desde este enlace. Al completo quedaría de la siguiente forma:


model builder ejemplo completo

Por último, añadir que Model Builder y los Sistemas de Información Geográfica ofrecen múltiples vías para obtener un resultado, por lo que esta es sólo una forma más de hacer las cosas y el resultado se podría haber logrado de otro modo. Creo que esta es una manera ‘sencilla’ de resolver el problema que reduce los tiempos de procesado y la aparición de errores.

¿Cómo lo habrías hecho tú?