QGIS 是一个免费和开源的 地理信息系统 (GIS),它具有可扩展性,可与其他 GIS 互操作,并被大量(包括我)拥有地理数据需要分析和可视化的人使用。它是一个强大的平台,拥有大量功能,初次接触可能会让人望而生畏。如果您有兴趣开始地理数据分析和可视化,以下基本技巧将帮助您入门 QGIS。
探索空间连接问题
关系数据库用户熟悉表连接的概念,这是一种将一个表中的数据与另一个表中的数据关联起来的方法。例如,假设我有一个列出员工的表(“Employee”)和另一个列出公司分支机构的表(“Office”)。我可以向 Employee 表添加一个值,指示员工工作所在的办公室

图 1:相关表
Employee 表中的字段 OfficeId “指向” Office 表中的正确行。在数据库世界中,OfficeId 被称为 Office 表中的主键,Employee 表中的外键。
由于办公室位于某个位置,因此这里发生了一件空间的事情——我知道办公室的地址,所以我可以在 OpenStreetMap 上找到它,例如。如果我没有 OfficeId 字段,而是在 Employee 和 Office 表上都有一个指定办公室位置的字段,该怎么办。因此,我的关系数据库将扩展一个运算符,用于验证两个位置是否等效;例如,这两个点之间的笛卡尔距离是否小于某个小数字。这种空间关系问题出现在各种有趣的问题中。
例如……
我正在与智利的同事合作一个写作项目,探讨与当地水电开发相关的问题。我们希望包含在该项目中的一项内容是一张地图,显示现有水力发电设施的位置。除了这张地图,我们还希望按流域总结与这些设施相关的信息。流域是指排入河流系统并最终流入大海(或可能被陆地封闭的其他水体)的陆地区域。流域对于各种土地管理原因非常重要,因为它们倾向于定义生态系统、气候带,甚至传统实践区域。下图使用 QGIS 制作,显示了两个流域的部分区域(以粗蓝线划定的区域,其名称 - Río Itata 和 Río BíoBío - 以蓝色斜体粗体显示)和发电设施(以蓝色菱形符号表示)

图 2:感兴趣区域的一部分,显示流域和发电站。地图数据 © OpenStreetMap 贡献者。
与我的关系示例显示两个相关数据表的方式相同,此地图显示两个空间数据集:流域和水力发电站。流域表示为具有空间范围(或面积)和位置的要素;发电站表示为点,仅具有位置。这两个数据集都包含有助于识别数据集中定义的每个要素的属性;例如,流域的名称或发电站产生的功率量。
假设此摘要任务需要确定每个流域产生的电量。一种方法是遍历发电站数据集,并为每个记录分配一个值,该值指向包含该点的流域。我可以手动执行此任务,因为我可以观察到哪些点位于哪些流域内。这非常费力。但是,鉴于这两个数据集已经定义了流域和点的空间性质,并且鉴于 QGIS 可以读取此信息并生成地图,QGIS 可以为我找出这种关系吗?
安装 QGIS
为了使用 QGIS,必须先安装它。各种发行版存储库中提供的版本可能非常旧,以至于由于插件依赖项与发行版提供的库(例如,Qt 库)之间的不兼容性而无法加载各种有用的插件。
通常有比存储库中的版本更新的替代方案。例如,Fedora 和 Ubuntu 都提供 GIS 项目,其中包含各种有用的空间分析工具。另一种选择是从 QGIS 网站 下载(在我写作时,新的长期发布版本 3.4.4 和之前的长期发布版本 2.18.28 均可用)。根据我的经验,最好选择新的长期发布版本,以避免与存储库中较旧版本类似的问题。但是,目前可用于 QGIS 的大部分在线内容都引用了较旧的 QGIS 2 版本,可能需要一些研究才能确定如何在 QGIS 3 中完成操作。
我从 QGIS 网站下载了最新的长期发布版本并启动了它

图 3:QGIS 在我的桌面上运行
获取数据
我正在使用来自智利国家资产部 (Ministerio de Bienes Nacionales) IDEChile 网站上的公开流域数据,该页面为 Cuencas Banco Nacional de Aguas(国家水银行流域)。要获取数据,我单击标记为 Descargar 的按钮以下载数据作为 .zip 文件,并将文件 (Cuencas_BNA.zip) 解压缩到文件夹中。
水力发电厂数据可从智利能源部 (Ministerio de Energía) IDEEnergía 网站获取,从这个 网络地图页面 开始。在该页面左侧的 Overlays 字样下,我单击“Centrales Generación Eléctrica”链接以展开下面的菜单,该菜单提供更多链接,包括“Hidroeléctricas”。我右键单击该链接以调出包含 Export to SHP 的子菜单

图 4:能源部 IDE Energía 网站显示下载水力发电厂数据的子菜单
当我单击该链接时,它会打开一个表单

图 5:下载数据收集表单
要激活下载,我需要填写表单的顶部,包括我的名字 (Nombre)、我的姓氏 (Apellidos)、我的电子邮件地址 (Mail) 以及我的下载原因 (Motivo);我选择了“Investigación”。当我单击表单右下角的 Descargar 按钮时,数据将以 .zip 文件 (Hidroeléctricas.zip) 的形式到达,我将其解压缩到文件夹中。
准备进行空间连接
我的分析的第一步是使用顶部菜单选择 图层 > 添加图层 > 添加矢量图层,将图层加载到我的 图层 窗口(图 3 左下方),这将打开数据源管理器

