熊金国,王卫京,程立君,戴海伦
(北京吉威时代软件股份有限公司,北京 10043)
地理国情普查是一项常态化的工作,具有持续性、规律性和有效性的特点,高分遥感影像具备丰富的光谱、纹理、形状等信息,可对国情要素实行不间断、宏观观测。随着我国遥感卫星技术的发展和国家高分专项的实施,已经形成了气象、海洋、资源、环境减灾等系列卫星资源,卫星影像呈现出高空间分辨率、高时间分辨率、高光谱分辨率、高辐射分辨率特点[1]。遥感监测手段可提高地理国情普查的速度,减少工作量,提高工作效率,是国情普查的重要支撑手段。地理国情普查成果最终通过统一的空间数据库进行管理,国情普查成果影像数据库具有数据量巨大、空间分辨率多样、传感器载荷类型较多、数据更新频繁的特点,还应具备数据查询下载、数据浏览展现、数据统计、元数据管理、实体数据管理与更新等功能。采用传统的栅格数据管理方式,存在以下几个问题:①在对大范围的镶嵌图进行浏览时,浏览速度慢,用户使用体验差;②不同载荷和分辨率不一致的影像进行拼接时,存在大量的中间处理过程,浪费存储空间且耗费处理时间;③当后期影像发生更新时,面对已经镶嵌的大范围图像,更新速度慢,导致后期维护极为不便。
遥感影像产品的存储管理经历了从利用文件存储到地理数据库存储,以及地理数据库和文件联合存储的发展阶段[2-4]。ESRI对栅格影像数据的管理,经历了3种不同的数据模型,分别是栅格数据集、栅格目录和镶嵌数据集[5]。栅格数据集可将大量栅格数据存储在地理数据库中,或将所有栅格数据镶嵌在单个栅格数据集中。栅格目录是管理栅格数据集的简单容器,可将栅格数据存储在栅格目录中(托管),也可以存储一个链接,该链接指向存储到其他位置(非托管)的栅格数据。镶嵌数据集可为每个栅格数据集或整个镶嵌数据集构建金字塔并定义处理函数;在将栅格数据添加到镶嵌数据集时,栅格数据本身不会被存储在镶嵌数据集中,仅会存储一个指向源栅格数据的链接,从而会大幅降低存储空间。基于这些栅格数据存储管理方法思想,国内很多学者均进行了海量影像数据管理的尝试,如王发良等[6]利用文件存储并通过在数据库中建立索引的方式对影像数据集成建库,以满足数据集成与无缝浏览的需要;方利等[7]采用空间数据库技术,将影像以县为单位进行拼接、然后压缩存储到空间数据库中,并结合数据编码索引实现对海量影像数据的管理。
本文从地理国情普查成果影像库的实际需求出发,采用ESRI公司的镶嵌数据集数据模型,论述了基于镶嵌数据集模型进行成果影像库建设的基本流程,分析了提升影像入库速度和加快数据浏览效率的方法。通过动态镶嵌技术对地理国情分幅DOM、DEM建立概视图,以及通过对海量影像数据分级、分层、分块存储,实现了海量栅格数据的高效管理及调度,达到高效浏览和快速更新的效果。
镶嵌数据集是用于存储和管理多源影像的数据模型。镶嵌数据集不仅可以管理和显示数据,它还是一种分发影像的工具,其数据模型如下图1所示,其使用文件+数据库的方式进行影像管理,充分发挥了文件系统快速读写的优势和数据库系统多用户并发访问的优势[8]。
图1 镶嵌数据集数据模型Fig.1 Mosaic dataset model
该模型采用动态镶嵌技术,既能编目管理影像,又能像镶嵌影像一样进行显示和分析,简化了影像管理流程,省去影像入库之前的镶嵌处理时间,从而减少了数据冗余,通过采用概视图技术,使编目管理的影像根据镶嵌参数自动无缝显示,并能使各层级图像能够进行平滑过渡,提升用户浏览效果。通过概视图技术实现多分辨率影像快速无缝浏览的原理示意图如图2所示。
图2 概视图技术实现多分辨率图像快速无缝浏览示意图[9]Fig.2 Sketch map of multi-resolution image seamless browsing by overview technique
镶嵌数据集存储模型是通过关系数据库中的一组二维表来实现,如图3所示,其中,ART、BND、CAT和LOG这四个表在创建镶嵌数据集时即创建;其他表则在首次执行相关操作时动态生成。其中AMD__<NAME>__ART表存储栅格的历史信息;AMD__<NAME>__BND表存储栅格的边界信息;AMD__<NAME>__CAT表存储所有栅格的数据信息;AMD__<NAME>__CSL表存储栅格单元信息;AMD__<NAME>__LOG表存储所有操作的日志信息。表名中的NAME为镶嵌数据集的名称,镶嵌数据集的名称不超过22个字符。
图3 镶嵌数据集模型各存储表之间关系Fig.3 Entity storage relationship of mosaic dataset model
采用镶嵌数据集模型进行海量遥感影像入库的主要流程如图4所示,主要包括数据准备和数据质量检查、估算存储空间、入库环境参数设置、构建影像金字塔和栅格统计文件、建立空间数据库、建立SDE用户、建立镶嵌数据集、添加数据到镶嵌数据集、定义概视图并构建概视图、匀色和重叠区处理设置、设置镶嵌数据集属性、镶嵌数据集浏览测试等步骤。
图4 镶嵌数据集建立流程Fig.4 Workflow of creating mosaic dataset
1)数据质量检查:地理国情普查成果已有专门的质检过程来确保数据质量,入库人员在入库前应检查数据的完整性,检查待入库数据的数据质量,检查入库到同一个镶嵌数据集的数据是否具备同样的空间参考,波段格式,像素深度等信息,对不满足质量要求的数据应进行归一化处理后再进行入库。
2)估算存储空间:由于金字塔是基于原始影像进行抽取的,如金字塔采用无损压缩格式,生成的金字塔一般占用原始数据量30%的空间,而概视图是在金字塔的基础上生成的,如采用jpeg 75%压缩,信息量损失小,同时影像逼真度也能满足要求,概视图大小一般为金字塔大小的8%左右。
3)构建金字塔和栅格统计文件:对待镶嵌的影像数据按照统一的参数和格式建立金字塔。由于金字塔是针对磁盘中的文件进行的,为加快处理速度可将原始数据按照一定的规则进行切分,分配到多台计算机上进行构建,构建完毕后再合并在一起以加快处理速度。金字塔文件的扩展名为ovr;统计文件信息生成的扩展名为.aux,是后期进行匀色的必要信息。
4)新建镶嵌数据集:由于镶嵌数据集内的地理范围很大,需根据实际情况,选择适合大范围图像的投影参数,保证所有待镶嵌图像在同一参考系统下,否则生产概视图时易出现错误。
5)添加数据到镶嵌数据集:在数据入库时栅格数据本身是不会入库的,而是以非托管的形式在镶嵌数据集中进行管理,入库后镶嵌数据集中存储了指向栅格数据位置的指针。
6)定义概视图:概视图是对镶嵌数据集显示上的“抽稀”,通过重采样生成多层低分辨率的栅格,用于在浏览的时候满足不同比例尺下镶嵌数据集快速显示的需要,从而提升用户浏览体验。
7)构建概视图:建立概视图的时候,可选择概视图存储位置,如果概视图存储在磁盘文件中,存储格式为tiff;如果概视图存储在Oracle数据库中,可对数据块设置压缩格式,目前支持jpeg格式和lz77格式。
8)匀色和重叠区处理:镶嵌数据集一般由不同时相的多张影像组成,各幅影像由于成像时的天气、光线等原因可能存在色彩差异,为了让整个镶嵌数据集看起来是无缝的整张影像,可利用匀色工具进行色彩校正。
9)设置镶嵌数据集属性:主要是设置镶嵌方法和重叠区显示策略,通过该方法可确定重叠区图像排列的先后顺序以及重叠区像元值处理方式。
2.1.1 多进程创建概视图对入库速度的影响
ArcGIS 10.2版本之后,当概视图存储在数据库中时,ArcGIS提供了多进程机制创建概视图。多进程创建概视图的效率与CPU核数,CPU利用率有关,由于多进程抢占资源执行任务,进程数越多,并不是效率越高。经过大量实验发现,当CPU利用率为60%时,资源利用率最高。如对于四核CPU,启动3个进程进行概视图创建效率较高。
2.1.2 金字塔和概视图压缩比例对浏览效果的影响
根据大量实验,文件金字塔采用lz77无损压缩存储,概视图采用75%的jpeg压缩存储,最后生成的镶嵌数据集浏览速度较快,视觉效果较好,没有明显失真。
2.1.3 概视图存于文件与存于数据库中性能分析
数据库系统对高并w量数据访问和数据检索具有较大优势,但由于概视图是经过分块压缩后存储于数据库中的Blob字段中,数据写出时需将tif转化为Blob,读取时需将Blob解析为影像,此过程会消耗大量服务器资源。在并发访问量不是很大的时候,使用文件存储概视图可以提高浏览效率,但如果并发量很大,利用关系型数据库的多用户并发访问特性,将概视图存储在数据库中将有更好的浏览效率,但此时建立概视图将耗时较长。
2.1.4 数据块大小对性能的影响
默认情况下,ArcGIS图像块的大小为128×128大小,根据数据库的性能和计算机硬件性能配置,在导入栅格时如选择无压缩或者LZ77压缩,128×128大小的一个栅格切片包含16 K个像素,若一个像素深度为8位占1个字节,那么一个切片在数据库中占据16 KB存储空间。如果用Oracle进行存储,创建数据库时默认数据块大小为8 K,那么上面的切片占据了两个数据块,要读取这个切片就需要做2个I/O操作,为避免频繁的数据库I/O,在实际工作中通过数据库的全局参数设置,将ArcGIS图像块和Oracle数据块大小对应起来,能明显提高浏览效率。
为验证镶嵌数据集模型管理地理国情影像数据能力,测试入库流程各个步骤的参数对镶嵌数据集性能的影响,验证镶嵌数据集在管理大范围非连续区域遥感影像的性能,开展入库实验,软件环境为:ArcGIS 10.1,Win7 64位操作系统,Oracle 11g空间数据库;硬件环境采用戴尔 Precision Tower 7810工作站,CPU为12核 Intel(R)Xeon(R) CPU E5-2609 v3 @1.9GHZ,内存32 G,硬盘2 T缓存64 MB、数据传输率600 MB/秒。
实验数据为覆盖山东省非连续的、空间上较分散的13个区县的航拍0.5m辨率正射影像数据(含有3个波段),见表1。
表1 入库数据统计Tab.1 Data statistics of importing images
从表1看出,当金字塔采用无损压缩lz77格式的时候,金字塔体积为原来的30%左右,概视图采用jpg 压缩使其所占空间约占金字塔空间的1%。由于测试时概视图级别采用系统默认的,一般最多6级,但实际从生成的概视图效果来看,都为3级左右。因此,在进行镶嵌的时候,金字塔和概视图占用磁盘空间为原始数据量的30%即足以满足要求。
通过选取山东省不同区域的遥感影像,分别进行入库,从图5镶嵌结果可以看出对空间上不连续、分辨率不同的影像,实现了高效的镶嵌融合效果和入库管理。对镶嵌数据集的浏览速度测试可知,在不同的比例尺无缝平滑浏览时的速度均在1 s左右,没有明显延迟,用户体验良好见表2。
图5 镶嵌数据集浏览效果Fig.5 Browsing eあect of mosaic dataset
表2 镶嵌数据集浏览速度测试Tab.2 Browsing speed test of the mosaic dataset
采用本文介绍的入库流程和入库参数,用同样的方法对全国1:50000 23 686幅DEM数据和DOM数据进行了镶嵌,也取得了较好的效果。
镶嵌数据集作为新一代栅格数据管理模型,有动态镶嵌、实时处理、可直接读取各种卫星数据原始格式并可经镶嵌后发布为服务的技术特点,在处理多分辨率数据镶嵌、不同时相数据镶嵌、不相关数据镶嵌、动态更新以及元数据管理等方面具有显著的优势。但由于需要处理的数据具备多类型、多分辨率、多时相等特点,处理过程复杂,涉及环节多,如果不按照规定的步骤流程进行操作,可能在镶嵌过程中会出现各种各样的问题。本文对镶嵌数据集管理海量栅格数据的技术特点、使用方法及相关资料进行整理和分析,结合在实际项目中遇到的各种问题,结合镶嵌数据集模型进行国情成果影像库建库的一般流程,指出了影响镶嵌数据集入库速度和浏览性能的几个主要因素,针对这些主要参数的调优方法进行了讨论。在国家库和省级库建库中的具体实践,对镶嵌数据集的使用中有如下体会:
影像数据质量是镶嵌数据集建库能否成功的关键因素。由于概视图时在金字塔基础上建立起来的,金字塔是在原始文件的基础上建立起来的,如原文件质量有问题,会导致金字塔和概视图都出现问题,从而会导致镶嵌数据集的错误。因此需要在入库前对源文件的数据质量进行检查,确保数据质量合格后再入库。
构建原始数据金字塔是影响性能的主要因素,如果原始数据没有金字塔,则ArcGIS会直接在原始数据的基础上,默认按照3倍的比例因子生成概视图存入到数据库,且该过程会导致金字塔和概视图都存入到关系数据库中。当把概视图存储于文件系统中,可避免概视图存储数据库时Oracle解压Blob字段并拼接成图像的时间。建立金字塔和概视图是入库过程中较耗费时间的环节,两者时间有数量级上的差异,因此在入库前应将所有数据预先建立金字塔和栅格统计。此外实验还发现数据量对镶嵌数据集的性能影响不是很大。
投影选择也是关系镶嵌数据集建库能否成功的因素,当比例尺很大时,每景数据的投影参数都不一样,当拼接成全国范围的图像时,需要选择一个适合的全国范围投影参考系统,并正确设置各种参数。