当前位置:
文档之家› 第6章_空间索引与空间信息查询
第6章_空间索引与空间信息查询
R树是一种高度平衡的树 ,由中间节点和页节点组 成,实际数据对象的最小 外接矩形存储在页节点中 ,中间节点通过聚集其低 层节点的外接矩形形成, 包含所有这些外接矩形。 R树是一种动态索引结构 ,即:它的查询可与插入 或删除同时进行,而且不 需要定期地对树结构进行 重新组织。
R树示例图
五、空间填充曲线
空间填充曲线是一种重要的近似表示方法,将数 据空间划分成大小相同的网格,再根据一定的方 法将这些网格编码,每个格指定一个唯一的编码 ,并在一定程度上保持空间邻近性,即相邻的网 格的标号也相邻,一个空间对象由一组网格组成 。这样可以将多维的空间数据降维表示到一维空 间当中。 理想的空间映射方法是:在多维空间中聚集的空 间实体,经过填充曲线编码以后,在一维空间中 仍然是聚集的。
(a)行排序
(b)Hilbert排序 (c)Z排序 图5-30 几种常用的空间填充编码方法
1) Z-ordering曲线(peano曲线)
Z-排序(Z-ordering)技术将数据空间循环分解
到更小的子空间(被称为Peano Cell),每个子 空间根据分解步骤依次得到一组数字,称为该子 空间的Z-排序值。 子空间有不同的大小,Z-排序有不同的长度,显 然,子空间越大,相应的Z-排序值越短。这里, 分辨率(resolution)是指最大的分解层次,它 决定了Z-排序值的最大长度。
二、 简单格网空间索引
基本思想是将研究区域用横竖线条划分大小相等 和不等的格网,记录每一个格网所包含的空间实 体。当用户进行空间查询时,首先计算出用户查 询对象所在格网,然后再在该网格中快速查询所 选空间实体,这样一来就大大地加速了空间索引 的查询速度。
21 20 17 16 5
23 22 19 18 7
n=0
n=1
n=2
n=3
图5-33 Hilbert曲线示例
6.2 空间查询
一. 空间信息与 空间信息查询 二. 空间查询方式 三. 空间信息查询语言
一.空间信息与空间信息查询
空间信息分类
空间位置和形态
• 对象所在的地理区域,对象的几何和属性特征。
空间关系和关联
• 空间对象间的拓扑关系。
空间分布规律
第6章 空间索引与查询
6.1 空间索引
一、 二、 三、 四、 五、 空间索引技术 简单格网空间索引 四叉树索引 R树索引 空间填充曲线
一、空间索引
对一个数据集做“索引”,是为了提高对这个数 据集检索的效率。
索引是用来提供快速、有选择性的存取数据库的 一种机制。相当于一个映射机构,将属性的值转换 为相应的地址或地址集。 对于空间数据,其存储主要依赖于空间对象之间 的位置关系而非属性值。鉴于空间数据的特点,我 们需要寻找适用的空间索引机制 。
0
数据桶的容量设为3。
相交查询:从根节点开始,首先检查与之关联的所有矩形是 否为查找结果;接下来检查象限空间与查询区域相交的孩 子结点„.直到叶子节点。 插入矩形:首先检查根节点,如果与根节点的划分线相交, 则插入到根节点对应的桶链表中;否则检查包含该矩形的 子象限的孩子结点„;如果检查到某一没有孩子的象限, 而且该矩形依旧没有插入到对应的位置,那么该象限必须 再次细分直到为该矩形找到对应的子象限。
14 15 25
26
32 33 35
E
D D D.F
D
D D E
32-33
35-35 38-38 14-15
A
16 5
E
37
38
E
D E E
E
E E E
26-26
37-37 39-39 48-48
B
4
1 0
6
3 2
12
9 8
14
11 10
36
33 32
38
35 34
44
41 40
46
43 42
D F
3.空间索引的分类
按照搜索分割对象不同,可将空间索引分为3类, 即基于点区域划分的索引方法、基于面区域划分 的索引方法和基于三维体区域划分的索引方法。 B树是常见的基于点区域划分的索引。
常见的空间索引
常见空间索引一般是自顶向下、逐级划分空间 的各种数据结构空间索引,比较有代表性的包括 BSP树、R树、R+树和CELL树等。此外,结构 较为简单的格网型空间索引有着广泛的应用。
2n ×2n个分区, 编号为0~2n ×2n-1
n=0 n=1 n=2 n=3
图5-31 Z-排序示例
2) Hilbert曲线 与Z-排序类似,Hilbert曲线也是一种 空间填充曲线,它利用一个线性序列来 填充空间,其构造过程如图5-33所示。 实验证明,Hi1bert曲线的方法比Z-排 序好一些,因为它没有斜线。不过 Hilbert曲线算法的计算量要比Z-排序 复杂。
29 28 25 24 13
31 30 27 26 15
53 52 49 48 37
55 54 51 50 39
61 60 57 56 45
63 62 59 58 47
4
1 0
6
3 2
12
9 8
14
11 10
36
33 32
38
35 34
44
41 40
46
43 42
为了便于建立空间 索引的线性表,每个格 网按一定规律进行编码 ,建立码与空间实体的 关系,该关系表就成为 格网索引文件。每个要 素在一个或者多个网格 中,每个网格可以包含 多个要素。
缺点:
(1)尽管点四叉树构造简单,但是删除一个节点时 ,该节点对应的所有子树节点必须重新插入四叉 树中,效率很差。 (2)对于精确匹配的点查找,效率很高,但是对于 区域查找,查找路径有多条,效率较差。 (3)树的动态性差,树的结构完全由点的插入顺序 决定。树的平衡难以保证。
2.区域四叉树
区域四叉树(Region-Based Quadtree)是以区域目 标为循环分解对象的四叉树,分解过程既可以按照区域 边界,也可以按照区域内部对二维空间进行划分。 如果区域四叉树中的结点覆盖的区域中所有数组元 素的值都相同,则该结点是叶子结点。否则,该结点 是内部结点,被进一步划分为四个等大小的子结点。 主要有MX四叉树与PR四叉树。 避免了点四叉树的动态性差、结构完全由点的插入 顺序决定的功能缺点。
四叉树索引的缺点: 当索引数据量较大时,如果四叉树层次 过小,将导致查找性能下降;如果四叉树 层次过大,将导致重复存储的增加,从而 增加空间开销,这同时又会影响查找性能 。
四.R树空间索引
1.R树
1984 年 Guttman 发表了《R 树 : 一种空间查询的 动态索引结构》,首次提出了 R 树空间索引结构 。 其后,人们在此基础上针对不同空间运算提出 了不同改进,才形成了一个繁荣的索引树族,是 目前流行的空间索引。
空间索引
Peano键 空间对象
对象索引
空间对象 Peano键集
7
B
E E A
A
B C C
25-25
7-7 54-55 60-60
C
21 20 17 23 22 19 18 7 29 28 25 24 13 31 30 27 26 15 53 52 49 48 37 55 54 51 50 39 61 60 57 56 45 63 62 59 58 47
点四叉树的构造过程:
(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孩子节点。
• 特定类别地物分布在特定的区域,如电子市场、
娱乐场所、饮食街等。
时空演化
• 通过时间空间数据分析,可以研究和揭示事物发 展演化的规律。
空间信息查询
查询什么
• 空间查询的一般问题是“有没有?”、“是什么 ?”、“在什么地方?”、“怎样(到达)?”
查询对象
图形中的信息 属性表中的信息
其它信息 • 一般问题是“某图元代表什么实体,有什么属性 ”、“处于什么位置、距离、路径”、“一定范 围内包含的地物,地物之间的关系等”。
PR四叉树
PR(Point Region)四叉树叶子 节点或者为空,或者包含唯一数据点。
PR四叉树与MX四叉树的构造过程类似, 不同的是,当分解到一个象限只包含一个 点时,不需要继续分解使该点位于某一子 象限的最左下角。 另外,插入或删除一个点也不会影响到 其他的分支,操作比较简单。
PR四叉树与MX四叉树的区别: (1)数据点位于象限内,不要求位于左下角 。 (2)叶子节点可能不在树的同一层次。 (3)PR四叉树的叶子结点数及树的深度都小 于MX四叉树,因此PR四叉树效率高。
MX四叉树特点: 空间中每一个点都属于某一象限且位于 该象限的最左下角,每一象限只与一个空 间点相关联。 尽管D同时是两个大小不等的象限的最 左下角,但其应属于最下一级象限(即最 后一次空间划分所产生的子象限)。这就 决定了所有空间点均位于叶子节点。
缺点: 插入(或删除)一个点可能导致树的深 度增加(或减少)一层或多层,所有的叶 子节点都必须重新定位。 树的深度往往很大,这会影响查找效率 。Βιβλιοθήκη 查询的意义信息管理
• 通过查询可以获取特定数据,进行信息管理和数 据更新。
特定信息提取
• 通过查询提取需要的信息,据弃无关的信息,便 于使用。
空间分析基础
• 查询结果一般是对所需查找的信息及数据的报告 ,研究需要对这些数据单独提出进行相关分析。
二.空间查询方式