2.第二章空间数据结构(6学时)(四叉树编码)解析

合集下载

二章空间数据结构及编码

二章空间数据结构及编码

二章空间数据结构及编码在当今数字化的时代,空间数据的处理和管理变得越来越重要。

空间数据结构及编码作为地理信息系统(GIS)、计算机图形学等领域的基础,对于有效地存储、组织和检索空间数据起着关键作用。

首先,让我们来理解一下什么是空间数据。

简单来说,空间数据就是具有空间位置和几何特征的数据,比如地图上的点、线、面等要素。

这些数据不仅包含了位置信息,还可能包括属性信息,如土地利用类型、建筑物高度等。

空间数据结构则是指空间数据在计算机中的组织方式。

常见的空间数据结构有矢量数据结构和栅格数据结构。

矢量数据结构是通过记录坐标的方式来表示点、线、面等几何对象。

例如,一个点可以用一对坐标(x, y)来表示,一条线可以由一系列有序的坐标对来定义,而一个面则是由一个封闭的线来界定。

矢量数据结构的优点在于数据精度高、存储空间小、便于进行几何变换和拓扑分析。

但它在处理复杂的空间关系和大规模数据时,计算量可能较大。

相比之下,栅格数据结构将空间区域划分为规则的网格单元,每个单元对应一个数值。

这种结构适合表示连续变化的数据,如地形高程、温度分布等。

栅格数据结构的处理相对简单,但数据冗余度较高,精度可能会受到网格大小的限制。

在实际应用中,选择合适的空间数据结构取决于具体的需求和数据特点。

如果需要精确表示地理要素的形状和边界,矢量数据结构可能更合适;而对于大面积的、连续变化的数据,栅格数据结构可能更为有效。

接下来,我们谈谈空间数据编码。

空间数据编码的目的是为了提高数据存储和传输的效率,便于数据的管理和处理。

常见的空间数据编码方法有很多。

比如,对于矢量数据,常见的编码方式有坐标序列编码、多边形编码等。

坐标序列编码直接记录点的坐标,简单直观,但存储空间较大。

多边形编码则通过一些规则来减少数据存储量,提高处理效率。

对于栅格数据,常见的编码方式有直接编码、行程编码、四叉树编码等。

直接编码就是将每个网格单元的值直接存储,简单但效率低。

行程编码通过记录相同值的连续段来压缩数据。

GIS原理-判断及选择题

GIS原理-判断及选择题
7.海量空间数据的管理主要采用分幅管理空间数据的方法。分幅的方法有经纬线分幅和矩形分幅两 种。 (对 错 )
二.选择题
8.数据库系统是:____。( ) A.存储在计算机内的有结构的数据集合 B.一个软件,用以维护数据库、接受并完成用户对数据库的一切操作 C.指由硬件设备、软件系统、专业领域的数据体和管理人员构成的一个运行系统 D.数据文件的集合
二.选择题
6.在地理信息系统中,通常使用的三个坐标系是:_____。( ) A.世界坐标系、规范化坐标系和设备坐标系 B.世界坐标系、用户坐标系和设备坐标系 C.世界坐标系、局部坐标系和设备坐标系 D.局部坐标系、用户坐标系和设备坐标系
7.图形数据的编辑功能主要是:________。( ) A.利用已知的理论数据和实际数据建一多项式变换公式,用此公式修改错误数据 B.利用 GIS 软件提供的程序,自动删除图形数据中的错误数据 C.利用开窗口功能和光标定位功能,人机交互的修改图形中的错误数据 D.利用图形变换功能来修改图形中的错误数据
第一章 绪论
一.判断题
1.在通常情况下,对信息和数据可不作严格区分,在不引起误解的情况下可以通用,因此信息和数 据无本质区别。 (对 错 )
2.GIS 与 DBS 的最大差别是前者具有处理图形数据功能,而后者没有。 (对 错 )
3.GIS 与 CAD 系统两者都有空间坐标,都能把目标和参考系统联系起来,都能描述图形拓扑关系,也 能处理属性数据,因而无本质差别。 (对 错 )
3.手扶跟踪数字化输入得到的是矢量数据。 (对 错 )
4.对于一条折线一般选择流方式数字化。 (对 错 )
5.对于不规则曲线图形常选择流方式数字化。 (对 错 )
6.扫描输入最大的缺点是噪声、数据量大。 (对 错 )

