使用图层和表视图
工具的最常见输入是数据集。当然,可以始终浏览至磁盘上的数据集,但是也可以使用图层或表视图作为输入。
- 在 ArcMap 内容列表中看到的是图层。图层包含数据集路径,以及符号信息和要素或行选择信息。
- 表视图是相当于图层的表。它们是存储在内存中的表,与将表添加至 ArcMap 时创建的表视图相同。如下图所示,可通过单击内容列表顶部的“按源列出”按钮 来查看表。
在表上操作的任何工具也可以在要素类或要素图层上操作。这是因为要素类只是具有包含要素形状属性的表。除此之外,它们只是表。
在 ArcMap 中打开工具对话框或在 Python 窗口中输入工具名称时,会发生以下情况:
- ArcGIS 检查工具参数,以查看哪些参数使用输入数据集或表。如果发现这样的参数,它会进一步检查输入数据集的类型。它是点要素类吗?是 TIN 吗?是网络吗?是表吗?
- 然后会扫描和过滤 ArcMap 内容列表,以查看是否有图层与参数数据集类型相匹配。如果是这样,会从匹配的图层创建一个列表,以下拉列表的形式出现在参数的控件中。可以从这些图层或表视图中选择一个作为输入。
以下图示显示缓冲区工具和它为输入要素参数构造的图层的下拉菜单。
有些工具只接受图层或图层文件作为输入或输出。如果您使用的工具就属于此类情况,参数的显示名称将包含文字图层(例如,输入要素图层而不是输入要素)。
使用图层(而不是浏览到磁盘上的数据集)很自然且直观。不过,除了将图层用作磁盘上数据集的简单快捷方式之外,使用图层还有许多好处。
- 图层和表视图中可包含所选的要素或行,而地理处理工具将只对所选要素或行执行操作。
- 图层和表视图不必完全来自 ArcMap 内容列表。可使用地理处理工具创建它们,以便能够在 ArcCatalog 中使用。
- 图层的存在时间很短;编写脚本和模型时需要意识到这一点,因为之后运行脚本或模型时图层可能已经不复存在。
“创建图层”工具(如创建栅格图层)可根据输入数据创建图层。此图层被临时存储在内存中;不将其保存在磁盘上,仅在当前会话中可用。如果关闭会话,图层即被删除。在 ArcCatalog 中创建的图层无法在 ArcMap 中使用,反之亦然。ArcCatalog 不显示创建的图层,但可将其用作您所在会话中其他地理工具的输入。
选择
图层或表视图中包含选择(有时称作选择集)。选择是要素类中要素的子集或表中行的子集。在 ArcMap 中,可通过多种方法来选择要素,例如:在地图显示中绘制出一个形状以选择该形状内的所有要素,或者使用逻辑表达式来选择。使用“数据管理”工具箱图层和表视图工具集中的地理处理工具也可选择要素和行。如下图所示,在 ArcMap 中单击内容列表顶部的“按源列出”按钮 可查看要素或行的数目。
几乎所有地理处理工具都只对所选要素或行的集合起作用。例如,裁剪工具在输入要素数据集和裁剪要素数据集中都只使用当前所选要素。汇总统计数据工具只对所选内容计算统计数据。实际上,工具对所选要素集合不起作用的情况极其少见。如果工具不使用所选集合,则工具参考页面会明确指出它不使用所选集合。
修改要素类方案或表方案的工具(如添加字段)不使用所选集合,因为不可能只将字段添加到某一组记录中而不添加到另一组记录中。
已启用时间的图层
如果工具的输入是已启用时间的图层,则只会处理那些时间滑块窗口设置的指定时间段内的要素。使用已启用时间的图层时,可以将时间滑块当作选择要素进行进一步处理的方式。
内部图层
不需要使用 ArcMap 也可创建图层。在 ArcCatalog 中,可使用图层和表视图工具集中的创建要素图层工具在内存中创建要素类的内部图层。
使用地理处理工具创建图层或表视图时,新建的图层或表视图存储在不同于 ArcMap 内容列表的另外一个内部图层列表中。也就是说,地理处理实际上保存了两份图层和表视图列表:
- ArcMap 内容列表中的图层列表
- 地理处理工具创建的内部图层列表
无论图层保存在何处,在工具对话框的同一下拉列表中都会显示图层。
如果在 ArcMap 中执行创建要素图层操作,通过启用将地理处理操作的结果添加到显示中选项可将图层自动添加到 ArcMap 内容列表中。
在模型或脚本中使用图层
退出 ArcGIS for Desktop 应用程序后,所有图层都将从内存中删除。一个常见的问题就是会创建将图层用作变量的模型或脚本 - 此类模型或脚本在当前会话中可正常运行,但在后续会话中会失败,因为会话结束时图层即被删除。例如,脚本中可能包含以下代码片段:
landuse_layer = "Zoning"
此例中,变量 landuse_layer 被“硬编码”为 Zoning。随后在此脚本中使用了 landuse_layer 变量,脚本将返回错误,因为当前应用程序中没有名为 Zoning 的图层。如果在 ArcMap 中用内容列表中的 Zoning 图层执行该脚本,它将正常运行,但在 ArcCatalog 中(或者当 Zoning 图层不存在时)执行该脚本便会失败。
模型也同样如此。如果要创建的模型中使用了 Zoning 图层,该模型便会失败,因为应用程序中没有该名称对应的图层。
在这两种情况下,可采用以下其中一种方式:
- 使图层名称与工具参数同名,这样用户在执行工具时便可指定图层名称。
- 在运行工具之前创建图层。
- 在模型或脚本中创建图层。
使用图层文件
图层可以图层文件(扩展名为 .lyr 的文件)的形式保存到磁盘,然后用作接受图层的任意工具的输入。
图层文件与内部图层(例如 ArcMap 内容列表中的图层,包括图层选择)包含的信息相同,包括选择要素的信息。
要创建一个图层文件,可以使用保存至图层文件工具。在 ArcMap 中,可以右键单击内容列表中的图层,再单击另存为图层文件。
对于接受图层的任意工具,可以浏览至磁盘上的图层文件 (.lyr),就象浏览至磁盘上的数据集一样。然而,浏览至图层文件时,有些工具不能确定图层文件中包含的数据类型,因此会显示全部图层文件。如果选择的图层文件不当,工具会显示错误或警告。
重复的图层名称 - 使用图层组
在 ArcMap 中,允许内容列表中存在多个名称相同的图层。当地理处理通过扫描内容列表来构建图层列表时,它不会删除重复的图层名称,因此,无论名称是否重复,图层下拉列表中都将包含所有图层。
如果选择具有重复名称的图层,则将无法分辨出要使用的图层。