迭代是指以一定的自动化程度多次重复某个过程,通常又称为循环或批处理。 迭代很重要,因为自动执行重复的任务会节省执行任务所需的时间和精力。 在 模型构建器 中进行迭代时,可以在每次迭代时使用不同的设置和数据来反复执行同一个过程。 模型构建器 中的迭代操作还具有灵活性,用户可以迭代整个模型,或重复执行单个工具或过程。
- 视频长度:2:02
- 此视频是使用 ArcGIS Pro 3.0 创建的。
注:
- 每个模型只能使用一个迭代器。 如果模型中已经存在一个迭代器,那么用于添加迭代器的按钮将不可用。
- 如果模型中添加了一个迭代器,那么模型中的所有工具会对迭代器中的每个值进行迭代。 如果您不想对每个被迭代的值运行模型中的每个工具,请另外创建一个模型,使其仅包含迭代器和您想要多次运行的进程,保存模型,并以模型工具的形式将其添加至主模型中。 了解有关将子模型添加到模型的信息。
- 要为连接到迭代器的任何工具确定唯一的名称,请使用行内变量替换。
模型构建器 中有多个迭代器,可供您针对不同的值、数据集和工作空间进行迭代。
迭代器 | 描述 |
---|---|
按照给定的增量从起始值迭代至终止值。 | |
迭代工作空间中不同类型的数据集。 | |
迭代工作空间或要素数据集中的所有要素类。 | |
迭代要素类中的要素。 | |
迭代字段中的所有值。 | |
迭代表中的字段。 | |
迭代文件夹中的文件。 | |
迭代值列表。 | |
迭代地图中的图层。 | |
迭代工作空间中的所有栅格数据。 | |
迭代表中的所有行。 | |
用于在工作空间中对表进行迭代。 | |
迭代文件夹中的工作空间。 | |
用于迭代直至条件变为真或条件变为假。 |
添加并使用迭代器
要向模型添加迭代器,请单击 ModelBuilder > 插入 > 迭代器,然后从迭代器列表中进行选择。 每个模型只能使用一个迭代器。 如果模型中已经存在一个迭代器,那么用于添加迭代器的选项将不可用。
双击迭代器元素以查看和更改其设置。 所有迭代器彼此类似,只是各个迭代器的设置可能有所不同。 下面介绍一种常用的迭代器 Iterate Feature Classes。
元素 | 描述 |
---|---|
工作空间 | 输入工作空间(如地理数据库)或要素数据集。 |
通配符 | * 与有助于限制结果的字符的组合。 例如,A* 意味着仅包括以 A 开头的要素类。 此操作是可选的。 |
要素类型 | 可帮助限制结果的要素类型过滤器。 最常见的为 Point、Line 和 Polygon。 此操作是可选的。 |
递归 | 确定迭代器是否将进入工作空间的子文件夹。 此操作是可选的。 |
输出要素类 | 包含要素类路径的输出变量。 可将此变量用作接受要素图层或要素类的所有地理处理工具的输入。 |
名称 | 包含要素类名称的输出变量。 这是一个字符串。 |
迭代要素类需要一个输入工作空间(在上图中,变量名称为工作空间),在此可存储要迭代的所有要素类。 通配符、要素类型和递归这三个附加设置被用来限制在工作空间中迭代的要素类和控制工作中间中子文件夹的迭代。
迭代要素类具有两个输出变量:要素类和要素类的名称。 要素类变量可以连接到下一个工具以执行处理,并且名称变量可用于行内变量替换。
示例
下面的示例使用迭代要素类迭代器来将工作空间中的每个要素类投影到新地图投影。 由投影工具创建的每个新要素类是利用行内变量替换在输入 Name 的基础上进行命名的。 此外,还会向每个输出要素类添加一个新字段。 向 模型构建器 添加迭代要素类迭代器后,请执行以下常规步骤: