使用列表

包含一个或多个值的变量称为列表变量。您可以将模型中的一个或多个变量声明为列表变量。要将变量设为列表变量,请执行以下操作:

步骤:
  1. 右键单击变量。
  2. 单击属性
  3. 单击值列表,如下图所示:
    创建列表变量

打开列表变量时将显示批处理格网,可在其中输入变量值。将列表变量连接到某个工具后,该工具和所有下游流程(依赖于该工具的输出的流程)将针对列表中的每个值分别执行一次。使用列表变量与使用批处理类似,只是您不必为模型中的其他单个值变量提供值。使用列表变量要求您能够熟练使用批处理格网

关于使用列表变量的示例

本示例将通过简单的裁剪缓冲区模型来说明列表处理过程,如下所示。

在该示例中,Input Feature 变量已设为列表变量。将 Input Feature 设为列表变量后,Output Clipped FeatureOutput Buffer Feature 变量自动成为列表变量,因为它们都依赖于 Input Feature 变量。在下面的示例中,已打开裁剪工具且已添加三个输入裁剪要素类。裁剪要素XY 容差参数对于第一个像元之外的所有像元均不可用。这是因为 Study Area Clip 变量不是列表变量且 XY 容差参数不具有变量。第一个像元的值将用于所有这三个输入。

列表示例

模型现在即已准备就绪,可以在模型构建器中运行。模型将针对包含在 Input Feature 列表变量中的每个输入分别执行。

对列表使用行内变量替换和填充选项

在模型中创建输出列表变量后,可使用 %i% 在输出名称中进行行内变量替换%i% 将在输出名称的末尾追加列表编号。如果存在许多输入,则为批处理格网中的每个输出定义唯一输出名称将十分繁琐。作为一种解决办法方法,您可以将填充选项与行内变量替换结合使用,如下图所示:

步骤:
  1. 双击打开裁剪工具对话框。
  2. 填入输入要素裁剪要素
  3. 输出要素类中,单击第一个像元,定义输出路径,并在名称中使用 %i%,如上图所示。
  4. 定义第一个像元的路径和名称后,在像元中单击右键,然后单击填充,如图中编号 2 所示。
  5. 这将为所有像元填入相同的路径位置和文件名称,如上图编号 3 所示。将系统变量 %i% 用作行内变量将在输出名称的末尾追加数据在变量中的列表编号,从而确保每个输出都具有唯一名称。输出将命名为 Out0Out1Out2,依此类推。
5/10/2014