Presentación Caja de diálogo de la aplicación
Ejemplos gráficos Sintaxis

Presentación

Esta aplicación permite generar isolíneas (también llamadas curvas de nivel [especialmente en topografía] e isopletas) a partir de un modelo digital del terreno (MDT) (por ejemplo elevación, pluviometría, evapotranspiración, contaminación, etc).

El algoritmo trabaja, internamente, en dos fases:

En la fase de la generación de los vértices de isolíneas se recorre el ráster del MDT empezando desde la celda situada en la parte superior izquierda. Para cada celda, se mira su valor Z y se compara con el de la celda situada a la derecha y la situada debajo y, en caso que uno de los niveles de isolínea tenga que pasar entre estas celdas, se hace una interpolación para encontrar el punto donde debe situarse el vértice correspondiente. Una vez se han generado todos los vértices, se procede a la generación de las isolíneas. Desde el nivel de valor más bajo, y para cada nivel de isolínea, se va generando cada isolínea a partir de los vértices interpolados del MDT.

Los datos básicos necesarios para la generación de isolíneas son el ráster del MDT, la equidistancia deseada y el archivo vectorial de salida. El ráster del MDT debe ser un archivo en formato IMG y el tipo de datos puede ser cualquiera de los soportados por MiraMon (se puede consultar Descripción de los formatos ráster de MiraMon). El archivo de salida será un vector estructurado en formato ARC.

A partir del valor de la equidistancia y de los valores mínimo y máximo documentados en los metadatos del MDT, se calcularán los diferentes niveles de isolíneas buscando múltiplos desde el valor origen que, en el en caso que el usuario no lo asigne, por defecto, será 0. En caso que el mínimo valor del MDT no corresponda a un valor Z de una isolínea, se escogerá el valor Z de la primera isolínea que esté por encima del mínimo del MDT; por ejemplo, si el mínimo del MDT es 230 m y la equidistancia es 100 m, se escogerá el valor mínimo de 300 m. En caso que el máximo valor del MDT no corresponda a un valor Z de una isolínea, se escogerá el valor Z de la primera isolínea que esté por debajo del máximo del MDT; por ejemplo, si el máximo de el MDT es 679 m y la equidistancia es 200 m, se escogerá el valor máximo de 600 m. Existe la posibilidad que el usuario pueda escoger entre qué valores Z quiere generar isolíneas mediante los parámetros opcionales de mínimo y máximo valor Z de las isolíneas.

En caso que se desee generar isolíneas de dos o más MDT colindantes, el algoritmo permite limitar la búsqueda de vértices de isolíneas hasta una distancia de medio píxel de los bordes del MDT. En este caso, es necesario que haya un recubrimiento común de un píxel entre los MDT a fin de conseguir una perfecta coincidencia en los procesos de generación de isolíneas en ambos archivos en los puntos de contacto entre ellos. Para un recubrimiento correcto, es necesario asignar el mismo índice de densificación y la misma tolerancia del valor Z, en caso que el valor de la celda del MDT coincida con el valor Z de una de las isolíneas, para cada MDT colindante.

El algoritmo permite generar isolíneas obtenidas desde un MDT densificado a mayor resolución. Esta opción densifica dinámicamente cada 2 filas para generar los vértices de las isolíneas. Para que este proceso se realice satisfactoriamente, el índice de densificación debe ser necesariamente un número entero e impar entre 1 y 9. Un índice 1 en realidad equivale a no densificar, y un índice 9 genera curvas con muchos más vértices, lo que implica un tiempo de cálculo también mayor.

Para evitar conflictos en las isolíneas (isolínea de uno o dos vértices, isolíneas que no pueden cerrar,... especialmente en zonas llanas), es necesario aplicar una tolerancia del valor Z; ésta corresponde al valor que se añade o se resta al valor de una celda que tenga el mismo valor Z que uno de los niveles de isolíneas. El valor de la tolerancia corresponde a partes por mil en relación al valor de la equidistancia y puede valer entre 0.1 y 100, o entre -0.1 y -100 si deseamos bajar infinitesimalmente la cota. La tolerancia por defecto es -1, es decir, se reduce 1 mm si la equidistancia es de 1 m.

Una vez generadas las isolíneas, se puede aplicar una generalización basada en el algoritmo de Douglas-Peucker (1973), lo que implica una simplificación de las isolíneas que reduce sustancialmente su número de vértices y hace, pues, que el archivo sea de menor tamaño, sin que esto signifique por lo general un decremento sensible de la calidad. Nótese que no es una operación de suavizado de las curvas; si desea un suavizado importante se debe aplicar la aplicación GenVLin al resultado, pero controlando que el suavizado no llegue a generar intersecciones de curvas (lo que se puede hacer verificando que no aparezcan nodos típicos y que sólo haya nodos finales y nodos de anillo).

En caso que existan isolíneas conflictivas, esta aplicación puede generar, si se pide, un archivo vectorial estructurado de puntos con los extremos de estas isolíneas. En caso que no haya ningún punto problemático y todas las isolíneas se hayan generado satisfactoriamente, no se creará este archivo.

Algunos trucos finales, en caso de que sean necesarios:

Para más información se puede consultar la siguiente referencia:


Caja de diálogo de la aplicación

Caja de diálogo de MDTIso


Ejemplos gráficos


Ejemplo de la generación de isolíneas.

Ejemplo de la generación de isolíneas sin densificación (izquierda) y con densificación (derecha).

Ejemplos de sintaxis:

MDTISO C:\FicheroMDT.img C:\FicheroIsolinias.arc 20 /EQUID_MESTRA=100 /ZMIN=128 /ZMAX=763 /ZBASE=100 /DENSIFICACIO=3 /MIGPIXEL /GENERALITZACIO /PROBL=C:\FicheroProbls.pnt
MDTISO C:\FicheroMDT.img C:\FicheroIsolinias.arc 20 /EQUID_MESTRA=100 /ZMIN=128 /ZMAX=763 /ZBASE=100 /DENSIFICACIO=3 /GENERALITZACIO /ZINCREM=10 /PROBL=C:\FicheroProbls.pnt


Sintaxis

Sintaxis:

Parámetros:

Modificadores: