汾河流域测绘4D数据管理系统的设计与实现

2012-12-11 06:06朱王璋
测绘通报 2012年12期
关键词:海量数据管理视图

曾 波,霍 亮,朱王璋

(1.山西省测绘工程院,山西太原030002;2.北京建筑工程学院测绘与城市空间信息学院,北京100044;3.现代城市测绘国家测绘地理信息局重点实验室,北京100044;4.武汉大学测绘学院,湖北武汉430079)

一、引 言

随着各行业应用的不断发展,卫星遥感、航拍、雷达等影像数据及各种矢量数据已经大量积累。而随着时间的推移,数据的积累数量会越来越庞大,数据的种类也会越来越丰富。经过对多个部门的调查发现,很多部门的遥感影像数据已经达到了数十TB,甚至上百 TB的量级,而且还在不断增长[1]。如此巨量的数据,给影像的快速传输、存储、管理和数据共享、数据分发等方面带来了巨大的困难,在数据管理和使用方面都存在着较为突出的问题。主要表现为数据存储不规范、假丢失、重复存储、查找障碍、使用效率低等方面。一方面,传统的文件存储方式给影像的查询检索带来了极大的不便;另一方面,处理海量数据的关系数据库技术采用的是传统的关系型DBMS对遥感影像数据这种非结构化数据进行存储,其效率并不高,使得系统的存储能力受制于所依赖的DBMS的能力,对影像数据的管理与发布也支持较弱,从而影响整个系统的性能。因此,如何科学有效地管理庞大的影像数据,实现对影像高效的查询、检索、显示和处理,使之能更好地为应用提供服务,已经成为一个急需思考的重要课题[2]。

二、研究内容

针对目前影像数据相关部门的数据存储现状,以及国内外在海量影像数据管理方面的研究情况,本文的研究目标为:

1)实现海量数据的有序、规范存储和管理。不仅能够有效地组织和管理好现在与将来入库的数据,同时还能够管理好历史存档数据,从而避免数据假丢失和重复存储现象的发生。

2)提高数据的查询效率。通过建立数据索引,提供属性查询和空间查询等多种手段,实现海量影像的快速查询。

3)提高数据的使用效率。通过快视图、金字塔等多种技术手段,实现大幅影像的快速浏览和处理。

4)提高数据的安全性和保密性,保证涉密数据不被泄露和遗失。同时,在保密的前提下,提高影像数据发布的快捷性和便利性。

针对以上的目标,本论文主要完成以下几方面的研究内容:

1)由于各类数据的元数据结构肯定存在差异,所以在数据库统一存储时,需要设计合理的元数据表结构,以使各种元数据结构既能实现统一查询检索,又能够表现各自的特点。

2)由于要管理海量的影像数据,所以需要研究设计高效的空间索引。通过各种索引的建立,来提高数据的查询检索效率。

3)对于单幅数据量较大的影像,为了实现其快速的浏览显示,需要研究设计有效的数据调度方法。

三、解决方案

1.多源海量数据组织管理

(1)解决思路

根据研究区域的实际情况,已有的数据不仅数据量大,而且分布比较零散,有存储在各台服务器上的,也有存储在CD、DVD等各种光盘上的,还有一些是存储在磁带、胶片上的。所以,如由人工整理这些数据,然后再集中存入数据库,需要花费很多的人力物力。因此,需要研究一种省时省力又能有效管理数据的方法。传统的基于文件系统管理影像数据的方法和基于数据库管理影像数据的方法都存在着一些缺陷。在多数情况下,需要对影像快速入库和快速查询、快速读取,所以可以把占用大量存储空间和I/O时间的影像数据体从数据库分离出来,以文件方式单独存储管理,而仅把影像元数据和快视图提取出来存储在数据库中。

