学术咨询

让论文发表更省时、省事、省心

高级工程师评职称针对海量数据组织管理的技巧

时间:2014年10月29日 分类:推荐论文 次数:

本文在对海量空间数据进行了一定的分析基础上,探讨了当前针对海量数据组织管理的金字塔结构存储方法和线性四叉树的空间索引结构。并通过示例程序开发验证其有效性。

  摘要:本文在对海量空间数据进行了一定的分析基础上,探讨了当前针对海量数据组织管理的金字塔结构存储方法和线性四叉树的空间索引结构。并通过示例程序开发验证其有效性。

  关键词:高级工程师评职称,空间数据库,海量数据,四叉树,金字塔

  1 引言

  自90年代以来,高空间分辨率遥感卫星开始向大众敞开大门,作为GIS的重要数据来源——遥感数据量快速增长。卫星遥感影像是一种以栅格数据模型存储的数据,其最明显的特点是数据量大、数据结构单一。同时遥感数据是一种大面积的、动态的、近实时的数据源,是GIS数据更新的重要手段。遥感数据可用于提取线划数据和生成数字正射影像数据、DEM数据[1]。我国的领土面积为960.1216万平方公里,如果全国的遥感影像用QuickBird 0.61m分辨率的影像来记录据估算需要72092.15GB[2]。为了使这些海量空间数据得到更好的应用,必须考虑采用更为有效的组织管理手段对海量空间数据进行组织管理。

  解决此问题,在GIS中对大范围空间数据的统一有效的组织管理有很大帮助。早在90年代,美国ESRI公司推出空间数据引擎(SDE)对该问题提供了一种解决方案,依托于关系数据库环境,采用高效空间目标模型(Efficient Spatial Object Model)对空间实体进行完整组织。此举一方面避免了大数据量传统拓扑模型组织数据时需要的大量的硬盘访问操作;另一方面,空间信息作为关系库中的成员,属性信息与图形信息形成一体化,避免了通过标识码连接属性,大大提高了信息检索的效率[3]。同时,在ArcGIS9.0以上版本的ArcCatalog中又新增了栅格目录(Raster Catalog)的数据组织方式,很好的满足了目前流行的以图幅为单位进行空间数据采集并更新的需求。

  从当前空间数据的生产及数字化过程看,以图幅为单位进行管理的局面一时难以改变[4]。故本文将讨论以图幅为基本存储单位,在此基础上对其用多金字塔结构进行空间数据组织并利用四叉树作为海量栅格数据的空间索引的海量数据组织存储方法。

  2 海量数据分析

  在研究海量数据的组织管理方法前,首先要研究如下问题:由于我国的国土面积较大,正射影像产品空间参考大都是以高斯投影后的平面坐标为基础,对于一个省级或国家级的大型影像数据库而言,由于投影分带的原因,正射影像产品的空间参考的起算原点并不相同[5]。尤其内蒙古自治区这类跨地域很长的省份按照高斯投影后的坐标不会是一个3°高斯投影带,每个带的坐标都是以本带的坐标原点为参考点,空间基准不统一,而且相邻两带带边的图幅变形很大。这样,在多个坐标原点和带边数据存在几何变形的情况下,给省级或国家级这样的大型影像数据库的无缝数据组织带来了问题。所以首先要解决的是大型遥感影像数据库的空间无缝浏览的技术,相关的技术已经在其他文献中多次被提到,本文就不再赘述。

  3 海量数据组织管理方法

  为了提供高速数据查询、显示、刷新以及网络传输等,在组织和管理海量数据时应使用高效的存储形式和快速高效的索引机制。

  3.1海量数据存储技术

  当前GIS栅格数据库模型分为传统的关系数据库系统(RDBMS)、对象数据库系统(ODBMS)和对象关系数据库系统(ORDBMS)。

  下面简要介绍一下GIS栅格数据在Oracle中的存储方式。栅格数据在存入数据库时,需将实体对象之间的关系转换为支持的数据结构模型,根据对象类别在数据库中对应建表,空间对象属性映射为关系数据库中的列或字段,每个空间数据对象对应一条数据记录。栅格数据包含的三类数据中,与记录空间数据对象几何属性的图像数据相对应的字段是一种复杂的数据类型,因此对于空间数据库来说,关键问题是如何利用独立于关系数据库系统的统一数据模型处理反映空间数据对象的几何属性。一般利用Oracle9i存储栅格数据几何信息的方式为ORDSYS.ORDImage和BLOB。其中ORDSYS.ORDImage是一种用于存储如BMP、PCX、TIFF、GIF等多种格式的二位静态栅格数据对象关系数据类型,它还支持JPEG、LZW等压缩格式。BLOB属于LOB(Large Object)的一种,它是数据库为解决存储不规则结构数据而创建的。在早期的数据库中,被存储在数据库外部的操作系统文件中。存储在表中的是列名和该列中每个指向相关的外部文件的指针。在这种情况下,表被规范化了,因为指针具有相同的数据类型[7]。

  栅格图像由像素点组成,每个像素点都用二进制表示,虽然数据结构较之矢量简单,但通常数据量较大,如存入数据库前不作任何处理,将因磁盘读取和网络传输效率,而难以满足实时调度、快速浏览和检索的要求,故需先将栅格图像数据分块和建立影像金字塔分级,后存入数据库。

  3.2海量数据分块技术

  栅格数据分块是把整幅图像按照一定的大小分成若干个大小相等而互不重叠的块,而任意尺寸分块不利于建立影像金字塔和索引,因此比较理想的块尺寸是2的整数幂,如512*512作为一个子块。具体分块操作时还应考虑图像局部的相关程度、压缩算法、网络的传输单元等情况。如可将整个图像分为30(5*6)块,每一块都有一个序号,每一个块作为单独的一幅图像,数据存入表中,并为序号列建立索引,一个序号对应一个数据块。当前台程序对数据库中图像作漫游时,根据视点、焦点以及方位角之间的关系计算出哪些块在可见区内,通过索引记录块的指针,索引到指针,直接指向并调用视图中可见的部分对应的数据块,而不是每次从数据库中把全部的数据都取出,这样处理可以缩减显示的数据量,从而提高显示速度。

  3.3海量数据的金字塔技术

  为了提高图像的实时缩放显示速度,快速获取不同分辨率的图像信息,需要对原始的图像生成图像金字塔,根据不同的显示要求调用不同分辨率的图像,达到快速显示漫游的目的。图像金字塔就是由原始图像开始,建立一系列图像,各幅图像反映不同的详尽程度。利用图像文件金字塔结构的不同层具有不同分辨率的特点,在对图像数据浏览时,就可以根据当前显示的分辨率取相应金字塔层的数据,以实现图像数据的快速浏览。

  金字塔影像的生成方法如下:

  1、首先把原始图像数据作为金字塔的底层,即第0层,并对其进行分块,形成第0层数据块矩阵。

  2、在第0层的基础上,按每个数据块合成为一个数据块的方法生成第1层,并对其进行分块,形成第1层数据块矩阵。

  3、再在第1层的基础上采用同样的方法生成第2层数据块矩阵,

  如此下去,构成整个数据块金字塔,如图1所示显示出了分块后的图像金字塔,每层金字塔图像的分块都采用相同大小。假设按128*128个像素大小对原始数据进行分块,则当第i层的像素矩阵大小小于或等于128*128时,金字塔构建完毕。

