运行模型时,模型中的各个流程都会创建输出数据。其中的某些输出数据只是作为中间步骤创建,而后连接到其他流程,以协助完成最终输出的创建。由这些中间步骤生成的数据称为中间数据,通常(但并不总是)在模型运行结束后就没有任何用处了。您可以将中间数据看作是一种应在模型运行结束后即删除的临时数据。但是,当您运行一个通过模型构建器窗口构建的模型时,中间数据并不会自动删除 - 是否将其删除是由您决定的。
除现有数据和最终输出变量之外的所有数据变量都将在模型中自动标记为中间数据。要确定模型中的数据变量是否被视为中间数据,或者要更改用作中间数据的变量的状态,请右键单击该变量,并通过单击中间数据来添加或移除它旁边的复选标记。
控制中间数据的写入位置
用于新建输出数据集的地理处理工具会自动生成输出数据集的名称(详见使用当前及临时工作空间环境)。自动生成的名称中包含了数据集所在的工作空间或文件夹的路径。模型构建器使用此自动生成的输出名称来写入中间数据。您可以随时通过为输出数据集输入其他名称和位置来覆盖此输出数据集名称,还可以使用某些方法来指定用来构建自动生成的输出名称的工作空间。
使用模型构建器时,很容易忽略这个自动生成的输出名称,尤其是对中间数据而言。但在某些情况下,您需要控制中间数据的写入位置。可以将中间数据写入以下位置:
- 任一工作空间(地理数据库、地理数据库要素数据集或文件夹),这通过右键单击中间数据变量并更改其写入位置来完成。如果存在大量中间数据,则可以使中间数据成为托管数据,如使中间数据成为托管数据主题中所述。
- 临时 GDB(临时地理数据库)或临时文件夹。在 ArcGIS 10.1 中涵盖了有关这两个只读环境的介绍。下图表示被标记为中间数据的质心相交数据变量,其输出位置是临时地理数据库 (%scratchGDB%)。百分号 (%) 表示变量替换 - 运行模型工具时展开 scratchGDB 的值,然后将名为 poly_Intersect 的要素类写入临时地理数据库。同样,可以使用 %scratchFolder% 来写入基于文件的数据,例如,.lyr 或 .txt 文件。
- 至内存工作空间。
- 至临时工作空间(使用 %scratchworkspace%)。此环境可以由您(或工具用户)设置为任意位置 - 文件夹、地理数据库或地理数据库中的要素数据集。建议不要借助要共享的工具使用临时工作空间环境,因为工具用户可能将临时工作空间环境设置为文件夹、地理数据库或要素数据集。例如,您可能期望将临时工作空间设置为文件夹,这样可以输出图层文件,但工具用户却将临时工作空间设置为地理数据库。如果运行工具时失败,原因可能是您无法将图层文件写入地理数据库。在 10.1 中引入临时地理数据库和临时文件夹环境的主要原因即在于此 - 为您提供一个用于写入数据的已知地理数据库和已知文件夹。
下面是在模型中写入中间数据的一些建议,如下所述:
- 绝对不要将中间数据写入 ArcSDE 地理数据库。这将导致产生性能问题,因为您是在向局域网中的企业级数据库写入临时数据。建议您始终使用文件地理数据库(而不是个人地理数据库或 shapefile 工作空间)作为临时工作空间。
- 请避免将中间数据混入当前运行的地理数据库。而是应该指定其他工作空间(最好是文件地理数据库)来写入中间数据。
- 写入中间要素类时,您可能希望将 Shapefile 写入临时文件夹。应避免这种做法,并将要素数据写入临时地理数据库,因为 Shapefile 具有某些相当重要的限制,这可能会影响工具的可移植性。有关 Shapefile 及其限制的详细信息,请参阅 Shapefile 输出的地理处理注意事项。