空间数据结构及编码

空间数据结构及编码

3. 岛只作为一个单个的图形建造,没有与外包多边形 的联系;
4.不易检查拓扑错误。这种方法可用于简单的粗精度 制图系统中
2)树状索引结构 该法采用树状索引以减少数据冗余并间接 增加邻域信息,方法是对所有边界点进行 数字化,将坐标对以顺序方式存储,由点 索引与边界线号相联系,以线索引与各多 边形相联系,形成树状索引结构
2.有代表性的矢量空间数据结构
非拓扑数据结构
1)Spaghetti结构 ——坐标序列法
由多边形边界的x、y坐标对集合及说明信息组成,是 最简单的一种多边形矢量编码,如上图记为以下坐标文件:
• 10:x1,y1;x2,y2;x3,y3;x4,y4;x5,y5;x6,y6;x7,y7;x8,y8; x9,y9;x10,y10;x11,y11; x1,y1;
0 4 4
4 4 4
4 4 4
7 4 4
7 4 8
7 7 8
7 7 7
7 7 7
0
0 0 0
0
0 0 0
4
8 0 0
8
8 8 0
8
8 8 8
8
8 8 8
7
7 8 8
7
8 8 8
0
0
0
0
0
8
8
8
该例中块码用了120个整数,比直接编码还多,这是因为例中为描述方便, 栅格划分很粗糙,在实际应用中,栅格划分细,数据冗余多的多,才能显 出压缩编码的效果,而且还可以作一些技术处理,如行号可以通过行间标 记而省去记录,行号和半径等也不必用双字节整数来记录,可进一步减少 数据冗余。
两种方案
1)只在各行(或列)数据的代码发生变化时 依次记录该代码以及相同的代码重复的个 数,从而实现数据的压缩。

四叉树——精选推荐

四叉树——精选推荐

四叉树前序四叉树或四元树也被称为Q树(Q-Tree)。

四叉树⼴泛应⽤于图像处理、空间数据索引、2D中的快速碰撞检测、存储稀疏数据等,⽽⼋叉树(Octree)主要应⽤于3D图形处理。

对游戏编程,这会很有⽤。

本⽂着重于对四叉树与⼋叉树的原理与结构的介绍,帮助您在脑海中建⽴四叉树与⼋叉树的基本思想。

本⽂并不对这两种数据结构同时进⾏详解,⽽只对四叉树进⾏详解,因为⼋叉树的建⽴可由四叉树的建⽴推得。

若有不⾜之处,望能不吝指出,以改进之。

^_^ 欢迎Email:zhanxinhang@四叉树与⼋叉树的结构与原理四叉树(Q-Tree)是⼀种树形数据结构。

四叉树的定义是:它的每个节点下⾄多可以有四个⼦节点,通常把⼀部分⼆维空间细分为四个象限或区域并把该区域⾥的相关信息存⼊到四叉树节点中。

这个区域可以是正⽅形、矩形或是任意形状。

以下为四叉树的⼆维空间结构(左)和存储结构(右)⽰意图(注意节点颜⾊与⽹格边框颜⾊):四叉树的每⼀个节点代表⼀个矩形区域(如上图⿊⾊的根节点代表最外围⿊⾊边框的矩形区域),每⼀个矩形区域⼜可划分为四个⼩矩形区域,这四个⼩矩形区域作为四个⼦节点所代表的矩形区域。

较之四叉树,⼋叉树将场景从⼆维空间延伸到了三维空间。

