使用 For 循环迭代器

摘要

For 工具按给定值从起始值迭代至终止值。 其工作原理与任何脚本或编程语言中 For 的工作原理相同,即从头到尾运行固定数量的项目。

使用 For 循环迭代器完成的模型

在此工作流中,您将创建一个简单的模型,以根据植被类型以及与道路的邻近性来识别拟建道路的影响。 在该模型中,道路首先被缓冲 3 次,距离值分别为 500 英尺、1000 英尺和 1500 英尺。 这些距离值是通过 For 循环迭代器得出的。 然后使用裁剪工具将缓冲区用于裁剪植被数据,以在缓冲面内创建植被类型的数据集。 然后,汇总统计数据工具将按拟建道路周围的缓冲面内的植被类型来汇总受影响的区域。 收集值工具将收集所有迭代的输出,并将其添加到内容窗格中以在 ArcGIS Pro 中显示。

先决条件

如果您不熟悉 ModelBuilder,请查看以下主题:

打开工程

下载工程以在此工作流中使用。 该工程包括一个输入地理数据库、一个输出地理数据库和一个完成的模型。

  1. 打开使用 For 迭代器概览页面。
  2. 单击页面右侧的下载
  3. 右键单击下载的 IterateFor.zip 文件,然后将其提取到一个方便的位置,例如 C:\Temp
  4. 在提取的文件夹 IterateFor 中,双击 ArcGIS Pro 工程文件 IterateFor.aprx

    该工程将打开一个空地图,并将用于查看您将在此工作流中创建的模型的结果。

  5. 目录窗格中浏览数据,并在必要时单击工程选项卡。 浏览到 Folders > IteratorFor
  6. Data.gdb 地理数据库具有将用作模型输入的 PlanA_Roads 和 vegtype 要素类。 ScratchCommon.gdb 地理数据库将用于保存模型输出。

添加工具

您将在 MyProjectTools 工具箱中创建一个模型。 要向模型添加工具,请完成以下步骤:

  1. 如有必要,在目录窗格中,单击工程选项卡。 浏览至 Folders > IterateFor > MyProjectTools
  2. 右键单击 MyProjectTools,然后单击新建。 选择模型以创建并打开模型。
  3. 添加 For 循环工具。
    1. 单击 ModelBuilder 选项卡。
    2. 插入组中,单击迭代器 迭代器
    3. 迭代器列表中,单击 For

    添加 For 循环迭代器

    For 循环迭代器随即会添加到模型中。 由于未提供任何参数值,因此迭代器不可用。

  4. 添加收集值工具。
    1. 单击 ModelBuilder 选项卡。
    2. 插入组中,单击实用程序 实用工具
    3. 实用程序列表中,单击收集值

    添加“收集值”工具

    收集值工具随即会添加到模型中。

  5. 添加缓冲区工具。
    1. 单击模型,然后键入 Buffer 以打开向模型添加工具对话框。
    2. 搜索缓冲区工具。
    3. 双击缓冲区工具并将其添加到模型。
  6. 如上一步中所述,将裁剪汇总统计数据工具添加到模型中。

指定工具参数并连接工具

将工具添加到模型后,您需要为每个工具指定参数。

  1. 双击 For 迭代器打开迭代器的对话框。 。
    1. 对于自值至值按值,分别键入 5001500500
    2. 单击确定关闭对话框。

    For 循环迭代器对话框

    工具运行时,模型将为第一次迭代输出 500,然后输出 1000 和 1500。

  2. 双击缓冲区工具以打开工具的对话框。
    1. 对于输入要素参数,单击浏览按钮 浏览 并浏览至 <Your Project Location>\IterateFor\Data.gdb 地理数据库。 选择 PlanA_Roads 要素图层。
    2. 对于输出要素类参数,浏览至 <Your Project Location>\IterateFor\ScratchCommon.gdb 地理数据库,然后键入 BufferedFC_%Value%

      运行时,For 迭代器(浅蓝色椭圆)的输出变量名称 %Value% 将被替换为变量值 500、1000 或 1500。

      提示:

      模型构建器 中,可通过将替换变量名称用百分号 (%VariableName%) 括起的方式使用其他变量替换某个变量的值或数据集路径。 这种变量替换方式称为行内变量替换

    3. 对于距离 [值或字段]参数,选择线性单位选项;将距离留空,并将单位设置为英尺
    4. 保留其余参数的默认设置,然后单击确定以关闭对话框。

    缓冲区工具对话框

  3. 将鼠标悬停在 For 循环迭代器输出变量上方。 单击并拖动以绘制连接缓冲区工具的连接线。 松开鼠标后,单击弹出菜单中的距离 [值或字段]
  4. 双击裁剪工具以打开工具的对话框。
    1. 对于输入要素参数,单击浏览按钮 浏览 并浏览至 <Your Project Location>\IterateFor\Data.gdb 地理数据库。 选择 vegtype 要素图层。
    2. 对于裁剪要素参数,单击下拉箭头,然后选择 BufferedFC_%Value%
    3. 对于输出要素类参数,浏览至 <Your Project Location>\IterateFor\ScratchCommon.gdb 地理数据库,然后键入 ClippedFC_%Value%

      运行时,For 迭代器(浅蓝色椭圆)的输出变量名称 %Value% 将被替换为变量值 500、1000 或 1500。

    4. 保留其余参数的默认设置,然后单击确定以关闭对话框。

    裁剪工具对话框

    缓冲区工具的输出值和裁剪工具之间创建一个连接。

  5. 双击汇总统计数据工具打开此工具的对话框。
    1. 对于输入表参数,单击下拉箭头,然后选择 ClippedFC_%Value%
    2. 对于输出表参数,浏览至 <Your Project Location>\IterateFor\ScratchCommon.gdb 地理数据库,然后键入 AffectedVegetation%Value%

      运行时,For 迭代器(浅蓝色椭圆)的输出变量名称 %Value% 将被替换为变量值 500、1000 或 1500。

    3. 对于统计字段参数,请为字段列选择 Shape_area,并为统计类型列选择总和
    4. 对于案例分组字段参数,选择 VEG_TYPE
    5. 单击确定关闭对话框。
    “汇总统计数据”工具对话框
  6. 将鼠标悬停在裁剪工具输出变量上方。 单击并拖动以绘制连接收集值工具的连接线。 松开鼠标后,单击弹出菜单中的输入值。 按照相同步骤连接汇总统计数据工具输出变量和收集值工具。

    最好重命名输入和输出变量名称,以使其更有意义,而非使用默认的变量名称。

  7. 右键单击缓冲区工具的输出,然后单击重命名。 输入 Buffered FC 作为新名称。 同样,重命名所有变量,如完成的模型中所示。
  8. 要排列模型元素,请单击 ModelBuilder 选项卡上的自动布局按钮 自动布局,然后单击适应窗口大小按钮 适应窗口大小 以将布局最大化到模型窗口的大小。

运行模型

  1. 右键单击收集值工具的输出,然后单击添加至显示

    输出随即添加到地图中。

  2. 单击 ModelBuilder 选项卡上的保存按钮 保存 以保存模型。
  3. 单击 ModelBuilder 选项卡上的运行按钮 运行 以运行模型。
    For 循环迭代器模型的输出

    该模型将对 For 循环迭代器中的所有距离值进行迭代、为所有距离值缓冲输入要素类、裁剪要素类,并按植被类型来汇总受影响的区域。

  4. 内容窗格中,右键单击所添加的表,然后选择打开 Open Table,以查看每个已缓冲距离中拟建道路对哪些植被类型的影响最大。
  5. 关闭模型和 ArcGIS Pro