【GIS】GIS矢量空间分析(上)

发布于:2022-11-09 ⋅ 阅读:(8) ⋅ 点赞:(0) ⋅ 评论:(0)

0、GIS的基本概念

栅格数据与矢量数据

image.png
上图中,a为图形模拟表示的地理对象,b为控件对象对应的栅格数据模型表示,c为对应的矢量数据模型表示。下图分别表示的是点、线、面的矢量和栅格模型表示。
image.png
栅格图是一个规则的阵列,包含着一定数量的像元或者栅格;而矢量图是由一组描述点、线、面,以及它们的色彩、位置的数据,通过软件算法计算得到的图形。
常用的栅格图格式有:tif,png,jpeg/jpg等,处理软件如PS;
常用的矢量图格式有:shp、eps、dwg、dxf等,处理软件如AutoCAD、AI等。
ArcGIS可以同时处理栅格数据与矢量数据,常用的栅格数据格式为tif,常用的矢量数据格式为shapefile、coverage、TIN等。

GIS中常用的矢量数据格式

shapefile

shapefile 是一种用于存储地理要素的几何位置和属性信息的非拓扑简单格式。shapefile 中的地理要素可通过点、线或面(区域)来表示。shapefile 格式在应存储在同一项目工作空间且使用特定文件扩展名的三个或更多文件中定义地理配准要素的几何和属性
image.png

coverage

Coverage 是一种用于存储矢量数据的地理相关数据模型,它包含地理要素的空间(位置)数据和属性(描述性)数据。Coverage 使用一组要素类来表示地理要素。每个要素类存储一组点、线(弧)、面或注记(文本)。Coverage 可以具有拓扑,用于确定要素间的关系。
Coverage文件包括两个文件夹,一个是info文件夹,一个是以文件名命名的文件夹(文件夹中重要文件包括AAT.DBF、BND.DBF、PAT.DBF、TIC.DBF、PRJ和ARC等。其中,ARC是用于定义地物空间位置和关系的拓扑数据结构;PRJ是投影文件;TIC是一个控制点文件;BND是一个边界文件;PAT是一个多边形属性或点属性表;AAT是一个弧段属性。)
image.png

geojson

geojson是一种基于json的地理空间数据交换格式,它定义了几种类型JSON对象以及它们组合在一起的方法,以表示有关地理要素、属性和它们的空间范围的数据。geojson是非常常见的地图服务前后端传输格式。
image.png

topojson

topojson是 geojson 按拓扑学编码后的扩展形式,对拓扑进行编码。相比 geojson 直接使用 polygon、point 之类的几何体来表示图形的方法,topojson 中的每一个几何体都是通过将共享边(被称为arcs)整合后组成的。
image.png

GIS中矢量数据的数据层级

image.png
GIS中矢量数据可以分为地图层、数据层、要素层、几何层及属性层。
image.png
image.png
对于ArcGIS,当我们打开一个包含矢量数据的MXD文件,会看到数据框及图层。数据框将显示以特定顺序绘制的一系列图层。每个图层都会引用存储在地理数据库、coverage、shapefile 和栅格等中的数据集。每个图层对应着一个要素类。比如在GIS中直接打开CAD文件,可以看到GIS将标注、点、线、面、多面体等按类分为单独的图层。对于每个矢量图层来说,里面存储的要素类只能有一种,或是点或是线或是面。
image.png
打开图层中的属性表,会看到图层中各要素的shape、其他属性字段及属性值。shape即几何,对应着显示的矢量图像。

#伪代码
shp_datatset = ogr.Open(input_shape)
layer = shp_datatset.GetLayer()
feat = layer.GetFeature(0)
polygon_shp = feat.GetGeometryRef()
outring = polygon_shp.GetGeometryRef(0)
outring.GetPoints(0)

而在GDAL中,我们可以通过ogr读取矢量文件,调用封装的方法读取图层,接着调用方法可以读取要素,最后可以读取到多边形的外环及外环对应的点。

1、ArcGIS矢量空间分析

image.png
矢量数据的空间分析。矢量空间分析,主要包括缓冲区分析、叠加分析、网络分析及追踪分析。其中网络分析虽然也是利用矢量数据进行分析的,但其数据模型与缓冲区分析和叠加分析所使用的数据模型有所区别,在进行网络分析前需要构建网络数据集。以下主要介绍缓冲区分析和叠加分析。

缓冲区分析

缓冲区程序将遍历输入要素的每个折点并创建缓冲区偏移。通过这些偏移创建输出缓冲区要素。ArcGIS中缓冲区分析可以使用缓冲向导或缓冲区工具进行操作。在ArcGIS中,构建缓冲区有两种基本方法,欧式方法和测地线方法。

  • 如果输入要素位于投影坐标系中,则将创建欧氏缓冲区。
  • 如果输入要素位于地理坐标系中且指定的缓冲距离单位为线性单位(米、英尺等,而非诸如度之类的角度单位),则会创建测地线缓冲区。

欧氏缓冲区是更常见的缓冲区类型,特别适合于分析投影坐标系中要素周围的距离,这些距离侧重于相对较小的区域(如一个 UTM 带)。当输入要素处于分散状态(覆盖多个 UTM 带、大面积区域甚至整个地球),或
输入要素的空间参考(地图投影)为保留其他属性(如面积)使距离发生变形。则应始终考虑创建测地线缓冲区
具体可以参见官方文档说明:https://desktop.arcgis.com/zh-cn/arcmap/latest/tools/analysis-toolbox/how-buffer-analysis-works.htm
image.png

叠加分析

叠加分析包括擦除(Erase)、标识叠加(Identify)、图层相交(Intersect)、交集取反(Symmetrical Difference)、联合(Union)、更新修正(Update)。
image.png
image.png
其中可能比较不好理解的可能是标识叠加和更新修正,建议实际操作一下。我这里简单举例说明一下。
首先是标识叠加,顾名思义,可以理解为通过叠加另一要素对原要素进行标识。通常是用多边形要素来标识其他要素。比如我们用test1图层来标识test11,标识叠加后,test11中的先要素会被切分为两部分,相交部分,未相交部分。(ALL情况)test11属性会全部增加到线test1上,并有一个独特的标识属性(值为负1或1),该方法可以用来筛选在面上或线上的点要素。
image.png
而对于更新修正,我的理解是修正更新会将两者相交的部分要素的字段属性值修正为更新要素,更新要素无对应字段时,该字段修正为空。
image.png
通常我们使用用某一个多边形图层的部分图斑来修正该图层,比如用test1的部分更新test1,可以看到,直接将覆盖test1的对应属性的值。
image.png

3、实例练习

操作视频见:https://www.bilibili.com/video/BV1zP4y1278K
实例练习材料及本文PPT链接(exe为自解压文件):
https://www.aliyundrive.com/s/vt9dQUHMi7s 提取码: 9a5a

4、参考资料:

关于地理数据格式—ArcMap | 文档
GDAL中文文档
ArcGIS地理信息系统空间分析实验教程/汤国安,杨昕编著.—北京∶科学出版社,2006
ArcGIS地理信息系统空间分析实验教程/汤国安,杨昕编著.—2版.—北京∶科学出版社,2012
地理信息系统导论/(美)张康聪(Chang,K.T.)著;陈健飞,张筱林译. —5版.—北京∶科学出版社,2010
ArcGIS 地理信息系统分析与应用 / 晁怡,郑贵洲,杨乃编著. —北京:电子工业出版社,2018.6 高等学校教材