ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • 帮助
  • Sign Out
ArcGIS Desktop

ArcGIS Online

专为贵组织打造的制图平台

ArcGIS Desktop

全面的专业性 GIS

ArcGIS Enterprise

面向企业的 GIS

ArcGIS for Developers

用于构建位置感知应用程序的工具

ArcGIS Solutions

适用于行业的免费模板地图和应用程序

ArcGIS Marketplace

获取适用于组织的应用程序和数据

  • 文档
  • 支持
Esri
  • 登录
user
  • 我的个人资料
  • 登出

ArcMap

  • 主页
  • 入门
  • 地图
  • 分析
  • 管理数据
  • 工具
  • 扩展模块

使用迭代器的快速浏览

  • 了解迭代器
  • 迭代输入与输出
  • 了解详细信息

迭代是指以一定的自动化程度多次重复某个过程,通常又称为循环。迭代很重要,因为自动重复任务会节省执行这项任务所需的时间和精力。在“模型构建器”中进行迭代时,可以在每次迭代中使用不同的设置和数据来反复执行同一个过程。“模型构建器”中的迭代操作还具有灵活性,用户可以迭代整个模型,或只是重复执行单个工具或过程。

迭代器描述

For 循环

按照给定的增量从起始值迭代至终止值。其工作原理与任何脚本/编程语言中 For 循环 的工作原理完全相同,即从头到尾执行固定数量的项目。

While 循环

与任何脚本/编程语言中“while”的作用完全相同,当相应输入或一组输入的条件为 true 或 false 时继续执行 While 循环。

迭代要素选择

迭代要素类中的要素。

迭代行选择

迭代表中的所有行。

迭代字段值

迭代字段中的所有值。

迭代多值

迭代值列表。

迭代数据集

迭代工作空间或要素数据集中的所有数据集。

迭代要素类

迭代工作空间或要素数据集中的所有要素类。

迭代文件

迭代文件夹中的文件。

迭代栅格数据

迭代工作空间或栅格数据目录中的所有栅格数据。

迭代表

迭代工作空间中的所有表文件。

迭代工作空间

可迭代文件夹中的所有工作空间。

了解迭代器

每种迭代器都有一组不同于其他迭代器的参数,但是所有迭代器工具的整体结构都非常相似。下面介绍一种常用的迭代器 Iterate Feature Classes。

了解迭代器

Iterate Feature Classes 需要一个输入工作空间来存储所有需要迭代的要素类。两个附加参数,通配符和要素类型,可用来筛选工作空间中要执行迭代的要素类:

  • 使用通配符限制要素类的名称。
  • 使用要素类型限制要素类的要素类型:注记、弧、尺寸注记、边、交汇点、标注、线、结点、点、面、区域、路线或控制点。

递归参数用于控制工作空间的子文件夹中的要素类的迭代。

Iterate Feature Classes 有两个输出变量:输出要素类与要素类名称。输出要素类可以连接到下一个工具以执行处理,并且名称变量可以用于行内变量替换。例如,如果“缓冲区”工具被添加到模型上,并且 Feature Class 变量连接到了工具上,那么工作空间中的每个要素类都将得到缓冲处理。

迭代输入与输出

下表列出了各种迭代器及其输入和输出。一些迭代器将“值”或“名称”作为第二个输出,这可用于行内变量替换。

迭代器输入输出 1输出 2

For 循环

值

值

-

While 循环

值

布尔 - True 值或 False 值

-

迭代要素选择

要素

要素

值

迭代行选择

表

记录

值

迭代字段值

表

字段值

-

迭代多值

值

值

-

迭代数据集

工作空间或要素数据集

数据集

名称

迭代要素类

工作空间或要素数据集

要素类

名称

迭代文件

文件夹

文件

名称

迭代栅格数据

工作空间或栅格目录

栅格数据集

名称

迭代表

工作空间

表

名称

迭代工作空间

文件夹

工作空间

名称

注:

  • 每个模型仅可使用一个迭代器。如果模型中已经存在一个迭代器,那么用于添加迭代器的选项将不可用。
  • 如果模型中添加了一个迭代器,那么模型中的所有工具会对迭代器中的每个值进行迭代。如果您不想针对每个被迭代的值运行模型中的所有工具,请创建一个只包含迭代器的模型/嵌套模型内的子模型/模型并将其作为模型工具添加到主要模型中。
  • 如果将含有迭代器的模型导出为 Python 脚本,则导出的脚本中将不会包括迭代逻辑。可以将 Python 列表逻辑添加到脚本以获得相似效果。
  • 使用迭代器可将模型属性中迭代选项的默认值设为 -1,该值用以表示模型运行的次数无限制,或者表示模型将基于迭代器中的输入数值非设定的次数来运行。
  • 连接到迭代器的任何工具的输出对于每次迭代均可具有(如有必要)一个唯一的名称,以免被后续迭代所覆盖,具体方法是,
    • 使用系统变量 %n%。例如,C:\Scratch\scratch.gdb\output_%n%)
    • 将模型中所使用的迭代器的“名称”或“值”输出用作行内变量,例如,C:\Scratch\scratch.gdb\output_%Name%、C:\Scratch\scratch.gdb\output_%Value%。
    • 将模型中的任何其他变量用作行内变量;例如,如果存在变量 XYZ,则输出名称可以是 C:\Scratch\scratch.gdb\output_%XYZ%。该变量中不应包含常量值,只能是随每次迭代而变化的值;否则,每次迭代都会覆盖先前生成的文件。
  • 在选中添加至显示选项的情况下,工具输出将会以变量名称为图层名称被添加到 ArcMap 的显示画面中。如果要使用实际的唯一输出名称(而不是变量名称)将每次迭代的输出结果都添加到 ArcMap 的显示画面中:
    1. 将要显示的输出连接到收集值工具。
    2. 右键单击收集值的输出并选中添加至显示。
    3. 如果要从模型工具对话框运行模型,请将收集值的输出设为模型参数,因为系统只会将输出模型参数添加到显示画面。

旧版本:

迭代器取代了 ArcGIS 10 以前版本的“模型属性”中的“系列”选项。

了解详细信息

  • 各种迭代器可完成何种任务
  • 使用迭代器示例
  • 访问“模型构建器”中的迭代器

相关主题

  • 使用游标访问数据
  • 创建数据列表

ArcGIS Desktop

  • 主页
  • 文档
  • 支持

ArcGIS 平台

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

关于 Esri

  • 关于我们
  • 招贤纳士
  • Esri 博客
  • 用户大会
  • 开发者峰会
Esri
分享您的想法。
Copyright © 2019 Esri. | 隐私政策 | 法律声明