使用模型构建器创建工具快速浏览
以下显示的模型假定您正在为特定研究区域(在模型中以 StudyArea 变量表示)组合数据,并且需要根据研究区域来裁剪几个数据集。对于裁剪的每个数据集,您需要添加一个名为 STATUS 的字段,并基于初始值 1 来计算该字段。实际上,您可能需要添加多个字段并计算它们的值,但是对于这个简单情景,STATUS 字段就足以满足要求。
以下模型将执行的操作有裁剪、添加字段以及计算该字段,但是需要组合的数据分布在多个地图文档和地理数据库中。您面临的工作流问题是:每次运行该模型时,都必须在“模型构建器”中打开此模型,然后将 Clip 的输入从 Soils 更改为其他数据集。
与其每次处理数据集时都要打开“模型构建器”,不如就像使用系统工具一样,使用模型的工具对话框来运行模型,并通过将图层或数据集拖到该对话框中来提供输入数据集的名称。但是,当打开此工具对话框时,会显示此工具没有参数(如下图所示),因此无法输入想要处理的数据集。
该模型的另一个问题是它不能在其他模型中使用。下图显示了将该工具添加到新模型中,以便将该模型的输出连接到标识工具。但由于 Clip to study area and add field 工具没有可连接到标识工具的输出,因此无法建立连接。
解决方案 - 创建模型参数
以上两种情况都可通过创建模型参数来解决。要创建模型参数,请右键单击模型变量,然后选择模型参数。在下图中,变量 Soils 和 Soils_Clip (3) 已变为模型参数。模型参数以变量旁显示字母 P 的方式表示。
现在,打开模型工具对话框时,可以将土壤参数改为其他内容,如植物数据集或图层。还可以提供一个其他输出数据集名称。单击确定时,此工具将使用所提供的数据运行。
请注意,模型变量 StudyArea 并没有成为参数。因为研究区域始终不变,所以不必将其变为参数。
更改参数名称
此工具对话框存在一个问题 - 参数名称的描述性不强;除了土壤和 Soils_Clip (3) 参数名称外,还需要一些描述性更强的内容,如输入要素和输出要素类。要更改此工具对话框中的参数名称,可在“模型构建器”中更改变量的名称,如下图所示。
现在,打开此工具对话框时,参数的名称将变得很有意义:
将参数留空
最后,请注意,此工具对话框中的参数是预先填充值的,例如,Soils 和 E:\10DocModels\PortlandSmall.gdb\Soils_Clip。如果在 ArcMap 中打开该工具,但没有名为 Soils 的图层,则该对话框将显示错误(红色 X),因为图层 Soils 不存在。虽然这并不是问题,因为您可以随时选择其他图层或浏览查找其他数据集,但可通过清除模型中的变量来避免出现错误消息,如下图所示。此模型将不再在“模型构建器”中运行,但是它将使用自身的工具对话框运行。
现在,由于模型变量为空,此工具对话框将不再显示任何值。
在其他模型中使用此模型工具
由于模型具有参数,因此可以将其添加到“模型构建器”并将其输出连接到 Identity 的输入,如下图所示。
摘要
要使模型成为可用的工具,可以创建模型参数。模型参数显示在工具对话框中。模型变量的名称会成为工具对话框中的参数名称。不必将每个模型变量都变为模型参数;在以上示例中,由于 StudyArea 变量从不需要更改,因此它不是模型参数。
通过创建模型参数,可以将模型变为有用的工具 - 可对此工具使用不同的数据、将此工具添加到其他模型中,并且还可在脚本中使用此工具。随着时间的推移,您将建立起一个包含有用工具的库,并将它们用在最初创建模型时从未预料到的情况下。同样重要的是,您还可以将较大的复杂模型分割成较小的模型(因而更易于管理),并将其中一个工具的输出作为另一个工具的输入。
要了解有关创建模型工具的详细信息,请参阅使用模型构建器创建工具的教程。