Presentación y opciones Caja de diálogo de la aplicación
Sintaxis

Presentación y opciones

Esta aplicación generaliza las líneas de una capa de líneas (ARC o VEC de líneas).

En la opción de creación de la pirámide de generalización de un fichero de arcos, solo es necesario indicar el fichero de entrada, en formato ARC. Si la aplicación detecta que es necesario crear la pirámide (en ficheros con densidades muy bajas no tiene sentido generarla), creará un directorio con el nombre del fichero de entrada, sin la extensión, concatenado con el sufijo A_General (A indica que corresponde a un fichero de arcos y General identifica que se trata de un directorio de generalización). Dentro de este directorio se generarán uno o varios ficheros generalizados con el prefijo #_, donde # es el número de nivel de la pirámide, empezando por 0. Cada nivel de la pirámide se creará a partir del fichero del nivel superior, al que se aplicarán dos generalizaciones: una primera generalización de Douglas-Peucker y una segunda generalización de media móvil + Douglas-Peucker. La tolerancia aplicada en estas generalizaciones dependerá de las características del fichero de origen.

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:


Caja de diálogo de la aplicación

Caja de diálogo de GenVLin


Sintaxis:

Opciones:

Parámetros:

Modificadores: