要在 ArcGIS Desktop 应用程序(例如 ArcMap 或 ArcCatalog)中执行一些地理处理操作或特定任务(例如应用对比度拉伸或分类数据),往往会需要栅格数据集或镶嵌数据集的统计数据。
对于栅格数据集,统计数据信息(包括直方图)如果不能存储在数据内部,则会存储在其关联的辅助文件中。辅助文件创建后,在将来需要的情况下可以重复使用其中的统计数据。镶嵌数据集的统计数据在内部存储。
统计数据不需要一开始就计算获取,因为它往往会在需要时自动进行计算。例如,在 ArcMap 中,如果将没有统计数据的栅格数据集首次添加到数据框中,当需要渲染栅格数据集时会根据数据集中的子集计算默认统计数据。这些统计数据是临时的,未存储到栅格数据集中。如果镶嵌数据集没有统计数据,那么在 ArcMap 中显示时不会自动计算统计数据。如果镶嵌数据集存在统计数据,那么会有更多的拉伸方法可用(如“裁剪百分比”和“直方图均衡化”)。
可以在“图层属性”对话框中修改拉伸参数来使用当前显示范围中的统计数据,也可以为数据集生成统计数据。还可以在影像分析窗口的“显示”部分修改拉伸参数。建议在 ArcMap 中使用统计数据之前创建栅格统计数据,这样显示栅格数据集时就不必等待计算统计数据。
如果没有统计数据,则可在 ArcCatalog 或 Catalog 窗口中创建,也可使用计算统计数据工具来创建。在计算统计数据时,有两组参数可以指定:跳跃因子和忽略值。如果设置了跳跃因子,则会跳过一些像素,从而加快统计数据的计算过程。行和列的跳跃因子在默认情况下都为 1,这意味着计算将使用栅格中的所有像元,这样所得到的统计数据最为精确。对大型镶嵌数据集或存储在 ArcSDE 中的大型栅格计算统计数据时,建议使用跳跃因子(例如 100)。这样就不会检查其中所有的像元,从而为您节省时间。并不是所有栅格格式都可使用跳跃因子。计算统计值时可利用跳跃因子的栅格格式包括:TIFF、IMG、NITF、DTED、RAW、ADRG、CIB、CADRG/ECRG、DIGEST、GIS、LAN、CIT、COT、ERMapper、ENVI DAT、BIL、BIP、BSQ 和地理数据库。如果不希望在计算统计数据时使用一些诸如背景值(例如,某些卫星数据的边缘部分)或 NoData 值之类的像元值,则可以将其指定为忽略值。
如果您不希望应用程序计算栅格数据集或镶嵌数据集的统计数据,可使用设置栅格属性工具对其进行定义。您可以输入各波段的最小值、最大值、标准差和平均值,也可以从包含统计数据的 XML 文件中提取值。此文件可通过从其他栅格或镶嵌数据集中导出统计数据来创建。此工具不会导入同样是用统计数据以 aux.xml 格式存储的直方图。
栅格数据集或镶嵌数据集的统计数据可在相应数据集的“属性”对话框中查看。下例显示了一个专题栅格数据集的统计数据(例如土地利用数据集)。会针对每个波段来计算统计数据,如果栅格数据集中有多个波段,则每个波段都有相应的统计数据。可以看到其中列出了构建统计数据所使用的参数。计算的统计数据包括最小和最大像素值以及所计算像素值的平均值和标准差,而且如果数据集是专题型,则还将列出类的数量。如果数据集是连续型,则没有类。
在格网数据集中不能重新计算统计数据,因为统计数据存储在该文件格式中并且始终存在。除去值为 NoData 的像元外,计算统计数据时将使用格网中的其余所有像元。
镶嵌数据集统计数据
统计数据(及直方图)用于实现影像的自动拉伸,因此对于某些类型的分析非常重要。它们可出现在镶嵌数据集内的三个位置上:
- 镶嵌数据集
- 每个源栅格数据集
- 应用函数后镶嵌数据集中的每个栅格项目
镶嵌数据集统计数据
在显示镶嵌数据集时,这些统计数据会应用于整个镶嵌数据集。
在对镶嵌数据集进行计算统计数据操作时,会检查基础像素;即,检查像素数量最小的源栅格数据集,并在整个镶嵌范围内生成统计数据。这就是建议使用跳跃因子的原因。要判断出合理的跳跃因子值,可以将列数除以 1,000,并将商(整数)用作跳跃因子。但是,如果镶嵌数据集存在概视图,则使用概视图生成统计数据。构建概视图时,将自动生成统计数据。
要计算镶嵌数据集的统计数据,请右键单击目录 窗口中的镶嵌数据集,然后单击计算统计数据;打开计算统计数据工具。也可以直接打开此工具。
源栅格数据集统计数据
镶嵌数据集内源栅格数据集的统计数据。如果要对栅格数据集进行色彩平衡,这些数据必不可少。
对于镶嵌数据集中的每个栅格数据集,并不会自动为其生成统计数据;但是,向镶嵌数据集添加栅格数据时,可以选中计算统计数据来计算每个源栅格数据集的统计数据(如果尚无统计数据)。还可以使用构建金字塔和统计数据工具,添加镶嵌数据集作为输入,然后选中计算统计数据和包含源数据集选项。
栅格项目统计数据
镶嵌数据集的属性表中的每一行代表镶嵌数据集中的一个栅格项目。栅格数据集和镶嵌数据集中的栅格项目之间并不总是一对一的关系;因此,应该分开来处理。例如,一个栅格项目可能代表一个根据两个数据集创建的全色锐化影像。每个栅格项目都可以有专门的函数链,其可能会导致统计数据发生明显变化(进而影响到渲染);例如,NDVI 函数、“算术”函数或“拉伸”函数会改变像素值并改变统计数据。和源栅格数据集一样,不会为镶嵌数据集中的每个栅格项目自动生成统计数据。
要计算镶嵌数据集中栅格项目的统计数据
- 使用构建金字塔和统计数据工具,选中计算统计数据选项,取消选中包含源数据集选项。
- 使用同步镶嵌数据集工具并选中计算统计数据选项,以计算每个栅格项目的统计数据。此工具支持分项选择,因此可计算整个镶嵌数据集中某个子集的统计数据。
“统计”函数和“拉伸”函数
统计函数根据已定义的焦点邻域(而不是此主题所讲的直方图和统计数据)来计算各像素的焦点统计数据。
拉伸函数可用于通过多种拉伸类型更改亮度、对比度和 Gamma 属性,从而增强影像效果。默认情况下,此函数采用的统计数据检索自数据;但是,可以在函数的对话框中输入自定义的统计数据。如果不指定用户自定义的统计数据,就必须确保已计算出统计数据。并且根据添加此函数的位置来确定用于计算统计数据的工具(如上所述)。
- 如果在镶嵌数据集中添加了“拉伸”函数,则需要计算镶嵌数据集的统计数据。
- 如果将“拉伸”函数添加到栅格的函数链中作为第一个函数,或者“拉伸”函数成为函数链中影响像素值的第一个函数,则需要计算栅格数据集的统计数据。
- 如果将“拉伸”函数添加到可影响像素值的函数之后,则需要计算栅格项目的统计数据。
色彩平衡
色彩平衡会尽量消除不同影像之间的趋向以使其看起来几乎没有缝隙。使用色彩平衡时,必须具有镶嵌数据集内栅格的统计数据。如果尝试使用平衡镶嵌数据集色彩工具或镶嵌色彩校正窗口对包含不具有统计数据的栅格数据集的镶嵌数据集进行色彩平衡,则色彩平衡将无法完成,并弹出消息报告缺少统计数据。
显示属性(关闭默认拉伸)
默认情况下,如果存在统计数据,应用程序(例如 ArcMap)就会应用拉伸以增强影像显示效果。如果在镶嵌数据集中已预拉伸(增强)影像或已使用“拉伸”函数,就可能不希望应用程序再应用默认拉伸。在这种情况下,可以修改属性以关闭默认拉伸:打开镶嵌数据集的属性,单击常规选项卡,然后将源类型属性值设置为已处理。