第25卷 第3期2009年5月地理与地理信息科学Geog ra phy and Geo-Infor matio n Science V ol.25 N o.3M ay 2009收稿日期:2008-12-09; 修订日期:2009-02-13作者简介:关丽(1980-),女,博士研究生,从事遥感与GIS 理论与应用方法研究。
E-mail:bing er02600@基于球面剖分格网的矢量数据组织模型研究关 丽,程承旗,吕雪锋(北京大学遥感与地理信息系统研究所,北京100871)摘要:针对球面剖分格网系统的优势和目前矢量数据存储方式存在的缺陷,提出基于球面剖分格网系统的矢量数据组织模型,以期更有效地存储和管理大范围多模式的矢量数据。
主要讨论了矢量对象在不同格网层次下的剖分组织方法及其重构表达问题,并创新性地提出了球面矢量交换文件格式(SV E)。
同时,基于球面剖分格网系统设计了矢量数据的空间拓扑关系构建模式及多层次表达方式,为球面的矢量对象空间分析奠定了理论基础。
关键词:球面剖分格网;矢量数据;组织模型;多层次表达中图分类号:P208 文献标识码:A 文章编号:1672-0504(2009)03-0023-05目前,GIS 正面临着海量全球空间数据库、全球性问题研究以及位置相关信息社会化服务等方面的巨大挑战。
传统的基于地图的空间信息表达、组织、管理和发布方式已不能满足全球空间信息管理的需要[1]。
其中,矢量数据作为GIS 常用的图形数据结构,在传统的空间计算、图形编辑以及几何变换方面具有较高的效率和精度。
但由于矢量数据是由一系列离散的坐标点组成,因此存在不易分割和重组、数据拼接困难、容易产生断裂等问题[2]。
同时,矢量数据的传统分幅存储模式不利于全球空间数据的统一表达、管理和应用。
因此,构建一个新的基于全球的、多尺度、融合空间索引机制、无缝、开放的层次性空间数据管理框架,并基于此框架实现各类空间数据的表达和组织成为实际应用中亟须解决的问题。
而球面剖分格网系统(Global Subdivision Grid,GSG)是最具潜力的空间数据管理框架[3-5],其研究如何将地球(或球面)剖分为等面积和等形状的层次状面片,并实现高效空间数据的表达和管理。
由于矢量数据组织的复杂性,目前通过球面剖分格网对空间数据进行组织和表达的重点仍在栅格数据;对于矢量数据,一般采用转换为栅格数据,然后逐级剖分的模式,在矢量数据应用时则以图片形式组织[6]。
这种实现方式显然无法发挥矢量数据特有的空间分析优势。
因此,基于GSG 如何实现矢量对象的组织、表达和管理将成为制约大范围多尺度矢量数据应用的瓶颈问题。
为了解决该问题,本文提出一种矢量数据的剖分组织模型。
1 球面剖分格网系统格网应以何种形状、何种方式进行多级划分以及划分的格网如何编码,是球面剖分格网系统研究的核心问题,国内外相关成果大致可分为3类:正多面体格网模型、经纬度格网模型和自适应格网模型。
正多面体格网模型是采用基于多面体的多边形层叠配置和规则形状划分的方式表达整个球面信息,包括正四面体、正六面体、正八面体、正十二面体和正二十面体以及14个半规则立体[7](图1)。
以Dutton 的基于八面体的四分三角形格网(Octahedra-l Quaternary Triangular Mesh,O -QTM)[8]和Fekete 的基于正二十面体的球面四叉树(Sphere QuadTree,SQT)[9]为代表,其主要优点是对地球表面进行无缝、多级的格网划分,使全球空间数据能忽略投影的影响。
基于此研究成果,袁文提出一种新的球面剖分格网框架体系)))基于正二十面体和等角比投影的球面三角四叉树(Spherical Triangle Quadtree based on Icosa -hedro n and ERLRP,STQ IE)[10],该剖分模型利用等角比投影(Equal Angle Ratio Projection,EARP)的优势,具有剖分性质均衡、坐标转换简单快速的特点(图2),其具体剖分模式及编码方案参见文献[10]。
因此,本文以ST QIE 系统为基础,构建矢量数据的剖分组织模型。
2 球面剖分格网的矢量数据组织模型2.1 矢量数据的剖分组织模式2.1.1 矢量数据剖分组织流程 由于矢量数据是以连续的坐标记录来表示各种地理实体,因此,基于球面剖分格网组织矢量对象时,除考虑每个面片范围内的坐标点外,还要考虑/剖分化0产生的多余坐标点及空间对象拓扑结构的完整性问题。
因此,相比栅格数据,基于球面剖分格网的矢量数据组织具有一定的难度[11]。
主要表现为:矢量数据是由一系列离散的点组成,剖分难度大,而且在数据重组过程中容易产生断裂现象;矢量数据采用地理坐标进行记录,不同分辨率的矢量数据在同一交线处的交点不同,所以,不同分辨率的矢量数据的无缝拼接难度大。
正是基于以上原因,笔者采用/实虚结合0的方式,基于球面剖分格网构造了矢量数据的剖分组织流程。
特定的球面剖分格网实质上相当于提供自动拼图器功能,根据统一坐标对原始矢量数据进行分割。
以STQIE 球面剖分模型为例,其矢量数据剖分过程如下:首先,根据矢量地图比例尺及其精度,确定其在剖分格网中对应的层次级数,并根据面片范围对点、线、多边形等矢量数据进行分割,分割后的矢量数据将按照面片方式存储。
例如,某区域1B 25万矢量数据按照球面剖分格网进行组织,根据数据的精度得到其对应STQIE 剖分模型的第11层,于是该矢量数据被填入球面剖分格网的第11层相应范围内。
然后,通过求交运算计算分割产生的面片虚点,并在面片范围内与原有矢量数据中的实点共同组成矢量数据的实虚结合的表达方式。
其中,实点是指原始矢量数据中所包含的点;虚点是指矢量对象被面片分割所产生的点,它位于面片的边界,一般位于坐标序列的起始点和结束点,需要特殊标记,在矢量数据重构时需单独对待。
最后,按照面片索引记录每个面片内所有矢量对象并存入SVE 文件(Sphere Vector Ex chang e File)进行管理,同时完成面片节点服务器端的入库操作。
而SVE 文件是根据球面剖分格网和矢量数据的特点建立的一种新的数据交换与传输的文件格式,是一种基于XM L 语法和文件格式的文件,用来描述和保存地理信息,能够方便地实现数据的共享。
当用户需要应用矢量数据时,利用坐标序列搜索策略对矢量数据进行重构操作。
2.1.2 矢量数据剖分组织方法 以线对象为例,介绍矢量数据的剖分组织方法。
首先,根据线对象的剖分数据结构和该对象所在的面片位置信息,分别计算线对象的每一段与面片求交获取的虚点信息;在确定实点和虚点信息后,将点的数目、点的标识、名字、颜色、空间位置等信息写入SVE 文件,存入数据服务器,完成数据的剖分组织。
在剖分数据结构中,一条线对象可能被分解为若干段,因此将产生多个虚点,同时也存在若干个坐标序列,每个坐标序列在其上一级分辨率的面片中,又将由若干个坐标序列组成,线对象的剖分数据结构如图3所示。
其中,/点数量0表示该线对象组成中的实点数目,/坐标序列I 0(I=1,2,,,N )表示线对象在该面片中被分割的坐标段的坐标序列。
虚点含有一个标识,即邻近面片ID,该标识既表明该点为虚点,又表示该点的邻近面片,可以通过该标识在邻近面片中查找此线对象的其他坐标序列。
对于实点可能存在/组成的第一点0标识,该标识表明该坐标序列是线对象某段的起点,如果不包含此标识的实点,表明此点为线对象的中间点。
图3 线对象的剖分组织方法Fig.3 The arc -line objects representation2.2 矢量数据的重构表达矢量数据的重构是指从一系列的面片中重新构建完整的点、线、面等矢量对象,并建立其拓扑关系的过程。
重构问题的关键是确定面片之间的空间关系并据此搜索矢量对象,获得对象的坐标序列。
需要注意的是,获得的坐标序列中还包括数据分割时产生的虚点,在重构过程中应予以排除。
仍以线对象的重构表达为例,其重构过程涉及两个主要部分:一是坐标序列的搜索,即将线对象的整个坐标序列搜索出,以便对线对象进行重构;二是线对象的表达,即将线对象在客户端重新显示和表达,以便用户对线对象进行编辑和存储。
页24第 地理与地理信息科学第25卷2.2.1 坐标序列的搜索 对象的坐标序列搜索是从某一段坐标序列开始,通过一系列的查找搜索出整个坐标序列的过程。
以图4为例,说明线对象的搜索方法,具体过程如下。
图4 线对象序列示意Fig.4 The s eries of line objects(1)读取面片中线图层的SVE 文件,获取线对象在该面片范围的坐标序列(表1)。
该对象在该面片上有两组坐标序列,其中A 组有3个坐标点,A 1点的属性是0001111101,表明其邻近面片编号是0001111101;而A 2点的属性是空,表明其是中间点;B 组有4个坐标点,B 2的属性是/Star t Part 0,表明其是线对象某段的开始点,而B 3、B 4为空,表明其是中间点。
选取A 坐标对开始搜索,对所有属性非空且属性非/Start Part 0的点进行搜索。
本文按照深度优先的顺序进行搜索,首先查找A 3的对应点,需要搜索编号为0001111100的面片。
(2)读取编号为0001111100面片的线图层SVE 文件,获取线对象在该面片上的坐标序列(表1)。
在该序列中查找面片编号与A 3所在的面片编号相同(即0001111110)且坐标与A 3一致的坐标点,得到该坐标为C 1,于是顺序记录坐标序列,即A 1A 2A 3C 1C 2C 3C 4;接着搜索C 序列中虚点的邻接序列,可知该点为C 4,于是在面片0001111110中查找坐标与C 4相同的坐标点。
表1 坐标序列Tab le 1 The coordinate series面片编号坐标对编号坐标点编号坐标属性0001111110AA 1119.0856545755255,39.422430774054610001111101A 2119.1056545755255,39.32243077405461nu ll A 3119.1156545755255,39.352430774054610001111100BB 1119.2656545755255,39.352430774054610001111100B 2119.1756545755255,39.62243077405462Start Part B 3119.1156545755255,39.35243077405460nu ll B 4119.1376545755255,39.56243077405435nu ll 0001111100CC 1119.1156545755255,39.352430774054610001111110C 2119.1176545755251,39.51043077405462nu ll C 3119.1165457552533,39.32430774054413Start Part C 4119.1376545755255,39.5624307740543500011111100001111101DD 1119.1006545755255,39.12243077405461Start Part D 2119.1076545755251,39.12233077405462nu ll D 3119.1165457155253,39.25243740544913Start Part D 4119.0856545755255,39.422430774054610001111110(3)重新回到0001111110面片,可知B 1与C 4坐标相同,且其邻接序列是C 4所在的面片。