可渐进传输的矢量数据聚集化存储与访问的方法

文档序号:6602913阅读:135来源:国知局
专利名称:可渐进传输的矢量数据聚集化存储与访问的方法
技术领域
本发明公开了一种可用于渐进传输的矢量数据聚集化存储和访问的方法,能够实现地理信息系统领域矢量数据的高效存储和访问。
背景技术
空间数据具有海量特征,各种现代化的数据采集手段的应用使得可用的空间数据量正在急剧增加,在可预见的将来,计算机处理能力与无限量的空间数据之间的矛盾将始终存在。为了提高系统的响应速度,在空间数据的组织、传输和可视化等环节寻找优化性能的技术和方法始终是GIS研究领域的核心课题。GIS的矢量数据承担着空间分析和制图输出的双重任务,经典的矢量数据渐进传输的研究认为,其是制图综合的逆过程,而制图综合技术本身尚未成熟,所以,矢量数据高效传输在几何化简、数据组织、拓扑关系维护等目标之间难以取得一致和平衡。现有的研究工作集中在几何数据的化简算法改进以及特定应用的渐进传输实验上,没有形成完整的解决方案,无法与主流的GIS软件架构进行有效融合。Bertolotto和Egenhofer (1999,2001)最早提出了 GIS矢量数据的渐进传输问题, 并给出了渐进传输的概念模型,指出矢量数据渐进传输的关键是构建矢量数据的多分辨率表达。艾廷华和李志林000 等给出了基于变化累积模型的矢量数据渐进传输的形式化表达设&为矢量数据最粗粒度的表达;Δ Si是两个相邻的表达S",Si之间的变化量; 若第i个表达可以由如下形式获得Si = Si^1+ Δ Si = S0+ Δ S1+ Δ S2+. . + Δ Si^1+ Δ Si公式 4—1则{SJ构成的序列是一个细节渐增的序列,每个表达Si是依赖于地图比例尺的函数。在服务器上仅存储&和{ASJ,初始的表达& 一般用来满足基本需要。渐进传输的顺序按照{ASJ的线型排列进行的。一般情况下&加上{ASJ的数据量远远小于{SJ的数据量。因此,实现渐进传输的核心是寻找相应的渐进式化简算法,将矢量数据分解成初始的数据和一系列变化量的集合。本发明以有序点集为基础,研究可用于渐进传输的矢量数据聚集化存储和访问的方法。可渐进传输的矢量数据聚集化存储和访问的方法满足如下形式化模型对于原始数据S,若目标分辨率包含N级,则可设最高分辨率、=S。定义化简算法C 对Sn应用该算法可以得到相应的Slri和Δ &,其中Slri是&的低分辨率表达,Δ &是Slri和&之间的变化量。对Sn 连续应用算法 C,可得序列 Sh,SN_2,...,S。,以及 Δ Sn, Δ Sn^1 , Δ SN_2,..., Δ S1,对于任意Si可由Si = Sh+ Δ Si得到。其实,化简过程可以在任意分辨率Ν-ρ上终止,此时数据可以表示成
Si = Sh+ ASi = SN_p+ Δ SN_p+1+ Δ SN_p+2+· · + Δ Si^1+ Δ Si 公式 4-2可以认为算法C是一个适合于渐进传输的化简方法,简称渐进式化简。渐进式化简相当于对数据的编码过程,渐进传输相当于解码过程。

发明内容
本发明公开了一种可用于渐进传输的矢量数据聚集化存储和访问的方法。实现渐进传输的核心是寻找相应的渐进式化简算法,将矢量数据分解成初始的数据和一系列变化量的集合。本发明以有序点集为基础,研究可用于渐进传输的矢量数据聚集化存储和访问的方法。渐进传输模型可以将有序点集分解成一个最低精度层次下有序点集和一系列增量。在渐进传输模型支持下,用合适的精度层次的版本可以达到与原始数据像素级相同的显示效果。OGC简单要素规范中,除点类型以外,均可以看成是以有序点集为基础组织的。 渐进传输模型下定义OGC矢量数据的渐进式二进制格式属于要素级别的多分辨率模型,支持以要素为基本单位的渐进传输。目前,主流的存储模型是基于关系模型存储GIS矢量数据。在关系数据库中,矢量数据按照数据集来进行组织,同一个数据集中的地理要素共享属性定义和空间参考。地理要素在数据集中被映射成记录。将矢量数据存储到关系数据库中, 关键是将地理要素集映射到关系数据库的表结构和关系模式上。对于数据而言,一个表中的记录越少,系统查询的效率越高,聚集也可以用来重构渐进传输模型下的关系存储模型。将属于一个聚集的渐进增量数据按照精度层次和Id顺序存储到一个记录中,将压缩几何数据表的记录数,同时将多个几何对象存储在一条记录中,有助于提高磁盘I/O的速度。基于渐进传输模型,可重构WKB的几何数据的二进制结构, 实现几何数据的按精度层次的分组存储,然后按照所需的精度层次进行的分组传输。渐进传输模型的缓存结构以聚集为单位进行组织,同样遵循“数据集-聚集-记录”三级逻辑结构。客户端缓存包含内存缓存和本地文件缓存。内存缓存包含了所有聚集集合,通过空间索引进行管理,内存缓存的数据以可视范围为中心进行分级管理。考虑到用户交互的空间相关性,用户每一次交互活动的可视范围总是与上一次的范围相关,是当前范围缩放和平移的结果,描述了数据范围查询过程中数据调度的过程。


