了解概视图

定义/创建概视图类工具**

这一贴,接着说镶嵌数据集的概视图(Overview),如果你对栅格数据集的金字塔有所了解,那就能立即理解概视图的作用。概视图实际上是对镶嵌数据集显示上的”抽稀“,通过重采样生成多层低分辨率的栅格,用与不同比例尺下显示镶嵌数据集。无论是金字塔还是概视图,它们的目的都是为了提高栅格数据的显示速度和减少CPU的运算,从而提升体验。

ArcGIS的帮助文档中有这样一幅图,可以很好的说明数据源、金字塔、概视图之间的关系:

如果不创建概视图,那么在显示镶嵌数据集的时候,ArcMap会以动态方式对整个数据集进行处理,这样可想而知,一个庞大的镶嵌数据集,会消耗大量系统资源,甚至可能使资源消耗殆尽。没有概视图,每缩放或者挪动镶嵌数据集,ArcMap都动态运算显示的区域,这是个效率很低的事情。有时有朋友遇到,加入的镶嵌数据集是漆黑一片,那么很可能是没有创建概视图。

如果我们尚未对栅格数据构建金字塔和统计数据,可以使用工具 Build Pyramids And Statistics 对镶嵌数据集内的栅格数据批量创建金字塔和概视图,然后再创建概视图。栅格数据的金字塔会减少镶嵌数据集需要创建的概视图数据量。如果加入镶嵌数据集的栅格数据是下面的两种情形,推荐优先创建栅格金字塔再创建镶嵌数据集概视图:(1)可以接合没有重叠区的,也就是可以不受镶嵌方法影像的(2)参数和镶嵌方法不需要更改的,需要动态处理的栅格数据。

用于生成概视图的工具有两种: Define Overviews 和 Build Overviews。

除了上面的两个工具之外,我们在向镶嵌数据集中添加栅格数据时,也可以勾选创建概视图,这样会使用默认设置构建概视图。如果我们不需要对Footprint做修改的时候,可以在添加栅格数据时勾选这个选项直接创建概视图。


Build Overviews

这个工具可以定义缺失的概视图、更新及生成概视图。此工具支持镶嵌数据集的默认设置(也就是在Catalog中打开镶嵌数据集属性,在Default页签上的设置),但是在 ArcMap 中基于图层的设置对于这个工具是无效的。概视图的第一个级别在镶嵌数据集的全分辨率下创建,后续各个级别均在上一次生成的概视图级别基础上构建。工具中还有几个参数可以配置,用来满足不同构建概视图的需求。

工具默认会创建缺失的概视图,更新过期的概视图,如果有特别要求,可以按照下面的依据配置:

-(1)如果我们向镶嵌数据集添加了新数据集,而没有定义新增的概视图时,需要勾选 Define Missing Overview Tiles。如果个别情况下,不希望为新增的数据定义和新建概视图,取消勾选这一项。
-(2)如果我们已经定义了概视图,但是尚未生成,则需要勾选 Generate Missing Overview Images Only。
-(3)如果基础栅格数据集发生更改或其属性进行过修改,会将概视图识别为过期的概视图(Stale Overview),最后一个选项就是来控制是否更新过期的概视图。例如,我们从当前数据集移除了一些栅格数据,或者修改了轮廓线,那么原来创建的概视图就标识为了过期的概视图,这时候如果需要更新,应该勾选这一项的。


Define Overviews

如果创建概视图的默认设置不能满足我们的需要,我们还可以使用 Define Overviews 预先自定义配置:

定义Overview的写入位置:

默认情况下,会在镶嵌数据集所处位置旁的文件夹中生成和存储概视图。此文件夹的名称与地理数据库的名称相同,具有 .overview 扩展名。

如果镶嵌数据集创建于 ArcSDE 地理数据库,默认将在该地理数据库中创建概视图。

以Oracle为例,有关镶嵌数据集的信息存储在GDB_ITEMSGDB_ITEMTYPES系统表中。创建该镶嵌数据集的用户的方案中可能还存储着 12 个其他的表。其中 ART、BND、CATLOG这四个表在使用创建的镶嵌数据集时创建;其他表则在首次执行要用到对应表的操作时生成。

AMD_NAME_OVR,这张表默认用来存储概视图。默认情况下,为镶嵌数据集创建的金字塔栅格存储在此表中。如果使用“定义概视图”工具更改概视图的存储位置,将不会填充此表。而是将指向概视图位置的指针存储在 AMD_<NAME>_CAT 表的 urihash 字段中。