本文研究影像数据管理的思路是:原始影像数据不移动,只提取影像数据的元数据信息和快视图,原始影像和影像元数据分离存储。查询数据时,可根据属性条件和空间条件查找数据库中的元数据,并根据查询结果来筛选和识别需要的影像;处理数据时,可根据查询结果中的存储路径信息获取原始数据来做相关的处理。由于原始影像不移动,所以避免了数据可能的丢失和损坏;由于数据库中只存储元数据和快视图,只需要少量的存储空间,所以避免了数据库的膨胀;由于索引的存在,查询数据的效率是非常高效的,并且只需要查询索引数据库就能够知道存放在各处的影像信息,如存放路径、属性信息、快视图等。通过这些信息就能够辨别不同的数据,从而得到所需要的影像数据,进而极大地提高了数据查询的效率。

(2)基本流程

基于上面的思路,管理影像数据的基本流程如图1所示。

图1 基本管理流程图

1)创建快视图。根据原始影像数据的元数据信息,自动创建影像数据的快视图,并将快视图储存在数据库中。

2)提取元数据。在数据检索的过程中,将根据数据种类自动识别影像数据的元数据文件,并从中提取相关的元数据信息,如拍摄时间、轨道号、空间范围、分辨率、含云量等各种参数。同时,根据原始影像生成快视图片,用于查询和浏览。

3)建立数据索引。对符合条件的搜索结果数据,根据其元数据、快视图及存储路径等信息,自动建立数据的空间索引。

4)索引数据入库。将各种索引数据导入数据库中进行统一存储。

通过上面4步的操作,就已经建立了数据的索引结构,接下来就是查询数据、浏览数据、处理数据。对于已经建立索引的影像数据,就可以通过属性或空间位置对其进行快速的查询检索,也能够进行原始影像的处理等各种操作。

2.空间索引和高效查询

(1)空间索引

为了能够快速检索查询数据,需要对存储在磁盘、光盘、数据库及网络上的数据建立各种索引。可通过扫描数据目录,自动识别各种影像的数据类型,创建数据索引,实现影像数据的一体化高效管理[3]。

本文采用R-tree来创建数据的空间索引,实现数据的高效查询。R-tree是一种用于处理多维数据的数据结构,可用来访问二维或更高维区域对象组成的空间数据。R-tree是一棵平衡树,如图2所示。树上有两类结点:叶子结点和非叶子结点。每一个结点由若干个索引项构成。对于叶子结点,索引项形如(Index,Obj_ID)。其中,Index记录包围影像数据的最小外接矩形MBR;Obj_ID用于标识一个空间数据对象。对于一个非叶子结点,它的索引项形如(Index,Child_Pointer)。其中,Child_Pointer指向该结点的子结点;Index仍指一个矩形区域,该矩形区域包围了子结点上所有索引项MBR的最小矩形区域[4]。

图2 R-tree空间索引示意图

(2)数据快速查询

影像数据的查询检索是在已经创建的索引基础上,实现了空间查询、属性查询、行政区划查询及各查询之间交叉组合查询等。

①空间查询

为了能够实现对影像数据的空间查询,需要提取影像自身的空间范围。影像数据的空间范围坐标通常保存在数据文件的头文件或者元数据文件中。因此在进行数据索引的时候,可提取出影像的空间四角坐标和坐标系参数,并将坐标统一转换到数据集的坐标系上,以便影像能够在数据集中正确显示和查询。影像的空间范围则用矩形来表示。为了提高空间查询的效率,笔者将同一数据集下的所有影像的空间范围都写入同一个多边形矢量图层中统一管理,并建立空间索引。在本系统中,提供了点选查询、框选查询和多边形查询3种空间查询方式。

②属性查询

属性查询功能是最常用的查询手段之一。在创建索引过程中,会提取影像的各种元数据信息(包括属性元数据),并将元数据记录到数据库的相应元数据表中。属性查询的主要查询目标就是数据库中的各个元数据表。通过属性查询,可以快速而精确地查询到感兴趣的数据。

③行政区划查询

通常城市规划、数字城市等GIS应用中所使用的数据,都会与行政区域有着密不可分的空间属性关系。当需要这类数据时,最先确定的就是所需要的数据是在哪个行政区域。通过行政区划查询,就可以很容易地定位到感兴趣的影像数据。实现行政区划查询,首先是根据指定的行政区名称,如省名、市名、县名等查询到行政区对应的空间多边形;其次,根据行政区多边形,采用空间查询的方式查找影像数据。

