ArcGIS中栅格数据的金字塔详解
Posted 流浪若相惜
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ArcGIS中栅格数据的金字塔详解相关的知识,希望对你有一定的参考价值。
1 栅格金字塔定义
金字塔可用于改善性能。它们是原始栅格数据集的缩减采样版本,可包含多个缩减采样图层。金字塔的各个连续图层均以 2:1 的比例进行缩减采样。以下是为栅格数据集创建的两级金字塔示例:
图 1?1金字塔示例
金字塔通过仅检索使用指定分辨率(取决于显示要求)的数据,可以加快栅格数据的显示速度。利用金字塔,可在绘制整个数据集时快速显示较低分辨率的数据副本。而随着放大操作的进行,各个更精细的分辨率等级将逐渐得到绘制;但性能将保持不变,因为您在连续绘制更小的各个区域。数据库服务器会根据用户的显示比例自动选择最适合的金字塔等级。如果不使用金字塔 (pyramid),则必须从磁盘中读取整个数据集,然后将其重采样为更小的大小。这便称为“显示重采样”,发生在刷新 ArcGIS 显示内容时。
每个栅格数据集只需构建一次金字塔,之后每次查看栅格数据集时都会访问这些金字塔。栅格数据集越大,创建金字塔集所花费的时间就越长。但是,这也就意味着可以为将来节省更多的时间。
尽管无法为栅格目录构建金字塔,但是可以为栅格目录中的每个栅格数据集构建金字塔。镶嵌数据集与栅格目录类似。您可以为镶嵌数据集中的每个栅格数据集构建金字塔;而为镶嵌数据集构建金字塔时只能使用镶嵌数据集工具集中的特定工具。
2 金字塔文件
金字塔存储在单独的文件中,该文件通常位于源栅格旁边。金字塔文件共有两种类型:金字塔 (.ovr) 和分辨率降低的数据集 (.rrd)。这两种类型的金字塔文件 ArcGIS 均可读取,但是只能写入 .ovr 文件(少数例外情况将在下文中予以介绍)。
.rrd 文件针对 ERDAS IMAGINE 文件而创建。
.ovr 文件由 ArcGIS 版本 10 或更高版本创建和使用。
通常情况下,对于栅格数据集(rasterdataset)创建rdd文件,对于镶嵌数据集(mosaicdataset)创建ovr文件。
下面分别来详解两种类型的金字塔文件。
2.1 OVR文件
金字塔 (.ovr) 文件是用于存储栅格数据集的金字塔 (pyramid) 图层的最新格式。满足以下条件时,即可创建 .ovr 文件:
文件格式不是 ERDAS IMAGINE (.img) 文件。
使用 ArcGIS 10 或更高版本构建金字塔 (pyramid)。
与 .rrd 文件相比,.ovr 文件的优势之一在于您可以控制压缩类型和金字塔的质量。
.ovr 文件的一个增强功能是可以使用 LZ77 或 JPEG 压缩方案进行压缩。请切记,JPEG 压缩只适用于可根据 JPEG 规范存储数据的文件类型。如果选择 JPEG 金字塔,还可以指定 JPEG 金字塔的压缩质量。
金字塔 (overview) 文件的大小大约是原始未压缩文件的 8%。如果金字塔文件经过压缩,.ovr 文件可能会更小(如 2%)。由于压缩依赖于数据的类似程度,因此很难估算 .ovr 文件的大小。
以下是各金字塔等级下栅格数据集存储大小增加情况的示例(根据不同的压缩类型)。等级 0 表示原始栅格数据集。
表 1 OVR文件大小
注意:小波压缩栅格文件格式(如 JPEG 2000、ECW 和 MrSID)具有内部金字塔。这通常意味着无法使用 ArcGIS 创建金字塔;但是,您可以为 JPEG 2000 创建金字塔。另外,采用小波压缩的地理数据库栅格也可以构建金字塔。
注意:通常不建议对军事数据构建金字塔。有关详细信息,请参阅创建军事数据并将其添加至镶嵌数据集。
在 ArcSDE 地理数据库或文件地理数据库中镶嵌栅格数据时,可在栅格数据镶嵌到栅格数据集的过程中为栅格数据集构建金字塔,也可以在加载完成后构建金字塔。ArcGIS 允许构造部分金字塔,即在执行镶嵌操作期间仅重新构建与源数据重叠的那部分金字塔。这在更新已镶嵌栅格数据集时大有裨益,因为添加新栅格数据集后,无需为整个栅格数据集重新构建金字塔。但是,如果更新的是栅格数据集原点(金字塔的参考点)处的数据,则需要为整个栅格数据集重新构建金字塔。
2.2 RRD文件
递减分辨率数据集 (.rrd) 文件是一种用于存储栅格数据集的金字塔图层的方法。可以在以下两种情况下创建 .rrd 文件:
文件格式为 ERDAS IMAGINE (.img) 文件。
使用 ArcGIS 10 之前的版本构建金字塔。
2.2.1 RRD 文件要求
为栅格数据集构建 .rrd 文件的必要条件是具有对该数据集所在的目录的写入权限。选择构建金字塔 (pyramid) 时,将在源数据集所在目录下创建 .rrd 文件。在下次添加该栅格数据集时,会使用这些金字塔。此规则的一个例外是 ERDAS IMAGINE 文件,因为在该文件中,金字塔的指针存储在图像文件中,而并非像其他格式一样存储在辅助 (.aux) 文件中。在这种情况下,您必须具有对栅格数据集及其所在目录的写入权限。
2.2.2 RRD 文件大小
对于已经解压缩的栅格,.rrd 文件大小最低约为原始栅格数据集大小的 8%。但在某些情况下,所创建的 .rrd 文件的大小可以大于原始文件 (33%),这具体要取决于原始栅格文件中使用的压缩技术。如果 .rrd 文件超过两千兆字节,则会创建一个递减分辨率数据集外部 (.rde) 栅格数据文件作为补充文件。
以下是使用全部各金字塔等级时栅格数据集存储大小增加情况的示例。等级 0 表示原始栅格数据集。
表 2栅格数据集存储大小与金字塔等级
2.3 OVR&RRD两种类型的比较
表 3两种文件的比较
2.4 镶嵌数据集与overview
从上文可以得出,在基础等级,镶嵌数据集金字塔类似于栅格数据集金字塔 (pyramid)。它们是较低分辨率的图像,创建此类图像的目的在于提高显示速度及降低 CPU 使用率,因为测试较少的栅格便可显示镶嵌的图像。但它们差别很大,因为您可以对许多用于创建镶嵌数据集金字塔的参数进行控制。您可以创建只覆盖特定区域的镶嵌数据集金字塔,也可以创建只具有特定分辨率的镶嵌数据集金字塔。通过创建该金字塔,您可以查看包含在整个镶嵌数据集中的所有栅格,而不仅仅是单个栅格。金字塔通常始于栅格金字塔 (pyramid) 停止的位置,但如果您不希望使用所有栅格的金字塔 (pyramid),则可指定生成金字塔的基础像素大小。
利用金字塔,可在查看整个镶嵌数据集的同时快速显示数据的较低分辨率副本。会在放大时绘制精细分辨率等级,同时会保持性能,因为镶嵌图像是使用依次减小的区域创建的。当以图像服务的形式或在网络上提供镶嵌数据集时,这会很有帮助。应根据显示比例选择最合适的金字塔。如果不使用金字塔,则将以动态方式对整个数据集进行处理。
镶嵌数据集中存在一个可限制要用于生成镶嵌图像的栅格数量的属性。您可以修改此属性;但如果达到此限制,建议构建金字塔。此项限制的目的在于防止计算机执行过多的像素处理操作及保持良好的显示速度。
在生成金字塔时,将使用应用于源栅格的函数对其进行处理。但不会使用任何在镶嵌数据集等级应用的函数对其进行处理。因此,修改镶嵌数据集等级函数时,无需重新生成金字塔。
2.4.1 生成金字塔
用来生成金字塔的工具有两种。“定义金字塔(Overview)”工具可用于自定义将要生成的金字塔。“构建金字塔(Overview)”工具可定义缺失的金字塔、更新及生成金字塔。
您可以在利用“添加栅格至镶嵌数据集”工具或“构建金字塔(Overview)”工具添加栅格数据时使用默认设置构建金字塔。使用何种工具将取决于您的工作流。如果正在创建简单镶嵌数据集(例如,一个包含您所在城市的所有正射影像的镶嵌数据集),且未对轮廓线进行任何修改,则可在添加数据时选中工具对话框中用来构建金字塔的选项。这样便会应用“构建金字塔(Overview)”工具的所有可用选项来构建完整的金字塔。如果尚未构建栅格数据集的金字塔 (pyramid) 和统计数据,则可能需要向镶嵌数据集添加正射影像,使用构建金字塔和统计值工具,然后使用“构建金字塔(Overview)”工具。
许多栅格数据集都具有内部金字塔 (pyramid);您也可以构建金字塔 (pyramid)。栅格数据集上的金字塔 (pyramid) 将减少镶嵌数据集所需的金字塔的数量。
2.4.2 定义overview
如果要对金字塔的生成位置、生成方式或生成内容进行更多控制,可使用“定义金字塔(Overview)”工具。
图 2?1定义overview
1.输出位置(可选),用来存储金字塔的文件夹或地理数据库。在个人地理数据库和文件地理数据库内存储和管理的金字塔具有默认的金字塔文件夹位置,该位置与现有的地理数据库位于同一工作空间中。
对于 ArcSDE 地理数据库,金字塔位置必须是 ArcSDE 数据库本身。
2.由数据集确定范围 (可选),一个栅格数据集或面要素类,用来定义金字塔的范围或形状。使用栅格数据集时将使用栅格数据集的范围。使用要素类时将使用面的形状。
3.范围 (可选),将生成四个用于定义金字塔范围的坐标。如果未定义范围,将使用镶嵌数据集边界来确定金字塔的范围。“清除”按钮会将范围重新设置回栅格目录的范围。
4.像素大小 (可选),用来生成金字塔的基本像素大小。默认值由软件确定。
5.级数 (可选),将生成的金字塔等级数。
如果是大于 0 的数,它将是生成的金字塔等级数。例如,3 表示将生成三个金字塔等级。如果值留空或为 -1,则生成的金字塔最多可达 1500 行(或列)。
6.行数 (可选),金字塔中的最佳行数。值越大,文件也就越大,下方的任意图像发生变化时需要重新生成文件的可能性也越大。 该数字可能会影响创建的金字塔图像数。如果是一个较大的数字,则会生成较少的金字塔。如果是一个较小的数字,则会生成较多的文件。
7.列数 (可选),金字塔中的最佳列数。值越大,文件也就越大,下方的任意图像发生变化时需要重新生成文件的可能性也越大。该数字可能会影响创建的金字塔图像数。如果是一个较大的数字,则会生成较少的金字塔。如果是一个较小的数字,则会生成较多的文件。
8.总览采样系数 (可选),用来确定下一个金字塔大小的比率。例如,如果第一个等级的像元大小为 x,金字塔系数为 3,则下一个金字塔像素大小将为 3x。
9.强制金字塔(Overview)分块参数 (可选),影响将生成的金字塔所处的等级。 取消选中 - 只会在主栅格金字塔 (pyramid) 等级之上创建金字塔 (overview)。这是默认设置。选中 - 将在所有等级下创建金字塔 (overview),尽管主栅格具有金字塔 (pyramid)。
10.重采样方法 (可选),创建金字塔 (overview) 时使用的重采样算法。NEAREST—最邻近分配法。BILINEAR—双线性插值法。这是默认设置。 CUBIC—三次卷积插值法。
11.压缩方法 (可选),此参数用于定义存储金字塔图像时使用的数据压缩类型。JPEG—有损压缩。这是默认设置。无—无数据压缩。LZW—无损压缩。
12.压缩质量 (可选),JPEG 压缩方法所采用的压缩质量。压缩质量的变化范围是 1 到 100。数字较大,意味着图像的质量较高,但压缩程度较低。
2.2.3 构建overview
图 2?2构建金字塔
“构建金字塔(Overview)”工具具有若干适用于对镶嵌数据集进行修改或更新的工作流的选项。
1. 通过查询定义,可以可以使用 SQL 定义查询,或者使用查询构建器构建查询。
2.定义缺失总览图分块(可选),可以在定义的金字塔不足或添加新数据而未定义附加金字塔时生成金字塔。其中:选中 - 自动识别需要金字塔的位置并在该处定义金字塔。这是默认设置。 取消选中 - 不会定义新金字塔。
3.生成金字塔(Overview) (可选),可以生成所有需要创建或重新创建的金字塔。这包括缺失的金字塔和过时的金字塔。选中 - 生成所有类型和所有状态的金字塔。这是默认设置。 取消选中 - 仅构建已经定义但未生成的金字塔。
4.仅生成缺失金字塔(Overview)图像 (可选),在已经定义但尚未生成金字塔时使用。选中 - 生成已经定义但尚未生成的金字塔。这是默认设置。取消选中 - 不生成已经定义但尚未生成的金字塔。
5.仅重新生成过时的金字塔(Overview)图像 (可选),如果基础栅格数据集发生更改或其属性进行过修改,会将金字塔识别为过时的金字塔。 选中 - 更新过时的金字塔。这是默认设置。 取消选中 - 不更新过时的金字塔。
其中再次强调下重新生成过时的金字塔图像这个选项。过时表明用于创建金字塔的源栅格已被修改或缺失。如果在生成金字塔之后从镶嵌数据集中移除了栅格或修改了轮廓线,则请使用此选项。对镶嵌数据集进行了大量修改(包括添加或移除栅格,或者更改栅格的轮廓线)时,用于定义缺失金字塔切片的选项会很有用。该选项将评估镶嵌数据集以确定是否已定义足够的金字塔,或者是否在未定义其他金字塔的情况下添加了新数据,这样您便可以为镶嵌数据集生成完整的金字塔集。
2.3.4 添加栅格数据时维护overview
图 2?3添加栅格数据
在往已建立好的镶嵌数据集中添加栅格数据集也可以进行部分overview的设置,具体如下:
1.更新金字塔(Overview) (可选),定义和生成镶嵌数据集的金字塔。选中 - 将定义和生成金字塔。 取消选中 - 将不会定义或生成金字塔。这是默认设置。
2. 最大级别 (可选),同上文.
3.最大像元大小 (可选),同上文.
4.最小行数或列数 (可选),同上文.
2.3.5 实例说明
下面我们结合一个具体的影像数据来讲述镶嵌数据集与overview的关系.
图 2?4 overview示例
如上图所示,浏览镶嵌数据集,当放大的图像比较少时,一般使用金字塔生成的图像;当缩小视图从而包含了许多影像时,可以看到很多甚至全局的影像,这时候一般会调用overview。图中有三个原始影像,他们每个像素大小为0.5。金字塔针对每个原始影像创建,每一个创建两个层次,重采样了2倍,这是缺省值。Overview在金字塔的上层构建,缺省重采样参数是3。Overview是镶嵌好的影像而且受数据图幅大小的限制。在这个例子中,只有2个在第一层次的overview,即使原始数据是3幅影像,最终只有1个在顶层的overview。
可以有不同的组合。比如,上面的原始图像可以没有金字塔,这种情况下,overview将开始为1.5像素大小(1:5670)这是3倍,并会继续,直到它达到合适的overview大小显示,从而提升整个影像的速度。如果原始影像已经生成了金字塔,overview将需要得较少,从而生成overview的时间也更少。
2.2.6 镶嵌数据集中的overview与pyramid
通常,与显示镶嵌数据集中的每个栅格的金字塔 (pyramid) 相比,执行金字塔 (overview) 的速度会更快。使用以下影像时,您可以考虑在栅格金字塔 (pyramid) 上构建金字塔 (overview):
预处理的分块影像,例如正射影像象限图
对接(非重叠)影像,不会通过更改镶嵌方法产生
动态处理的影像,但参数和镶嵌方法不会更改
构建更复杂的镶嵌数据集时,尤其是在使用镶嵌方法和动态处理时,在源栅格上构建金字塔 (pyramid) 以及仅在所需位置构建金字塔 (overview) 非常有用,例如:
栅格数据集大于5000列
由于影像重叠,将会使用镶嵌方法
动态处理将会出现在任何比例范围内的源栅格上
影像不是静态预处理栅格
另外,如果计划使用“锁定栅格”(举例来说)查看镶嵌数据集中的各个栅格,则本身具有金字塔 (pyramid)(和统计值)的栅格数据集在不同比例下的渲染速度可能更快。在“栅格查看器”窗口(可从属性表的“栅格”列中访问)中预览栅格的速度也将会更快。有时可能会定义金字塔,但不对其进行构建;存储金字塔的位置崩溃,文件丢失;或者由于某种原因导致金字塔缺失,但在镶嵌数据集中对其进行了定义。您可以通过用来生成缺失图像的选项,创建或重新创建缺失的金字塔。
此外,您还可以使用其他数据集作为金字塔,如 ArcGIS.com 中的图层或为其他镶嵌数据集生成的其他金字塔。通常推荐执行此操作,因为在缩小时,影像中的许多细节会丢失,色彩会退化,而且各要素相互混杂,大型要素也会不易识别,尤其是在使用高分辨率影像或正射影像时。使用“添加栅格至镶嵌数据集”工具可添加这些栅格数据集,并可像处理镶嵌数据集中的其他所有栅格一样对这些栅格数据集进行处理。这些栅格数据集与根据镶嵌数据集生成的金字塔之间的唯一区别是:属性表中的“类别”字段将不是“金字塔”。
3 金字塔设置
3.1 重采样
有三种金字塔重采样方法可供使用:最邻近法、双线性和双三次卷积。最邻近法是默认采用的方法,通常适用于任意类型的栅格数据集。但是,建议对带有色彩映射表的离散(标称)数据或栅格数据集(如土地利用数据、经过扫描的地图和伪彩色图像)应用最邻近法。对于连续数据(如卫星影像或航空摄影),应使用双线性插值法或双三次卷积法。尽管双线性插值法执行速度更快,但是得到的结果却不如双三次卷积法的结果锐利。对于 1 位 TIFF 或 IMG,建议使用双线性插值法。
3.2 镶嵌和栅格数据集原点
栅格数据集的原点即为栅格数据集左上角的坐标。金字塔的构造始于该坐标,然后向右、向下持续进行。如果从栅格数据集的原点开始向左或向上镶嵌数据,ArcSDE 需要变换原点,以使原点仍位于左上角。变换现有栅格数据集的原点后,ArcSDE 需要重新构建金字塔。重新构建金字塔的操作可能非常耗时,尤其是在大量栅格数据集源文件(或其他栅格数据集)已经镶嵌到栅格数据集中从而使该栅格数据集变大的情况下更是如此。
arcgis无法创建netcdf栅格数据集