教程:使用模型构建器创建工具
此教程将引导您逐步完成模型工具的创建过程。在此教程中,通过将模型变量显示为模型参数,从而使在模型构建器中执行工具的教程中构建的模型成为有用的工具。
有关创建模型工具的综合概述,请参阅使用模型构建器创建工具快速浏览。
开始此教程之前,假设您已经安装了 ArcGIS for Desktop(ArcGIS for Desktop Basic、ArcGIS for Desktop Standard 或 ArcGIS for Desktop Advanced)。此教程所需的数据包含在 ArcGIS for Desktop CD 中,且默认安装在 C:\arcgis\ArcTutor 目录下。教程的情景是虚构的,原始数据已根据教程需要进行了调整。
为避免损坏原始数据,请将 ModelBuilder 文件夹从计算机上的 C:\arcgis\ArcTutor 目录下复制到 C 盘下。如果将数据复制到其他驱动器或位置,请确保在执行以下所有步骤时均使用相应的驱动器。
- 打开地图文档。
- 创建模型。
- 显示工具参数。
- 创建模型参数。
- 对模型元素重命名。
- 设置模型参数顺序。
- 设置模型参数类型。
- 对模型参数设置过滤器。
- 为输出数据设置符号系统。
- 管理中间数据。
- 更改模型的常规属性。
- 记录模型。
1 - 打开地图文档
在 Windows 资源管理器中浏览到 C:\ModelBuilder 文件夹,然后双击 Extract Vegetation.mxd。此操作将启动 ArcMap 并打开该地图文档;另外,也可以执行下列操作
- 单击开始 > 所有程序 > ArcGIS > ArcMap 10.2.2 启动 ArcMap。
-
在 ArcMap - 启动 对话框中,单击现有地图 > 浏览更多。
将弹出打开 ArcMap 文档 对话框。
- 浏览到 C:\ModelBuilder 文件夹,选中 Extract Vegetation.mxd,然后单击打开。
这样便可打开 Extract Vegetation.mxd。
2 - 创建初始模型
执行在模型构建器中执行工具中的相应步骤。此教程中使用相同的模型开始。
双击目录 窗口中的示例模型。将打开工具对话框,但不显示任何参数,如下图所示。
如果单击确定以运行此工具,则会运行该模型。即使为输出变量选中了添加至显示,模型的输出 (ClippedFC) 也不会添加到 ArcMap 的内容列表中。原因是通过模型的工具对话框运行模型时,将会忽略添加至显示设置。要将输出添加至显示,必须将输出变量作为模型参数。
创建模型参数的另一个原因是,您希望以不同的输入数据来运行该模型,而无需每次都打开“模型构建器”,如下图所示。
创建模型参数后,可通过模型的工具对话框执行模型,从而为 Input Roads、Buffer Distance、Input Vegetation、Output Clipped Feature Class 和 XY Tolerance 参数提供不同的输入。无需在每次运行模型时都打开模型构建器,也可以改用工具对话框。通过模型的工具对话框来运行模型还有一个优势,那就是会在结果 窗口中创建结果,而在“模型构建器”内运行模型并不会在结果 窗口中创建结果。
以下步骤会将模型变量显示为参数,以使其在模型工具对话框中如上所示。
3 - 显示工具参数
要定义“缓冲距离”和“XY 容差”参数,需要为它们创建模型变量。
将工具添加到模型后,会自动为输入和输出数据集创建模型变量,但不会为任何其他工具参数创建模型变量。主要是为了美观,如果自动为每个工具参数都创建变量,则模型图很快就会变得难以辨别。例如,将缓冲区工具添加到模型后,会自动为输出要素类参数创建变量。右键单击缓冲区并填充输入要素参数后,便会为输入要素创建模型变量。所有其他参数(如距离、侧类型和末端类型)并不会作为变量自动添加到模型中。以下步骤将为距离 [值或字段] 和 XY 容差创建模型变量。
- 在目录 窗口中,右键单击 Model,然后单击编辑。将在“模型构建器”中打开 Model。
- 右键单击 Buffer。
- 单击获取变量 > 从参数 > 距离 [值或字段]。
此操作会将“距离”参数作为变量添加到模型中。
- 右键单击 Clip。
- 单击获取变量 > 从参数 > XY 容差。
4 - 创建模型参数
您已为“距离”和“XY 容差”创建了变量,接下来便可创建模型参数。
- 右键单击距离 [值或字段],然后选中模型参数选项,如下图所示。
变量旁边将显示字母 P,表示此变量为模型参数。此模型参数随后也将在模型工具对话框上显示。
- 为以下变量创建模型参数(不为 BufferedFC 创建模型参数):
- PlanA_Roads
- vegetype
- XY 容差
- ClippedFC
5 - 对模型元素重命名
“模型构建器”为变量指定默认名称。这些变量名用于作为模型工具对话框上的参数名称进行显示。对变量重命名是一种很好的做法,尤其是在变量为模型参数时。
- 右键单击 PlanA_Roads,然后单击重命名。
- 输入 Input Roads,然后单击确定。
变量名称将更改为 Input Roads。
- 按以下方法对其余变量进行重命名:
- 将 Distance [value or field] 重命名为 Buffer Distance。
- 将 vegetype 重命名为 Input Vegetation。
- 将 ClippedFC 重命名为 Output Clipped Feature Class。
- 保存 模型。无需退出“模型构建器”。
- 在目录 窗口中双击模型可打开模型工具对话框。可能需要移动或最小化“模型构建器”窗口才能访问目录 窗口。模型工具对话框应与下图类似。您对话框上的参数顺序可能会有所不同,但这不是问题,接下来您将更改此顺序。
可通过单击确定来执行工具,但建议您在执行工具前先选择与之前输出要素类名称不同的其他输出要素类。该工具执行后,输出要素类将被添加到 ArcMap 的内容列表中。与在“模型构建器”内运行模型不同,通过模型对话框运行模型并不会改变模型图。
6 - 设置模型参数顺序
如上图所示,参数的顺序并不理想。标准做法是按以下顺序排列参数:
- 必需的输入数据集
- 影响工具执行的其他必需参数
- 必需的输出数据集
- 可选参数
- 在“模型构建器”中,单击模型 > 模型属性。
- 单击参数选项卡。
- 选择 Input Roads 参数,然后使用右侧的向上箭头和向下箭头按钮将其移动到顶部。
- 如下所示更改其他参数的位置:
7 - 设置模型参数类型
按正确顺序设置模型参数后,需要更改参数类型。如果参数是模型中某个工具的必需参数,将无法通过以下设置将类型更改为可选。
- 在“模型构建器”中,单击模型 > 模型属性。
- 单击参数选项卡。
- 单击 XY Tolerance 的类型类别下方的单元格。将弹出一个包含两个选项的列表。在此示例中,保留 XY Tolerance 为可选参数,而将其余参数设置为必需参数,如下图所示。
8 - 对模型参数设置过滤器
可通过对参数应用过滤器来限制任何参数的输入类型。此示例中的模型要求 Input Roads 参数为线要素。在以下步骤中,将通过应用过滤器来修改该参数,以使其仅接受线要素。
- 单击模型 > 模型属性。
- 单击参数选项卡。
- 选择 Input Roads,然后单击过滤器类别下方的单元格。
- 选择要素类过滤器。
将打开要素类 对话框。
- 取消选中除“折线”外的所有类型,然后单击确定。
- 在模型属性 对话框上,单击确定应用过滤器。
9 - 为输出数据设置符号系统
可将模型的输出设置为包含特定的符号系统,以用来显示输出。对于此示例,符号系统基于缓冲区内的植被类型。要为输出数据设置符号系统,第一步是创建图层文件,第二步是在输出数据属性中定义图层文件。此教程中已创建了图层符号系统文件。
- 在“模型构建器”窗口中,右键单击 Output Clipped Feature Class,然后单击属性。
- 单击图层符号系统选项卡。
- 浏览查找 ToolData 文件夹 (C:\ModelBuilder\ToolData) 中所复制的图层文件。
- 选择 OutputSymbology.lyr,然后单击添加。
- 单击确定。
10 - 管理中间数据
运行模型时,模型中执行的每个过程都会创建输出数据。创建的某些数据在模型运行后毫无用处,因为创建这些数据只是为了与创建新输出的另一个过程相连。此类数据称为中间数据。除最终输出之外的所有输出或者已变为模型参数的输出都将自动成为模型的中间数据。此示例中,Buffer 工具的输出仅在作为 Clip 工具的输入时才有用,而在这之后不再使用,因此“中间”选项为选中状态。可通过取消选中“中间”选项来保存中间数据。
11 - 更改模型的常规属性
可对模型的名称、标注和描述进行设置。
- 在“模型构建器”界面上,单击模型 > 模型属性。
- 输入 ExtractVegetationforProposedRoads 作为模型名称。模型名称中不允许包含空格。
- 在标注文本框中,输入 Extract Vegetation for Proposed Roads。模型标注中允许包含空格。此标注用于在目录 窗口中显示模型名称。
- 在描述文本框中,输入所需文本。
选中存储相对路径名(不是绝对路径名) 选项,以便共享模型工具或将模型数据和模型移动到其他位置。此教程中未使用此选项,但此处将其作为一种很好的做法进行介绍,便于您在以后共享模型和模型工具时使用。
- 单击确定。
- 保存 完成的模型,并退出“模型构建器”。
在目录 窗口中双击模型可打开模型工具对话框。由于模型是与预定义的值一起保存的,因此对话框中的所有参数都已填入。可通过在此处输入新值来更改任一参数的值。单击确定运行模型。默认情况下,模型的最终输出 (Output Clipped Feature Class) 会添加到显示中,而模型消息将在结果 窗口中显示。要查看结果,可在地图文档的内容列表中取消选中 Vegetation Type 图层。
12 - 记录模型
最好在分享模型前先对其进行记录。要进行记录:
- 右键单击目录 窗口中的模型,然后单击项目描述。将打开项目描述 窗口,其中显示了 描述 页面。
- 在项目描述 窗口中,单击编辑按钮。
将打开文档编辑器以供您输入项目描述。
- 为模型中的每一项输入相应的描述,然后单击保存按钮。
其他分析
如果需要使用该模型执行某些分析,可以添加“汇总统计数据”工具以便获得一个在拟建道路周围缓冲区面中受到植被类型影响的区域的汇总表。
以下步骤还将介绍如何将模型用作其他模型内部的工具。
- 在 ArcMap 的标准 工具条上,单击模型构建器按钮 以打开新模型。
- 由于您已创建了模型工具,因此可以像任何其他工具一样使用模型工具。可通过将模型工具从目录 窗口拖动到新模型中来将其添加到新模型中,如下图所示。
- 通过单击地理处理 > 搜索工具打开搜索 窗口(如果尚未在 ArcMap 中打开)。
这将打开搜索 窗口。
- 在搜索 窗口中,输入 Summary Statistics,然后单击搜索按钮 。
- 将此工具拖到模型中。
- 双击“汇总统计数据”元素打开此工具的对话框。
- 对于输入表参数,单击箭头,然后选择旁边具有蓝色再循环图标 的 Output Clipped Feature Class。这个再循环图标意味着此要素类是模型中的变量。
- 对于输出表参数,可以浏览到输出地理数据库 (C:\ModelBuilder\Scratch\Output.gdb),输入名称 AffectedVegetation,然后单击保存。
- 对于统计字段参数,在列表中选择 Shape_Area。
- 单击统计类型下 Shape_Area 旁的单元格,然后从下拉列表中选择总和。
- 对于案例分组字段参数,在列表中选择 VEG_TYPE。
- 单击确定。
- 右键单击 Output Clipped Feature Class(绿色椭圆),然后选中添加至显示。这样便会在模型运行后将输出添加至显示。
- 右键单击 AffectedVegetation 变量,然后选中添加至显示选项。这样便会在模型运行后将输出添加至显示。
- 运行模型。
输出 Output Clipped Feature Class 和 AffectedVegetation 表将被添加到 ArcMap 内容列表的显示中。
- 右键单击表,然后单击打开可打开对应的表。
表中显示的是对 A 计划中拟建道路的缓冲区面内受植被类型影响的区域的汇总。