高级工程师评职称

  图 1分块后的金字塔图像

  3.4海量数据的索引机制

  为了提高检索可见区域内数据块的速度,需要创建数据块索引,四叉树索引则是一个不错的选择。四叉树是一种每个非叶子节点最多只有四个分支的树型结构,也是一种层次数据结构,其特性是能够实现空间递归分解[6]。

  构建四叉树索引结构是在分块后的金字塔影像数据基础之上的。构建索引需要分三步:逻辑分块、节点编码和物理分块[7]。

  1、逻辑分块

  与构建瓦片金字塔对应,规定块划分从地形数据左下角开始,从左至右,从下到上依次进行。同时规定四叉树的层编码与金字塔的层编码保持一致,即四叉树的底层对应金字塔的底层。

  2、节点编码

  假定用一维数组来存储瓦片索引,瓦片排序从底层开始,按从左至右,从下到上的顺序依次进行,瓦片在数组中的偏移量即为节点编码。

  3、物理分块

  在逻辑分块的基础上对地形数据进行物理分块,生成地形数据子块。对上边界和右边界瓦片中的多余部分用无效像素值填充。物理分块完毕,按分块编号顺序存储。

  至此,配合有效的海量数据可视化技术就可以对海量数据较为充分的利用起来。

  4 应用实例

  本文中介绍的研究成果已成功应用于多个地区的海量地形数据实时可视化。以某地区地形三维可视化信息管理系统为例,该地区所采用的规则格网数字高程模型共有23872个点,利用ArcCatalog工具制成Terrain地形数据,并对其构建5层的金字塔结构和相关索引文件。彩色纹理影像单块大小为9845X9328,一共7块,分辨率为2.5米。数字高程模型数据为840M,纹理影像数据为3002.59MB。对纹理影像数据构建5层金字塔结构并构建索引文件,瓦片的大小在ArcGlobe中设置为128X128。最终形成3.44G的纹理影像金字塔数据。数据被用在利用ArcGIS Engine 9.3+VS2005+Windows Vista Ultimate开发环境下部署在Intel Core2 Duo T6600 2.20GHz,2G内存,GeForce G 105M 512M 64位显卡计算机中,计算机的操作系统同样为Vista Ultimate SP2,图形标准为directX。显示效果如图2,图形浏览操作流畅。

杂志社征稿启事

  图 2系统截图

  5 结论

  经过程序验证,本文中所谈到的金字塔模型和现行四叉树索引的的数据组织管理模式,能够满足海量数据的可视化的需要,实现了海量数据的快速浏览查询。

  参考文献

  [1] 李建松.地理信息系统原理[M].武汉:武汉大学出版社,2006.

  [2] 王恩泉.中国版Google Earth的空间数据组织与管理研究[D].中国测绘科学研究院硕士学位论文,2007.

  [3] Spatial Database Engine (SDE). An ESRI White Paper.

  [4] 刘纪平.海量空间数据组织与管理初探[J].中国图象图形学报,1998,3(6):500~503.

  [5] 王密,龚健雅,李德仁.大型遥感影像数据库的空间无缝数据组织[J].武汉大学学报(信息科学版).2001,26(5):419~424

  [6] 戴晨光,张永生,邓雪清.一种用于实时可视化的海量地形数据组织与管理方法[J].系统仿真学报 .2005,17(2):406~413

  [7] 黄河等.Oracle 9i 数据库系统培训教程[M].清华大学出版社.2002

  [8] 肖禾斌等.线性四叉树和线性八叉树领域寻找的一种新算法[J].测绘学报.1998.03