如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
6.1空间索引对一个数据集做“索引”,是为了提高对这个数据集检索的效率。索引是用来提供快速、有选择性的存取数据库的一种机制。相当于一个映射机构,将属性的值转换为相应的地址或地址集。对于空间数据,其存储主要依赖于空间对象之间的位置关系而非属性值。鉴于空间数据的特点,我们需要寻找适用的空间索引机制。1.空间索引的定义空间索引是指根据空间要素的地理位置、形状或空间对象之间的某种空间关系,按一定的顺序排列的一种数据结构,一般包括空间要素标识,外包络矩形以及指向空间要素的指针。常见的空间索引二、简单格网空间索引21三.四叉树检索1.点四叉树点四叉树的构造过程:(1)输入空间点A,以A为根节点并进行划分空间。(2)输入空间点B,B落入A的NW象限,并且A的NW象限为空,则B直接放入A的NW象限孩子结点。同理,C是A的SW孩子结点。(3)输入D,由于D落入A的NW象限,但是NW不为空,所以继续往下查找,得到B的NE象限为空,因此,D作为B的NE孩子结点。(4)同理,空间点E、F,分别为A的SE、NE孩子节点。缺点:(1)尽管点四叉树构造简单,但是删除一个节点时,该节点对应的所有子树节点必须重新插入四叉树中,效率很差。(2)对于精确匹配的点查找,效率很高,但是对于区域查找,查找路径有多条,效率较差。(3)树的动态性差,树的结构完全由点的插入顺序决定。树的平衡难以保证。区域四叉树(Region-BasedQuadtree)是以区域目标为循环分解对象的四叉树,分解过程既可以按照区域边界,也可以按照区域内部对二维空间进行划分。如果区域四叉树中的结点覆盖的区域中所有数组元素的值都相同,则该结点是叶子结点。否则,该结点是内部结点,被进一步划分为四个等大小的子结点。主要有MX四叉树与PR四叉树。避免了点四叉树的动态性差、结构完全由点的插入顺序决定的功能缺点。MX四叉树MX四叉树特点:空间中每一个点都属于某一象限且位于该象限的最左下角,每一象限只与一个空间点相关联。尽管D同时是两个大小不等的象限的最左下角,但其应属于最下一级象限(即最后一次空间划分所产生的子象限)。这就决定了所有空间点均位于叶子节点。缺点:插入(或删除)一个点可能导致树的深度增加(或减少)一层或多层,所有的叶子节点都必须重新定位。树的深度往往很大,这会影响查找效率。PR(PointRegion)四叉树叶子节点或者为空,或者包含唯一数据点。PR四叉树与MX四叉树的构造过程类似,不同的是,当分解到一个象限只包含一个点时,不需要继续分解使该点位于某一子象限的最左下角。另外,插入或删除一个点也不会影响到其他的分支,操作比较简单。PR四叉树与MX四叉树的区别:(1)数据点位于象限内,不要求位于左下角。(2)叶子节点可能不在树的同一层次。(3)PR四叉树的叶子结点数及树的深度都小于MX四叉树,因此PR四叉树效率高。CIF四叉树0相交查询:从根节点开始,首先检查与之关联的所有矩形是否为查找结果;接下来检查象限空间与查询区域相交的孩子结点….直到叶子节点。插入矩形:首先检查根节点,如果与根节点的划分线相交,则插入到根节点对应的桶链表中;否则检查包含该矩形的子象限的孩子结点…;如果检查到某一没有孩子的象限,而且该矩形依旧没有插入到对应的位置,那么该象限必须再次细分直到为该矩形找到对应的子象限。删除矩形:找到矩形所在结点,从数据桶中删除。如果删完后桶为空,且该节点没有孩子结点,则可以删除该节点。CIF四叉树可以用于索引矩形以及任何其他形体的空间目标而不需要经过目标近似与空间目标映射,因此对于区与查询,效率相对MX、PR四叉树要高些。但是区域查询往往需要访问多个节点对应的存储桶,尤其当索引量增大,大区域节点所包含较多数据矩形时,外存I/O开销很大。四叉树索引优点:结构清晰,容易建立。它同时具有聚集空间目标的能力(在栅格数据存储中发挥突出作用),提高了检索效率,得到广泛应用。有很多改进的方法被提出:(1)一体化索引,进行了索引空间的三级划分,包括索引块、基本格网、细分格网,并采用行次序法对各级区域进行了编码。(2)CELLQTREE,叶子节点索引点对象,中间节点索引线和面对象,较好的解决了大区域对象的标示符在子空间结点中的多次重复存储问题。四叉树索引的缺点:当索引数据量较大时,如果四叉树层次过小,将导致查找性能下降;如果四叉树层次过大,将导致重复存储的增加,从而增加空间开销,这同时又会影响查找性能。四.R树空间索引五、空间填充曲线(a)行排序(b)Hilbert排序(c)Z排序图5-30几种常用的空间填充编码方法1)Z-ordering曲线(peano曲线)