3.影像快速可视化

遥感影像的数据量是非常庞大的,即使是单幅影像数据,也很容易达到数百GB的数据量。如果需要对这些影像进行实时的漫游和浏览,如采用常规的方法把整个影像数据加入内存并渲染显示已不可行。因此需要寻找更有效的方法[5]。首先对影像进行重采样、分层切割,建立影像金字塔;然后为了节省存储空间,对数据进行压缩;在影像浏览和漫游时,采用调度算法实现快速显示。此外,很多情况下只需要查看影像数据的概括,因此需要从原始影像中单独抽取快视图,供用户查询浏览。下面分别根据影像快速浏览的几个方面进行探讨和研究。

(1)影像快视图提取

在数据查询时,通常只需要浏览影像的快视图来进行粗略的判断,而不用打开影像的原始文件。因此影像快视图在影像数据查询过程中,会频繁使用。因此,在数据入库的时候就提取影像快视图,并存储在数据库中。作为快速浏览的一部分,本节将讨论影像快视图提取的步骤。

首先需要确定快视图的大小、格式和RGB取值。快视图的宽高采用按原始图像16∶1缩小的比例来获取,最大值设为512像素。如果宽或高大于512像素,则将其转换为512像素。由于影像图本身不附带颜色信息,在影像文件内部保存的是每个像元值,像元值的数值类型可能是字节型、短整型、长整型、单精度、双精度等,则需要将影像中的像元值映射到0~255区间。本文采用的是线性拉伸的方法,通过线性变换的方式来调整影像的数值范围。其次,影像数据是由多波段组成,一张影像的波段数为1~N,如何选择出3个波段分别来代表R、G、B 3种颜色值也是要考虑的。如果影像中只有1个波段,则生成的快视图为灰度图像,即RGB三原色都从同一个波段中取得,且3个值都一样。如果波段数大于1个,则首先判断元数据表中是否有配图的设置,如果有,则根据元数据中的定义来设置;如果没有,还需要进一步处理。如果波段数为2,则R值取第1个波段值,G值、B值都取第2个波段的值。如果波段数为3或者大于3个,则RGB分别取前3个波段中的值[6]。

(2)影像显示调度

采用快视图、金字塔、空间索引技术来组织影像数据在一定程度上克服了影像漫游、数据调度速度过慢的问题,但是每次存取数据都需要访问数据库并将数据读取到客户端才可以完成,并没有彻底解决响应速度过慢的问题。此平台的开发采用多线程缓存机制,对影像数据的显示采用双线程,即一个线程负责地图漫游、放大、缩小操作请求并根据请求控制地图的显示;另一线程用于向服务器发送数据预取请求并维护数据接收缓存区,后一线程受前一线程的控制。对影像输出采用多线程,可一边读取数据,一边进行切割等数据处理。对影像导入数据浏览输出等多个操作过程实现多线程处理,可以继续提高系统性能的并发性,并可同时进行部分数据的浏览和部分数据的导入或输出。

传输数据时,通过建立缓冲池机制减少数据传输,当数据达到缓冲池固定比率或延时到一定时间,才将数据打包传输,并可根据网络速率、服务器性能等允许对缓冲池参数进行调整。当用GDAL读取数据时,如果GDAL缓冲区足够大,则先把数据保存到内存;当用户进行浏览放大等操作时,可直接从GDAL缓冲区取数据,避免磁盘读写[6]。

四、系统的设计与实现

1.系统总体设计

作为一个以4D产品数据为基础的多源海量影像数据库管理平台,影像数据库的设计应满足以下需求:支持多分辨率多波段影像数据的存贮与管理;能够快速定位和提取指定区域、指定波段的影像数据;支持多种数据源的集成管理及影像元数据的高效管理;支持TB级以上的海量数据管理;支持海量数据安全快速实时多用户访问与共享;从可视化角度看,支持大范围数据的无缝漫游显示。

系统的总体框架采用层次化设计思想,以实现不同层次间的相互独立性,保障系统的高度稳定性、实用性和扩展性。系统采用C/S开发模式,总体架构如图3所示。

