GIS数据结构与算法复习
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
什么是“结构”
结构是指组成整体的各元素的搭配和安排
什么是数据结构?
数据结构是组成数据整体的各元素的搭配和安排。
“数据结构”的意义
“数据结构”并不关注数据整体中各个元素的具体数值,而是关注元素之间的关联方式。
同一类型信息的不同实体所对应的数据整体,在元素的具体数字上可能并不一致,但在结构(关联方式)上往往具有相当的一致性。
数据结构中的基本概念和术语
数据(Data):是客观事物的符号表示。在计算机科学中指的是所有能输入到计算机中并被计算机程序处理的符号的总称
数据元素(Data Element):是数据的基本单位,在程序中通常作为一个整体来进行考虑和处理
数据项(Data Item):一个数据元素可由若干个组成。数据项是数据的不可分割的最小单位。数据项是对客观事物某一方面特性的数据描述
数据的逻辑结构和存储结构
“算法”:将信息处理过程转换为运算过程的理论。
算法的表达:形式化方式(流程图,伪代码)——算法的设计
计算机程序代码和机器码——算法的实现
数据结构的形式化表达的基本规则是什么?
概念明确化,信息符号化,结构规则化
算法的特征
自主、序贯、操作指令
算法的要求:
IPO
正确性:对于任意符合预定义要求的输入数据,算法给的对应输出结果都应该是正确的(符合预定义);
确定性:算法的每步操作都必须有明确的、与执行者无关的结果;
可计算性:算法的每步操作最终都由有限几种运算操作组成;
有穷性:对于任意输入数据,算法都能在运行有限次操作后结束,尽管“有限次”可能是个非常庞大的数字;
文件头
存储与文件基本特征相对应的数据(元数据)
信息记录
几何体空间坐标记录,相当于文件的正文
.shp文件的文件头可以进一步分解为更细致的结构
任何.shp文件的文件头都具有相同的长度和结构
总体上看,文件头包含基本识别信息和空间信息概况两部分
#.shp文件的空间信息记录这部分内容没有固定的长度,其长度由存储的几何体数量和几何体具体特征决定;
#总体上是由同类型的几何体空间定位坐标记录依次排列连接而成;
#虽然长度不固定,但是空间信息记录仍然遵循统一的格式,每一个单独的几何体记录都由记录头信息和记录信息两部分组成。
是文件中真正的空间信息部分;
每一个几何体信息分为两部分:开始的部分为int ShapeType之后是空间坐标记录
结构化算法设计的基本思路
自顶向下
逐层分解
每一个层次都只包含尽量简洁的流程表达,用层次化分解应对算法的复杂性
中间层次中多采用描述性的文字而不是计算式表达框图含义
图的基本定义
设集合V表示所有的节点(顶点),集合E表示所有的边;
无向图记做G(V,E),图中任一条边都可以用节点的无序对表示,记做eij=[vi,vj]或者eij=[vj,vi];
有向图记做D(V,E),图中任一条边都要用节点的有序对表示,记做eij=
如果图中既有有向边也有无向边则称为混合图,混合图可以通过将无向边拆成两条方向相反的有向边的方法转换成有向图
赋权图
图中的每一条边(弧)eij均有一个权数wij相对应的图称为赋权图;
图的几种常见存储结构:邻接矩阵,邻接链表,Arc-Node表
邻接矩阵
在无向图中,如果节点vi和vj之间存在一条边,则称vi与vj互相邻接;
在有向图中,如果节点vi到vj之间存在一条弧,则称vi与vj邻接;
将图的节点按顺序编号为(1,2,…,n),构造一个n*n矩阵,其行和列均与节点一一对应,如果i节点与j节点邻接,则矩阵(i,j)单元赋值为1,反之赋值为0,这样的矩阵称为图的“邻接矩阵”;
二维的邻接矩阵可以按行扫描的方式存储到一维的线性存储空间中。
链表:分散式存储结构
计算机通过“存储地址”来读写数据,因此如果在数据元素中加入若干表达地址的数据项,就可以将数据元素分散存储在不连续的位置,并通过表达地址的数据项将它们关联起来形成数据结构;
为了提高存储效率,使用分散结构时,一般在数据元素中加入的地址数据项数目是固定的;
一种常见的情况是使用一个地址数据项,这样的分散结构就构成了链表。
链表的优势在于存储数据可以动态添加和删除;
利用链表可以有效降低邻接矩阵中由不邻接节点对带来的冗余数据。
Arc-Node存储结构
ArcGIS中采用Arc-Node数据结构存储网络数据集
Arc-Polygon数据结构的拓扑检查