17.24. 算法的迭代执行

备注

本课介绍了一种不同的执行使用矢量图层的算法的方法,即重复运行这些算法,迭代输入矢量图层中的要素

我们已经知道模型设计器,它是自动化处理任务的一种方法。然而,在某些情况下,建模器可能不是我们自动化给定任务所需的。让我们来看看其中的一种情况,以及如何使用不同的功能轻松地解决它:算法的迭代执行。

打开本章对应的数据。它应该是这样的。

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

您将从前面的章节中认出我们著名的DEM和从中提取的一组分水岭。假设您需要将DEM剪切为几个较小的层,每个层仅包含对应于单个流域的高程数据。如果以后要计算与每个分水岭相关的某些参数,例如其平均高程或地形曲线,这将非常有用。

这可能是一项漫长而乏味的任务,特别是在流域数量很大的情况下。然而,正如我们将看到的那样,这是一项可以很容易地自动化的任务。

用于裁剪具有面图层的栅格图层的算法称为 Clip raster with polygons ,并具有以下参数对话框。

../../../_images/clip2.png

您可以使用流域图层和DEM作为输入来运行它,您将获得以下结果。

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

如您所见,使用了所有分水岭多边形覆盖的区域。

只需选择所需的分水岭,然后像我们之前那样运行算法,就可以只用一个分水岭来裁剪DEM。

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

由于仅使用选定的要素,因此将仅使用选定的多边形来裁剪栅格图层。

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

对所有分水岭这样做将产生我们正在寻找的结果,但这看起来不是一种非常实用的方法。相反,让我们看看如何将其自动化 select and crop 例行公事。

首先,删除之前的选择,这样所有的多边形都将被再次使用。现在打开 Clip raster with polygon 算法并选择与前面相同的输入,但这一次单击您将在向量层输入的右侧找到的按钮,在那里您已经选择了分水岭层。

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

该按钮将使选定的输入层被分割成与其中找到的要素一样多的层,每个层都包含一个单独的多边形。这样,算法将被重复调用,每个单多边形层都调用一个。结果将是一组栅格层,而不是在该算法的情况下只有一个栅格层,每个栅格层对应于该算法的一次执行。

以下是如果您按照说明运行裁剪算法将获得的结果。

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

对于每个层,黑白调色板(或您正在使用的任何调色板)从其最小值到其最大值都会进行不同的调整。这就是为什么你可以看到不同的部分,层之间的边界颜色似乎不匹配的原因。然而,价值观确实是匹配的。

如果输入输出文件名,则将使用该文件名和对应于每个迭代的数字作为后缀来命名生成的文件。