1)用户层:与系统连接的外部实体,有交互功能,可进行填写信息、提交请求的操作,请求结果返回在客户端显示。

2)应用层:主要包括数据导入、输出模块、数据查询检索模块和系统管理功能模块。

3)服务层(业务逻辑层):完成业务的逻辑控制和流程处理,进行初步的应用安全控制和权限检查,记录原始的交易日志,进行交易的存储转发等。对外提供应用服务器、数据服务器逻辑功能,由运行在应用服务器上各个子系统完成。

4)数据访问层:采用统一的接口访问后台数据,该层中的数据库系统用于结构化信息的存储和处理,是系统的数据核心。

5)数据层:是整个系统的核心,各类数据按照合理规范的数据标准进行整合处理,并建立科学的数据库管理机制。

6)系统硬件层:提供整个系统的硬件平台、操作平台,以确保系统正常运行。

图3 系统架构图

2.系统实现

底层与数据库的交互通过开源类库GDAL和PostgreSQL数据库提供的API来实现。采用GDAL与数据库的API函数编写的多源海量影像数据管理组件,主要负责海量数据的加载、输出、创建索引、金字塔和实时处理等功能。

客户端查询可视化系统是基于开源项目Map WinGIS,并利用Visual Studio2010提供的面向对象的集成开发环境,基于面向对象和组件技术开发的海量影像数据管理平台 。图4、图5分别是系统的主界面和导入、导出的界面,成功实现了多分辨率、多数据源的海量影像数据的有效管理和共享。

图4 系统主界面

图5 数据导入、输出界面

用户界面基于开源的功能类和函数库,如OGR、Proj4等,实现与数据库的连接。包括时空数据结构、地图投影、拓扑及空间操作、数据库存取接口函数和空间数据可视化等,逻辑上以工程的形式组织影像,实现数据的显示、无缝漫游等可视化操作,以及属性和空间查询等功能。在此基础上为其他应用系统提供一个数据支撑平台。

基于该方法构建的测绘4D数据管理平台,已经在山西省汾河流域进行了应用测试,目前运行良好。其对不同来源不同数据格式的航空遥感影像和DEM数据采用分幅、分块方法进行了整合存储,然后与矢量数据叠加在一起,完成的海量影像数据管理平台建设,数据量达到了10 TB,方便了用户存储调度管理数据,从而实现多源海量数据的高效管理与信息共享,满足了用户的应用需求。

五、结束语

本文提出了海量测绘4D数据管理平台架构体系,详细描述了海量测绘数据的组织方式。在此基础上,在统一标准、统一基础和统一空间参照体系下,开发出测绘4D(DOM、DEM、DLG、DRG)数据管理平台,便于用户在此基础上进行各种应用开发,可以较好地解决多源、海量的数据存储调度及管理,并可实现部分分析功能,如叠加运算等。但如何在二维多分辨参照系下,组织多维数据进行综合运算[7]是海量测绘4D数据管理的又一个重要问题。

[1]徐迪峰.海量遥感影像管理系统的研究与实现[D].苏州:苏州大学,2009.

[2]刘伟.海量遥感影像数据存储技术研究[D].长沙:国防科技大学,2007.

[3]马荣华.大型GIS海量数据的无缝组织初步研究[J].遥感信息,2003(3):44-48.

[4]邓锦安,王浩.海量影像数据的组织及漫游实现[J].计算机与数字工程,2012,40(1):119-120,131.

[5]杨任农,白娟,黄震宇,等.基于SQLite的LOD模式海量影像数据管理系统的设计与实现[J].计算机与数字工程,2011,33(10):140-144.

[6]马柳青,宋关福,郭会,等.一种海量地形影像数据的快速漫游算法[J].地球信息科学学报,2009(5):604-609.

猜你喜欢
海量数据管理视图
一种傅里叶域海量数据高速谱聚类方法
企业级BOM数据管理概要
定制化汽车制造的数据管理分析
海洋环境数据管理优化与实践
CTCS-2级报文数据管理需求分析和实现
海量快递垃圾正在“围城”——“绿色快递”势在必行
5.3 视图与投影
视图
Y—20重型运输机多视图
SA2型76毫米车载高炮多视图