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.

The algorithm to use for clipping a raster layer with a polygon layer is called Clip raster with polygons, and has the following parameters dialog.

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

First of all, remove the previous selection, so all polygons will be used again. Now open the Clip raster with polygon algorithm and select the same inputs as before, but this time click on the button that you will find in the right–hand side of the vector layer input where you have selected the watersheds layer.

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