摘要:本文主要引入GIS叠加分析的概念,分享了一些个人思考,介绍了叠加分析的分类,以及叠加分析的基本方法,侧重理论知识的介绍,内容比较重要,算是为后续Postgis叠加分析系列推文做引子。欢迎持续关注并提出建议。
GIS提供的核心功能之一就是空间分析。GIS分析要考虑数据类型和应用领域两方面,空间数据类型一般包含矢量数据、栅格数据;应用领域的不同,支撑的分析方法、模型也不尽相同。
从GIS产品角度来看,分析工具可分两类,一类是提供基础GIS分析工具,包括叠加分析、缓冲区分析、临近分析、插值分析、路径分析等,针对大多数的GIS用户;另一类是针对特殊领域,比如水文分析模型,这种针对专业领域的,需要进行定制模块的扩展开发。
矢量数据分析的两个基本工具是叠加分析和缓冲区分析。缓冲区分析相对简单,放在后边更,先做叠加分析系列。栅格数据的叠加更多是基于栅格像元的地图代数,这里主要讲矢量数据的叠加。
先看概念,叠加分析也叫叠置分析(Overlay)。
百度给出的解释:叠加分析是GIS中的一项非常重要的空间分析功能。是指在统一空间参考系统下,通过对两个数据进行的一系列集合运算,产生新数据的过程。叠加分析的叠置分析的目标是分析在空间位置上有一定关联的空间对象的空间特征和专属属性之间的相互关系。多层数据的叠置分析,不仅仅产生了新的空间关系,还可以产生新的属性特征关系,能够发现多层数据间的相互差异、联系和变化等特征。 Wiki给出的解释:Overlay is a GIS operation that superimposes multiple data sets (representing different themes) together for the purpose of identifying relationships between them. An overlay creates a composite map by combining the geometry and attributes of the input data sets. Tools are available in most GIS software for overlaying both Vector or raster data. 某课本里的解释:叠置就是将多个要素图层的几何形状和属性组合在一起,生成新的输出图层,输出图层的每个要素包含所有输入图层的属性组合。
GIS的目标之一是要对世界进行抽象、建模、分析,曾经有本小书叫《为我们的世界建模》,ESRI出品的经典,可以了解其整个基础技术体系的构建。那么怎么抽象,建模呢?
坐标系的建立我们就可以对数据进行统一标准,就像统一度量衡,一斤是多少,一尺是多长,就有了标准,然后就可以进行量化,进而输入计算机进行表达存储;
分层,现实世界是糅合在一起的综合复杂体,上边说到空间是具有唯一存在性的,那么从不同的角度来看,是不是可以把道路、建筑物、公共设施、水系、兴趣点这些按类别分开组织管理,但是在逻辑上是一致的,分门别类是顺其自然的事,在GIS中这就叫分层,解决空间数据的基本组织问题;
比例尺,更多是为解决地理中多尺度问题的,很多领域都有多尺度问题,也是事物的多态性,具有主观性。
说了那么多,跟叠加分析有什么关系? 正是在统一的空间参考框架下,将现实世界中的要素进行分层,而空间位置又具有唯一性,那么在针对空间位置的分析时,必然考虑将原来分层的要素基于空间位置进行叠加。
比如在规划中,同一个地块不同的年份,其用地性质可能不同,我们需要叠加不同年份的用地现状数据,来支撑做流量分析,这里的“同一个地块”就是空间位置的唯一性,只是随着时间的变化人们赋给他的属性不一样了。
考虑各种类型的叠加分析应用,都是将多个图层基于空间位置的某种关系,进行叠加来满足特定的分析需求。这一小节啰嗦了很多,但是多思考多收益,现在是这么想的,随着经验认识的增加,可能又有新的变化。
矢量数据是由点、线、多边形的几何对象来表达地理空间要素,根据要素类型的不同,叠加分析主要包括以下三类:
(一般把操作符左边称作"输入图层",操作符右边称作"操作图层或叠加图层",等号右边称作"输出图层")
点与多边形叠加
线于多边形叠加
多边形与多边形叠加
以上的三种分析,对于前两种,反过来多边形作为输入图层,点、线要素作为叠加图层也是可以的,具体应用可以尝试。
Arcgis的分析工具箱里,被归为两类:一个是叠加分析(Overkay)工具箱,提供了包括Erase,Identity,Intersect,Spatial join,Symmetrucal Difference,Union,Update的7个工具;一个是Extract工具箱,提供了包括Clip,Select,Split,Table Select的4个工具,总共11个工具,如下图是10.3版本的截图:
所有的这些叠加计算的背后,其实都是基于布尔运算的,也就是AND,OR,XOR,其他的操作都可以由这三个基本操作组合运算而得到,以下三个公式就是叠加分析计算的核心。这里多一句,离散数学就是研究离散数量结构及其关系的数学分支,对于计算机来说真的很重要,如果在读大学还是好好学。
逻辑AND连接符,表示求交Intersect;
(Input Layer) AND (Operate Layer)= Intersect Layer
逻辑OR连接符,表示联合Union;
(Input Layer) OR (Operate Layer)= Union Layer
逻辑XOR连接符,表示对称差异Symmetrical Difference;
(Input Layer) XOR (Operate Layer)= Symmetrical difference Layer
◆