La superposición de vectores es una operación (o clase de operaciones) en un sistema de información geográfica (SIG) para integrar dos o más conjuntos de datos espaciales vectoriales . Términos como superposición de polígonos , superposición de mapas y superposición topológica se utilizan a menudo como sinónimos, aunque no son idénticos en el rango de operaciones que incluyen. La superposición ha sido uno de los elementos centrales del análisis espacial en SIG desde su desarrollo temprano. Algunas operaciones de superposición, especialmente Intersect y Union, se implementan en todo el software SIG y se utilizan en una amplia variedad de aplicaciones analíticas, mientras que otras son menos comunes.
La superposición se basa en el principio fundamental de la geografía conocido como integración de áreas, en el que se pueden comparar directamente diferentes temas (por ejemplo, clima, topografía y agricultura) en función de una ubicación común. También se basa en las matemáticas de la teoría de conjuntos y la topología de conjuntos de puntos .
El enfoque básico de una operación de superposición de vectores consiste en tomar dos o más capas compuestas de formas vectoriales y generar una capa compuesta por nuevas formas creadas a partir de las relaciones topológicas descubiertas entre las formas de entrada. Una variedad de operadores específicos permite distintos tipos de entrada y distintas opciones sobre qué incluir en la salida.
Historia
Antes de la llegada de los SIG, el principio de superposición se había desarrollado como un método para superponer literalmente diferentes mapas temáticos (normalmente un mapa isarítmico o un mapa corocromático ) dibujados en una película transparente (por ejemplo, acetato de celulosa ) para ver las interacciones y encontrar ubicaciones con combinaciones específicas de características. [1] La técnica fue desarrollada en gran medida por arquitectos paisajistas . Warren Manning parece haber utilizado este enfoque para comparar aspectos de Billerica, Massachusetts , aunque sus relatos publicados solo reproducen los mapas sin explicar la técnica. [2] Jacqueline Tyrwhitt publicó instrucciones para la técnica en un libro de texto en inglés en 1950, que incluían: [3]
En la medida de lo posible, los mapas deben dibujarse en papel transparente, de modo que cuando estén completos, los mapas a la misma escala puedan ser "tamizados", es decir, colocados uno sobre otro por turno para poder notar las correlaciones o su ausencia. (p. 157)
Ian McHarg fue quizás el principal responsable de difundir ampliamente este enfoque de planificación en Design with Nature (1969), en el que dio varios ejemplos de proyectos en los que había sido consultor, como la planificación del transporte y la conservación de la tierra . [4]
El primer SIG verdadero, el Sistema de Información Geográfica de Canadá (CGIS), desarrollado durante la década de 1960 y completado en 1971, se basaba en un modelo de datos vectoriales rudimentario, y una de las primeras funciones era la superposición de polígonos. [5] Otro SIG vectorial temprano, el Sistema de Superposición de Información de Polígonos (PIOS), desarrollado por ESRI para el condado de San Diego, California en 1971, también admitía la superposición de polígonos. [6] Utilizaba el algoritmo Punto en polígono para encontrar intersecciones rápidamente. Desafortunadamente, los resultados de la superposición en estos primeros sistemas a menudo eran propensos a errores. [7]
Carl Steinitz, un arquitecto paisajista, ayudó a fundar el Laboratorio de Gráficos por Computadora y Análisis Espacial de Harvard , en parte para desarrollar SIG como una herramienta digital para implementar los métodos de McHarg. En 1975, Thomas Peucker y Nicholas Chrisman del Laboratorio de Harvard introdujeron el modelo de datos POLYVRT, uno de los primeros en representar explícitamente las relaciones topológicas y los atributos en datos vectoriales. [8] Visualizaron un sistema que pudiera manejar múltiples "redes poligonales" (capas) que se superpusieran calculando las Unidades Geográficas Mínimas Comunes (LCGU), el área donde se superponían un par de polígonos, con atributos heredados de los polígonos originales. Chrisman y James Dougenik implementaron esta estrategia en el programa WHIRLPOOL, lanzado en 1979 como parte del proyecto Odyssey para desarrollar un SIG de propósito general. [9] Este sistema implementó varias mejoras sobre los enfoques anteriores en CGIS y PIOS, y su algoritmo se convirtió en parte del núcleo del software SIG durante las décadas siguientes.
Algoritmo
El objetivo de todas las operaciones de superposición es tomar capas vectoriales y crear una capa que integre tanto la geometría como los atributos de las entradas. [10] Por lo general, ambas entradas son capas poligonales, pero se permiten líneas y puntos en muchas operaciones, con un procesamiento más simple.
Desde la implementación original, la estrategia básica del algoritmo de superposición de polígonos se ha mantenido igual, aunque las estructuras de datos vectoriales que se utilizan han evolucionado. [11]
Dadas las dos capas de polígono de entrada, extraiga las líneas de límite.
Parte A del craqueo : En cada capa, identificar los bordes compartidos entre los polígonos. Romper cada línea en la unión de los bordes compartidos y eliminar los duplicados para crear un conjunto de líneas conectadas topológicamente planas. En las primeras estructuras de datos topológicos, como POLYVRT y la cobertura ARC/INFO, los datos se almacenaban de forma nativa de esta manera, por lo que este paso era innecesario.
Parte B del agrietamiento : busque las intersecciones entre las líneas de las dos entradas. En cada intersección, divida ambas líneas. Luego, fusione las dos capas de líneas en un solo conjunto de líneas conectadas topológicamente en el plano.
Ensamblaje de la parte A : Busque cada anillo cerrado mínimo de líneas y utilícelo para crear un polígono. Cada uno de ellos será una unidad geográfica mínima común (LCGU), con un polígono "principal" como máximo de cada una de las dos entradas.
Ensamblaje de la parte B : Cree una tabla de atributos que incluya las columnas de ambas entradas. Para cada LCGU, determine su polígono padre de cada capa de entrada y copie sus atributos en la fila de la LCGU de la nueva tabla; si no estaba en ninguno de los polígonos de una de las capas de entrada, deje los valores como nulos.
Los parámetros suelen estar disponibles para permitir al usuario calibrar el algoritmo para una situación particular. Uno de los primeros fue la tolerancia de ajuste o difusa , una distancia umbral. Cualquier par de líneas que se mantengan dentro de esta distancia entre sí se colapsan en una sola línea, evitando polígonos estrechos no deseados que pueden ocurrir cuando las líneas que deberían ser coincidentes (por ejemplo, un río y un límite que debería seguirlo de iure ) se digitalizan por separado con vértices ligeramente diferentes. [12]
Operadores
El algoritmo básico se puede modificar de varias maneras para obtener diferentes formas de integración entre las dos capas de entrada. Estos diferentes operadores de superposición se utilizan para responder a una variedad de preguntas, aunque algunos se implementan y utilizan con mucha más frecuencia que otros. Los más comunes son muy análogos a los operadores de la teoría de conjuntos y la lógica booleana , y han adoptado sus términos. Al igual que en estos sistemas algebraicos, los operadores de superposición pueden ser conmutativos (que dan el mismo resultado independientemente del orden) y/o asociativos (más de dos entradas que dan el mismo resultado independientemente del orden en el que se emparejen).
Intersección (ArcGIS, QGIS, Manifold, TNTmips; AND en GRASS): el resultado incluye solo las LCGU donde las dos capas de entrada se intersecan (se superponen); es decir, aquellas con ambos "padres". Esto es idéntico a la intersección teórica de conjuntos de las capas de entrada. Intersección es probablemente el operador más comúnmente utilizado en esta lista. Conmutativo, asociativo
Unión (ArcGIS, QGIS, Manifold, TNTmips; o en GRASS): el resultado incluye todas las LCGU, tanto aquellas en las que las entradas se cruzan como aquellas en las que no lo hacen. Esto es idéntico a la unión teórica de conjuntos de las capas de entrada. Conmutativa, asociativa
Restar (TNTmips; Erase en ArcGIS; Difference en QGIS; no en GRASS; falta en Manifold): el resultado incluye solo las partes de polígonos en una capa que no se superponen con la otra capa; es decir, las LCGU que no tienen un padre de la otra capa. No conmutativo, no asociativo
Exclusiva o ( Diferencia simétrica en ArcGIS, QGIS; Unión exclusiva en TNTmips; XOR en GRASS; falta en Manifold): el resultado incluye las partes de polígonos en ambas capas que no se superponen; es decir, todas las LCGU que tienen un padre. Esto también se puede lograr calculando la intersección y la unión, luego restando la intersección de la unión, o restando cada capa de la otra, luego calculando la unión de las dos restas. Conmutativa, asociativa
Clip (ArcGIS, QGIS, GRASS, Manifold; Extraer dentro en TNTmips): el resultado incluye las partes de los polígonos de una capa donde se intersecan con la otra capa. El contorno es el mismo que la intersección, pero el interior solo incluye los polígonos de una capa en lugar de calcular las LCGU. No conmutativo, no asociativo
Cobertura ( Actualizar en ArcGIS y Manifold; Reemplazar en TNTmips; no en QGIS o GRASS): El resultado incluye una capa intacta, con las porciones de los polígonos de la otra capa solo donde las dos capas no se intersecan. Se llama "cobertura" porque el resultado parece como si una capa estuviera cubriendo a la otra; se llama "actualizar" en ArcGIS porque el uso más común es cuando las dos capas representan el mismo tema, pero una representa cambios recientes (por ejemplo, nuevas parcelas) que necesitan reemplazar las más antiguas en la misma ubicación. Se puede replicar restando una capa de la otra y luego calculando la unión de ese resultado con la primera capa original. No conmutativo, no asociativo
Dividir ( Identidad en ArcGIS y Manifold; no en QGIS, TNTmips o GRASS): el resultado incluye todas las LCGU que cubren una de las capas de entrada, excluyendo aquellas que solo están en la otra capa. Se llama "división" porque tiene la apariencia de una capa que se usa para dividir los polígonos de la otra capa. Se puede replicar calculando la intersección, luego restando una capa de la otra y luego calculando la unión de estos dos resultados. No conmutativo, no asociativo
Álgebra de superposición booleana
Uno de los usos más comunes de la superposición de polígonos es realizar un análisis de idoneidad , también conocido como modelo de idoneidad o evaluación de criterios múltiples. La tarea es encontrar la región que cumple con un conjunto de criterios, cada uno de los cuales puede representarse mediante una región. Por ejemplo, el hábitat de una especie de vida silvestre podría necesitar estar A) dentro de ciertos tipos de cobertura vegetal, B) dentro de una distancia umbral de una fuente de agua (calculada utilizando un buffer ) y C) no dentro de una distancia umbral de carreteras importantes. Cada uno de los criterios puede considerarse booleano en el sentido de la lógica booleana , porque para cualquier punto en el espacio, cada criterio está presente o no está presente, y el punto está en el área del hábitat final o no (reconociendo que los criterios pueden ser vagos, pero esto requiere métodos de análisis de idoneidad difusa más complejos). Es decir, en qué polígono de vegetación se encuentra el punto no es importante, solo si es adecuado o no. Esto significa que los criterios pueden expresarse como una expresión de lógica booleana, en este caso, H = A y B y no C.
En una tarea como esta, el procedimiento de superposición se puede simplificar porque los polígonos individuales dentro de cada capa no son importantes y se pueden disolver en una única región booleana (que consta de uno o más polígonos disjuntos pero no polígonos adyacentes) que representa la región que cumple con el criterio. Con estas entradas, cada uno de los operadores de lógica booleana corresponde exactamente a uno de los operadores de superposición de polígonos: intersección = AND, unión = OR, resta = AND NOT, or exclusivo = XOR. Por lo tanto, la región de hábitat anterior se generaría calculando la intersección de A y B y restando C del resultado.
Por lo tanto, este uso particular de la superposición de polígonos puede tratarse como un álgebra homomórfica a la lógica booleana . Esto permite el uso de SIG para resolver muchas tareas espaciales que pueden reducirse a una lógica simple.
Líneas y puntos
La superposición de vectores se realiza con mayor frecuencia utilizando dos capas de polígonos como entrada y creando una tercera capa de polígonos. Sin embargo, es posible realizar el mismo algoritmo (al menos en algunas partes) en puntos y líneas. [13] Las siguientes operaciones suelen ser compatibles con el software SIG:
Intersección: La salida tendrá la misma dimensión que la menor de las entradas: Puntos * {Puntos, Líneas, Polígonos} = Puntos, Líneas * {Líneas, Polígonos} = Líneas. Esto se utiliza a menudo como una forma de unión espacial , ya que fusiona las tablas de atributos de las dos capas de forma análoga a una unión de tablas. Un ejemplo de esto sería la asignación de estudiantes a distritos escolares. Debido a que es raro que un punto caiga exactamente sobre una línea u otro punto, la tolerancia difusa se utiliza a menudo aquí. QGIS tiene operaciones separadas para calcular una intersección de línea como líneas (para encontrar líneas coincidentes) y como puntos . [14]
Restar: La salida será de la misma dimensión que la entrada principal, y la capa de sustracción será de la misma dimensión o menor: Puntos - {Puntos, Líneas, Polígonos} = Puntos, Líneas - {Líneas, Polígonos} = Líneas
Recorte: si bien la entrada principal puede ser puntos o líneas, normalmente se requiere que la capa de recorte esté formada por polígonos, lo que produce la misma geometría que la entrada principal, pero solo incluye aquellas características (o partes de líneas) que se encuentran dentro de los polígonos de recorte. Esta operación también puede considerarse una forma de consulta espacial , ya que conserva las características de una capa en función de su relación topológica con otra.
Unión: normalmente, se espera que ambas capas de entrada tengan la misma dimensionalidad, lo que produce una capa de salida que incluye ambos conjuntos de entidades. ArcGIS y GRASS no permiten esta opción con puntos o líneas.
Implementaciones
La superposición vectorial está incluida de alguna forma en prácticamente todos los paquetes de software SIG que admiten el análisis vectorial, aunque la interfaz y los algoritmos subyacentes varían significativamente.
El software SIG de Esri ha incluido la superposición de polígonos desde la primera versión de ARC/INFO en 1982. [15] Cada generación de software de Esri (ARC/INFO, ArcGIS, ArcGIS Pro) ha incluido un conjunto de herramientas independientes para cada uno de los operadores de superposición (Intersección, Unión, Recorte, etc.). La implementación actual en ArcGIS Pro agregó recientemente un conjunto alternativo de herramientas de "Superposición por pares" (a partir de la versión 2.7) que utiliza el procesamiento paralelo para procesar conjuntos de datos muy grandes de manera más eficiente.
GRASS GIS (código abierto), aunque originalmente estaba basado en ráster, ha incluido la superposición como parte de su sistema vectorial desde GRASS 3.0 (1988). [16] La mayoría de los operadores de superposición de polígonos se recopilan en un solo comando v.overlay, con v.clip como un comando separado.
QGIS (código abierto) incorporó originalmente GRASS como su motor analítico, pero gradualmente desarrolló su propio marco de procesamiento, incluida la superposición de vectores.
Manifold System implementa superposición en su sistema de transformación.
La API de Javascript de Turf incluye los métodos de superposición más comunes, aunque estos operan en objetos poligonales de entrada individuales, no en capas enteras.
TNTmips incluye varias herramientas de superposición entre su proceso de análisis vectorial.
Referencias
^ Steinitz, Carl; Parker, Paul; Jordan, Lawrie (1976). "Superposiciones dibujadas a mano: su historia y usos potenciales". Arquitectura del paisaje . 66 (5 (septiembre)): 444–455.
^ Manning, Warren (1913). "El plan de la ciudad de Billerica". Arquitectura del paisaje . 3 : 108–118.
^ Tyrwhitt, Jacqueline (1950). "Estudios para la planificación". En APRR (ed.). Libro de texto de planificación urbana y rural . Architectural Press.
^ McHarg, Ian (1969). Diseño con la naturaleza . Wiley. pág. 34. ISBN0-471-11460-X.
^ Tomlinson, Roger (1968). "Un sistema de información geográfica para la planificación regional". En Stewart, GA (ed.). Evaluación de tierras: Documentos de un simposio de CSIRO . Macmillan of Australia. págs. 200–210.
^ Tomlinson, Roger F.; Calkins, Hugh W.; Marble, Duane F. (1976). Manejo informático de datos geográficos . UNESCO Press.
^ Goodchild, Michael F. (1978). "Aspectos estadísticos del problema de superposición de polígonos". Documentos de Harvard sobre sistemas de información geográfica . 6 .
^ Peucker, Thomas K.; Chrisman, Nicholas (1975). "Estructuras de datos cartográficos". El cartógrafo americano . 2 (1): 55–69. doi :10.1559/152304075784447289.
^ Dougenik, James (1979). "WHIRLPOOL: Un procesador geométrico para datos de cobertura de polígonos" (PDF) . Actas del Simposio Internacional sobre Cartografía y Computación (Auto-Carto IV) . 2 : 304–311.
^ Bolstad, Paul (2008). Fundamentos de SIG: primer texto sobre sistemas de información geográfica (3.ª ed.). Eider Press. pág. 352.
^ Chrisman, Nicholas R. (2002). Exploración de sistemas de información geográfica (2.ª ed.). Wiley. págs. 125–137.
^ Lo, CP; Yeung, Albert KW (2002). Conceptos y técnicas de los sistemas de información geográfica . Prentice Hall. pág. 211. ISBN0-13-080427-4.
^ Esri. «Intersección (análisis)». Documentación de ArcGIS Pro . Consultado el 29 de octubre de 2021 .
^ QGIS. "Intersecciones de líneas". Documentación de QGIS 3.16 .
^ Morehouse, Scott (1985). "ARC/INFO: Un modelo georrelacional para la información espacial" (PDF) . Actas del Simposio Internacional sobre Cartografía y Computación (Auto-Carto VII) : 388.
^ Westervelt, James (2004). "GRASS Roots" (PDF) . Actas de la Conferencia de usuarios de FOSS/GRASS . Consultado el 26 de octubre de 2021 .
Enlaces externos
Documentación del conjunto de herramientas de superposición en Esri ArcGIS
Documentación del comando v.overlay en GRASS GIS
Documentación de superposición de vectores en QGIS
Documentación de superposiciones de topología en Manifold