薛 涛,刁明光,李建存,邹森忠
(1.中国地质大学(北京)信息工程学院,北京 100083;2.中国国土资源航空物探遥感中心,北京 100083)
为了解决全球环境变化亟待解决的问题,必须重视建立有效的地理信息系统,集成源于野外工作、航空照片、卫星影像和地图的有关数据[1-2]。在GIS应用服务中,往往会涉及到多尺度、海量空间数据,尤其是在公众WebGIS服务中,不仅数据量大,而且还拥有非常多的用户[3]。随着卫星遥感技术的发展,信息存储系统数据规模呈TB级迅速增长,如何有效存储和管理这些数据已成为亟待解决的问题[4]。另外,能否在海量空间信息中实现数据的精确、方便、快速查询,关系到能否真正实现对海量空间数据的高效管理[5]。在资源环境遥感的研究过程中,研究人员已陆续建立了涉及能源与矿产资源、地下水资源、减灾与地质灾害预测和环境保护与环境优化等领域的空间数据信息系统,并积累了大规模数据,这些空间数据的类型较多,数据量大,如何简洁、有效管理数据是数据提供者面临的主要问题。
当前,国内外利用空间信息提供服务的方式众多,数据的组织也各不相同。如中国地质调查信息网格利用互联网把分散在不同地理位置的电脑组织成一台“虚拟的超级计算机”,实现计算资源、存储资源、数据资源、信息资源、软件资源、存储资源等的全面共享[6]。加拿大地理空间数据基础设施(Canadian geospatial data infrastructure,CGDI)是一组数据、服务和应用系统,通过数据、服务和应用得以共享、交换和使用分布式地理空间信息,可使人们很容易发现、分享和使用加拿大地理空间信息和服务。美国地质调查局的Geospatial One-Stop为数据提供者提供发布的接口,数据使用者通过Geospatial One-Stop查询界面实现一站式查询,从而快速、准确地获取所需的数据。用户可以使用该系统已发布的数据服务获取所需信息。在海量空间数据的共享中,如何管理数据量庞大的空间数据,且快速从数据的海洋中准确发现并获取数据是解决海量空间数据应用的根本问题。
本文通过研究资源环境遥感海量空间数据的存储、检索和访问方法,为海量空间数据寻找合适的存储策略,设计快速获取数据的检索方法,提供高效的访问接口,达到对数据的有效管理、快速检索及应用,从而解决海量空间数据应用中的数据管理、数据共享的问题。
资源环境遥感海量空间数据的存储是采用空间数据库和分层分块的文件目录等方式的,并通过Mapping和Web Service等方式提供数据服务和空间服务。Mapping方式是通过直接访问GIS服务器上的地图文档来操作地图内容的服务;Web Service方式则是通过REST和基于OGC标准的WMS,WFS以及WCS等地图服务来访问空间数据。海量空间数据管理框架如图1所示。
图1 海量空间数据管理框架Fig.1 Framework of mass spatial data management
栅格空间数据格式主要包括 tiff,jpeg,bmp,pcx和gif等。常用矢量数据格式有 shape,coverage,e00,mrg,mif,dxf,dwg 和 dgn 等[7]。文中涉及到的数据类型主要是shape格式的矢量空间数据和tiff,jpeg,bmp等格式的栅格数据。海量空间数据可以通过ArcSDE或Oracle Spatial等空间数据引擎存储于关系数据库中[8]。对于数据容量较大,数量较多的数据集可以文件的形式存储,采用分块和分层的方式以文件目录形式组织数据[9-10],并通过Mapping和Web Service来提供数据服务。
在对海量数据进行分层分块存储时,主要的优化方法是先将海量空间数据分块和分层,然后以服务的方式发布数据。采用LOD(level of details)模型对空间数据进行四叉树划分,从而形成分块和分层的金字塔数据结构。所谓LOD模型,是指根据不同的显示需求对同一个对象采用不同精度的集合描述。物体的细节程度越高,则描述得越精细,数据量越大;物体的细节程度越低,则描述得越简单,数据量越小[11]。以原始图像数据为底层并自底向上按照不同的比例对原图进行抽样形成的数据层,如此便构成了对空间数据缓存的分层金字塔结构,如图2(a)所示。
图2 数据分层分块结构及索引示意图Fig.2 Tile and hierarchy structure and index of data
在每一层金字塔中,再采取数据的分块存储策略,如图2(b)所示。假设图像的宽高分别为Width和Height,图像数据分块的大小为Tile Size×Tile Size,则对于某一指定的像素点(x,y),假设像素点都是从0开始的,水平方向与垂直方向的数据块的块号也都从0开始。可以导出[12]
式中:Tx为水平方向块号;Ty为垂直方向块号。
水平方向的总块数H为
垂直方向的总块数V为
当前层图像数据的总分块数为
根据以上公式,设地图左上角为坐标原点(Xorigin,Yorigin),地图的整个范围为Envelope(xmin,ymin,xmax,ymax)。对地图进行分层分块切片时,块的水平方向坐标跨度为
块的垂直方向坐标跨度为
由式(1)—(7)可知,分块的坐标范围为EnvelopeRC(Xorigin+Tx△x,Yorigin+Ty△y,Xorigin+(Tx+1)△x,Yorigin+(Ty+1)△y)。其中EnvelopeRC表示第R行、第C列分块的范围。分块的索引编号如图2(c)所示。
基于空间位置的海量空间数据检索是建立在空间查询二步算法基础上的。该算法主要包括过滤和精炼[13]2大步骤。在基于空间位置的海量空间数据检索过程中,过滤是利用最小外包矩形(minimum bounding rectangle,MBR)对海量空间数据进行MBR交集运算来获取候选结果集;精炼是利用空间几何交集对候选结果集进行空间几何交集实现筛选。其原理是利用索引底图上的要素作为检索条件,在海量空间数据中进行地理位置交集运算来实现检索。处理过程如图3所示。其中,MBR具有交集是指选取的底图空间几何对象的MBR与目标空间数据几何对象的MBR在地理范围上相交。
图3 基于空间位置的数据检索方法流程Fig.3 Flow of data retrieve method based on spatial location
底图空间几何对象GEOMETRY1的最小外包矩形定为MBR1,其外包矩形的范围分别用minX1,maxX1,minY1和maxY1来表示;同理,目标空间数据几何对象GEOMETRY2的最小外包矩形MBR2的范围分别用minX2,maxX2,minY2和 maxY2来表示,如图4 所示。
图4 MBR及空间几何对象交集示意图Fig.4 Intersects of MBR and spatial geometry
2个MBR对原具有交集的情况可分为以下2种:①当MBR2与MBR1在X轴上有交集时,maxX2≥minX1且 minX2≤maxX1;②当MBR2与MBR1在Y轴上有交集时,maxY2≥minY1且 minY2≤maxY1。当MBR具有交集则要满足以上任一条件,此时MBR1和MBR2的范围值必然满足maxX2≥minX1且minX2≤ maxX1且 maxY2≥maxY1且 minY2≤minY1。
在精炼步骤中,针对不同的地图服务进行检索时,具体处理方法略有差异。对于以Mapping提供的地图服务,系统通过利用用户所选择的空间数据几何对象与所要比较的空间几何对象在GIS服务器中做空间交集运算完成;而对于以Web Service提供的地图服务,用户所请求检索的条件将作为URL的请求参数传递到GIS服务器,GIS服务器根据参数对所要检索的数据进行筛选来完成精炼操作。
例如,利用该检索方法从海量空间数据库中检索出与北京市区域(在全国省界底图中)相交的所有数据。由于该方法是基于空间位置关系进行检索的,所以首先选中索引图幅,然后选中所要用于检索的要素,以确定所要检索的空间位置。在获得这些查询条件并确定后,用户即可使用该要素作为检索条件对系统中的空间数据进行检索。在索引图幅中选中北京市这个要素为检索条件。此要素的空间几何形状用红色高亮显示,其MBR用粉色矩形表示,如图5(a)所示。
用户如果使用所选择的要素进行非精确查询,就用该要素的MBR与待检索空间数据的MBR进行比较,查询结果返回MBR具有交集的空间数据,如图5(c)所示。用户如果使用所选择的要素进行精确查询,就用该要素的空间几何对象与待精炼空间数据的几何对象进行空间交集分析,返回具有空间几何交集的空间数据信息,如图5(d)所示。图5(b)所展示的是将图5(c)的2029号数据和2031号数据(图5(d)中的精炼结果之一)显示在地图中,从图上可以发现检索条件要素的MBR(北京市)与MBR检索结果的2个示例数据的MBR具有交集;这一步骤完成了基于空间位置检索的过滤操作。由于只与2031号数据的空间几何对象有交集,所以在图5(d)的结果集里剔除了图5(c)中在没有空间几何交集的2029号数据,完成了基于空间位置检索的精炼操作。
图5 基于空间位置的空间数据检索及结果对比Fig.5 Retrieve based on spatial location and result comparison of spatial data
在检索结果中,用户可以利用检索到的数据展现在地图上,也可以对数据进行相应的GIS操作(如属性查询等),如图6所示。
图6 空间数据的访问、展现及属性查询Fig.6 Access,display and attribute query of spatial data
要实现海量空间数据访问,最需要解决的问题是海量空间数据的传输和显示等。在加载空间数据时,如果直接读取数据并进行动态加载,则呈现给用户的响应时间随着数据量的增大而变长。改进的方法是对空间数据先进行分层分块处理,然后按照用户的视窗进行索引查找。呈现空间数据时,用户可视区域的视窗总是有限的,可以利用空间数据的分层分块存储,根据请求按需加载呈现给用户。用户可视区域的视窗采用格网索引(可视区域格网索引),如图2(c)所示;这种可视区域格网索引是每个数据块对应一定范围的EnvelopeRC。当用户发出请求时,客户端先确定当前的比例尺度,从而确定所要请求数据所处的层,然后计算出当前视窗对应范围的数据块,从左上角开始按顺时针螺旋式的方式将所要请求的数据块范围放入堆栈中;请求数据加载时,则取出堆栈的数据并请求数据服务器来获取数据,完成地图的呈现,如图7所示。
图7 数据块的进入堆栈及加载显示顺序示意图Fig.7 In and out stack of the data block
利用Http Watch软件来测试相关实验数据(表1)在网页中的加载性能。
表1 实验所用空间数据Tab.1 Spatial data used in tests
在对空间数据加载的测试中,分别测试了直接加载方式、分层分块的文件目录按可视区域格网索引的方式和WMS方式,其测试结果对比如图8所示。
图8 空间数据加载性能对比Fig.8 Performance comparison of loading spatial data
在这些方式中,其数据源均为空间数据或空间数据文件所存储的数据源,但是根据不同的方式做了不同的数据预处理。其中,直接加载方式是指直接从空间数据库中获取数据并进行动态渲染,然后将渲染结果进行呈现;分层分块的文件目录按可视区域格网索引的方式是指从分层分块的文件目录中获取已完成渲染的数据,并按可视区域的格网索引要求进行数据的加载呈现;WMS方式则是以客户端提交的参数请求GIS服务器中的WMS服务,GIS服务器根据请求参数进行数据的渲染并返回给用户,客户端最终呈现返回的数据。从加载性能中可知,数据的加载时间基本与数据的大小成正比,但是经过分层分块和可视区域格网索引处理后,数据加载性能得到了一定程度提升,特别是文件目录方式的性能可观,且趋于相对稳定。
在海量数据共享中,数据的有效管理、精确检索和快速呈现是使得数据有效应用的关键问题。本文针对海量空间数据的存储、检索及访问,设计了空间数据库和分层分块存储的文件目录方式等存储方法,设计了基于空间位置的空间数据检索方法,解决了用户快速检索空间数据的问题。上述方法还支持Web Service等方式的数据服务和空间查找及访问服务。实现的数据访问展现原型和相关测试验证了方法的可行性。通过设计与实现,验证了资源环境遥感海量空间数据存储、检索和访问方法能有效地解决数据管理、精确检索及快速的访问呈现。基于该方法形成了海量数据应用基础框架。后续研究可以在此基础上构建基于资源环境遥感海量空间数据的监测和应急等方面的应用。
[1] Kondratyev K Y,Buznikov A A,Pokrovsky O M.Global change and remote sensing[J].New York:John Wiley and Sons,1996.
[2] 陈述彭,岳天祥.全球环境变化的系统研究方法浅议[J].自然资源学报,2001,16(1):3-8.Chen SP,Yue T X.Discussion on system method of studying global environmental change[J].Journal of Natural Resources,2001,16(1):3-8.
[3] 张冠军,韩 刚,蒋 捷.MapXtreme环境中海量空间数据的动态搜索与调用方法[C]//陈述彭,鲁学军,周成虎.地理信息系统导论.中国地理信息系统协会、浙江省测绘局,2005:836-841.Zhang G J,Han G,Jiang J.The dynamic research and call method of massive spatial data in mapxtreme environment[C]//Chen SP,Lu X J,Zhou C H.Introduction to geographic information systems.China Association for Geographic Information System,Zhejiang Province Bureau of Surveying and Mapping,2005:836-841.
[4] 赵瑞峰,汤晓安,干 哲.基于集群技术的海量数据存储技术研究[J].微计算机信息,2010(16):196-198.Zhao R F,Tang X A,Gan Z.Research of massive data storage in cluster technique based[J].Microcomputer Information,2010(16):196-198.
[5] 丁 华,廖学军,汪荣峰.基于海量空间信息的索引技术研究[C]//2005年中国索引学会年会暨学术研讨会论文集,2005.Ding H,Liao X J,Wang R F.Study of index technology based on mass space data[C]//The 2005 Proceeding of China Society of Indexers Annual Meeting and Symposium,2005.
[6] 李超岭,李丰丹,罗显刚,等.国家地质空间信息网格结点计算池构架及其实现[J].国土资源信息化,2006(5):1-8.Li C L,Li F D,Luo X G,et al.Framework and its realization of grid node compute pool of the national geological spatial information[J].Land and Resources Informatization,2006(5):1-8.
[7] 孙红敏,李玉清,郝 爽.空间数据格式的种类和融合[J].农机化研究,2004,(4):199-200.Sun H M,Li Y Q,Hao S.The types and fusion of spatial data format[J].Journal of Agricultural Mechanization Research,2004,(4):199-200.
[8] 黄 杰,刘仁义,刘 南,等.海量遥感影像管理与可视化系统的研究与实现[J].浙江大学学报:理学版,2008,35(6):701-706.Huang J,Liu R Y,Liu N,et al.An management and visualization system for massive remote sensing image:Research and implementation[J].Journal of Zhejiang University:Science Edition,2008,35(6):701-706.
[9] 方 涛,李德仁,龚健雅,等.GeoImageDB多分辨率无缝影像数据库系统的开发与实现[J].武汉测绘科技大学学报,1999,24(3):189-193.Fang T,LiD R,Gong JY,etal.Develeopment and implementation of multire solution and seamless image database system GeoImageDB[J].Journal of Wuhan Technical University of Surveying and Mapping:Wtusm,1999,24(3):189-193.
[10] 王 密,龚健雅,李德仁.大型无缝影像数据库管理系统的设计与实现[J].武汉大学学报:信息科学版,2003,28(3):294-300.Wang M,Gong JY,Li D R.Design and implementation of largescale image database management system[J].Editorial Board of Geomatics and Information Science of Wuhan University,2003,28(3):294-300.
[11] 唐立文,廖学军,汪荣峰,等.海量空间矢量数据综合研究[C]//吴立新,史文中.地理信息系统原理与算法.装备指挥技术学院学报,2009(5):97-101.Tang LW,Liao X J,Wang R F,etal.The research of map generalization on massive spatial vectors[C]//Wu LX,ShiW Z.The principle and algorithm of geographic information system.Journal of the Academy of Equipment Command and Technology,2009(5):97-101.
[12] 宋江洪,赵忠明.图像分块分层结构在海量数据处理中的应用[J].计算机工程与应用,2004(33):31-33,72.Song JH,Zhao ZM.Application of tile and hierarchy structure in massive image processing[J].Computer Engineering and Applications,2004(33):31-33,72.
[13] Brinkhoff T,Kriegel H P.Efficient processing of spatial joins using R-Tree[C]//Proc,ACM SIGMOD Conf.Management of Data,1993,115-126.