两类典型GIS空间索引技术的分析与评价

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
该算法的优点是原理简单 、操作简洁 、直接访 问 ,在涉及的数据量不大 、不需要进行复杂的索引 操作时 ,具有一定的适用性 。但是在建立索引前需 要预知空间目标所覆盖的范围 ,可调节性差 ,且对 大对象没有一个很好的处理机制 。
此外 ,网格划分的精细程度取决于地理对象的 大小 、数量 、分布及建库人员的经验 : 网络划分粗 了 ,小对象不能精确定位 ,一个网格内可能包含很 多地理对象 ,搜索精度不高 ;网络划分细了 ,虽然提 高了搜索精度 ,但一个对象会存入好几个网格中 , 导致冗余严重 。 2. 2 基于多层次网格的空间索引算法
划分网格时 ,为了保证能精确的拾取边界区域 的地理对象 ,将整个研究区域的边界各扩大若干个 逻辑单位 ,并使每一个网格的行列号与目标对象的 具体坐标建立相对应的关系 。
分别按点 、线 、面三类目标建立索引 :首先从相 应的数组中取出目标对象的坐标值 ,然后根据坐标 值确定其所在格网号 ,并将该目标对象的分类码和 索引值填入相应的索引数组中 。 2. 1. 2 检索操作
第一层次索引采用桶数组存储空间点 、线 、面 对象 。数据结构由一个桶和一组单链表组成 , 其 中 ,各桶都有指向第一个对象结点的指针 ,若该指 针不为空 ,则表示该桶内存在对象 ,需继续检索 ;否 则 ,桶为空 ,将不对桶进行检索 。
为了实现精确查询 ,可根据需要建立二 、三层 次的索引结构 ,在一级索引划分的网格块中再进行 第二 、三级划分 。考虑到索引效率 ,在二 、三级的划 分中 ,不再采用桶结构来存储地理对象 ,地理对象 的位置由一个特征信息域表示 ,信息域中存储空间 对象的索引信息 。 2. 2. 2 索引的操作
关键词 :网格索引 ; R树索引 ;空间索引 中图分类号 : TP311. 12 文献标识码 : A 文章编号 : 1673 - 2928 (2006) 02 - 0051 - 05
1 引言 空间索引指的是依据空间对象的位置和形状
或空间对象之间的某种空间关系 ,按一定的顺序排 列的一种数据结构 ,它介于空间操作算法和空间对 象之间 ,通过筛选机制 ,排除大量与特定空间操作 无关的空间对象 ,从而提高空间操作的速度和效 率 [ 1 ] 。目前 GIS中常用的两种对象分割方法为规 则分割方法和基于对象的分割方法 ,和这两种分割 方法相对应的空间索引为基于规则网格的空间索 引和基于对象的 R 树家族索引 。网格索引的主要 算法有基于固定网格的空间索引算法 [ 2 ] 、基于多层 次网格的空间索引算法 [ 3 ] [ 4 ]和自适应层次网格空 间索引 算 法 [ 5 ] 等 等 。 R 树 家 族 索 引 算 法 主 要 有 Guttm an的 R 树 索 引 [ 6 ] 、Sellis 的 R + 树 索 引 [ 7 ] 和 Beckm ann的 R 3 索引 [ 8 ]等 。每一种索引算法都有 其自身的特点 ,适用于不同的应用场合 。
文献 [ 5 ]中提出了一种 GIS自适应层次网格空 间索引算法 ,其网格的具体大小由各地理对象的外 接矩形决定 ,杜绝了网格索引中网格划分时的人为 性 ,其算法描述如下 : 2. 3. 1 算法过程
对研究区域进行 n次的划分 ,同时对地理对象 作标记 : (1)首先获得各地理对象的外接矩形的长 和宽 ,分别为 (L1, W 1) , (L2, W 2) , … (Ln, W n) ,对 于具有相同长和宽的矩形只计一次 (点对象的外接 矩形的长和宽计为 1 和 1 ) 。 ( 2 )计算各矩形的面
在建立地理对象的目标索引时 ,首先将地理对 象抽象成点 、线 、面三种类型 ,并按照点 、线 、面分别 存入相应的数组 。
索引结构主要由网格类和索引数组构成 。网 格类中包含网格的行号 、列号 、网格的矩形结构 、网 格对应目标的索引数组等信息 。索引数组中包含 索引值 、目标在数组中的索引号 、目标分类码等信 息。
© 1994-2010 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
积 ,按面积大小排序 ,如是面积相等 ,则按 L i的长度 进行排列 ,如此获得一个排列结果计为 (L l1,W l1) , (L l2,W l2) , … (L ln,W ln) 。 ( 3)置 i = 1。 ( 4)取 L li 和 W li作为划分矩形的长和宽 ,对研究区域进行划 分 ,并对未曾标记过的地理对象判断是否完全落在 某一小矩形区域内 ,若有 ,则对该对象进行标记 ;否 则继续下步 。 (5)如果 i > n,则结束 ;否则 i = i + 1, 转 (4)。
地理对象的插入 、删除或检索操作分别按点 、 线 、面三种情况进行 。
·52·
插入操作 :在进行点对象的插入操作时 ,根据 点的坐标计算出点所对应的桶及其对应的块号 ,若 某个桶中已经存在该点对象 ,则不再插入该对象 , 否则 ,将该对象的标识以及特征信息存储到相应的 块号中 ,并将存储索引信息的块号链接到相应的桶 数组中 。在进行线对象插入操作时 ,首先将线对象 分解为若干稠密的点 ,然后调用点对象的插入算法 进行线对象的插入 。在进行面对象插入时 ,采用类 似的算法将面对象分解为若干稠密的线 ,再调用线 对象的插入算法完成面对象的插入 。
在对地理对象进行检索操作时 ,按点 、线 、面进 行 :先根据鼠标点确定目标对象的格网号 ,根据网 格号从格网数组中提取所存目标的关键字及分类 码 ,然后依据分类码判断拾取目标是点 、线还是面 , 再从相应的数组中提取与格网数组中相对应的目 标对象 ,并判断鼠标选中的是哪个目标对象 ,最后 将选中的目标对象信息显示出来 。 2. 1. 3 算法评价
文献 [ 3 ]、[ 4 ]中提出了一种基于多层次网格的 空间索引算法 ,基本思想是 :将研究区域纵横分成 若干大小相同的小块 ,每个小块都作为一个桶 ,将 落入该小块内的地理对象放入该小块对应的存储 桶中 ,为适应精度要求 ,桶可以再细分为更小的桶 , 分为若干级进行检索 。 2. 2. 1 索引的建立
进行空间操作时 ,点 、线 、面各类地理对象统一 处理 。对于要检索的地理对象 , 确定其外接矩形 后 ,可快速查找到其分区号 ,从而找到其所在的层 次和网格 ,并找到相应的具体地理对象 。 2. 3. 2 算法评价
算法的优点是网格大小划分稳定自动 ,排除了 人为的因素 ;以各地理对象的外接矩形的大小作为 划分网格依据 ,避免了一个对象被几个网格划分的 情况 ,从而避免了重复存储 ,在存储效率上有了一 定的改善 。算法的缺点是建立索引前 ,必须预先知 道各地理对象的外接矩形的长和宽 ,并按其面积大 小排序 ,若是研究区域的范围很大 ,地理对象比较 复杂时 ,不太适用 ; 索引建立后 , 查询操作简单高 效 ,但进行插入或删除操作时 ,涉及的地理对象的 外接矩形面积若是不等于原先所有的面积的大小 时 ,可能需要重新对面积进行排序并建立分区号 , 效率反而会有所下降 。 3 R 树家族索引算法
2006年 4月 第 2期 (总第 20期 )
安阳工学院学报 Journal of Anyang Institute of Technology
Ap r. 2006 No. 2 ( Gen. No. 20)
两类典型 GIS空间索引技术的分析与评价
梁 浩 1 吴敏君 2
( 1. 江苏大学 计算机科学与通信工程学院 ,镇江 212013; 2. 常州信息职业技术学院 计算机科学与技术系 ,常州 213164)
该算法的优点是算法简单 ,检索的效率比较 高 ,相比于纯粹的网格索引减少了特定的比较次 数 。但算法也存在如下缺点 :网格划分的精细程度 无法保证最优 ,并且是人为的决定 ; 对边缘的地理 对象和跨网格的大地理对象没有一个很好的处理 机制 ;上下级之间的划分等份需依赖于实际情况确 定 ,且没有考虑到地理对象的水平和垂直分布对网 格划分的影响 。 2. 3 自适应层次网格空间索引算法
本文将从索引结构 、索引操作和算法性能等多 个角度对这两种典型的空间索引算法进行详细的 分析和评价 。 2 基于网格的空间索引算法
网格型空间索引的基本思想是将研究区域按 一定规则用横竖线划分为大小相等或不等的网格 , 记录每一个网格所包含的地理对象 。当用户进行 空间查询时 ,首先计算出用户查询对象所在的网 格 ,然后通过该网格快速查询所选的地理对象 。网 格型空间索引的思路简单明了 ,容易理解和实现 , 并且对于地图的显示和缩放具有一定优势 ,符合人 们对地图分幅的习惯特点和对多比例尺空间数据
3 收稿日期 : 2006 - 01 - 21 作者简介 :梁浩 (1972 - ) ,男 ,江苏大学计算机科学与通信工程学院助理工程师 。研究方向 :空间数据库 。
·51·
© 1994-2010 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
删除操作 :删除操作是插入操作的反过程 ,在 进行点对象的删除操作时 ,根据点对象的坐标计算 对象存储块号及其对应的桶 ,然后将该对象的标识 以及特征信息从块和桶中清除 ,并释放对象所占用 的块号 。线对象删除算法调用点对象删除算法 ,面 对象的删除算法调用线对象的删除算法 。
检索操作 :在检索某点处的空间对象时 ,根据 点对象的坐标及检索精度要求计算点对象相对块 号 ,将计算所得一级块号所对应的桶中对象的特征 信息逐个与点对象的特征信息比较 ,若匹配则将检 索到的对象标识和索引信息输出到中间集合 ,检索 完成后输出中间集合中对象的索引信息 。检索与 某线相交的地物时 ,首先根据检索精度要求计算线 对象所覆盖的桶 ,然后将各桶中所存储的地物特征 信息与线对象的特征信息比较 ,若匹配则将该对象 输出到中间集合 ,最后输出中间集合中对象索引信 息 。面对象的处理方法与线对象类似 。 2. 2. 3 算法评价
首先进行第一层次划分 ,将研究区域分成 M × N 等份 ,设定左下角为坐标原点 ,则每个小块可表示 为 B uck [ k, j], 0Φ k <N , 0Φ j <M 。一个 M ×N 的网 格共有 M ×N 个桶 ,若第 i个桶表示为 B uck [ i ] ,则 Buck与 B lock的关系为 : B uck [ i ]一一对应于 B lock [ i /M ], i m od M ,其中 0Φ i <M 3 N。
在划分过程中 ,第一次被矩形 (L l1, W l1 )进行 划分的网格所在层次成为第一层 ,第二次被矩形 (L l2,W l2)进行划分的网格所在层次成为第二层 , 依此类推 ,共有 n层 ,在第 n层的是点对象 。划分 之后 ,每一个矩形由一个层号和在此层内wenku.baidu.com编号组 成 ,构成一个分区 ,对应一个分区号 。每个分区号 对应于一个划分矩形范围 ,所有完全落在这个划分 矩形范围内的地理对象都具有相同的索引号 。
摘 要 :空间索引在 GIS数据的组织和检索中具有重要的作用 ,研究者对空间索引技术进行了广泛的研究 ,提出了许多索 引算法 。本文首先对目前空间索引技术的研究现状进行了介绍 ,然后从索引结构 、索引操作算法的角度对典型的空间索引技 术进行了分类阐述和对比分析 ,同时对它们的性能进行了评价 ,并指出了改进的思路 。
嵌套操作的便利性 ,因此有很多学者对此作了进一 步的研究和改进 ,从而提出了多种不同的实现方 案。 2. 1 基于固定网格划分的空间索引算法
文献 [ 2 ]中提出了一种基于固定网格划分的空 间索引机制 ,其基本思想是将研究区域划分成 M × N 的固定网格 ,为落入每个网格内的地理对象建立 索引 ,检索时仅需检索原来区域的 1 / (M ×N ) ,从而 提高检索的效率 。索引算法分为建立索引和检索 操作两个部分 。 2. 1. 1 建立索引
相关文档
最新文档