相信大家已经看过了小编做过的模型构建器的介绍及实践,没看过的可以回顾下《ArcGIS模型构建器的使用》。这个时候就有人问了,上次建的模型虽然能极大程度上简化了单个任务的流程,比如在双评价中,就可以将每一个评价都做成模型,最终只需输入数据和参数,一键生成结果,但是假如我有多个同样的任务,难道还要一次一次的去做吗?
诶,这时就必须转换一下思路了,为了避免重复冗余的操作,我们可以批量进行啊,而迭代器就很好的帮我们解决了这个问题。顾名思义,迭代器的作用就是为了让我们的任务在设定的条件下循环进行直到达到我们想让它停止运行的条件(瞎掰的,信则有,不信则无)。
废话少说,今天小编就以批量裁剪为例,跟大家讲述一下迭代器的用法。文章将从多个矢量裁一个栅格和一个矢量裁多个栅格两种情况进行讲解。
A
多个矢量裁一个栅格
多个矢量裁剪一个栅格主要指的是有多个矢量范围shp文件去裁出想要的目标数据,例如下面这种情况:
图中需要利用abc三个图层分别对栅格进行裁剪得到相应矢量范围的栅格数据,当矢量文件少的时候还好,可以一个一个去裁,但要是有好几百个这样的矢量文件呢,当然有一种方法也可以实现,就是将这些矢量文件合并成1个文件,然后利用分割面的工具将对栅格进行分割。不过这样做的话也不能一劳永逸,要想实现工具自由,还得培养批量处理的思想。
操作步骤:
1.首先,按照之前的教程建立一个裁剪的模型,并右键工具获取变量——从参数——输入栅格,并将其设置为模型参数(放个p)。
2.然后插入一个迭代器,类型选择要素类(矢量范围属于要素类,可根据模型需求对迭代器进行选择)。
3.迭代器插入后,将迭代器生成的要素类连接至裁剪工具,做了这一步后还没完,关键在这里,双击裁剪工具,设置输出文件命名为“%名称%”,这里的名称指的是迭代器所生成的名称,然后设置好其他的参数,如使用输入要素裁剪几何、环境设置等。
4.右键迭代器获取变量——从参数——工作空间或要素数据集,并将其设置为模型参数。
5.保存并运行模型
将模型保存在工具箱下面,具体步骤可参照之前的教程后,双击运行,将矢量范围都放在一个文件夹中,设置模型参数后点击确定,等待结果即可。
B
一个矢量裁多个栅格
刚刚讲了多个矢量范围裁剪一个栅格的情况,那么一个矢量裁剪多个栅格的情况其实就是改变一下迭代器的类型,让其对多个栅格图层进行迭代选择。
操作步骤:
将迭代器换成迭代栅格数据即可,其余步骤同上,双击运行,查看结果。
另外,模型还可以保存为Python脚本文件,所有有时候我们不用懂太多程序语言也能写出像模像样的代码,就这么神奇!
你看,是不是很神奇!
好啦!今天的分享就到这里,希望各位客官喜欢!我们下期再见!
往期精彩推荐
扫描二维码获取
更多精彩
凌晨GIS