图 6:添加矢量图层数据浏览器
在我开始查找数据之前,值得解释一下为什么我选择矢量图层而不是其他选项之一。在 GIS 术语中,矢量数据是由点、线或多边形(以及其他一些专门的数据类型)表示的空间实体。还存在其他类型的空间数据;最值得注意的是栅格数据,它类似于图像,但包含其他信息,例如栅格在地球表面上的位置。这篇文章 对此术语进行了简单的介绍。
我的水力发电厂数据被建模为具有属性的点(例如发电量、电厂名称等)。它以 shapefile 格式 存储,shapefile 格式是当今使用的大量矢量格式之一。请注意,上面的数据源管理器默认为文件格式(shapefile 的正确格式)。我的编码设置为 Latin1,根据我的经验,这是 shapefile 最常见的字符编码。单击矢量数据集旁边的 … 按钮会打开一个文件浏览器,我可以使用它来查找我的 shapefile。请注意,shapefile 实际上是具有不同三字母扩展名的文件组:.shp 用于 shapefile 几何数据,.dbf 用于属性,依此类推。要添加我的图层,我选择 XXXX.shp 文件;QGIS 知道将其他文件与此关联以创建完整图层。最后,一旦在数据源管理器中识别出源,我就可以单击右下角的添加按钮;我的图层已添加到 图层 面板,并且这些点会出现在空间视图面板上

图 7:QGIS 屏幕显示已添加的电厂图层和空间视图面板中的电厂位置
同样,我可以添加流域,它们是多边形

图 8:QGIS 屏幕显示覆盖空间视图面板中电厂数据的流域图层
不幸的是,流域多边形(上图中的绿色)覆盖了电厂位置,使得地图非常难看。QGIS 按后进先出的顺序渲染图层,因此要将流域放在电厂位置下方,我可以向下拖动流域图层。我也可以右键单击每个图层,这将为我提供许多选项来更改图层屏幕中显示的名称、更改属性(例如,符号化、标签)、打开属性表等等。
我想要一些更赏心悦目的东西,所以我
-
添加 OpenStreetMap 图层(浏览器窗口中的 右键单击 > OpenStreetMap);
-
重新排列图层,使电厂位于顶部,OpenStreetMap 位于底部(拖动图层以重新排列);
-
更改图层上显示的名称(右键单击 > 重命名);
-
更改符号系统,使流域多边形透明,带有粗蓝线,电厂为蓝色菱形(右键单击 > 属性 > 符号系统);
-
以蓝色斜体文本标记流域(右键单击 > 属性 > 标签);
-
稍微放大(使用工具栏上的缩放工具)。
这是结果

图 9:清理后的符号系统和带有标签的流域
好的,既然我可以忍受看这张地图了,我将继续进行计算。
进行空间连接
要执行空间连接,请使用顶部菜单的 矢量 > 数据管理工具 > 按位置连接属性,这将调出以下对话框(我在提供的字段中填写了我想要的值)

图 10:空间连接对话框
我选择了电厂作为输入图层,流域作为 连接图层,以便将流域信息放到电厂记录上。通过选择 intersects 作为 几何谓词,我计算每个点与其相交的多边形,或者,由于我们谈论的是点和多边形,即每个点位于其中的多边形。我为连接的属性使用“ws”前缀,并指定一个生成的输出图层(在本例中为 shapefile)

图 11:空间连接完成
在关闭对话框后,我可以右键单击图层并选择 打开属性表 来查看 已连接图层 的属性,我在其中可以看到连接的属性

图 12:连接的属性流域代码 (wsCOD_CUEN)、名称 (wsNOM_CUEN)、面积 (wsArea_km2)
最后,按流域汇总水力发电量怎么样?如果我使用像 LibreOffice Calc 这样的电子表格程序,我将使用数据透视表来完成此任务;当然,这是可能的——我可以打开我的 已连接图层 的 .dbf 文件。

图 13:计算分组总计:按类别统计
但是 QGIS 有很多分析工具。如果我使用顶部菜单的 处理 项目打开 处理工具箱 并搜索“group”,我可以在 矢量分析 中看到工具 按类别统计

图 14:计算分组总计:按类别统计
如果我双击该工具,我会看到

图 15:设置按类别统计
我选择了“POTENCIA”字段(即,兆瓦水力发电潜力)来计算统计数据。我已将字段“wsNOM_CUEN”定义为包含我要汇总的类别。单击类别选择器上的 确定,然后单击 运行 会创建一个新的属性表图层,按类别统计,我可以在其上右键单击并选择 打开属性表

图 16:按类别统计
例如,我可以看到 Bueno 河流域 (“Río Bueno”) 开发的水力发电潜力总和为 185.516 兆瓦。
就是这样。回顾一下,我们:学习了如何安装 QGIS;了解了一些关于矢量地理空间数据和此类数据上的几何运算的知识;创建了空间连接;并使用类似于数据透视表的东西分析了空间连接的结果。
5 条评论