Interfaz roca-vegetación, un contraste digno de ser retratado

Generar archivos vectoriales

La información vectorial disponible es toda reducida a puntos, la forma más simple de expresión espacial y la que nos permite operar fácilmente fuera de aplicaciones de terceros. Así es como concebimos el espacio que nos rodea, lo que implica cierta cautela a la hora de interpretarlo

Reduciendo a puntos el espacio

A nivel de Sistema de Información Geográfica y de capas vectoriales, se utilizan puntos, líneas o polígonos para representar, a nivel espacial y de forma esquemática, distintos aspectos de la realidad. En algunos casos puede valer esta aproximación simplista, en otras se queda corta, pero es la forma que tenemos de aproximarnos a una realidad compleja.

En nuestro caso, con fines de procesar la información (todo lo que vamos a guardar en el tercer nivel organizativo), las capas vectoriales, tengan el origen que tengan, serán reducidas a puntos espaciales. Si ya están en origen representadas así, no implicará ningún cambio, pero en caso contrario si deberán realizarse algunas operaciones previas de pre-procesado, además de la ya comentada asociada a la reproyección geográfica.

Las capas lineales son discretizadas a distancias equidistantes, esto es, convertidas en puntos que están situados a la misma distancia a lo largo de la línea original (habitualmente 5 m). No confundir con las funciones que convierten a puntos basadas en los vértices, dado que el hecho de respetar la misma distancia será importante a la hora de poder calcular longitudes. Para ello, en Qgis podemos utilizar la función Points along geometry, la cual transfiere los mismos atributos a la capa de puntos que genera. Esta operación implica la adición de una nueva capa de identificadores numéricos (Add autoincremantal field), dado que cada uno de los puntos son ahora los elementos a tener en cuenta, en vez de las líneas.

Para el caso de los polígonos, la operación es más sencilla, pues solo debemos añadir la coordenada del centroide (en Qgis, hay que calcularlo primero como una capa de puntos para luego adicionar las coordenadas). La decisión de utilizar esta capa a nivel vectorial o bien como raster depende del tamaño de los polígonos, si son pequeños, las variaciones que se producen a su al rededor son lo suficientemente pequeñas para poder aceptar el error. Si, por el contrario, los polígonos son muy grandes, entonces no tiene sentido utilizar centroides. Por ejemplo, para el caso del DMQ tratamos las edificaciones a nivel de centroide pero los lotes (propiedades) se trabaja parcialmente como raster, dado que en algunos caso las propiedades pueden llegar a ser muy grandes, sobre todo en el entorno rural.

Una vez que tenemos todo reproyectado y convertido a puntos pasamos a definir el formato que será utilizado en el procesado.

El formato elegido para los análisis

Para el procesado de los datos se ha definido un formato de archivo que contiene el mínimo posible de información, que además es común a la mayoría de capas. ¿Por qué?, por varios motivos:

  • En primer lugar, como explicaba al principio, no quiero dar trabajo a las personas que crean la información. Un formato sencillo me permite trabajar sin depender de nadie y sin grandes requerimientos.

  • En segundo, facilitar las operaciones de lectura y procesado. Ten en cuenta que mi objetivo es analizar todo el entorno (rural y urbano) del término administrativo del que soy responsable. Según donde estés, los archivos pueden ser pequeños o algunos disponer de millones de puntos. Además, estas operaciones las quiero hacer en relativo poco tiempo, dando especial atención a los procesos de actualización (que actualizar algo no tome meses de trabajo, sino unas pocas horas). Para todo ello, un formato sencillo es idóneo.

  • Finalmente, la base que construimos es sencilla pero potente y, como verás, no perdemos la oportunidad de ir más allá con el doble análisis que realizamos cuando existen categorías.

Con todo ello, el formato se reduce a 4 atributos: ID, TIPO (numérico), XCOOR e YCOOR. Como ejemplo, sería:

id tipo xcoor ycoor

1 2 782003.10302639 9983614.20343672

2 2 784927.5145688329 9978194.41528856

3 2 798337.092085475 9982009.01850378

Un ID que representa un valor numérico que identifica a cada uno de los elementos contenidos en la capa geográfica de forma unitaria (sin duplicados) y que ya hemos visto que se puede utilizar la función Add autoincremantal field de Qgis para obtenerlo (una vez hemos aclarado que hacer con las capas lineales o poligonales).

El segundo es el elemento más complejo de todos desde el punto de vista de su obtención. Se refiere a los tipos o categorías en los que podemos clasificar o agrupar a cada uno de los elementos de una capa. Por ejemplo, una capa que represente los postes de luz puede operarse en conjunto, sin distinciones, o por la altura, si existe este atributo. Las alturas se organizarían en tipos (Al1:1, Al2:2, Al3:3, etc.) lo que daría la posibilidad, no solo de saber cuantos postes de luz hay en una UAE, sino también cuantos de ellos en función de su tipo o categoría. La única condición es que esté expresada de forma numérica, para lo cual tendremos que realizar una operación similar a la descrita en la generación de archivos raster, o sea, construir un diccionario y agregar el valor numérico (si estuviera en texto) como atributo. Para explicar este aspecto utilizamos un ejemplo con las farmacias de Quito cuyas rutas de almacenamiento, de acuerdo a lo explicado anteriormente, serían:

