La unión hace la fuerza
Hace unas semanas en mi trabajo, acabé teniendo la ineludible necesidad de calcular la matriz de adyacencia de un shapefile de polígonos que representan las manzanas de una ciudad ecuatoriana determinada. Pero, ¿una matriz de adyacencia? ¿Qué es una matriz de adyacencia? De manera formal, una matriz de adyacencia es una matriz cuadrada binaria (sus elementos sólo pueden ser unos o ceros), que se utiliza para representar relaciones binarias entre los elementos de un determinado conjunto.
Una relación binaria es una relación en la que para cualquier par de elementos, la relación que poseen se puede categorizar entre dos únicos y mutuamente exclusivas categorías. Por ejemplo, si el conjunto de elementos es Personas de una ciudad, la relación binaria puede ser "familiar de", donde 1 hace referencia a que si es familiar, mientras que el 0 no. Otro ejemplo, si el conjunto de elementos es Países de mundo, la relación binaria puede ser "tiene frontera común con".
Para mi necesidad ineludible particular, la relación binaria también es "tiene frontera común con". Pero, al ser un shapefile de manzanas, estas no tienen una frontera en común, sino una "calle en común". Como seguramente pudieron intuir, las relaciones topológicas entre los elementos son indispensables para poder construir una relación binaria del tipo que necesitamos. ¡Qué grata sorpresa!
En todos los años de mi carrera de pregrado, siempre vi a la topología como el soporte de otras áreas de interés matemático, como el Análisis Funcional o el Álgebra. Nunca pensé encontrarla nuevamente, cara a cara, de esta manera tan tangible a través de un SIG. Para los que saben dónde mirar, la topología abraza, protege, da valor y potencialidad a un "simple" conjunto de polígonos. Pero este proceso de catarsis interno no resolvía por si solo mi ineludible necesidad.
Luego de revisar nuevamente mis fuentes de datos, descartamos usar el shapefiles de calles debido a inconsistencias topológicas (¡Hola! otra vez). El reto ahora se resumen en la siguiente pregunta, ¿cómo construir una aproximación de las manzanas a partir de las manzanas reales pero que posean frontera en común? O, desde otro punto de vista ¿cómo juntar las manzanas "rellenando las calles"?.
Después de un largo y minucioso proceso de investigación, llegamos a la conclusión que no se puede extraer la matriz de adyacencia la magnitud necesaria (no olviden que estamos hablando de escala a nivel de ciudad) en los SIG a mi disposición, los cuales a lo sumo ofrecen la posibilidad de realizar una selección sobre los elementos adyacentes a un elemento determinado. Esto únicamente complicaba más las cosas.
Pero la unión hace la fuerza. Gracias al trabajo de Roger Bivand, el paquete spdep de R contiene una colección de funciones para crear diferentes tipos de matrices a partir de relaciones topológicas en el conjunto de datos. ¡Voilá! Solo quedaba por resolver el problema de la no-adyacencia de las manzanas. Luego de un par de noches sin dormir, llego la inspiración. A partir de la construcción de polígonos de Voronoi se pudo obtener la tan ansiada aproximación.
![](https://static.wixstatic.com/media/f790c6_38fa7b038a2845879c0bc8394a2b28c5~mv2.png/v1/fill/w_980,h_592,al_c,q_90,usm_0.66_1.00_0.01,enc_auto/f790c6_38fa7b038a2845879c0bc8394a2b28c5~mv2.png)
Porción de ciudad que muestra las manzanas a ser aproximadas.
![](https://static.wixstatic.com/media/f790c6_7fcd378bdd1b4c1a955d1c2f4625698c~mv2.png/v1/fill/w_980,h_590,al_c,q_90,usm_0.66_1.00_0.01,enc_auto/f790c6_7fcd378bdd1b4c1a955d1c2f4625698c~mv2.png)
Aproximación de las manzanas obtenida a partir de la construcción de polígonos de Voronoi.
A pesar de la gran alegría y reconfortante sentimiento de satisfacción, el trabajo apenas empezaba, sin antes haber confirmado mis sospechas. Juntos, R y GIS hacen la fuerza. Son la fuerza.
Paquete spdep por Roger Bivand.