图1渐进传输模型下的几何数据与原始数据共享属性的关系存储模型图20GC几何对象的渐进传输模型下二进制结构的内存布局图3渐进传输模型下矢量数据的关系存储图4渐进传输模型下的几何结构的单记录和多记录存储示意5渐进传输模型下几何数据的聚集化存储的关系模式图6聚集化的渐进传输模型下几何数据的存储结构图7渐进传输模型下矢量数据的客户端缓存结构图8基于可视范围的分级缓存模式
具体实施方式
渐进传输模型下的矢量数据关系模型存储地理要素包含属性和几何两个部分,属性数据一般没有多分辨率特征,只有几何部分能够进行渐进传输,所以从地理要素级别上讲,只需要考虑几何部分在渐进传输中的存储问题。原始的矢量数据不能进行渐进传输,几何数据的渐进式的化简是渐进传输的必要步骤,因此下面假定几何数据已经完成了对几何部分的处理过程。渐进传输的首要目标是提高客户端可视化的效率,各种空间分析要借助于原始的几何数据实现,因此将原始几何数据和渐进传输处理过的几何数据共存在一个数据库中, 并共享属性部分的定义是比较理想的方案。图1给出了这个方案的概念模型几何数据和属性数据是矢量数据的原始版本,几何数据通过渐进传输模型,形成可渐进传输的几何数据;通过关系模式建立不同层次几何数据之间的联系,连同渐进传输模型信息、空间参考和其它元数据信息统一存储到关系数据库中。OGC SQL规范代表了矢量数据存储的经典模型,几何部分和属性部分是1 1对应的,在非渐进传输模式下,几何部分和属性部分可以同步传输。而渐进传输模型下,一个几何数据对应一个初始的粗分辨率的数据和若干渐进增量,增量数据是根据分辨率渐进传送的,所以属性数据和渐进传输模型下的几何数据应该分离存储,建立单独的渐进传输模型下渐进几何数据表。考虑渐进传输模型下的OGC简单要素的二进制格式,将该二进制格式直接作为 BLOB字段存储是最简单的方法,但是这样对于读取和解析很不方便,需要将整个字段读取出来,并从二进制流中提取出需要增量数据,传输到客户端,因此这种结构不利于渐进传输。参考图2给出的渐进传输模型下的几何数据的内存布局,考虑将数据分割成如下部分第一部分包括1个类型标识、有序点集的个数和初始精度层次下顶点坐标序列的集合。第二个部分包括maxLevel-minLevel个渐进增量结构。这样一个渐进传输模型下的二进制格式被分割成maxLevel-minLevel+Ι个二进制块。考虑渐进传输模型下的结构定义中的参数I^recisionModel,可以得到渐进传输模型下的关系数据库存储方案。图3是存储方案的E-R模型,本发明设计了单记录存储模型和多记录存储模型两个方案1)渐进传输模型下的参数信息被映射到表I^recisionModel表,用来存储渐进传输模型下的元数据,PrecisionModel 表中包含了 Feature_TabIeName 禾口 pmGeometry_ Table_Name字段,用来指定数据集的原始要素存储表(Feature Table)和渐进传输模型下的几何表(pmGeometry Table)。2)原始的矢量数据集按照OGC SQL规范进行存储,包含几何数据字段 (GeometryCloumn)。幻矢量数据集对应一个渐进传输模型下的几何表(PmGeomtryTable), Feature Table 与 PmGeomtryTable 通过 pmID 建立关系,指明 FeatureiTable 表中要素与 PmGeometryTable中几何表达的对应关系。单记录存储将渐进传输模型几何精度的渐进增量作为一个单独的记录来存储,为每个渐进增量数据建立一个存储字段pmData_<level>,level是精度层次;多记录存储模型将每个精度层次的渐进增量作为单独的记录。图4给出了单记录存储和多记录存储的示意图,显示了渐进传输模型的几何模型的渐进增量映射表结构时的差异。单记录存储和多记录存储在本质上是一样的,但在存储增量时,多记录存储模型需要整体的插入、删除和更新以维护数据的一致性。渐进传输模型矢量数据的聚集化关系模型存储对于数据而言,一个表中的记录越少,系统查询的效率越高,聚集也可以用来重构渐进传输模型下的关系存储模型。将属于一个聚集的渐进增量数据按照精度层次和Id顺序存储到一个记录中,将压缩PmGeometry表的记录数,同时将多个几何对象存储在一条记录中,有助于提高磁盘I/O的速度。图5给出聚集化的渐进传输模型下矢量数据的关系模式。在这个模型中, PmClusterTable以存储聚集信息,字段的含义与struct FeaturCluster中定义的一致。 由于聚集中的几何对象是通过Id排序存储的,很容易将属性记录的查询映射为范围查询, 并基于 pmld 进行排序,形成 SQL 条件子句(pmld between minPmld and maxPmld order bypmld)。聚集化的存储可以按照如下步骤建立1)根据特定聚集规则对整个数据集进行扫描,建立若干初始聚集,每个聚集包含若干几何对象。2)按照特定排序规则对聚集进行排序,形成聚集的custerld编码。3)按照聚集排序结果,对聚集内部的记录进行排序,并建立数据集唯一的连续顺序编码pmld,形成pmld写入到对应记录的字段中,这时每个记录都会对应一个pmld。4)以聚集为单位,生成聚集中每个几何对象的PPM+模型下的二进制结构,按照精度层次,组合几何对象的增量数据,每个精度层次形成一个独立的二进制流,存储到 PmClusterGeometry 表中。上述步骤仅从概念上予以说明,不涉及确定的聚集算法。存储结构并不保证空间上邻近的矢量数据存储到一个聚集中,聚集算法本身应该保证空间上的聚集性,同时聚集内的记录个数要合适。现有的空间索引算法都是对空间数据进行某种聚集,经过改造可作为聚集生成算法。聚集化的渐进传输模型下几何数据的存储结构如图6,每个聚集按照渐进传输模型定义的精度层次,包含固定的记录及字段个数;图中每一行横向结构是原来渐进传输模型下几何对象的二进制存储,每一列纵向结构是将按照精度层次和记录顺序重新组织后的二进制数据。聚集化的渐进传输模型下客户端缓存与基于可视范围的分级调度引入聚集后,渐进传输模型下的缓存结构以聚集为单位进行组织,同样遵循“数据集-聚集-记录”三级逻辑结构,缓存结构如图7所示。需要指出的是,缓存结构属于客户端数据集实现的一部分,客户端缓存包含内存缓存和本地文件(包括本地数据库)缓存,下面重点探讨内存中的缓存结构。内存缓存包含了所有聚集集合,通过空间索引进行管理,索引可以是任意的支持 MBR结构的索引结构,如果不考虑空间检索效率,可以将所有聚集使用线表管理。内存缓存的数据以可视范围为中心进行分级管理。客户端的聚集对象(FeatureCluster)比数据库中的聚集记录多三个字段,分别是已下载的分辨率(maxDownloadLevel)、已加载的分辨率(currentCachedLevel)和缓存至Ij内存PPM+几何对象集合(cachedGeometries)。
maxDownloadLevel是下载到本地文件缓存中增量数据的最大分辨率,请求顺序必须保证先请求低分辨率数据,再请求高分辨率数据。currentCachedLevel是该聚集中缓存在内存中的几何数据的分辨率,缓存在内存的几何数据根据显示需要加载增量数据。cachedGeometries是该聚集中所有几何对象的内存缓存。经过扩展的客户端聚集的结构如下所示struct FeatureClusterEx{uint clusterld ;// 聚集的 Id Bound mbr ;//最小外包几何uint minPmld ;//聚集中最小的 Iduint maxPmld ;//聚集中最大的 Iduint maxDownloadLevel ;// 已经下载分辨率uint cachedLevel ;//已经加载的分辨率//uint numGeometry = maxPmld-minPmld ;PmGeomerty cachedGeometries [numGeometry] ;//缓存的几何数据};考虑到用户交互的空间相关性,用户每一次交互活动的可视范围总是与上一次的范围相关,是当前范围缩放和平移的结果。因此预先请求可能的数据可以提高用户的响应速度。可视范围的分级调度模式如图8所示,客户端的过滤过程包含范围(boimdO)和精度层次(IevelO)两个参数。活动聚集集合维护最近一次范围查询相关的聚集,按照分级进行层次组织范围查询参数为bound,并按照一定系数进行膨胀,形成N个范围boimdO、
boundl、bound2,.....boundn.。处于boundO中的数据缓存数据到精度层次IevelO ;属于
boundl不属于boundO的缓存精度层次到Ievel-I层;依次类推直到levelO-n+1。范围查询过程驱动数据调度,过程如下1)输入可视范围(boundO)和精度层次(level);2)利用聚集的空间索引,对聚集进行遍历;如果一次聚集查询命中,则加入聚集的查询结果集合;3)遍历结果集合中的聚集,如果范围查询请求的精度层次大于聚集的 maxDownloadLevel,则用聚集的maxDownloadLevel+1和范围查询的精度层次level,形成一个聚集数据请求项(ClusterQueryItem),添加到数据请求队列中。ClusterQueryItem的结构如下所示struct ClusterQueryItem{uint clusterld ;// 请求的聚集uint firstLevel = maxDownloadLevel+1 ;// Jf^nit^WftSM^Cuint IastLevel = level ;// 结束请求的精度层次}4)执行数据请求队列中的数据请求,并将数据缓存到本地文件缓存中。修改查询队列中的 FeatureCluster ^maxDownloadLevel 使之等于 level。如果 firstLevel 等于精度模型的minLevel,则说明该聚集首次请求数据。5)遍历结果集合中的聚集,如果聚集中的cachedLevel大于level,则遍历其中的几何数据缓存cachedGeometries,卸载多余的数据;如果聚集中的cachedLevel小于 level,则遍历其中的缓存的几何数据cachedGeometries,从本地缓存缓存中依次加载从 cachedLevel+1到level 的数据。将 cachedLevel 设为 level。6)将结果集合并入活动聚集集合,并对集合中的聚集缓存的精度进行调整。7)将活动聚集集合作为进一步过滤处理的基础。
权利要求
1.可渐进传输的矢量数据聚集化存储与访问的方法,其特征是,以有序点集为基础,将矢量数据分解成初始的数据和一系列变化量的集合,给出可渐进传输的矢量数据聚集化存储和访问的形式化模型;设计渐进传输模型下的矢量数据聚集化关系模型存储方案,矢量数据聚集化的渐进传输模型下客户端缓存与基于可视范围的分级调度策略。
2.按权利要求1所述的存储与访问的方法,其特征是,有序点集以坐标的方式表示,由点组成的有序点集是构成高维对象的基础。
3.按权利要求1所述的存储与访问的方法,其特征是,所述的矢量数据包含属性和几何两个部分。
4.按权利要求1所述的存储与访问的方法,其特征是,所述的初始的数据是精度最低的数据版本,是矢量数据最粗粒度的表达。
5.按权利要求1所述的存储与访问的方法,其特征是,所述的变化量的集合是根据分辨率渐进传送的,初始的数据和一系列变化的集合等于精度最高的矢量数据。
6.按权利要求1所述的存储与访问的方法,其特征是,所述的矢量数据聚集化存储将属于一个聚集的渐进增量数据按照精度层次和标志顺序存储到一个记录中,压缩几何数据表的记录数,同时将多个几何对象存储在一条记录中。
7.按权利要求1所述的存储与访问的方法,其特征是,所述的形式化模型是初始的数据和一系列变化量的集合 Si = S"+ ASi = SN_p+ Δ SN_p+1+ Δ SN_p+2+. · + Δ Si^1+ Δ Si, Δ Si 是两个相邻的表达Sg,Si之间的变化量,N表示目标分辨率的级数。
8.按权利要求1所述的存储与访问的方法,其特征是,所述的关系模型存储方案的几何部分采用二进制编码的格式进行存储,每个聚集按照渐进精度模型定义的精度层次,包含固定的记录及字段个数。
9.按权利要求1所述的存储与访问的方法,其特征是,客户端缓存包含内存缓存和本地文件缓存。
10.按权利要求9所述的存储与访问的方法,其特征是,所述的内存缓存包含了所有聚集集合,通过空间索引进行管理,数据以可视范围为中心进行分级管理。
全文摘要
本发明公开了可渐进传输的矢量数据聚集化存储与访问的方法。矢量数据可以看成有序点集,以有序点集为基础,将矢量数据分解成初始的数据和一系列变化量的集合,给出了可渐进传输的矢量数据聚集化存储和访问的形式化模型。设计了渐进传输模型下的矢量数据聚集化关系模型存储方案,将属于一个聚集的渐进增量数据按照精度层次和标志顺序存储到一个记录中,压缩几何数据表的记录数,同时将多个几何对象存储在一条记录中,提高磁盘读/写的速度。最后,分析矢量数据聚集化的渐进传输模型下客户端缓存与基于可视范围的分级调度策略。
文档编号G06F17/30GK102253947SQ20101018061
公开日2011年11月23日 申请日期2010年5月21日 优先权日2010年5月21日
发明者吴明光, 沈敬伟, 温永宁, 陈旻 申请人:南京师范大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1