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

服务区域分析对于评估位置的可访问性很有用。给定消防站,医院,公共交通站等的位置,您可以使用此类分析来确定可以通过行进距离或花费的时间从这些位置服务的区域。直到最近,使用开源工具和数据进行此类分析还是很困难。但是现在,我们可以使用OpenStreetMap(OSM) 和免费的Web服务例如Openrouteservice(ORS)访问全球街道网络,这些服务可以使用OpenStreetMap(OSM) 数据执行复杂的路由任务。在本教程中,我们将使用 ORS工具插件 在QGIS中执行服务区域分析。

任务概述

我们将使用印度高知的地铁站数据来确定步行距离在15分钟内的区域。

您将会学习的其他技能

  • 如何在QGIS中加载通用运输提要规范(GTFS)的运输提要数据。

  • 如何使用 Points to Path 工具将顺序点数据转换为线迹。

获取数据

Kochi Metro Rail Limited (KMRL) 提供了高知地铁项目的开放数据在 Global Transit Feed Specification (GTFS-static) 格式中。通过访问 Open Data 页面请求下载数据。

为了方便起见,您可以直接从下面的链接下载数据集的副本:

KMRL-Open-Data.zip

数据源[KMRL] _

设置

Openrouteservice API 提供了适用于来自OpenStreetMap的免费地理数据的路由算法。它是一项基于Web的免费服务,可以通过QGIS插件进行访问。该服务是免费的,但它要求您注册并获取API密钥。API密钥用于防止滥用并强制限制使用。

  1. 访问 Openrouteservice Sign Up 页面并创建一个帐户。激活帐户后,访问您的 Dashboard 并请求令牌。选择 Free 作为 Token type ,并输入 ORS Tools QGIS 作为 Token name 。点击 CREATE TOKEN

../../_images/setup13.png
  1. 创建完成后,复制显示在 Key 下的长字符串。这是与您的帐户关联的唯一标识符,将用于授权使用此服务。

../../_images/setup21.png
  1. 打开QGIS。请访问 Plugins ‣ Manage and Install plugins 。搜索 ORS Tools 插件并安装。点击 Close

../../_images/setup3.png
  1. 在QGIS主窗口中,进入 Web ‣ ORS Tools ‣ Provider Settings

../../_images/setup4.png
  1. 展开 openrouteservice 部分,然后将 key (在步骤2中复制)粘贴到 API Key 文本框中。点击 OK

../../_images/setup5.png

程序

  1. 将下载的 KMRL-Open-Data.zip 文件解压缩到计算机上的文件夹中。您会注意到,解压缩的目录包含许多文本文件。每个文件都包含运输系统不同方面的数据。文件的格式及其用途在 GTFS Reference 中进行了描述。在所有文件中,有2个文件包含地理空间数据,这是我们感兴趣的。文件 shapes.txt 包含描述车辆所经过的物理路径的点,文件 stops.txt 包含每个公交车站的位置。这两个都是可以导入QGIS的CSV文件。点击 Open Data Source Manager 按钮。

../../_images/1131.png
  1. Data Source Manager 对话框中,切换到 Delimited Text 选项卡。单击 File name 旁边的 按钮并浏览到 shapes.txt 文件。选择 CSV (comma separated values) 作为 File Format 。应该自动填充 X fieldY field 。点击 Add

../../_images/279.png
  1. 同样,再次单击 按钮,然后选择 stops.txt 文件。点击 Add 。点击 Close

../../_images/344.png
  1. 您将看到两个新的图层 stopsshapes 添加到了 Layers 面板中。让我们将 shapes 点层转换为代表地铁线路径的线层。进入 Processing ‣ Toolbox

../../_images/428.png
  1. 搜索并找到 Vector creation ‣ Points to path 工具。双击以启动它。

../../_images/528.png
  1. 选择 shapes 作为 Input point layer 。根据GTFS规范,每条路线都具有唯一的 shape_id ,因此请将其选择为 Group field 。我们还可以通过选择 shape_pt_sequence 作为 Order field 来指定形成线的点的顺序。点击 Run

../../_images/627.png
  1. 新的 Paths 层将被添加到 Layerers 面板中。 您可以关闭 shapes 层的可见性以查看新添加的线层。

../../_images/727.png
  1. 现在我们已经添加了地铁站和线路数据,我们准备开始网络分析。在 Processing Toolbox 中,搜索并找到 ORS Tools ‣ Isochrones ‣ Isochrones From Layer 工具。双击以启动它。

../../_images/826.png
  1. 选择 openrouteservice 作为 Provider 。我们将计算每个地铁站的15分钟步行距离多边形。选择 stops 作为 Input Point Layer 。选择 stop_id 作为 Input Layer ID Field 。从 Travel mode 下拉菜单中,选择 foot-walking 。由于我们对基于时间的区域感兴趣,因此请选择 time 作为 Dimension 。最后输入 15 分钟作为 ranges 。点击 Run

../../_images/927.png

注解

请注意,Openrouteservice API的同步时钟每分钟限制为20个请求。因此,如果您的图层有20个以上的点,则可能会看到错误,表明超出了速率限制。您可以保持工具运行,并且它将继续以20分/分钟的速度处理。

  1. 工具完成后,您会在图层面板的 Layers 中看到一个新的图层 Isochrones 。每个点都有一个关联的多边形,该多边形表示步行15分钟内可访问的区域。要在上下文中查看用于生成它们的数据,我们可以添加OpenStreetMap底图。向下滚动 Browser 面板,然后找到 XYZ Tiles ‣ OpenStreetMap 。将其拖到画布上。

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

../../_images/1132.png
  1. 要计算服务区域,我们需要完成最后一项任务。我们可以合并各个等时线多边形,以形成表示可访问区域的单个多边形。搜索并找到 Vector geometry ‣ Dissolve

../../_images/1227.png
  1. 选择 Isochrones 作为 Input layer ,然后单击 Run

../../_images/1326.png
  1. 处理完成后,新图层 Dissolved 将被添加到 Layers 面板中。该多边形代表步行15分钟内可从地铁系统访问的整个区域。

../../_images/1425.png

注解

这是一个简单的示例,说明如何在QGIS中完成公共交通项目的服务区分析。对于地铁系统的更全面的服务区分析将包括其他运输方式。我们可以包括接驳巴士,附近的巴士站以及为这些巴士站服务的路线,以扩大分析范围。我们可能还会包括其他方式的乘车旅行,例如汽车和出租车。