17.23. Ejecución iterativa de algoritmos

Nota

Esta lección muestra una forma diferente de ejecutar algoritmos que usan capas vectoriales, al ejecutarlos repetidamente, iterar sobre las entidades de una capa vectorial de entrada

Ya sabemos que el modelador gráfico, es una forma de automatizar las tareas de procesamiento. Sin embargo, en algunas situaciones, el modelador puede que no sea lo que necesitemos para automatizar una tarea dada. Veamos una de esas situaciones y la forma de resolver fácilmente utilizando una funcionalidad distinta: la ejecución iterativa de algoritmos.

Abra los datos correspondientes de este capitulo. Debe tener un aspecto como este.

../../../_images/project1.png

Usted reconocerá nuestro DEM conocido de los capítulos anteriores y un conjunto de cuencas extraídos de ella. Imagine que usted necesita cortar el DEM en varias capas más pequeñas, cada una de ellas contiene sólo los datos de elevación correspondientes a una sola cuenca. Eso será útil si más adelante desea calcular algunos parámetros relacionados con cada cuenca, como su elevación media o curva hipsográfica.

Esta puede ser una tarea larga y extensa, especialmente si el numero de cuencas es grande. Sin embargo, es una tarea que se puede automatizar fácilmente, como veremos más adelante.

El algoritmo que se utilizará para cortar una capa ráster con una capa de polígono llamada Clip grid with polygon y tiene el diálogo de parámetros siguiente.

../../../_images/clip3.png

Puede ejecutarlo utilizando la capa de cuencas y el DEM como entrada, y obtendrá el siguiente resultado.

../../../_images/full_clip.png

Como puede ver, se utiliza el área cubierta por todos los polígonos de cuenca.

Puede tener el DEM recortado con sólo una sola cuenca, seleccionando la cuenca deseada y luego ejecutar el algoritmo como lo hicimos antes.

../../../_images/selection.png

Dado que solo se utilizan las entidades seleccionadas, sólo el polígono seleccionado se utilizará para recortar la capa ráster.

../../../_images/selection_clip.png

Hacer esto para todas las cuencas producirá el resultado que estamos buscando, pero no se ve como una forma practica de hacerlo. En su lugar, vamos a ver cómo automatizar esta rutina seleccionar y cortar.

Primero que todo, quite la selección anterior, por lo que todos los polígonos se utilizarán de nuevo. Ahora abra el algoritmo Clip grid with polygon y seleccione las mismas entradas que antes, pero esta vez haga clic sobre el botón que se encuentra a la derecha de la capa vectorial de entrada, donde se ha seleccionado la capa de cuencas.

../../../_images/iterate_button.png

Este botón hará que la capa de entrada seleccionada para ser dividida en tantas capas como entidades se encuentran en ella, cada uno de ellos contiene un solo polígono. Con eso, el algoritmo se llama varias veces, una para cada una de esas capas de un solo polígono. El resultado, en lugar de sólo una capa de trama en el caso de este algoritmo, será un conjunto de capas de mapa de bits, cada uno de ellos correspondiente a una de las ejecuciones del algoritmo.

Aquí esta el resultado que se obtendrá si se ejecuta el algoritmo de recorte como se ha explicado.

../../../_images/result_iterative.png

Para cada capa, la paleta de color blanco y negro, (o cualquier paleta que este utilizando), se ajusta de manera diferente, desde valores un mínimo a sus valores máximos. Esa es a razón por el cual se pueden ver las diferentes piezas y los colores no parecen coincidir en la frontera entre las capas.Los valores, sin embargo, hacen juego.

Si introduce un nombre de archivo de salida, los archivos resultantes serán nombrados utilizando ese nombre de archivo y un número correspondiente para cada iteración como sufijo