GIS原理课件4.8四叉树编码

  • 格式:pdf
  • 大小:1.01 MB
  • 文档页数:27

36
2
37
2
38
0
39
0
栅格数据
00
0
00 00
0
00 22 00 00 00
11
1
11 22
2
22 22 00 00 00
44
4
44 44
4
44 44 44 44 44
44
4
44 44
4
44 44 44 44 44
将按照二M进D码制顺的序行,列检号查相两邻两四交个叉单元的属性值, 再相同将则其合转并换,为存储十最进小制M数D码及属性值,不同则存储所有单元。
MD码 0 4 8 12 16 20 24 28 32 33 34 35 36 37 38
……
属性值
0 1 0 2 4 4 4 4 2 2 0 0 2 2 0 ……
栅格数据
00
0
00 00
0
00 22 00 00
0
00
11
1
11 22
2
22 22 00 00
0
00
44
4
44 44
4
44 44
4
44 44
MD码 0 4 8 12 16 32 33 34 35 36 37
…… 48 52 56 60
属性值
0 1 0 2 4 2 2 0 0 2 2 …… 4 4 4 4
栅格数据
00
0
00 00
0
00 22 00 00
0
00
11
1
11 22
2
22 22 00 00
0
00
4444
44
4444
4
4444
44
4444 4444
1.四叉树的概念Concept
➢四叉树分割的基本思想:首先把一幅图象 或一幅栅格地图等分成四部分,如果检查到 某个子区的所有格网都含有相同的值(灰度 或属性值),那么,这个子区域就不再往下 分割;否则,把这个区域再分割成四个子区 域,这样递归地分割,直至每个子块都只含 有相同的灰度或属性值为止。
1.四叉树的概念Concept
01
2
00
00004444
22002200
2.常规四叉树Ordinary Quadtree
• 采用自上而下的分割方法,从顶层开始,先检测全区域, 如果其值不一致则四等分,直到数值一致为止。
◼ 如何存储常规四叉树? ◼ 属性值 ◼ 父节点指针(1个) ◼ 叶节点指针(4个)
根节点
结点

4
4
பைடு நூலகம்
节 点
0
01
MD码 0 4 8 12 16 32 33 34 35 36 37 38 39 40 44 48
属性值
0 1 0 2 4 2 2 0 0 2 2 0 0 0 0 4
栅格数据
00
0
00 00
0
00 22 00 00
0
00
11
1
11 22
2
22 22 00 00
0
00
4444
44
4444
4
4444
44
4444 4444
• 采用自上而下的分割方法,从顶层开始,先检测全区域, 如果其值不一致则四等分,直到数值一致为止。
00114444
根节点
WN EN 0 0 1 1 4 4 4 4
0 0 2 2 4 4 4 4 生成四叉树
结点
00224444
4

