Presentación y opciones | Caja de diálogo de la aplicación |
Sintaxis |
Esta aplicación generaliza las líneas de una capa de líneas (ARC o VEC de líneas).
Por defecto, la aplicación garantiza que el proceso de generalización de los arcos no produzca intersecciones entre ellos, colapsos de arcos individuales que forman un recinto cerrado (evitando que un anillo se convierta en un punto) u otros cambios que alteren las relaciones topológicas entre los objetos arco.
Es necesario que el archivo que contiene la capa de arcos a generar sea diferente del archivo original.
El programa trabaja con archivos en formato ARC y VEC de arcos. Si es necesario aplicarlo sobre un archivo en otros formatos, se puede importar con las herramientas del menú "Archivo | Importación".
En su funcionamiento recomendado como herramienta de generalización, el programa procede encadenando dos algoritmos:
En el primero de estos algoritmos para cada arco, el programa aplica a cada vértice un filtro de media móvil sobre su posición (sobre sus coordenadas XY); este filtro toma en consideración dos, cuatro o seis vértices vecinos en el mismo arco (uno, dos o tres a cada lado del vértice en cuestión, a elegir). Los vértices del extremo del arco (nodos) no modifican su posición en ningún caso. Por otra parte, cuando el número de vértices de la media móvil deseada es menor al número de vértices del polisegmento analizado, este polisegmento no resulta modificado (por ejemplo un arco de cinco vértices (contando los nodos) no resultará con ningún vértice modificado si aplicamos una media móvil de seis vértices). Además, nunca un vértice es movido más allá de la tolerancia indicada por el usuario (en las mismas unidades planimétricas de la capa, típicamente en metros). Nótese que la media móvil suaviza la línea cambiando la posición de los vértices pero no aumenta ni reduce su número.
A continuación se aplica el segundo algoritmo, que es el de Douglas-Peucker (que también tiene una tolerancia particular, llamada épsilon), el cual sí permite reducir el número de vértices, pero no modifica la posición de los vértices que hayan permanecido. Véase la referencia de 1973 para detalles sobre su funcionamiento.
Los dos algoritmos, sin embargo, pueden ser aplicados separadamente por intereses de investigación o de docencia, aunque, como se ha dicho, los mejores resultados se obtienen con la combinación consecutiva de ambos.
GenVLin también permite indicar que, si un objeto resultado interseca con cualquiera de los preexistentes, la generalización no sea aceptada y se haga un segundo intento de generalización, tratándolo en polisegmentos de ocho vértices si es posible; después de este segundo intento, si alguno de estos polisegmentos interseca con algún objeto preexistente, se adopta el polisegmento de línea original.
En el caso del filtro de media móvil, el usuario puede elegir los pesos que se aplican a cada uno los vértices anteriores y posteriores (es decir, se puede modular la influencia que tendrán las coordenadas de los vértices vecinos a lo largo del mismo arco). Las posibilidades son:
En caso de que la generalización no actúe, podría ser por culpa de que los arcos están formados por segmentos (2 vértices cada arco) unidos por nodos de línea, ya que el algoritmo de Douglas-Peuker funciona sobre cada arco, sin considerar posibles otros arcos conectados a él. En esta situación se puede valorar eliminar los nodos de línea con la opción 4 del programa LinArc antes de proceder a la generalización.
Para más información se puede consultar la siguiente referencia:
Douglas D, T Peucker (1973) Algorithms for the reduction of the number of points required to represent a digitized line or its caricature, The Canadian Cartographer, 10(2), 112122. doi:10.3138/FM57-6770-U75U-7727.
![]() |
Caja de diálogo de GenVLin |