镶嵌数据集金字塔 (overview)
在基础等级,镶嵌数据集金字塔类似于栅格数据集金字塔 (pyramid)。它们是较低分辨率的图像,创建此类图像的目的在于提高显示速度及降低 CPU 使用率,因为测试较少的栅格便可显示镶嵌的图像。但它们差别很大,因为您可以对许多用于创建镶嵌数据集金字塔的参数进行控制。您可以创建只覆盖特定区域的镶嵌数据集金字塔,也可以创建只具有特定分辨率的镶嵌数据集金字塔。通过创建该金字塔,您可以查看包含在整个镶嵌数据集中的所有栅格,而不仅仅是单个栅格。金字塔通常始于栅格金字塔 (pyramid) 停止的位置,但如果您不希望使用所有栅格的金字塔 (pyramid),则可指定生成金字塔的基础像素大小。
利用金字塔,可在查看整个镶嵌数据集的同时快速显示数据的较低分辨率副本。会在放大时绘制精细分辨率等级,同时会保持性能,因为镶嵌图像是使用依次减小的区域创建的。当以图像服务的形式或在网络上提供镶嵌数据集时,这会很有帮助。应根据显示比例选择最合适的金字塔。如果不使用金字塔,则将以动态方式对整个数据集进行处理。
镶嵌数据集中存在一个可限制要用于生成镶嵌图像的栅格数量的属性。您可以修改此属性;但如果达到此限制,建议构建金字塔。此项限制的目的在于防止计算机执行过多的像素处理操作及保持良好的显示速度。
在生成金字塔时,将使用应用于源栅格的函数对其进行处理。但不会使用任何在镶嵌数据集等级应用的函数对其进行处理。因此,修改镶嵌数据集等级函数时,无需重新生成金字塔。
创建金字塔
用来生成金字塔的工具有两种。“定义金字塔(Overview)”工具可用于自定义将要生成的金字塔。“构建金字塔(Overview)”工具可定义缺失的金字塔、更新及生成金字塔。
您可以在利用“添加栅格至镶嵌数据集”工具或“构建金字塔(Overview)”工具添加栅格数据时使用默认设置构建金字塔。使用何种工具将取决于您的工作流。如果正在创建简单镶嵌数据集(例如,一个包含您所在城市的所有正射影像的镶嵌数据集),且未对轮廓线进行任何修改,则可在添加数据时选中工具对话框中用来构建金字塔的选项。这样便会应用“构建金字塔(Overview)”工具的所有可用选项来构建完整的金字塔。如果尚未构建栅格数据集的金字塔 (pyramid) 和统计数据,则可能需要向镶嵌数据集添加正射影像,使用构建金字塔和统计值工具,然后使用“构建金字塔(Overview)”工具。
许多栅格数据集都具有内部金字塔 (pyramid);您也可以构建金字塔 (pyramid)。栅格数据集上的金字塔 (pyramid) 将减少镶嵌数据集所需的金字塔的数量。
通常,与显示镶嵌数据集中的每个栅格的金字塔 (pyramid) 相比,执行金字塔 (overview) 的速度会更快。使用以下影像时,您可以考虑在栅格金字塔 (pyramid) 上构建金字塔 (overview)
- 预处理的分块影像,例如正射影像象限图
- 对接(非重叠)影像,不会通过更改镶嵌方法产生
- 动态处理的影像,但参数和镶嵌方法不会更改
构建更复杂的镶嵌数据集时,尤其是在使用镶嵌方法和动态处理时,在源栅格上构建金字塔 (pyramid) 以及仅在所需位置构建金字塔 (overview) 非常有用,例如
- 由于影像重叠,将会使用镶嵌方法
- 动态处理将会出现在任何比例范围内的源栅格上
- 影像不是静态预处理栅格
另外,如果计划使用“锁定栅格”(举例来说)查看镶嵌数据集中的各个栅格,则本身具有金字塔 (pyramid)(和统计值)的栅格数据集在不同比例下的渲染速度可能更快。在“栅格查看器”窗口(可从属性表的“栅格”列中访问)中预览栅格的速度也将会更快。
“构建金字塔(Overview)”工具具有若干适用于对镶嵌数据集进行修改或更新的工作流的选项。有一个选项可重新生成过时的金字塔图像。过时表明用于创建金字塔的源栅格已被修改或缺失。如果在生成金字塔之后从镶嵌数据集中移除了栅格或修改了轮廓线,则请使用此选项。对镶嵌数据集进行了大量修改(包括添加或移除栅格,或者更改栅格的轮廓线)时,用于定义缺失金字塔切片的选项会很有用。该选项将评估镶嵌数据集以确定是否已定义足够的金字塔,或者是否在未定义其他金字塔的情况下添加了新数据,这样您便可以为镶嵌数据集生成完整的金字塔集。
有时可能会定义金字塔,但不对其进行构建;存储金字塔的位置崩溃,文件丢失;或者由于某种原因导致金字塔缺失,但在镶嵌数据集中对其进行了定义。您可以通过用来生成缺失图像的选项,创建或重新创建缺失的金字塔。
此外,您还可以使用其他数据集作为金字塔,如 ArcGIS.com 中的图层或为其他镶嵌数据集生成的其他金字塔。通常推荐执行此操作,因为在缩小时,影像中的许多细节会丢失,色彩会退化,而且各要素相互混杂,大型要素也会不易识别,尤其是在使用高分辨率影像或正射影像时。使用“添加栅格至镶嵌数据集”工具可添加这些栅格数据集,并可像处理镶嵌数据集中的其他所有栅格一样对这些栅格数据集进行处理。这些栅格数据集与根据镶嵌数据集生成的金字塔之间的唯一区别是:属性表中的“类别”字段将不是“金字塔”。
控制金字塔生成
如果要对金字塔的生成位置、生成方式或生成内容进行更多控制,可使用“定义金字塔(Overview)”工具。
金字塔的存储位置
无论在何时或以何种方式生成金字塔,过程的第一步总是定义金字塔(方法是向镶嵌数据集属性表添加金字塔),然后是生成金字塔(即栅格数据集)。默认情况下,会在镶嵌数据集所处位置旁的文件夹中生成和存储金字塔。此文件夹的名称与地理数据库的名称相同,具有 .overview 扩展名。但是,如果镶嵌数据集创建于 ArcSDE 地理数据库,则将在该地理数据库中创建金字塔。
镶嵌数据集会参考其源栅格,如果金字塔未保存在地理数据库中,则您可能更希望将金字塔与源栅格一起存储。此外,如果打算在某个镶嵌数据集中使用在其他镶嵌数据集中创建的金字塔,则可能需要单独管理金字塔的位置。生成金字塔之前,可使用“定义金字塔(Overview)”工具定义金字塔的输出位置。
定义在镶嵌数据集中生成金字塔的位置
有若干参数可控制镶嵌数据集中用于生成金字塔的区域及生成的金字塔等级。默认情况下,将为包含在镶嵌数据集边界内的区域生成金字塔。但在某些情况下,可能要控制生成的区域。可通过在镶嵌数据集的空间参考系统中指定最小、最大 x 和 y 坐标来定义矩形区域。
此外,还可能要控制生成金字塔的等级或分辨率。可以定义要用于生成金字塔的基础像素大小。使用此选项对栅格执行预处理,以帮助提高显示速度。例如,如果正在对镶嵌数据集中的栅格进行正射校正、全色锐化及色彩平衡,则以应用全部三个函数的分辨率查看镶嵌图像时的计算量会非常大。您可能需要在频繁查看的区域中创建已处理的栅格。要执行此操作,先定义范围,然后定义应用全色锐化函数的位置的像素大小(全色图像的分辨率)。默认情况下,工具将为此区域定义金字塔(从定义的分辨率开始,直到达到最小金字塔大小限制为止)。可以通过定义要生成的等级的数目,对此进行进一步控制。例如,可能只需要以全色图像的分辨率生成一个金字塔。要执行此操作,您可以指定一个金字塔等级。
您还可以控制是否在金字塔生成中考虑栅格的金字塔 (pyramid)。可能使用您不喜欢的重采样方法生成了原始金字塔 (pyramid),也可能由于某种其他原因而不需要使用任何金字塔 (pyramid)。选中“定义金字塔(Overview)”工具对话框中的“强制金字塔(Overview)切片参数”选项,这样将忽略所有栅格金字塔 (pyramid),并从大于栅格基础像素大小的系数开始定义金字塔。例如,如果系数为 3,而基础像素大小或栅格为 1 米,则将以 3 米开始生成金字塔。
此外,镶嵌数据集可能由数据源大量混合而成,并且由于某种原因,需要使用最开始的金字塔 (pyramid) 的一部分,而不是全部。您可以定义金字塔开始位置的像素大小。
定义金字塔的大小
建议使用软件确定金字塔的大小;但在某些情况下,可能需要指定具体的大小。可以通过三种方式控制大小:通过行和列、通过系数或通过压缩。通过定义最佳的行数和列数的方式来限制金字塔的物理尺寸时,值越大,文件也就越大,下方的任意图像发生变化时需要重新生成文件的可能性也越大。该数值还会影响创建的金字塔栅格数据集的数目。如果是一个较大的数值,则将生成较小的金字塔。如果是一个较小的数值,则会生成较多的文件。
您还可以通过修改金字塔系数来控制创建的金字塔栅格数据集的数目。此系数用来确定后续金字塔的大小。例如,如果第一个等级的像元大小为 x,金字塔系数为 3,则下一个金字塔像素大小将为 3x。系数越大,生成的金字塔栅格数据集就越少;但这会影响镶嵌图像的显示速度。通常,金字塔等级越多,显示的速度就越快,因为这减少了重采样的次数。
有若干压缩方法可用来控制存储金字塔所需的空间。您可以存储未经压缩的金字塔;但这将消耗最多的磁盘空间。建议使用某种格式进行压缩。如果注重于保存金字塔中的像素值,则推荐使用 LZ77 压缩,因为它是一种无损压缩。此外,还可以使用 JPEG 压缩,虽然它是一种有损压缩,但能够提供较高的压缩率。如果使用 JPEG 压缩,则可以对质量进行控制,也会因而影响文件的大小。压缩质量越高,图像质量就越高,但文件大小的压缩量就越小。
金字塔图像质量
“定义金字塔(Overview)”工具中存在若干可用于控制创建金字塔所使用的重采样方法、控制金字塔压缩及压缩质量的图像参数。因此,对于专题数据,可选择最邻近法;而对于航空摄影或卫星影像,则可使用双线性插值法或三次卷积插值法。而且如前文所述,您可以选择质量。因此,可以选择不进行压缩、进行无损压缩或进行可定义总体图像质量的压缩。例如,您可以选择质量为 75 的 JPEG 压缩,因为这可提供最佳的数据质量及文件大小。当然,在创建任何大型镶嵌数据集或任何数据库之前,始终建议首先创建较小的测试案例以定义最佳参数。
金字塔生成时间
向镶嵌数据集添加数据的速度会很快,这是由于未移动任何像素数据。但是,创建大型镶嵌数据集时则需要在规划中考虑金字塔的生成时间。上面提及的大多数选项都会影响生成时间,因此估算时间长度是相当困难的。所需的金字塔越多,花费的时间就越长。这是创建测试案例的另一个原因。
要使用或提供镶嵌数据集,不必等到金字塔生成完毕。创建镶嵌数据集后即可对该数据集及其基础栅格进行访问,而且在金字塔生成后,可以开始查看在镶嵌数据集中进一步缩小时所影响或创建的镶嵌图像。