4
节 点
22224444
0
WS ES 0 0 0 0 4 4 4 4
00004444
方法:将二进制的行列号两两交叉,再将其转换为十进制数。
3.线性四叉树Linear Quadtree
• 3.3 基于MD码的线性四叉树
➢3.3.1 MD码求解
• 求第二行第三列的MD码
行号
列号
2
3
二进制
10
11
➢3.3.2 MD码反求行列号
• 已知MD码为13,求行列号
Morton码 13
二进制
1 10 1
44
4444 4444
44
4444
按照MD码顺序,检查相邻四个单元的属性值, 相同则合并,存储最小MD码及属性值,不同则存储所有单元。
检测上层相邻四个单元属性值,直到遍历所有单元。
3.线性四叉树Linear Quadtree
• 3.3 基于MD码的线性四叉树 ➢3.3.3 MD码应用
MD码
0 1 4 5 16 17 20 21 2 3 6 7 18 19 22 23 8 9 12 13 24 25 28 29 10 11 14 15 26 27 30 31 32 33 36 37 48 49 52 53 34 35 38 39 50 51 54 55 40 41 44 45 56 57 60 61 42 43 46 47 58 59 62 63
44 44
4
44
44
4
44 44
4
44 44
4
44 44
4
44
按照MD码顺序,检查相邻四个单元的属性值, 相同则合并,存储最小MD码及属性值,不同则存储所有单元。
3.线性四叉树Linear Quadtree
• 3.3 基于MD码的线性四叉树 ➢3.3.3 MD码应用
MD码
0 1 4 5 16 17 20 21 2 3 6 7 18 19 22 23 8 9 12 13 24 25 28 29 10 11 14 15 26 27 30 31 32 33 36 37 48 49 52 53 34 35 38 39 50 51 54 55 40 41 44 45 56 57 60 61 42 43 46 47 58 59 62 63
• 通过逐次四等分的方法,将栅格数据分解为一系列单值的 方形区域。
00114444 00114444 00224444 00224444 22224444 00004444 00004444 00004444
主要内容
四叉树的概念 常规四叉树
线性四叉树
2.常规四叉树Ordinary Quadtree
主要内容
四叉树的概念 常规四叉树
★ 线性四叉树
3.线性四叉树Linear Quadtree
• 为了克服常规四叉树占用存储空间大的缺点,人们提 出了线性四叉树的算法。线性四叉树只存储最后叶结 点的信息,即结点的位置、大小和灰度。叶结点位置 采用基于四进制或十进制的Morton码表示(加拿大学 者Morton于1966年提出);叶结点的大小用结点的深 度或层次表示。Morton码又称为M码。
2
00
22002200
优点:便于前后寻址 缺点:增加了数据存储量及操作的复杂性 应用:数据索引、图幅索引
2.常规四叉树Ordinary Quadtree
常规四叉树的特点如下:
(1)运算量较大。因为,大量数 据需要重复检查才能确定划分; (如7、8、9、10等格网需要检 查4次)
(2)占用的存储空间较大。每个 结点需要六个变量才能加以表 达:一个变量表示父结点指针, 四个变量代表四个子结点指针, 一个变量代表本结点的灰度或 属性值。
3.线性四叉树Linear Quadtree
• 3.3 基于MD码的线性四叉树 ➢3.3.3 MD码应用
MD码
0 1 4 5 16 17 20 21 2 3 6 7 18 19 22 23 8 9 12 13 24 25 28 29 10 11 14 15 26 27 30 31 32 33 36 37 48 49 52 53 34 35 38 39 50 51 54 55 40 41 44 45 56 57 60 61 42 43 46 47 58 59 62 63
32 33 34 35 36 37 38 ……
2 2 0 0 2 2 0 ……
栅格数据
00
0
00 00
0
00 22 00 00
0
00
11
1
11 22
2
22 22 00 00
0
00
44
4
44 44
4
44 44
4
44 44
4
44
44
4
44 44
4
44 44
4
44 44
4
44
按照MD码顺序,检查相邻四个单元的属性值, 相同则合并,存储最小MD码及属性值,不同则存储所有单元。
码 Ib , Jb 分别为栅格单元行列号的二进制数。
3.线性四叉树Linear Quadtree
• 3.3 基于MD码的线性四叉树
➢3.3.1 MD码求解
行号I= In-1 In-2 …. I1 I0 列号 J= Jn-1 Jnn--22 ….
J1 J0
二进制码
….
十进制码( MD ) MD = J0*20 + I0*21 + J1*22 + I1*23 + …. + Jn-2*22n-4 + In-2*22n-3 + Jn-1*22n-2+In-1*22n-1
➢3.3.3 MD码应用
4
1
8
0
MD码
12
2
0 1 4 5 16 17 20 21
16
4
2 3 6 7 18 19 22 23 8 9 12 13 24 25 28 29 10 11 14 15 26 27 30 31 32 33 36 37 48 49 52 53 34 35 38 39 50 51 54 55 40 41 44 45 56 57 60 61 42 43 46 47 58 59 62 63