⼋叉树(Octree)的定义是:若不为空树的话,树中任⼀节点的⼦节点恰好只会有⼋个,或零个,也就是⼦节点不会有0与8以外的数⽬。

那么,这要⽤来做什么?想象⼀个⽴⽅体,我们最少可以切成多少个相同等分的⼩⽴⽅体?答案就是8个。

如下⼋叉树的结构⽰意图所⽰:四叉树存储结构的c语⾔描述:/* ⼀个矩形区域的象限划分::UL(1) | UR(0)----------|-----------LL(2) | LR(3)以下对该象限类型的枚举*/typedef enum{UR = 0,UL = 1,LL = 2,LR = 3}QuadrantEnum;/* 矩形结构 */typedef struct quadrect_t{double left,top,right,bottom;}quadrect_t;/* 四叉树节点类型结构 */typedef struct quadnode_t{quadrect_t rect; //节点所代表的矩形区域list_t *lst_object; //节点数据, 节点类型⼀般为链表,可存储多个对象struct quadnode_t *sub[4]; //指向节点的四个孩⼦}quadnode_t;/* 四叉树类型结构 */typedef struct quadtree_t{quadnode_t *root;int depth; // 四叉树的深度}quadtree_t;四叉树的建⽴1、利⽤四叉树分⽹格,如本⽂的第⼀张图<四层完全四叉树结构⽰意图>,根据左图的⽹格图形建⽴如右图所⽰的完全四叉树。

第二章 GIS的数据结构—2栅格结构

第二章 GIS的数据结构—2栅格结构

优 矢 量 数 据 结 构 栅 格 数 据 结 构



1.便于面向现象的数据表示 1.便于面向现象的数据表示 2.数据结构紧凑 数据结构紧凑、 2.数据结构紧凑、冗余度低 3.有利于网络分析 3.有利于网络分析 4.图形显示质量好 图形显示质量好、 4.图形显示质量好、精度高 1.数据结构简单 1.数据结构简单 2.空间分析和地理现象的模 2.空间分析和地理现象的模 拟均比较容易 3.有利于与遥感数据的匹配 3.有利于与遥感数据的匹配 应用和分析 4.输出方法快速 输出方法快速, 4.输出方法快速,成本比较 低廉
Morton顺序和 顺序和Morton坐标 顺序和 坐标
Morton顺序: 顺序: 顺序
指栅格结构中的一种 扫描顺序, 扫描顺序,它将图像 中的像元按照“ 形 中的像元按照“Z”形 的 轨迹连接起来。 轨迹连接起来。
图2-6
Morton 扫 描 顺 序
Morton坐标:利用Morton顺序对影像中的像元建立索 Morton坐标:利用Morton顺序对影像中的像元建立索 坐标 Morton 引,将原来由行列坐标对表示的空间位置简化为一个简 单数值。 单数值。
0 4 4 0 0 0 4 4 4 0 4 4 4 4 8 0 0 7 4 4 8 8 8 8 0 8 8 8 7 8 8 8 8 7 4 8 7 7 7
四 叉 树 分 割
7
图 2- 8
编 码:
图2- 9
四叉树编码
根结点:最上面的结点, 根结点:最上面的结点,对应整个图形 叶结点: 叶结点:不能再分的结点 n n 对栅格矩阵的要求: 对栅格矩阵的要求: 2 ×2 n为象限分割次数,n+1为四叉树的最大高度或最大层树 为象限分割次数,n+1为四叉树的最大高度或最大层树

四叉树八叉树BSP树与KD树

四叉树八叉树BSP树与KD树

四叉树, 八叉树, BSP 树与 KD 树-- 空间数据的划分与查找内容•四叉树(Quadtree)•八叉树(Octree)•二叉空间划分树(BSP tree)•KD 树(K Dimensional tree)问题:1维空间数据查找•1维数组int a[] = {35, 17, 39, 9, 28, 65, 56, 87};•实现bool find(int a[], int val);•顺序查找,时间复杂度 O(N)•二分查找,时间复杂度 O(logN);排序复杂度 O(N * logN)•如果要查询 k 次?•如果 a[] 中的数据允许插入、删除?顺序查找 & 二分查找二叉查找树(Binary Search Tree)•对原始数据按照一定规则进行组织、划分:•左子树上所有节点的值小于根节点的值•右子树上所有节点的值大于根节点的值•左、右子树都各是一棵 BST•时间复杂度:•建树 O(N * logN),插入 O(logN),删除 O(logN),查找 O(logN)•空间复杂度:O(N)二叉查找树例子演示/bst.html问题:2维空间数据查找•2维平面上有 1000 个点,vector<Point2> points = {...};•实现bool find(vector<Point2> &points, Point2 p);•暴力查找,时间复杂度 O(N)•空间换时间,假设所有点都在 1000 * 1000 的 2D 网格上,用一个二维数组记录每个网格点是否有点,时间复杂度 O(1),空间复杂度 O(1000 * 1000)•四叉树(Point Quadtree),即二维数据情况下的 BST内容•四叉树(Quadtree)•八叉树(Octree)•二叉空间划分树(BSP tree)•KD 树(K Dimensional tree)四叉树•四叉树是一种树形数据结构,其每个节点至多有四个子节点,表示将当前空间划分为四个子空间,如此递归下去,直到达到一定深度或者满足某种要求后停止划分。

叶结点编码四叉树的邻域寻找算法

叶结点编码四叉树的邻域寻找算法

叶结点编码四叉树的邻域寻找算法叶结点编码四叉树的邻域寻找算法是一种被用于解决图像处理、计算机视觉等领域的数学运算算法。

编码四叉树是用来描述图像空间结构、表达层次关系的一种空间数据结构。

邻域查询算法是提取空间关系的重要基础,也是编码四叉树的核心部分。

编码四叉树是一种用来表达空间关系的二叉树,它以树形结构表示图像空间的结构和层次关系。

叶结点编码四叉树的叶子节点的编码是由其父节点的编码、四叉树的等级和编号三个部分组成。

该叶结点代表的像素点在空间上的相对位置由其父节点的编码、四叉树的等级和编号确定。

基于叶结点编码四叉树结构,建立了一种叫做叶结点编码四叉树的邻域查找算法。

该算法根据给定像素点的编码信息,去搜索邻域像素点来获取它们的编码信息,以此获取其在空间上的位置和属性特征。

邻域查找算法的基本思路是先检测该像素点的周围像素点的编码,然后根据周围像素点的编码来确定该像素点在空间中的邻域,最后根据给定像素点的编码信息以及邻域像素点的编码信息来计算各个点之间的空间相对位置,从而实现邻域查询。

叶结点编码四叉树邻域查找算法一般有以下几种:1.局搜索法:根据给定像素点的编码信息,在整个编码四叉树中的所有叶节点中搜索所有的邻域。

2.部搜索法:从给定像素点的父节点开始,对编码四叉树进行空间局部搜索,搜索出其邻域的所有叶节点的编码信息。

3.称搜索法:根据给定像素点的编码信息,以查找空间对称的方式去搜索其附近像素点。

4.域搜索法:根据给定像素点的编码信息,以查找它周围的像素点,获取编码信息并确定邻域位置。

叶结点编码四叉树邻域查找算法由于其精确、快速的查询和计算特性,被广泛应用于图像处理、机器视觉等领域,例如图像分割、图像边界检测、图像识别等。

近几年,研究者们开始采用计算机视觉和机器学习的方法来改进叶结点编码四叉树的邻域查找算法,从而提高其准确性和效率。

他们提出了一种叫做卷积神经网络的模型,该模型可以自动学习叶结点编码四叉树的邻域查找算法的特征,从而提高空间位置的预测准确性。

第二章 空间数据组织

第二章 空间数据组织
2〕恣意三角形的外接圆内不包括其 它点〔这特性质是Delaunay三角 网的定义也称为空外接圆规那 么〕;
3〕三角形最大水平地坚持了平衡、 防止狭长形三角形的出现〔最大 最小角规那么〕。假设将三角网 中的每个三角形的最小角停止升 序陈列,那么Delaunay三角网的 陈列失掉的数值最大,从这个意 义上讲,Delaunay三角网是〝最 接近于规那么化〞的三角网〔邬 伦等 2001〕。
顺序空间关系
顺序空间关系:描画空间实体之间在空间 上的陈列次第
类型: 上下顺序关系 前后顺序关系 基于西北西北天文方向的顺序空间关系
拓扑空间关系
拓扑特征:在拓扑变换〔恣意伸缩或变形,但 不扭结或折叠〕下可以坚持不变的几何属性
类型: 衔接性〔connectivity〕:指曲线或弧段在结点
等。
第三节 空间关系
定义:指几何上空间对象之间的 相互关系
类型: 度量空间关系 顺序空间关系 拓扑空间关系
度量空间关系
度量空间关系:指空间对象之间的距离关系 类型: 欧氏距离 曼哈顿距离〔The Manhattan distance、The
city-block distance、The taxi-cab distance〕: Dist=|x1-x2|+|y1-y2| 时间距离 经济距离 风险距离 社会距离 认知距离 生态距离
第二节 空间数据的特点
二、空间数据类型 1. 类型数据:居民点、交通线、土地类型散布
等。 2. 面域数据:多边形中心点、行政区域界限和
行政单元 3. 网络数据:路途交叉点、街道和街区等。 4. 样本数据:气候站、航线和野外样方的散布
区等。 5. 曲面数据 :高程点、等高线和等值区域。 6. 文本数据:如地名、河流名和区域称号。 7. 符号数据:点状符号、线状符号和面状符号
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

栅格数据文件 层1 多边形1 属性值 像元1坐标 … 像元n坐标 多边形N 层2 …
Y坐标
层1属性值 层2属性值 … 层n属性值 像元2 … 像元n 层2 … 层n

像元n
层n
2.2.3栅格数据存储编码


直接编码 链式编码 行程编码 块式编码 四叉树编码
1.直接编码
直接编码是最简单最直观而又非常重要的一种栅格 结构编码方法,通常称这种编码为图像文件或栅格 文件。直接编码就是将栅格数据看作一个数据矩阵, 逐行(或逐列)逐个记录代码. 3 3 3 4 4 4 4 4 1 3 3 3 4 4 4 4 4 3 3 3 3 4 4 4 4 2 3 3 3 3 4 4 4 4 1 3 3 3 4 4 4 2 3 1 3 3 3 4 4 4 2 1 1 3 3 3 2 2 2 4 1 1 3 3 3 2 2 2 1 1 1 1 3 2 2 2 5 1 1 1 1 3 2 2 2 1 1 1 1 2 2 2 2 6 1 1 1 1 2 2 2 2 1 1 1 1 1 2 2 2 7 1 1 1 1 1 2 2 2 1 1 1 1 1 2 2 2
地理信息系统两种数据类型是通过两种空间数据 结构来实现:栅格(raster )and 矢量(vector)。 栅格数据模型是典型的基于域的模型。矢量数据 模型是典型的基于对象的模型。
Fieldbased data Object -based data
1 1 1 1 3 2 2 3 3 2 3 3 2
地理信息系统原理
(★第2章 空间数据结构)
2.1空间数据模型的类型
在GIS中与空间信息有关的空间数据模型主要有两个 基于场 (field-based) 的空间模型把地理空间的 事物和现象作为连续的变量或体来看待,表示了在二 维或者三维空间中,空间实体的属性信息被看作是连 续变化的数据。 A collection of spatial distributions Continuous data. Examples altitude, rainfall, temperature, crop yield.
1 1 1 3 1 1 1 3 2 2 3 3 2 1 3 3 3 2 3 2
Real world
Very Fine grid
Medium grid
Coarse grid
2.2.1栅格数据取值方法
中心归属法:每个栅格单元的值以
网格中心点对应的面域属性值确定。
面积占优法:以在该网格单元中占据
最大面积的属性值确定。
Raster model
1 1 3
cells (grid) pixels (image) points lines polygons
l l
Vector .2 栅格数据结构



将工作区域的平面表象按一定分解力作行和列的 规则划分,形成许多格网,每个网格单元称为象 素(pixel)。根据所表示实体的表象信息差异,各 象元可用不同的“灰度值”来表示 。 若每个象元规定N比特,则其灰度值范围可在0到 2 N—1 之间;把白~灰色~黑的连续变化量化成 8 比特( bit),其灰度值范围就允许在 0 ~ 255 之间; 若每个象元只规定1比特,则灰度值仅为0和1,这 就是所谓二值图像。 点实体在栅格数据中表示为一个像元;线实体则 表示为在一定方向上连接成串的相邻像元集合; 面实体由聚集在一起的相邻像元集合表示。
长度占优法:以网格中线的大部分
长度所对应的面域的属性值来确 定。
重要性法:根据栅格内不同地物的重要性
程度,选取特别重要的空间实体决定对应 的栅格单元值.
栅格数据的值
1 1 1 3 1 1 1 3 2 2 3 3 2 3 3 2

整数值:如土壤分类
1.7 1.8 2.0 2.0 1.7 1.8 2.0 2.2

以像元为序。不同层上同一像元位置上的各属性值表示为一 个列数组。 以层为基础。每一层又以像元为序记录它的坐标和属性值。 以层为基础。但每一层内以多边形为序记录多边形的属性值 和充满多边形的各像元的坐标。
栅格数据文件
像元1 X坐标 层1
栅格数据文件
像元1 像元2 X,Y,属性值 X,Y,属性值 … X,Y,属性值
regions
A A A A B A A B B A B B
Row # (Y-coord)
A
A
A
B
cells
Column # (X-coord)
Punctual +
Lineal
Areal
Surficial
140 120
0-d
1-d
2-d
3-d
分辨率(resolution) Resolution is dependent on the grid cell size. Changing the resolution affects classification, area, perimeter, accuracy , etc...
有毒气体扩散分析
基于对象(object-based)的模型强调了离散对 象,将研究的整个地理空间看成一个空间域,地理实 体和现象作为独立的对象分布在该空间域中,根据 它们的边界线以及它们的组成或者与它们相关的其 它对象,可以详细地描述离散对象。 任何现象,无论大小,都可以被确定为一个对 象(Object),且假设它可以从概念上与其邻域现象 相分离。在欧氏(Euclidean)空间中主要有点对象、 线对象、多边形对象和体。 composed of identifiable entities Discrete data. Examples roads,rivers, land parcels,island boreholes

实数:如高程值
1.8 1.8 2.3 2.2 2.2 2.2 2.2 2.0
a a a a a c b b c c b c c b

字母:蔬菜类型、土地分区
a c
2.2.2栅格数据组织方法
栅格数据以层的 方式来组织文件,在 栅格数据结构中,物 体的空间位置就用其 在笛卡尔平面网格中 的行号和列号坐标表 示,物体的属性用象 元的取值表示,每个 象元在一个网格中只 能取值一次,同一象 元要表示多重属性的 事物就要用多个笛卡 尔平面网格,称为层。
ployon area line point
栅格数据结构实际上就是象 元阵列,即象元按矩阵形式 的集合(二维数组),每个象 元是栅格数据中最基本的信 息存储单元,其坐标位置可 以用行号和列号确定。右图 在计算机内是一个4*4阶的矩 阵。但在外部设备上,通常 是以左上角开始逐行逐列存 贮。存贮顺序为: A A A A A B B B A A B B A A A B , 当每个像元都有唯一一个属 性值时,一层内的编码就需 要m行×n列×3(x,y和属性编 码值)个存储单元。
相关文档
最新文档