地理处理工具可以以批处理模式运行,可用于使用多个输入数据集或不同的参数设置多次运行该工具。 这使您可以通过少量的交互来多次运行工具。 例如,您可以以批处理模式运行裁剪工具,将多个图层裁剪到同一研究区域。
批处理被定义为给定工具的迭代次数。 其中一个选定工具的参数驱动批处理并在每次迭代中做出更改,而其余工具参数在批处理中为所有迭代的常量。 在上述示例中,该批处理将对裁剪工具进行三次迭代。 每次迭代均使用批处理输入要素参数中的一个图层来运行裁剪工具,所有其他参数在迭代中仍保持不变。
批处理模式
要以批处理模式打开并运行工具,请执行以下操作:
- 找到要使用的地理处理工具。
- 右键单击此工具并选择批处理。 如果禁用批处理命令,则该工具将不支持批处理模式。
选择批处理模式后,地理处理窗格中随即打开一个页面,用于定义批处理地理处理工具的各个选项。
- 选择将驱动批处理过程的所选工具的参数 - 批处理参数。 将指定批处理参数接受多个数据集或值作为输入。 批处理工具将针对您提供的每个作为批处理参数输入的数据集或值运行一次。
批处理参数选择列表仅包含工具的输入参数。 默认情况下,第一个输入参数处于选定状态。
请考虑以下具有两个输入参数的工具示例:输入数据集和距离。 如果选择参数输入数据集作为批处理参数,则可以指定多个输入数据集,批处理工具将针对每个输入数据集运行一次,针对每个输入数据集使用相同距离。 如果选择参数距离作为批处理参数,则可以指定多个距离,批处理工具将针对每个距离运行一次,每次使用相同的输入数据集。
- 选择应临时使用批处理工具还是保存批处理工具。 如果选择保存该工具,则可以指定新批处理工具名称以及将保存批处理工具的工具箱。
该批处理工具是以编程方式创建的新模型工具,且使用 ModelBuilder 迭代器执行批处理操作。
- 选择批处理工具是否应该将输出数据集添加至打开的地图。 如果您希望通过多次迭代运行批处理,则可以取消选中此选项,以便不会将大量图层添加到地图。
- 单击下一步。
完成上述步骤之后,将在地理处理窗格中打开地理处理工具的批处理版本,可以在其中指定工具参数并运行该工具。
- 视频长度:1:30
- 此视频是使用 ArcGIS Pro 3.0 创建的。
运行批处理工具
批处理工具中显示的参数将与该工具的常规版本精确匹配。 其中一个重要不同之处在于,选择作为批处理参数的参数将在参数标签上具有批处理前缀,并将支持指定多个值。 您为此批处理参数输入的每个值都会导致在批处理中运行的工具的额外迭代。
例如,要将具有相同名称的字段添加到多个数据集,请执行以下步骤:
- 右键单击添加字段工具并选择批处理。
- 选择输入表作为批处理参数,然后单击下一步。
批处理添加字段工具随即打开。
- 对于批处理输入表参数,请浏览至并选择应添加新字段的任何数据集。
- 输入新字段名称、类型以及任何其他所需参数设置。
- 运行批处理添加字段工具。
动态输出命名
大多数地理处理工具都会创建输出数据集。 在批处理模式下运行工具时,必须特别考虑工具输出数据集的命名,以便针对批处理工具的每次迭代使用唯一名称。
可以使用输出参数中的 %Name% 变量对批处理工具输出进行动态命名。 %Name% 变量将自动包含在每个输出数据集参数中。 可以手动将其添加到应使用动态命名的其他参数。
%Name% 变量在每次迭代过程中由批处理参数中的值进行替换。 如果批处理参数中的值包含空格或特殊字符,则会将其替换为下划线。 如果该值是数据集的路径,则仅使用数据集名称。
注:
如果未在输出数据集路径中使用 %Name% 变量,则将在每次迭代时使用相同的数据集路径,从而使得每次迭代覆盖上一次迭代的输出。 此规则不适用于更新或修改输入数据集的工具。
例如,如果将批处理工具的输出设置为 %Name%_stats 且批处理输入表参数包含名为 City、County 和 State 的表,则批处理工具将创建三个输出,每个输出都以其中一个输入命名:City_stats、County_stats 和 State_stats。
以下附加变量在动态指定参数值时可能非常有用。 其使用方法与 %Name% 变量类似。
- %Workspace Name% - 批处理参数中数据的工作空间或文件夹名称。
- %Path% - 批处理参数中数据的目录位置(不包括数据名称或扩展名)。
- %Extension% - 批处理参数中数据的扩展名。
这些变量在批处理模型工具中使用行内变量替换进行定义。
向批处理添加其他工具
由于您使用的批处理工具为模型工具,因此可使用其他工具对其进行扩展以执行一系列处理步骤。 如果要扩展批处理模型,则必须在创建批处理工具时选择保存批处理工具选项,以便将模型保存在您可以找到的位置,然后对其进行编辑。
例如,如果您以批处理模式打开添加字段工具,则您可能想要使用计算字段工具来扩展批处理添加字段模型,因此模型先将一个字段添加到多个数据集,然后计算该字段中的值。