《一种基于小角编码的矢量数据网格索引方法.pdf》由会员分享,可在线阅读,更多相关《一种基于小角编码的矢量数据网格索引方法.pdf(8页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103106276 A(43)申请公布日 2013.05.15CN103106276A*CN103106276A*(21)申请号 201310051630.7(22)申请日 2013.02.17G06F 17/30(2006.01)(71)申请人南京师范大学地址 210023 江苏省南京市南京师范大学地理科学学院(72)发明人胡斌 邵华 朱进 张景云陈伊玲(74)专利代理机构南京知识律师事务所 32207代理人汪旭东(54) 发明名称一种基于小角编码的矢量数据网格索引方法(57) 摘要本发明涉及一种基于小角编码的矢量数据网格索引方法,这种方法把矢量数据MBR的小角网格。
2、编码作为前缀编码矢量数据,利用该编码构造的网格单元索引信息表,自动分成重复区和非重复区,只需要针对重复区使用简单的比较操作就能在O(N)时间内完成去重,大大提高了矢量数据网格索引的查询效率。这种方法包括如下步骤:步骤1,矢量数据小角编码和索引构建;步骤2,小角编码网格索引。(51)Int.Cl.权利要求书1页 说明书3页 附图3页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书1页 说明书3页 附图3页(10)申请公布号 CN 103106276 ACN 103106276 A1/1页21.一种基于小角编码的矢量数据网格索引方法,其特征在于:这种矢量数据网格索引方法包括如下步。
3、骤:步骤1,矢量数据小角编码和索引构建,其包括如下步骤:(a)网格划分:根据矢量空间范围和应用需求,把矢量空间划分成大小相等的规则网格,每一个网格单元由其行列号定义; (b)前缀编码:确定矢量对象MBR的小角所在网格单元,根据该网格单元的行列值对矢量对象进行前缀编码;(c)索引构建:在矢量对象覆盖的所有网格中添加该对象的索引信息(对象编码,MBR),属于同一网格的索引信息表按对象编码递增排列;步骤2,小角编码网格索引,其包括如下步骤:(a)确定查询窗口覆盖的所有网格单元范围,并设查询起始网格行列为qrow,qcol;(b)按照行列号从小到大的次序(先行后列)扫描每一网格单元(row, col)。
4、,依次获取重复区的各索引记录编码前缀,得到对应的行列号(irow, icol):(b1) 若icolqcol,剔除该记录;(b2) 若irowqrow,剔除该记录;(b3)用查询窗口与没剔除对象的MBR进一步测试,保留通过测试的对象编码;(c)根据最终的对象编码列表进行详细查询,得到与查询窗口相交的矢量对象信息。2.根据权利要求1所述的一种基于小角编码的矢量数据网格索引方法,其特征在于:利用该编码构造的网格单元索引信息表,自动分成重复区和非重复区,只需要针对重复区使用简单的比较操作就能在O(N)时间内完成查询。权 利 要 求 书CN 103106276 A1/3页3一种基于小角编码的矢量数据网。
5、格索引方法 技术领域0001 本发明涉及空间信息领域,特别涉及一种基于小角编码的矢量数据网格索引方法。背景技术0002 空间索引是提高矢量数据查询效率的关键技术。现有空间索引技术有四叉树索引、R树索引、K-D-B树、BSP树、R树、Cell树和网格索引等。网格索引作为一种古老的索引方法,技术简单,至今依然广泛应用,但其最大的缺点是网格单元重复记录多,在进行空间查询时,需要对查询区域覆盖的网格单元所记录的索引信息去除重复值。去重算法往往是网格索引算法中最耗时的部分。0003 一种去重算法是:把索引信息表先排序,然后顺序扫描该有序表去除重复值。该算法的缺点是需要先排序,即使用快速排序其时间复杂度也。
6、达到O( )。另一种去重算法是:采用单一值集合记录索引信息,在把索引信息添加到集合前,首先查询集合中是否已经存在该值,只有不存在该值时才添加到集合中。该算法效率的高低与集合搜索和更新的效率密切相关比较耗时,为了提高集合查询效率,一般采用高效的平衡二叉树来实现集合,但也只能达到O()的查询效率,且平衡二叉树是动态查找树,更新效率较低,从而影响整体索引性能。因此,是否能快速过滤重复值,是网格索引效率高低的关键。本发明则能很好的解决了以上的这些问题。发明内容0004 如图1和图2所示,本发明的主要目的在于提供了一种基于小角编码的矢量数据网格索引方法,这种矢量数据网格索引方法包括如下步骤:步骤1,矢量。
7、数据小角编码和索引构建,其包括如下步骤:(a)网格划分:根据矢量空间范围和应用需求,把矢量空间划分成大小相等的规则网格,每一个网格单元由其行列号定义; (b)前缀编码:确定矢量对象MBR的小角所在网格单元,根据该网格单元的行列值对矢量对象进行前缀编码;(c)索引构建:在矢量对象覆盖的所有网格中添加该对象的索引信息(对象编码,MBR),属于同一网格的索引信息表按对象编码递增排列;步骤2,小角编码网格索引,其包括如下步骤:(a)确定查询窗口覆盖的所有网格单元范围,并设查询起始网格行列为qrow,qcol;(b)按照行列号从小到大的次序(先行后列)扫描每一网格单元(row, col),依次获取重复区。
8、的各索引记录编码前缀,得到对应的行列号(irow, icol):说 明 书CN 103106276 A2/3页4(b1) 若icolqcol,剔除该记录;(b2) 若irowqrow,剔除该记录;(b3)用查询窗口与没剔除对象的MBR进一步测试,保留通过测试的对象编码;(c)根据最终的对象编码列表进行详细查询,得到与查询窗口相交的矢量对象信息。0005 由于采用小角编码和递增排列,每个网格单元中的索引信息列表自动分成两部分,前一部分是对象编码前缀小于该网格单元编码的索引信息表,该部分需要进行去重操作,称为重复区;后一部分是对象编码前缀等于该网格单元编码的索引信息表,该部分无需去重操作。0006。
9、 本发明的优点在于提出了一种基于小角编码的矢量数据网格索引方法,这种方法把矢量数据MBR的小角编码作为前缀编码矢量数据,利用该编码构造的网格单元索引信息表,自动分成重复区和非重复区,只需要针对重复区使用简单的比较操作就能在O(N)时间内完成查询,大大提高了矢量数据网格索引的查询效率。附图说明0007 图1为本发明的矢量数据编码和索引构建的流程图。0008 图2为本发明的矢量数据和查询窗口示意图。0009 附图标记说明:A、B、C、D、E、F-矢量要素MBR。0010 图3为本发明的矢量数据小角编码和网格索引示意图。0011 附图标记说明:A、B、C、D、E、F、G-矢量要素MBR。具体实施方式。
10、0012 以下结合说明书附图对本发明创造作进一步的详细说明。0013 实施例一 如图3所示,本实施例中,本发明的这种基于小角编码的矢量数据网格索引方法包括如下步骤:步骤1,矢量数据小角编码和索引构建,其包括如下步骤:(a)网格划分:设矢量数据空间范围为XMIN(X起点),YMIN(Y起点),W(宽)和H(高),根据应用需求,确定网格行数m = 10和列数n = 10,建立索引网格,则每个网格单元宽w = W/m,高h = H/n;(b)前缀编码:对于每个矢量对象A(0001)、B(0002)、C(0003)、D(0004)、E(0005)、F(0006)、G(0007),首先得到其外包矩形MB。
11、R,确定矢量对象MBR的小角(X,Y)所在网格单元行列号(row,col)分别为:A(02,01)、B(02,05)、C(02,08)、D(04,02)、E(04,04)、F(06,06)、G(08,07):row = (int) ( Y - YMIN) / h)col = (int) ( X - XMIN) / w)(b1)对应的前缀是:row *10 + col ,则这些矢量对象的前缀分别是:A:21、B:25、C:28、D:42、E:44、F:66、G:87;(b2)把该前缀附加到矢量对象原来的编码上即为该对象的前缀编码;则这些矢量要素的前缀编码可记为A:210001、B:250002、。
12、C:280003,D:420004、E:440005、F:660006、,G:说 明 书CN 103106276 A3/3页5870007;(c)索引构建:根据矢量对象的MBR,计算与该MBR相交的所有网格单元,在这些网格单元中添加索引信息(前缀编码,MBR)。为了保证每个网格单元的索引信息表按前缀编码递增排序,采用直接插入排序插入索引信息;步骤2,小角编码网格索引,其包括如下步骤:(a)确定查询窗口覆盖的所有网格单元范围,图3中,查询窗口覆盖的网格单元从(04,04)到(07,09),查询起始网格为(qrow = 04,qcol = 04 );(b)按从左到右,从上到下的次序遍历每一个网格单。
13、元:(c)图3中灰色小圆表示矢量对象MBR的最小角,灰色框为查询框; (c1)若icolqcol,剔除该记录; (1)红色框左上角为查询起始框,该起始查询网格单元中包含A、D、E三个要素,即包含A【210001,(02,01)】和D【420004,(04,02)】,以及E【440005,(0 4,04)】,因为其所在网格列号等于起始网格列号,所以不满足c1条件,所以保留这些信息;(2)继续第一行第二个网格行列号为(row=04,col=05),该网格的索引信息包括矢量对象B【250002,(02,05)】和E【440005,(04,04)】,因为E满足c1条件,则剔除,保留B;(3)继续第一行。
14、第三个查询网格行列号为(row=04,col=06),包括矢量对象索引信息B【250002,(02,05)】,因为满足c1条件,则剔除该对象;该行其余查询依次类推; (c2)若irowqrow,剔除该记录;(1)查询框的第一列第二行的行列号为(row=05,col=04),其中矢量对象索引信息包含D【420004,(04,02)】,以及E【440005,(04,04)】,因为D和E均不满c2条件,所以保留这两个索引信息;(2)查询框第一列第三行行列号为(row=06,col=04),包含矢量对象为D【420004,(04,02)】,因为0406且04=04,所以不满足c2条件,要保留;该列其余查询依次类推。0014 (d)用查询窗口与没剔除对象的MBR进一步测试,保留通过测试的对象编码; (e)根据最终的对象编码列表进行详细查询,得到与查询窗口相交的矢量对象信息。说 明 书CN 103106276 A1/3页6图1说 明 书 附 图CN 103106276 A2/3页7图2说 明 书 附 图CN 103106276 A3/3页8图3说 明 书 附 图CN 103106276 A。