定义Overview的边界范围:

默认情况下,在镶嵌数据集边界内的区域创建金字塔。

我们也可以根据一些特定的需要,来指定生成概视图的范围,范围可以来自栅格数据集的范围,矢量要素数据的外接矩形,或者手工指定四边的坐标范围。

定义Overview块参数:

像元大小:默认情况下,工具会自动计算用于生成概视图的基础像素大小。我们也可以从某一特定分辨率开始创建概视图。例如,数据量巨大的高分辨率栅格数据添加到镶嵌数据集中,实际上仅需要分辨率一般的整体拼接效果,那调整至合适的像元大小即可。

等级数目:此参数决定生成的金字塔等级数。例如,3 表示将生成三个Overview 等级。如果值留空或为 -1,则系统会生成最佳数量的概视图。

行、列数:可以通过定义最佳的行数和列数的方式来限制概视图的物理尺寸。我们需要考虑到:值越大,文件(块)尺寸也就越大,Overview区域对应的任意栅格数据发生变化时需要重新生成Overview的可能性也越大。该数值还会影响栅格数据集创建的概视图的数目。如果是一个较大的数值,则将生成较小数量的概视图文件(块);如果是一个较小的数值,则会生成较多的概视图文件(块)。

概视图采样系数:可以通过概视图采样系数来控制栅格数据集创建的概视图的数目。此系数可以确定后续概视图的大小。例如,如果第一个等级的像元大小为 x,概视图采样系数为 3,则下一等级的概视图像元大小将为 3x。也就是,系数越大,生成的概视图就越少,但同时,这会影响镶嵌图像的显示速度。通常,概视图等级越多,显示的速度就越快,因为这减少了重采样的次数。您还可以控制是否在概视图生成中考虑栅格的金字塔。可能使用您不喜欢的重采样方法生成了原始金字塔,也可能由于某种其他原因而不需要使用任何金字塔。您可以选中定义概视图工具对话框中的“强制概视图切片参数”选项,这样将忽略所有栅格金字塔,并从大于栅格基础像素大小的系数开始定义概视图。例如,如果系数为 3,而基础像素大小或栅格为 1 米,则将以 3 米开始生成概视图。此外,您的镶嵌数据集可能由数据源大量混合而成,并且由于某种原因,您需要使用最开始的金字塔的一部分,而不是全部。您可以定义概视图开始位置的像素大小。

强制概视图切片参数:这个参数用于控制在概视图生成中是否考虑栅格数据的金字塔。我们可能由于某种原因而不需要使用原始数据的金字塔,那么就勾选此选项,这样将忽略所有栅格金字塔,并从大于栅格基础像素大小的系数开始定义概视图。例如,如果镶嵌数据集系数为 3,而原始栅格数据的像素大小为 1 米,则将以 3 米的像元大小开始生成概视图。

定义Overview图像参数:

我们可以根据数据的实际情况定义:重采样方法、压缩方法和压缩质量。例如,对于专题数据,一般可选择最邻近法;而对于航空摄影或卫星影像,一般可使用双线性插值法或三次卷积插值法。我们可以选择不进行压缩、进行无损压缩或进行可定义总体图像质量的压缩。不同的压缩方法会影响生成Overview的大小。例如,质量为 75 的 JPEG 压缩一般可提供最佳的数据质量及文件大小。

定义镶嵌数据集的参数繁多,但是总结起来,都是对镶嵌数据集概视图大小和质量的控制,几个参数可以单独使用,也可以组合使用。

如果平时遇到概视图相关的问题,还是一定要结合自己的数据对比这些参数,考虑是否有排除错误和优化性能的好方法。

您还可以控制是否在概视图生成中考虑栅格的金字塔。可能使用您不喜欢的重采样方法生成了原始金字塔,也可能由于某种其他原因而不需要使用任何金字塔。您可以选中定义概视图工具对话框中的“强制概视图切片参数”选项,这样将忽略所有栅格金字塔,并从大于栅格基础像素大小的系数开始定义概视图。例如,如果系数为 3,而基础像素大小或栅格为 1 米,则将以 3 米开始生成概视图。

此外,您的镶嵌数据集可能由数据源大量混合而成,并且由于某种原因,您需要使用最开始的金字塔的一部分,而不是全部。您可以定义概视图开始位置的像素大小。