□王 丹 □胡德祥 □田 伟 □马志杰(黄河勘测规划设计有限公司)
栅格数据是地理空间信息最直接的表现形式,栅格数据具有信息丰富、快速获取、数据结构简单等优点。随着应用的不断深入,栅格数据在整个GIS领域的应用越来越广泛,很多GIS项目都要求实现对栅格数据安全、快速、多用户访问,因此,研究栅格数据管理技术很有必要。在张剑波、刘丹等的《GIS中栅格数据存储管理的研究与实现》[1]和申胜利、李华等的《基于ArcSDE的栅格数据存储与处理》[2]两篇文章中已经探讨了Raster Dataset和Raster Catalog两种栅格数据管理方式,并对这两种栅格数据管理方式的应用进行了简单的分析和介绍,本文将讨论一种新的栅格数据管理方式Mosaic Dataset。
本文探讨了以ArcGISEngine、ArcSDE和Oracle11g数据库管理系统平台为支撑,采用一种最新的、先进的栅格数据模型-MosaicDataset对各种类型、各种比例尺的栅格数据实施集中、统一、高效管理技术的实现,并应用于南水北调工程建设与管理基础信息建设与应用(一期)项目。
ArcGISEngine是美国ESRI公司开发研制的一组可嵌入的GIS组件,它并非面向最终用户,而是一个面向开发者的产品,开发者可以用来开发定制自己的应用程序。对于繁冗的GIS开发工作而言,理想的解决方案是一个基于组件的实用的开发框架,且该框架允许解决方案提供商或机构内部开发人员快速构建行业专用GIS应用软件,ArcGISEngine正是这样一个产品。ArcGISEngine由两个产品组成:一个软件开发包和一个可分发的运行库。ArcGISEngine提供的功能完全能够满足各种层次的开发需要,并且保持了开放性和扩展性[3]。
在ArcGISEngine10发布以前,绝大多数GIS项目都是采用栅格目录来管理栅格数据。ArcGISEngine10的出现,给栅格数据管理提供了一种新的解决方案,即采用镶嵌数据集来管理栅格数据,所有类型的地理数据库(个人、文件和ArcSDE)均支持镶嵌数据集。
ArcSDE是ArcGIS与关系数据库之间的GIS通道[4]。它允许用户在多种数据管理系统中管理地理信息,并使所有的ArcGIS应用程序都能够使用这些数据。在ArcSDE中,栅格数据存储为一系列业务表和元数据表,在存储栅格数据的数据库表中,每一行都对应着一个完整的栅格数据。ArcSDE10通过栅格数据集(RasterDataset)、栅格目录(RasterCatalog)和镶嵌数据集(Mosaic-Dataset)3种方式来存储和管理栅格数据,表1列出了这3种栅格数据模型各自的特点、优缺点以及用途等[5]。
从表1可以看出,镶嵌数据集兼具了栅格数据集和栅格目录两种存储方式的优点,是用于存储和管理数据的理想数据模型。由于镶嵌数据集并不实际的存储影像,这使得在将栅格数据导入镶嵌数据集中时,大大提高了入库效率,同时也不会丢失像素数据或元数据,当访问镶嵌数据集时,将动态地执行镶嵌,重叠数据也不会丢失。此外,使用镶嵌数据集管理栅格数据,可以对单幅影像数据分别进行预览和下载,很具灵活性。鉴于镶嵌数据集的上述特点,并结合项目的实际需求,在南水北调工程建设与管理基础信息建设与应用(一期)项目中使用镶嵌数据集来管理栅格数据,取得了良好效果。
表1 3种栅格数据模型对比表
南水北调工程建设与管理基础信息建设与应用(一期)项目中的数据管理与维护系统主要实现空间数据和属性数据的管理和维护功能。其中,栅格数据管理部分采用的是ArcSDEGeodatabase中的MosaicDataset栅格数据模型,主要包括对DEM、DOM、遥感卫星影像三类数据的管理。系统基于ArcGISEngine10、ArcSDE和Oracle11g数据库管理系统平台,采用Visual-Studio2010开发实现。系统实现采用典型的三层实现方式,分别由数据访问层、业务逻辑层和数据表示层组成,其框架组成如图1所示。
图1 数据管理与维护系统框架图
系统实现了对遥感卫星影像、数字高程模型(DEM)、数字正射影像图(DOM)三大类栅格数据的管理。主要包括栅格数据的入库、更新、预览以及数据格式的转换等功能。支持TIFF、Grid、PersonalGeodatabase和 FileGeodatabase等格式。
3.2.1 栅格数据入库
系统采用Arc GIS Engine技术结合空间ETL模型来实现批量入库功能,采用MosaicDataset栅格数据模型来管理和存储栅格数据。系统实现了在导入栅格数据的同时,显示进度信息,同时提示数据入库的进度以及状态信息等。通常一幅栅格图像大小在几十兆甚至几百兆左右,若采用Raster Catalog来管理,在导入ArcSDE时,通常一幅栅格图像需要花费1-10 min左右的时间来完成数据入库(具体时间跟机器性能和数据大小有关),将DOM数据批量导入Raster Catalog运行结果如图2所示,而采用Mosaic Dataset来管理栅格数据,则在数据入库时大大缩减了等待时间,完成一幅栅格数据入库仅仅需要几秒钟,速度提高了近十倍,将DOM数据批量导入Mosaic Dataset运行结果如图3所示。
图2 批量导入D O M到栅格目录图
图3 批量导入D O M到镶嵌数据集图
从上面两幅图可以看出,栅格数据批量入库时,采用MosaicDataset来管理栅格数据比采用RasterCatalog来管理栅格数据的入库效率要高很多,当入库的数据量越大时,优势越明显。具体见表2所示。
表2 栅格数据入库效率比较表
3.2.2 栅格数据预览
Mosaic Dataset数据表中的一条记录对应着一幅栅格图像,在ArcGISEngine开发中,可以灵活的控制镶嵌数据集的显示方式,既可以实现整个镶嵌数据集的预览,也可以分别预览单个栅格数据集。若要实现对单幅栅格数据集的预览,或者对单幅栅格数据集进行分析,则首先需要调用IMosaic Workspace Extension接口[6]打开Mosaic Dataset,获取它的栅格目录表,然后根据需要预览的栅格数据集在目录表中的编号来创建相应的栅格数据集对象,最后将其加入Mapcontrol进行预览和分析。
大多数的GIS项目一般都会涉及到栅格数据管理的问题,采用哪一种栅格数据模型关系到整个GIS系统的安全性、访问效率以及数据使用的灵活性等方面。本文介绍的3种栅格数据模型各有长短,可结合实际需要采用合适的栅格数据模型,但是就访问效率和操作灵活性来讲,ArcGIS10新推出的Mosaic-Dataset栅格数据模型更为突出,它更适合管理大批量的栅格数据,在栅格数据入库和访问方面的优势尤为明显,并为海量栅格数据管理提供了一种新的解决方案,具有很好的发展前景。
[1]张剑波,刘丹,吴信才.G IS中栅格数据存储管理的研究与实现[J].桂林工学院学报,2006(1):54-58.
[2]申胜利,李华,刘聚海.基于A rcSD E的栅格数据存储与处理[J].测绘通报,2007(9):47-49.
[3]杨平,骆俊.基于A rcG ISEngi ne的地理信息数据库管理系统设计与实现[J].信息技术-国土资源化,2006(5):23-26.
[4]闫俊霞,张军海.基于A rcSD E城市基础地理信息系统研究[J].河北农业科学,2009,13(12):138-139.
[5]ESRI公司.A rcG IS D eskt op H el p-A rcG IS D eskt op10 H el p.
[6]ESRI公司.D evel operH el p-A rcO bj ect s H el p For.N ET(V S2010).