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

We already know the graphical modeler, which is one way of automating processing tasks. However, in some situations, the modeler might not be what we need to automate a given task. Let’s see one of those situations and how to easily solve it using a different functionality: the iterative execution of algorithms.

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

You can run it using the watersheds layer and the DEM as input, and you will get the following result.

../../../_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