Skip to content

18_最近邻分析 QGIS3

原文链接: https://www.qgistutorials.com/en/docs/3/nearest_neighbor_analysis.html

最近邻分析 (QGIS3)

GIS 在分析要素之间的空间关系方面非常有用。其中一种分析是找出距离给定要素最近的其他要素。在 QGIS 中有多种方法可以进行此分析。您可以使用 按最近邻连接属性 进行空间连接,或者使用 处理工具箱 中的 距离矩阵 工具获取与另一图层所有要素的距离。在本教程中,我们将探索 处理工具箱 中一个名为 距离最近中心点 的工具,该工具不仅可以找到到最近要素的距离,还能用一条线将其连接起来以可视化结果。

任务概述

给定 1900 年至 2000 年间所有已知地震的位置,找出每次地震发生地最近的人口聚居地。

获取数据

  1. 对于本教程,我们将从 NOAA 国家地球物理数据中心下载一个 1900-2000 年间的地震数据集,该中心提供了一个自公元前 2150 年以来所有重大地震的优秀数据集。访问 NOAA NCEI 门户,输入最小年份为 1900,最大年份为 2000。这将返回 NOAA 在这些年间记录的所有地震事件。如需其他特定结果,您可以使用不同的参数进行筛选。点击搜索。

../../_images/data011.png

  1. 结果,我们得到了 2585 条地震事件记录。点击下载 TSV 图标。

../../_images/data021.png

Natural Earth 有一个很好的 人口聚居地 数据集。下载 简单(列较少)数据集

为方便起见,您可以直接通过以下链接下载两个数据集的副本:

earthquakes_2021_11_25_14_31_59_+0530.tsv

ne_10m_populated_places_simple.zip

数据来源:[NCEI] [NATURALEARTH]

操作流程

  1. 在浏览器面板中找到下载的 ne_10m_populated_places_simple.zip 文件并展开它。将 ne_10m_populated_places_simple.shp 文件拖到画布上。

../../_images/017.png

  1. 您将看到一个新图层 ne_10m_populated_places_simple 被加载到图层面板中。该图层包含代表人口聚居地的点。现在我们将加载地震图层。该图层以 制表符分隔值 (Tab Serepated Values, TSV) 文本文件形式提供。要加载此文件,请点击数据源工具栏上的打开数据源管理器按钮。您也可以使用 Ctrl + L 键盘快捷键。

../../_images/027.png

  1. 在数据源管理器对话框中,选择分隔文本文件。

../../_images/037.png

  1. 点击文件名旁边的 … 按钮,浏览到已下载的 earthquakes-2021-11-25_13-39-30_+0530.tsv 文件。根据操作系统不同,您可能在下载目录中看不到该文件。如果出现这种情况,请在“选择要打开的分隔文本文件”对话框中切换到所有文件 (*; .)。打开后,在文件格式部分选择自定义分隔符,并勾选 Tab。在几何定义部分,选择点坐标。默认情况下,X 字段和 Y 字段值将根据输入文件中的相应字段自动填充。在我们的例子中,它们是 LongitudeLatitude。您可以保持几何 CRS 为默认的 EPSG:4326 - WGS 84 CRS。如果您的文件包含其他 CRS 中的坐标,您可以在此处选择相应的 CRS。点击添加,然后关闭。

../../_images/047.png

  1. 放大并浏览两个数据集。每个红点代表一次地震事件的位置,每个绿点代表一个人口聚居地的位置。我们的目标是为地震图层中的每个点找出人口聚居地层中最近的点。让我们检查地震图层的属性表。选择该图层,然后点击工具栏上的打开属性表图标。

../../_images/057.png

  1. 虽然有 2586 个要素,但数据中包含一些没有纬度或经度信息的条目。我们必须在继续之前删除这些条目。关闭属性表。

../../_images/067.png

  1. 转到 处理 ‣ 工具箱 ‣ 矢量几何 ‣ 移除空几何 工具。双击打开它。

../../_images/077.png

  1. 在移除空几何对话框中,选择 earthquakes-2021-11-25_13-39-30_+0530 作为输入图层,并勾选同时移除空几何体复选框。点击运行。处理完成后,点击关闭。

../../_images/086.png

  1. 一个新图层 Non null geometries 将被添加到图层面板中。为了分析,我们将使用此图层而不是原始图层。在图层面板中取消勾选 earthquakes-2021-11-25_13-39-30_+0530 图层以隐藏它。选择 Non null geometries 图层,然后点击属性工具栏上的打开属性表按钮。

../../_images/096.png

  1. 您将看到总要素数减少,因为所有经纬度值为空的记录都已被移除。关闭属性表。

../../_images/1029.png

  1. 现在是时候执行最近邻分析了。搜索并定位到 处理 ‣ 工具箱 ‣ 矢量分析 ‣ 距离到最近中心点(线到中心点) 工具。双击启动它。

../../_images/1132.png

注意

我们也可以添加点图层作为输出,为此请使用 距离到最近中心点(点) 工具。

  1. 在距离到最近中心点(线到中心点)对话框中,选择 Non null geometries 作为源点图层。选择 ne_10m_populated_places_simple 作为目标中心点图层。选择 name 作为中心点图层名称属性。该工具还将计算人口聚居地与最近地震之间的直线距离。设置 Kilometers 为测量单位。点击中心点距离旁边的 ...,并点击保存到文件… 将文件保存为 earthquakes_with_nearest_city.gpkg。点击运行。处理完成后,点击关闭。

../../_images/1230.png

  1. 回到 QGIS 主窗口,您将看到图层面板中加载了一个名为 earthquakes_with_nearest_city 的新线图层。该图层包含将每个地震点连接到最近人口聚居地的线要素。选择 earthquakes_with_nearest_city 图层,然后点击工具栏上的打开属性表图标。

../../_images/1328.png

  1. 向右滚动到最后几列,您将看到两个新属性 HubNameHubDist 被添加到了原始地震要素上。这就是来自人口聚居地层的最远邻居的名称和距离。

../../_images/1426.png


如果您想提供反馈或分享您对本教程的经验,请在下方留言。(需要 GitHub 账户)