使用迭代多值

汇总

迭代多值工具将对值列表进行迭代。

用于迭代多值的完成的模型

在此工作流中,迭代多值迭代器将用于对机场、高速公路出口和娱乐区要素类进行迭代。另一个输入为点要素类,且模型将使用邻近值工具来计算要素类中每个点到机场、高速公路出口和娱乐区的最近距离。邻近值工具可将具有每个输入点距离值的字段添加到要素类中最接近的要素,并且每次迭代都会覆盖该字段值。为避免每次迭代后丢失距离值,模型将使用计算字段工具添加一个字段并复制距离值。解析路径工具可用于提取邻近要素类(机场、出口和转车站)的名称。这些名称随后会被用作添加字段工具中的字段名称。

工作流插图

下图显示了输入点要素类和将为其计算邻近距离的所有要素类的地图的子集。输入点要素类的属性表将显示为每个输入邻近要素类添加的字段和计算的值。

先决条件

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

打开工程

下载工程以在此工作流中使用。该工程包括输入数据和完成的模型。

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

  5. 目录窗格中浏览数据,并在必要时单击工程选项卡。浏览至 Folders > IterateMultivalue

    ToolData.gdb 地理数据库中包含将用作模型输入的数据。模型将更新 PointLocation 要素类属性表。

添加工具

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

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

    添加“迭代多值”工具

    该操作会将迭代多值迭代器添加到模型。由于未提供任何参数值,因此迭代器为灰色。

  4. 添加解析路径工具。
    1. 单击功能区上的 ModelBuilder 选项卡。
    2. 插入组中,单击实用程序 实用程序
    3. 实用程序列表中,单击解析路径工具。

    添加“解析路径”工具

    该操作会将解析路径工具添加到模型。

  5. 添加邻近值工具。
    1. 单击模型,然后直接在模型中键入 Near,以打开向模型添加工具对话框。
    2. 搜索邻近值工具。
    3. 双击邻近值工具并将其添加到模型。
  6. 使用上一步中的方法,将添加字段计算字段工具添加到模型。

指定工具参数并连接工具

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

  1. 双击迭代多值迭代器以打开迭代器的对话框。对于输入值参数,浏览至 <Your Project Location>\IterateMultivalue\ToolData.gdb 并选择机场、出口和转车站要素类,然后单击确定

    “迭代多值”工具对话框

    该操作会将输入要素类作为模型变量(深蓝色椭圆)添加到模型中,并更改迭代器的颜色,指示已提供了所需参数且已做好运行准备。

  2. 右键单击迭代器的输出,然后单击重命名。输入名称的并按 Enter 键。此举将重命名迭代器的输出变量。
  3. 双击邻近值工具以打开工具的对话框。
    1. 对于输入要素参数,浏览至 <Your Project Location>\IterateMultivalue\ToolData.gdb 并选择 PointLocation 要素类。
    2. 对于邻近要素参数,请从下拉列表中选择

    邻近值工具对话框

    将其余参数保留为默认值,然后单击确定。该操作将在迭代器的输出值和邻近值工具之间创建连接。

  4. 双击解析路径工具以打开其对话框,然后从下拉列表中为输入值参数选择

    “解析路径”工具对话框

    该操作将在迭代器的输出和解析路径工具之间创建连接。

  5. 将鼠标悬停在邻近值工具输出变量(绿色椭圆)上方。单击并拖动以绘制连接添加字段工具的连接线。松开鼠标后,单击弹出菜单中的输入表
  6. 双击添加字段工具以打开该工具的对话框。
    1. 输入表参数已从邻近值工具的输出中添加。
    2. 对于字段名称参数,键入 %Name% 作为行内变量替换。

      在运行时,要素类(机场、出口或转车站)的名称将被用作字段名称。

    3. 对于字段类型参数,从下拉列表中选择双精度型(双精度)

    将其余参数保留为默认值,然后单击确定

    “添加字段”工具对话框

  7. 在 ModelBuilder 中,工具支持等级,且仅在其所连接的上游工具先运行之后才会运行。添加字段工具在其字段名称参数中使用解析路径工具的输出名称参数值,但如果找不到字段名称,则该工具不会与该值连接且运行将会失败。要在运行添加字段工具之前运行解析路径工具从而使名称处于可用状态,必须在添加字段工具上设置一个前提条件。

    将鼠标悬停在解析路径工具输出变量名称上方。单击并拖动以绘制连接添加字段工具的连接线。松开鼠标后,单击弹出菜单中的前提条件

    设置“添加字段”工具的“前提条件”参数

  8. 将鼠标悬停在添加字段工具输出变量(绿色椭圆)上方。单击并拖动以绘制连接计算字段工具的连接线。松开鼠标后,单击弹出菜单中的输入表
  9. 双击计算字段工具以打开该工具的对话框。
    1. 输入表参数已从添加字段工具的输出中添加。
    2. 对于字段名称参数,从下拉列表中选择 %Name%。这是通过添加字段工具添加的字段。在运行时,百分号之间的变量名称将被替换为字段的实际名称。
    3. 对于表达式类型参数,选择 Python 3
    4. 对于表达式参数,键入 !NEAR_DIST!

      NEAR_DIST 字段的值将被复制到新字段。您无法从字段列表中选择 NEAR_DIST,因为该字段由于尚未运行邻近值工具而不存在。像这样键入字段名称需要事先了解该工具以及该工具将要创建的输出字段。字段名称前后的感叹号是 Python 表达式的字段分隔符。

    “计算字段”工具对话框

  10. 重命名所有模型变量,如完成的模型中所示。
  11. 要排列模型元素,请单击 ModelBuilder 选项卡上的自动布局按钮 自动布局,然后单击适应窗口大小按钮 适应窗口大小 以将布局最大化到模型窗口的大小。

运行模型

您将验证并运行模型。您需要检查输入点要素类属性表中的输出,并确认已添加全部三个要素类的最近距离值。

  1. 右键单击计算字段工具的输出,然后单击添加至显示

    该操作会将更新后的输入要素类添加到地图。

  2. 单击 ModelBuilder 选项卡上的保存按钮 保存 以保存模型。
  3. 单击 ModelBuilder 选项卡上的运行按钮 运行 以运行模型。模型将对全部 3 个要素类进行迭代,并找到每个要素类与点要素的最近距离。在 ArcGIS Pro 内容窗格中右键单击输入要素类,然后单击以查看具有最近距离值的所添加字段。
  4. 关闭模型和 ArcGIS Pro