Cómo funciona Simplificar línea y Simplificar polígono

Las herramientas Simplificar línea, Simplificar polígono y Simplificar bordes compartidos simplifican las líneas y polígonos para reducir la complejidad de las entidades y mostrarlas a escalas más pequeñas. Las herramientas funcionan identificando y eliminando vértices relativamente insignificantes a fin de reducir la complejidad de las entidades y manteniendo a la vez el carácter y la forma inherentes. Existen distintos algoritmos de simplificación, que generarán resultados ligeramente diferentes.

Algoritmos de simplificación

Retener puntos críticos (Douglas-Peucker)

La opción Retener puntos críticos (Douglas-Peucker) (algorithm='POINT_REMOVE' en Python) proporciona un algoritmo de simplificación de líneas rápido y sencillo. Mantiene los puntos críticos que representan la forma esencial de una línea y quita el resto de los puntos. El algoritmo comienza al conectar los extremos de una línea con una línea de tendencia. La distancia de cada vértice hasta la línea de tendencia se mide perpendicularmente. Los vértices situados más cerca de la línea que la tolerancia se eliminarán. A continuación, la línea se divide por el vértice más alejado de línea de tendencia, lo que crea dos nuevas líneas de tendencia. Los vértices restantes se medirán con respecto a estas líneas y el proceso continuará hasta que todos los vértices dentro de la tolerancia queden eliminados. Esta opción se basa en el algoritmo definido por Douglas y Peucker (1973).

Retener puntos críticos (Douglas-Peucker) resulta útil para los datos de compresión y para eliminar los detalles redundantes; no obstante, es posible que la línea resultante contenga ángulos pronunciados y picos poco agradables que reduzcan la calidad cartográfica de la línea. Utilice Retener puntos críticos (Douglas-Peucker) para cantidades relativamente pequeñas de compresión o reducción de datos, y en aquellas ocasiones en las que no sea necesaria una calidad cartográfica elevada.

Retener curvaturas críticas (Wang-Müller)

El algoritmo Retener curvaturas críticas (Wang-Müller) (algorithm='BEND_SIMPLIFY' en Python) aplica técnicas de reconocimiento de formas que detectan giros, analiza sus características y elimina los elementos insignificantes. Una entidad lineal se puede ver compuesta de una serie de curvaturas (Wang, 1996), cada una tiene el mismo signo (positivo o negativo) para los ángulos de inflexión en sus vértices consecutivos. Varias propiedades geométricas de cada curvatura se comparan con las de medio círculo de referencia, cuyo diámetro es igual a la tolerancia de simplificación especificada. Estas medidas determinan si una curvatura se mantiene o se elimina, lo que significa que se reemplaza la curvatura por su línea base (la línea que conecta los extremos de la curvatura). La simplificación se realiza de forma iterativa de manera que las curvaturas más pequeñas desaparezcan en los primeros procesos y formen curvaturas más grandes. La línea resultante sigue con mayor exactitud la forma principal de la línea original y muestra mejor calidad cartográfica que desde Retener puntos críticos (Douglas-Peucker). Esta opción se basa en el algoritmo definido por Wang y Müller (1998).

Retener áreas efectivas ponderadas (Zhou-Jones)

El algoritmo Retener áreas efectivas ponderadas (Zhou-Jones) (algorithm='WEIGHTED_AREA' en Python) funciona identificando primero triángulos de un área efectiva para cada vértice. Seguidamente, estos triángulos se ponderan mediante un conjunto de métricas a fin de comparar lo llano, el sesgo y la convexidad de cada área. Las áreas ponderadas determinan la eliminación de sus vértices correspondientes para simplificar la línea manteniendo a la vez la mayor cantidad de carácter posible. Esta opción se basa en el algoritmo definido por Zhou y Jones (2005).

Conservar áreas efectivas (Visvalingam-Whyatt)

El algoritmo Conservar áreas efectivas (Visvalingam-Whyatt) (algorithm='EFFECTIVE_AREA' en Python) funciona asignando una importancia relativa a vértices en función del tamaño de un triángulo formado por cada vértice y sus dos vecinos, después, elimina primero los vértices menos importantes. Eliminar los vértices asociados con los triángulos más pequeños causará el menor impacto en el carácter de la línea o contorno. El proceso es iterativo, de modo que, tras dar un primer paso para eliminar vértices, los triángulos se vuelven a calcular a partir del resto de vértices y el proceso continúa. Esta opción se basa en el algoritmo definido por Visvalingam y Whyatt (1992).

Mantener la integridad topológica

Las herramientas garantizan que la topología se mantiene durante el procesamiento. No se introducirán errores topológicos. En aquellos casos en los que la simplificación, de otro modo, resultaría en una infracción de topología, la herramienta primero intenta dividir la geometría en dos partes y, a continuación, simplificarlas de forma independiente. Es un proceso recursivo. Las subpartes se pueden dividir una y otra vez. Si la topología no se puede mantener utilizando este enfoque, la entidad se coloca en espera y se vuelve a visitar después de procesar entidades vecinas para ver si así se puede mantener la topología.

Heredado:

