Skip to content

40_使用 Openrouteservice 进行服务区分析(QGIS3)

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

使用 Openrouteservice 进行服务区分析(QGIS3)

服务区分析在评估地点可达性时非常有用。给定消防站、医院、公共交通站点等位置,你可以使用此类分析来确定从这些地点出发,在一定行驶距离或时间内可以覆盖哪些区域。直到最近,使用开源工具和数据进行此类分析还很困难。但现在,我们可以使用 OpenStreetMap 的全球街道网络以及 Openrouteservice 等免费网络服务,利用 OSM 数据执行复杂的路径规划任务。在本教程中,我们将使用 ORS Tools 插件在 QGIS 中执行服务区分析。

任务概述

我们将使用印度科钦的地铁站数据,来确定步行 15 分钟内可到达的区域。

你将学到的其他技能

  • 如何在 QGIS 中加载通用交通数据规范公共交通数据。
  • 如何使用点集转路径工具将连续的点数据转换为线迹。

获取数据

科钦地铁有限公司通用交通数据规范静态格式提供科钦地铁项目的开放数据。请访问开放数据页面申请下载数据。

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

KMRL-Open-Data.zip

数据来源 [KMRL]

设置

Openrouteservice API 提供基于 OpenStreetMap 免费地理数据的路径规划算法。这是一个免费的基于网络的服务,可以通过 QGIS 插件访问。虽然该服务是免费的,但它需要你注册并获取一个 API 密钥。API 密钥用于防止滥用并限制使用。

  1. 访问 Openrouteservice 注册页面创建一个账户。账户激活后,访问你的仪表板并申请一个令牌。选择 免费 作为令牌类型,并输入 ORS Tools QGIS 作为令牌名称。点击 CREATE TOKEN。

../../_images/setup12.png

  1. 创建成功后,复制 密钥 下显示的长字符串。这是与你账户关联的唯一标识符,将用于授权使用此服务。

../../_images/setup21.png

  1. 打开 QGIS。转到 插件 ‣ 管理和安装插件。搜索 ORS Tools 插件并安装。点击 关闭。

../../_images/setup3.png

  1. 在主 QGIS 窗口中,转到 网络 ‣ ORS Tools ‣ 提供商设置。

../../_images/setup4.png

  1. 展开 openrouteservice 部分,将步骤 2 中复制的 key 粘贴到 API 密钥文本框中。点击 确定。

../../_images/setup5.png

操作流程

  1. 将下载的 KMRL-Open-Data.zip 文件解压到电脑的一个文件夹中。你会注意到解压后的目录包含许多文本文件。每个文件都包含交通系统不同方面的数据。文件的格式及其用途在 GTFS 参考中有描述。在所有文件中,有 2 个文件包含地理空间数据,是我们所关心的。文件 shapes.txt 包含描述车辆行驶物理路径的点,文件 stops.txt 包含每个公交站点的位置。这两个都是可以导入 QGIS 的 CSV 文件。点击 打开数据源管理器 按钮。

../../_images/1156.png

  1. 在数据源管理器对话框中,切换到分隔文本选项卡。点击 文件名称 旁边的 … 按钮,浏览到 shapes.txt 文件。选择 CSV(逗号分隔值) 作为文件格式。X 字段 和 Y 字段 应会自动填充。点击 添加。

../../_images/2130.png

  1. 同样,再次点击 … 按钮,选择 stops.txt 文件。点击 添加。点击 关闭。

../../_images/368.png

  1. 你将看到两个新图层 stopsshapes 被添加到图层面板中。让我们将 shapes 点图层转换为代表地铁线路路径的线图层。转到 处理 ‣ 工具箱。

../../_images/439.png

  1. 搜索并找到 矢量创建 ‣ 点集转路径 工具。双击启动它。

../../_images/535.png

  1. 在点集转路径对话框中,选择 shapes 作为输入点图层。根据 GTFS 规范,每条独立的线路都有一个唯一的 shape_id,因此从下拉菜单中选择它作为路径分组表达式。我们还可以通过选择 shape_pt_sequence 作为顺序表达式来指定构成线条的点的顺序。点击 运行。

../../_images/634.png

  1. 一个新的图层 Paths 将被添加到图层面板中。你可以关闭 shapes 图层的可见性来查看新添加的线图层。

../../_images/734.png

  1. 现在我们已添加地铁站点和线路数据,可以开始网络分析了。在 处理工具箱 中,搜索并找到 ORS Tools ‣ 等时线 ‣ 从图层创建等时线 工具。双击启动它。

../../_images/833.png

  1. 选择 openrouteservice 作为提供商。我们将计算从每个地铁站点出发 15 分钟步行距离的多边形。选择 stops 作为输入点图层。选择 stop_id 作为输入图层 ID 字段。从出行模式下拉菜单中,选择 foot-walking。由于我们感兴趣的是基于时间的区域,选择 time 作为维度。最后输入 15 分钟作为范围。点击 运行。

../../_images/934.png

注意

请注意,Openrouteservice API 对等时线的限制是每分钟 20 个请求。因此,如果你的图层包含超过 20 个点,你可能会看到提示超出速率限制的错误。你可以让工具继续运行,它将持续以每分钟 20 个点的速度处理。

  1. 工具运行完成后,你将在图层面板中看到一个名为 Isochrones 的新图层。每个点都有一个关联的多边形,代表步行 15 分钟内可到达的区域。为了在生成这些数据的背景下查看它们,我们可以添加 OpenStreetMap 底图。向下滚动浏览器面板,找到 XYZ Tiles ‣ OpenStreetMap。将其拖放到画布上。

../../_images/1040.png

  1. 一个新的图层 OpenStreetMap 将被添加到图层面板中。将其向下拖动以更改图层顺序,并将其保持在图层堆栈的底部。缩放和平移地图以查看结果是否与道路网络匹配。你会看到多边形并非圆形,因为行程时间是沿着道路计算的,所以没有道路的区域覆盖的面积较小。

../../_images/1157.png

  1. 为了计算服务区,我们需要完成最后一项任务。我们可以合并单个等时线多边形,形成一个代表可达区域的单一多边形。搜索并找到 矢量几何 ‣ 融合。

../../_images/1243.png

  1. 选择 Isochrones 作为输入图层,然后点击 运行。

../../_images/1341.png

  1. 处理完成后,一个名为 Dissolved 的新图层将被添加到图层面板中。这个多边形代表了从地铁系统出发,步行 15 分钟内可到达的完整区域。

../../_images/1437.png

注意

这是一个简单的示例,展示了如何在 QGIS 中对公共交通项目进行服务区分析。更全面的地铁系统服务区分析将包括其他交通方式。我们可以纳入接驳巴士、附近的公交站点以及服务于这些公交站点的线路来扩展分析。我们还可以包括汽车和出租车等其他出行方式。


如果你想提供反馈或分享学习本教程的经验,请在下方评论。(需要 GitHub 账户)