查看原文
其他

GIS基础之矢量数据,概念、编辑、转换、空间分析,一文讲透!

走天涯徐小洋 走天涯徐小洋地理数据科学 2022-07-17

GIS基础之矢量数据

去年的基础课主要是从图形角度出发,从角度,距离、面积方面给大家进行的讲解,这次我决定换个视角,从数据角度给大家讲讲GIS的基础。矢量和栅格是最常用的两类数据格式,本次先给大家介绍矢量数据。

1. 矢量数据基本概念

矢量数据结构表示地球表面的特定要素,并为这些要素分配属性。矢量由称为折点的离散几何位置(x、y 值)组成,这些位置定义了空间对象的形状。折点的组织决定了我们使用的矢量类型:点、线或多边形。

  • 点(Points):每个点是由单独的X,Y坐标定义的,在一个点矢量文件中可以包含多个点。点数据可以包含:采样点、独立树、测量点等等。
  • 线(Lines):线是一系列(至少2个)相连的折点或点的集合。道路、溪流都可以以线的形式表现。线包含一系列的线段或弧,每段线都是由折点的X,Y坐标所定义的。
  • 面(Polygons):面是由3个或以上的折点组成的连续封闭图形。建筑物、湖泊、海洋、国家等等都可以以面来表示。

2. GIS常用矢量数据格式

Esri Shapefile

文件类型

  • .SHP
  • .DBF
  • .SHX

描述

  • Shapefile是最常见的矢量数据格式,所有的商业和开源GIS软件都支持。无处不在的它已成为行业标准。Shapefile由三个必须的文件组成:
    • SHP是要素几何。
    • SHX是形状索引位置。
    • DBF是属性数据。
  • 下面的是可选文件,需要注意的是,一般情况下,PRJ为必须完整的,否则矢量数据的空间位置会发生错误:
    • PRJ是投影系统参数。
    • XML是关联的元数据。
    • SBN是用于优化查询的空间索引。
    • SBX优化了加载时间。
    • CPG说明了SHP文件的属性数据编码,如果中文显示乱码,一般需要加一个.cpg文件,使用文本文件编辑,写上UTF-8

Geographic JavaScript Object Notation (GeoJSON)

文件类型

  • .GEOJSON
  • .JSON

描述

  • GeoJSON格式主要用于基于Web的映射。GeoJSON以JavaScript对象符号(JSON)形式将坐标存储为文本。这包括矢量点,线和多边形以及表格信息。GeoJSON将对象存储在花括号{}中,并且通常语法标记更为简洁(与GML相比)。GeoJSON具有简单的语法,您可以在任何文本编辑器中进行修改。网络地图浏览器可以理解JavaScript,因此默认情况下,GeoJSON是一种常见的Web格式。但是JavaScript只理解二进制对象。幸运的是,JavaScript可以将JSON转换为二进制。
  • 可以使用QGIS打开和转换

Google Keyhole Markup Language (KML/KMZ)

文件类型

  • .KML
  • .KMZ

描述

  • KML 是Keyhole Markup Language的缩写. 这个数据格式是基于XML的,一般被Google Earth使用,KML是由Keyhole公司开发的,后来被谷歌收购。KMZ (KML-Zipped) 代替了KML,是KML的压缩版本,KML/KMZ在2008年成为地理空间联盟的国际标准。经纬度由十进制度的 World Geodetic System of 1984 (WGS84)坐标系统所定义,高程为WGS84 EGM96高程系。
  • QGIS可以直接打开和转换
  • ArcGIS需要借助ArcToolbox中的工具转换为图层

GPS eXchange Format (GPX)

文件类型

  • . GPX

描述

  • GPX是一种XML格式,用于描述从GPS接收器捕获的航路点,航迹和路线。由于GPX是一种交换格式,因此您可以根据其描述属性将GPS数据从一个程序公开传输到另一个程序。
  • GPX的最低要求是纬度和经度坐标。此外,GPX文件还可以将位置属性(包括时间,海拔和大地水准面高度)存储为标签。

ArcInfo Coverage

  • ArcInfo Coverages 是一组包含了points, arcs, polygons or annotation的文件夹。Tics是控制点,用于帮助定义Coverage的边界。
  • 属性存储在ADF或INFOb表中。每个功能部件都有一个唯一的编号。这些要素编号是将属性数据与每个空间要素链接的一种方式。
  • Coverages 是软盘时代的标准格式。但是随着时间的流逝,这种GIS格式已经过时,并且在GIS软件中几乎不受支持。

MapGIS

文件类型

  • .MPJ
  • .WT
  • .WL
  • .WP
  • .WN
  • .WB

描述

MapGIS是中地数码开发的国产GIS软件,使用的数据格式和ArcGIS/QGIS等均不兼容,一般用于地质行业,在这里仅把后缀名列出,大家遇到这种格式可以去找MAPGIS打开

3. 矢量数据创建、转换、编辑

以ArcGIS平台为例,介绍一下矢量数据的创建、转换和编辑。

矢量数据创建