/home/usuario/GIS/HAZARD_MODELS/DATOS/QUITO_DMQ/QUITO_SEAE-DMQ/DATA_IN/DATA_VAR-VECTOR/SISTEMA/CSV/salud_farmacias-global_simple.csv

/home/usuario/GIS/HAZARD_MODELS/DATOS/QUITO_DMQ/QUITO_SEAE-DMQ/DATA_IN/DATA_VAR-VECTOR/SISTEMA/CAT/cat_salud_farmacias-global_simple.csv

Como vemos, cada uno se guarda en carpetas diferentes, dado que la naturaleza de los archivos también es distinta. En este caso, al ser una variable que está incluida en el procesado de tipo sistema, es esa ruta la que consideramos.

Para ver el formato de los archivos podemos descargarlos accediendo a los siguientes links:

Capa vectorial de farmacias

Diccionario de categorías de farmacias

Como vemos en el archivo de categorías, cada tipo está emparejado con un número. Además, se evitan los espacios en las cadenas de texto:

idx idval catshort catexpan

0 1 FARMACIA sincat

1 2 FARMACIA_CADENA sincat

2 3 FARMACIA_Y/O_LABORATORIO sincat

Hay que añadir que este mismo campo en ocasiones se utiliza para añadir otro tipo de información, por ejemplo, cuando preparamos la capa especial de vías para el tipo de análisis VIAS-VECTOR, en el se pone el ID a nivel de línea, de tal forma que sea fácil agrupar los resultados al final. En otras ocasiones puede ponerse otro tipo de valor numérico, dependiendo el cálculo que queramos realizar y cómo vamos a utilizar el archivo de salida.

Finalmente, debemos añadir las coordenadas tal como explicamos antes utilizando en Qgis la función Add geometry attributes.

Para obtener el formato final que buscamos con los 4 campos señalados deberemos utilizar el SIG, desde donde añadiremos todos o algunos de los atributos, para luego ordenarlos y eliminar el resto antes de exportar a formato *.csv separado por espacios, operación que puede llevarse a cabo con Refactor fields en Qgis. Sin embargo, también existe la posibilidad de que, una vez dispongamos de los 4 campos necesarios, pero donde el de categorías no haya sido todavía tratado (convertido a número), exportemos toda la tabla de atributos tal como está y luego utilicemos una aplicación de apoyo descrita en Scripts y Herramientas, para crear el archivo con el formato final. Esta opción está recomendada, sobre todo, cuando existen campos de categorías complejos y además el número de elementos en la capa es muy grande (por ejemplo, el viario).

Recordar que, en caso de no existir categorías, igualmente añadiremos la columna TIPO pero con valores 0 comunes a todos los registros. El lenguaje C nos obliga a mantener la compatibilidad del formato.

Doble análisis espacial

A modo de adelanto de lo que explicamos en las características de los análisis espaciales, la presencia de categoría es opcional según el archivo (muchos no tienen porque tenerla), siendo además solo relevante para el análisis RASTER-VECTOR. Su presencia o no se especifica en los archivos de configuración correspondientes, tal como indicamos en instalación y ejecución.

En definitiva, sino se dispone de ella, solo se lleva a cabo el análisis principal donde se evalúa cuantos de los elementos vectoriales están contenidos en cada una de las UAEs en las que se ha dividido el área de estudio (repetimos, solo en RASTER-VECTOR).

Si, por el contrario, se dispone de ella, deberá especificarse en el archivo de configuración, donde además se proporciona también el nombre del archivo que contiene el diccionario de categorías. Con ello estaremos haciendo un doble análisis en simultaneo donde, en el resultado principal, contaremos todos los elementos vectoriales que hay por UAE, para luego obtener un archivo específico donde distinguimos cuantos de ellos por categoría. La diferencia de estos archivos de salida será que en el principal, por ejemplo el total de farmacias, aparece junto con el resto de variables, mientras que en el secundario de categorías solo tenemos a las farmacias con una columna para cada tipo de farmacia y el total de elementos vectoriales. Eso amplía considerablemente las capacidades de cálculo de la ciudad, así como la posibilidad de realizar análisis más específicos. Aquí tendríamos un ejemplo del archivo de salida secundario para las farmacias realizado a nivel de división zonal administrativa del DMQ:

NUM ID CODE ARE PER X Y FARMACIA FARMACIA_CADENA FARMACIA_Y/O_LABORATORIO

0 1 0 157789.93 588321283.15 758789.712030 9975862.255320 95 88 110

1 2 0 157055.84 616223727.99 774753.204130 9998548.278240 49 77 98

2 3 0 156023.62 602701768.08 802017.842840 9977860.085590 15 18 11

3 4 0 53454.04 47849557.61 777177.577880 9976359.675240 54 36 63

4 5 0 194768.14 668104162.43 792836.926440 9954327.998030 45 20 38

5 6 0 150552.63 489283064.52 784606.380980 10017882.698970 6 0 5

6 7 0 68669.32 112816565.07 780165.420420 9982012.581070 109 165 191

7 8 0 46306.69 88548842.00 771220.548420 9965315.719910 90 35 84

8 9 0 56832.03 92129646.47 788492.149990 9975889.469900 16 33 28

9 10 0 158612.48 838829653.83 750372.087250 10013535.077110 1 1 0

10 11 0 55045.24 86478795.97 787430.836840 9990074.251390 38 35 47