18_最近邻分析 QGIS3
原文链接: https://www.qgistutorials.com/en/docs/3/nearest_neighbor_analysis.html
最近邻分析 (QGIS3)¶
GIS 在分析要素之间的空间关系方面非常有用。其中一种分析是找出距离给定要素最近的其他要素。在 QGIS 中有多种方法可以进行此分析。您可以使用 按最近邻连接属性 进行空间连接,或者使用 处理工具箱 中的 距离矩阵 工具获取与另一图层所有要素的距离。在本教程中,我们将探索 处理工具箱 中一个名为 距离最近中心点 的工具,该工具不仅可以找到到最近要素的距离,还能用一条线将其连接起来以可视化结果。
任务概述¶
给定 1900 年至 2000 年间所有已知地震的位置,找出每次地震发生地最近的人口聚居地。
获取数据¶
- 对于本教程,我们将从 NOAA 国家地球物理数据中心下载一个 1900-2000 年间的地震数据集,该中心提供了一个自公元前 2150 年以来所有重大地震的优秀数据集。访问 NOAA NCEI 门户,输入最小年份为
1900,最大年份为2000。这将返回 NOAA 在这些年间记录的所有地震事件。如需其他特定结果,您可以使用不同的参数进行筛选。点击搜索。
- 结果,我们得到了 2585 条地震事件记录。点击下载 TSV 图标。
Natural Earth 有一个很好的 人口聚居地 数据集。下载 简单(列较少)数据集。
为方便起见,您可以直接通过以下链接下载两个数据集的副本:
earthquakes_2021_11_25_14_31_59_+0530.tsv
ne_10m_populated_places_simple.zip
数据来源:[NCEI] [NATURALEARTH]
操作流程¶
- 在浏览器面板中找到下载的
ne_10m_populated_places_simple.zip文件并展开它。将ne_10m_populated_places_simple.shp文件拖到画布上。
- 您将看到一个新图层
ne_10m_populated_places_simple被加载到图层面板中。该图层包含代表人口聚居地的点。现在我们将加载地震图层。该图层以 制表符分隔值 (Tab Serepated Values, TSV) 文本文件形式提供。要加载此文件,请点击数据源工具栏上的打开数据源管理器按钮。您也可以使用Ctrl+L键盘快捷键。
- 在数据源管理器对话框中,选择分隔文本文件。
- 点击文件名旁边的 … 按钮,浏览到已下载的
earthquakes-2021-11-25_13-39-30_+0530.tsv文件。根据操作系统不同,您可能在下载目录中看不到该文件。如果出现这种情况,请在“选择要打开的分隔文本文件”对话框中切换到所有文件 (*; .)。打开后,在文件格式部分选择自定义分隔符,并勾选Tab。在几何定义部分,选择点坐标。默认情况下,X 字段和 Y 字段值将根据输入文件中的相应字段自动填充。在我们的例子中,它们是Longitude和Latitude。您可以保持几何 CRS 为默认的EPSG:4326 - WGS 84CRS。如果您的文件包含其他 CRS 中的坐标,您可以在此处选择相应的 CRS。点击添加,然后关闭。
- 放大并浏览两个数据集。每个红点代表一次地震事件的位置,每个绿点代表一个人口聚居地的位置。我们的目标是为地震图层中的每个点找出人口聚居地层中最近的点。让我们检查地震图层的属性表。选择该图层,然后点击工具栏上的打开属性表图标。
- 虽然有
2586个要素,但数据中包含一些没有纬度或经度信息的条目。我们必须在继续之前删除这些条目。关闭属性表。
- 转到 处理 ‣ 工具箱 ‣ 矢量几何 ‣ 移除空几何 工具。双击打开它。
- 在移除空几何对话框中,选择
earthquakes-2021-11-25_13-39-30_+0530作为输入图层,并勾选同时移除空几何体复选框。点击运行。处理完成后,点击关闭。
- 一个新图层
Non null geometries将被添加到图层面板中。为了分析,我们将使用此图层而不是原始图层。在图层面板中取消勾选earthquakes-2021-11-25_13-39-30_+0530图层以隐藏它。选择Non null geometries图层,然后点击属性工具栏上的打开属性表按钮。
- 您将看到总要素数减少,因为所有经纬度值为空的记录都已被移除。关闭属性表。
- 现在是时候执行最近邻分析了。搜索并定位到 处理 ‣ 工具箱 ‣ 矢量分析 ‣ 距离到最近中心点(线到中心点) 工具。双击启动它。
注意
我们也可以添加点图层作为输出,为此请使用 距离到最近中心点(点) 工具。
- 在距离到最近中心点(线到中心点)对话框中,选择
Non null geometries作为源点图层。选择ne_10m_populated_places_simple作为目标中心点图层。选择name作为中心点图层名称属性。该工具还将计算人口聚居地与最近地震之间的直线距离。设置Kilometers为测量单位。点击中心点距离旁边的...,并点击保存到文件… 将文件保存为earthquakes_with_nearest_city.gpkg。点击运行。处理完成后,点击关闭。
- 回到 QGIS 主窗口,您将看到图层面板中加载了一个名为
earthquakes_with_nearest_city的新线图层。该图层包含将每个地震点连接到最近人口聚居地的线要素。选择earthquakes_with_nearest_city图层,然后点击工具栏上的打开属性表图标。
- 向右滚动到最后几列,您将看到两个新属性 HubName 和 HubDist 被添加到了原始地震要素上。这就是来自人口聚居地层的最远邻居的名称和距离。
如果您想提供反馈或分享您对本教程的经验,请在下方留言。(需要 GitHub 账户)