在ArcGIS中矢量数据的处理,建议在文件地理数据库(File Geodatabase)中进行。地理数据库可以存储点、线、面、多面体等,同时支持拓扑,可以对绘制完成的矢量数据进行拓扑检查。

  • 文件地理数据库(File Geodatabase)
    • 要素类(Feature Class):点、线、面
    • 拓扑(Topology)
    • 要素数据集(Feature Dataset)
  • 具体操作请看这篇推文:ArcGIS图形编辑命令

矢量数据转换

CAD转GIS

在测绘、建筑、规划等方面,CAD和GIS的转换工作非常常用。简单的CAD转换可以直接通过ArcGIS加载数据然后到处为地理数据库要素类实现,地形图的转换则另有复杂的技术流程。

GIS中点、线、面的转换工具

ArcGIS ArcToolbox中提供了大量的点、线、面之间转换工具,下面介绍一些常用的,这里给出的是工具名,可以通过搜索找到工具。

搜索工具名查到工具
工具自带帮助,可以参考
    • Make XY Event Layer,可以将坐标转为点图层,注意的是,这里的图层是临时的,需要通过导出要素来保存。
    • Feature To Point,点线面都可以作为输入,输出为点
    • Feature Vertices To Points,节点转点,线、面都是由一系列节点组成的,将这些节点转为点要素
绿色的点即为节点(Vertices)Feature Vertices To Points,节点转点,将节点转为点要素矢量
  • 线
    • Feature To Line,要素转线,可以很方便的将面状矢量转为线
    • Points To Line,点转线
    • XY To Line,可以将带起终点XY坐标的表转为线,常用于绘制OD线(参考文献4)
    • Feature To Polygon,要素转面,多用于线转面的情况
    • Feature Envelope To Polygon,要素包络矩形转面,绘制一个外接矩形

其他矢量格式转换

GPX、KML、GeoJSON也是比较常见的矢量格式,对于这些文件转换,可以使用ArcGIS Conversion Tools工具箱,不过我更推荐使用QGIS,可以直接打开,另存为,更方便。

ArcGIS转换工具箱
QGIS可以直接打开KML文件,详阅参考文献5

4. 矢量数据常用空间分析方法

在ArcGIS中,矢量数据的空间分析工具主要集中在Analysis Tools工具箱中。有Extract提取分析、Overlay叠置分析、Proximity临域分析和Statistics统计分析。

  • Extract
    • Clip裁剪,这个非常常用,可以将大块的矢量裁剪为小块的,要注意的是,这个仅适用于矢量数据裁剪矢量
    • Split分割,可以把一块矢量根据另外的多块组成的矢量分割,或者根据字段分割为若干小块矢量

<<< 左右滑动见更多 >>>

  • Overlay
    • Erase擦除,从大的面上面去掉一个小的,保留余下的
    • Intersect,相交,可以将两个矢量的属性相结合,矢量范围取交集
    • Spatial Join,空间挂接,可以提取两个矢量之间的信息,比如,居民地面中没有地名,使用地名点进行空间挂接,可以将地名点的地名信息给居民地面赋值。(参考文献6)

<<< 左右滑动见更多 >>>

  • Proximity
    • Buffer缓冲区,这个也是很常用的方法,在研究污染物扩散,影响范围的时候很常用(参考文献7)
    • Near近邻分析,计算两点、线、面之间的最短距离(参考文献8)

5. 矢量数据属性表

GIS作为一种信息系统,属性的编辑和管理也是必不可少的。详情请阅读:

几何属性添加和管理

  • 有居民地点,我们想知道坐标,怎么办?这个时候可以使用Add XY Coordinates工具,添加XY坐标
  • 长度、四至、中点、重心、面积我都想要!怎么办?Add Geometry Attributes
各种几何属性,点线面矢量都能用!
  • 周长(Shape_Length)、面积(Shape_Area)在GDB面要素中都是自带的属性,推荐使用GDB,无需计算几何即可得到面要素的周长和面积信息。

6. 矢量数据质量检查

前面说了一大堆矢量数据的创建、编辑、管理、分析相关的内容,不论是做科研还是工业生产,数据质量很重要。矢量数据质量检查又是一个很重要的点,数据只有符合质量要求,才能被使用。两点建议:

  1. 熟悉矢量数据质量检查的总体流程和方法,详阅:一文搞懂如何进行矢量数据质量检查
  2. 不断学习相关国标,深入对标准规范的理解和执行。从自然资源标准化信息服务平台中可以查阅相关国家标准,多学习,多了解。(网址见参考文献12)

7. 思维导图

参考文献

  1. https://datacarpentry.org/organization-geospatial/02-intro-vector-data/
  2. 史上最全GIS格式总结,看完这个应该没啥不认识的了
  3. ArcGIS图形编辑命令
  4. GIS计算上市公司注册地址和办公地址变化,绘制OD线
  5. 推荐一个野外考察神器!+QGIS野外考察路径制图
  6. 遥感解译精度评定,混淆矩阵与Kappa系数
  7. GIS如何分析台风影响范围和受灾人数
  8. GIS点到面的距离计算
  9. GIS基础教程之属性表的处理(2021-01-23更新)
  10. GIS基础之GIS属性表操作
  11. 一文搞懂如何进行矢量数据质量检查
  12. http://www.nrsis.org.cn/portal/

阅读原文参加课程学习:

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存