En versiones anteriores de estas herramientas, era posible que se generaran errores topológicos durante el procesamiento. Se incluían parámetros para identificar y, opcionalmente, resolver estos errores. Las herramientas ya no introducen errores topológicos, lo que elimina la necesidad de comprobar y resolver. Los parámetros Verificar errores topológicos (error_checking_option en Python) y Resolver errores topológicos (error_resolving_option en Python) siguen incluidos en la sintaxis de las herramientas a efectos de compatibilidad con los scripts y modelos, pero ahora son no-funcionales y están ocultos en el cuadro de diálogo de la herramienta.

El campo SimPgnFlag (en el caso de Simplificar polígono) o el campo SimLnFlag (en el caso de Simplificar línea) se agrega a la clase de entidad de salida para marcar los errores topológicos que había en la clase de entidad de entrada. En versiones anteriores de estas herramientas estos campos se utilizaban para marcar los errores topológicos que se introducían mediante el procesamiento de la herramienta en su lugar. Además, durante la resolución de la topología, en versiones anteriores de las herramientas se modificaba la tolerancia por entidad y estos valores se almacenaban en los campos MinSimpTol y MaxSimpTol. En la implementación actual, los valores de estos campos de tolerancia serán los mismos y equivaldrán a la tolerancia especificada en el parámetro Tolerancia de simplificación. Asegúrese de modificar los modelos o scripts existentes basados en cualquiera de estos campos.

Utilice el parámetro Capas de barrera de entrada para definir una o varias clases de entidad que contienen entidades que no deberían cruzarse con líneas o polígonos simplificados. Entre los ejemplos se incluyen lagos y ríos en los que las carreteras simplificadas no deberían ser alturas de puntos de elevación u otros marcadores topográficos que las líneas de contorno no pueden cruzar, o límites administrativos, en los que los datos simplificados deben mantenerse dentro por completo.

Analizar y mejorar los resultados

Las herramientas simplifican contornos de líneas y polígonos de uno en uno; cuanto más larga sea la línea o contorno que se ejecuta, más agradables serán los resultados. Tenga en cuenta esto cuando adquiera o construya los datos de origen. Siempre que sea posible, posicione los extremos de las líneas en las secciones largas y suavizadas de las líneas, en lugar de hacerlo en las secciones con ángulos más pronunciados.

Los problemas de topología en la clase de entidad de entrada (entidades que se superponen con otras entidades sin un punto de intersección) se marcan en un campo en la clase de entidad de entrada. Este campo se llama SimPgnFlag en el caso de Simplificar polígono y SimLinFlag en el caso de Simplificar línea. El valor 1 en estos campos indica que existía un error topológico para esa entidad en la clase de entidad de entrada.

A modo de referencia, un campo de Id. correspondiente al Id. de objeto de la entidad de entrada también se agrega a la clase de entidad de salida. El campo se llama InPoly_FID en el caso de la herramienta Simplificar polígono o InLine_FID en el caso de la herramienta Simplificar línea. Además, se agregan los campos MinSimpTol y MaxSimpTol a la salida para almacenar la tolerancia que se utilizó.

Se crea una clase de entidad de salida de puntos derivada correspondiente a las entidades de puntos que representa o bien los extremos de las líneas simplificados a líneas de longitud cero en el caso de Simplificar línea) o bien los polígonos simplificados a polígonos de área cero o a un polígono más pequeño que el área mínima, tal y como se define en el parámetro Área mínima en el caso de Simplificar polígono, o posiblemente ambos en el caso de Simplificar bordes compartidos. Un polígono simplificado que se ha reducido a una geometría vacía o a un polígono más pequeño que el área mínima, tal y como se define en el parámetro Área mínima.

Trabajar con datasets grandes

Para el manejo topológico de estas herramientas es necesario que se consideren varias entidades simultáneamente. Cuando trabaja con datasets grandes, puede superar los límites de memoria. En este caso, plantéese la posibilidad de procesar los datos de entrada mediante particiones. Puede hacerlo identificando una clase de entidad poligonal relevante en la configuración de entorno Particiones cartográficas que abarque y subdivida los datos de entrada. Las porciones de datos, definidas mediante límites de partición, se simplificarán secuencialmente, pero la clase de entidad de salida será sin fisuras y consistente en los bordes de la partición. Consulte Generalizar datasets grandes usando particiones para obtener más información.

Referencias

Douglas, David H. y Thomas K. Peucker. 1973. "Algorithms for the Reduction of the Number of Points Required to Represent a Digitised Line or its Caricature". The Canadian Cartographer, 10(2): 112–122.

Wang, Zeshen y Jean-Claude Müller. 1998. "Line Generalization Based on Analysis of Shape Characteristics". Cartography and Geographic Information Systems 25(1): 3–15.

Zhou, Sheng y Christopher B. Jones. 2005. "Shape-Aware Line Generalisation with Weighted Effective Area". In Developments in Spatial Handling: 11th International Symposium on Spatial Handling, editado por Peter F. Fisher, 369–80.

Visvalingam, M. y J. D. Whyatt. 1992. "Line Generalisation by Repeated Elimination of the Smallest Area," Cartographic Information Systems Research Group (CISRG) Documento de trabajo 10, The University of Hull.

Temas relacionados