斯潘8
斯潘4
GTFS是什么?GTFS代表通用运输进料规范。这是一种公共格式,运输机构在分发运输时间表及其附带的地理信息(例如停止,路线,两站之间的时间)。它是为了满足在谷歌地图中整合交通信息的需要而创建的。全球许多不同的网络地图和移动应用程序都使用GTF。查找和查看GTFS数据的一个重要中心是网址:http://transitfeeds.com/,您可以在其中按城市搜索数据,或由城市和运输代理。用户希望看到由FME支持的更常见的翻译之一是gtfs到shp,我们将在本教程中介绍。
GTFS数据集的构建块相对简单。它们是保存为文本文件的csv文件的集合,压缩到一个文件夹。至少,GTFS数据集必须包含许多.csv文件。从谷歌的GTF参考,最低要求包括:
除了上述所需的文件之外,GTFS数据集中还可能包含其他文本文件。有关这些附加文件的列表和详细说明,请导航到关于gtfs的Google Transit API页面.
为了理解每个数据表之间的关系,让我们看一下Google的Transit API页面中的表关系图:
表之间的关系谷歌的GTF参考
查看上面的图表可以发现表之间毫无疑问的关系-例如,“行程”表取决于路线,日历,停止时间和频率。
对于本教程,我们将使用Translink提供的GTFS数据,设在温哥华的一家运输公司,公元前。
在FME中,这些数据是什么样的?首先要注意的是,这些数据在ll-84中。例如,如果我们查看记事本中的“stops.csv”文件,我们将在停止栏和停止栏中看到坐标号:
1.添加通用传输馈送规范(GTFS)读卡器
我们在读取数据时需要指定坐标系,因为csv文件没有存储坐标系。您可以在添加GTFS读卡器时设置数据的坐标系(单击读卡器→添加读卡器,或键入ctrl+alt+r):
或者,将读卡器添加到工作区后,可以在导航器窗格中进行设置:
2。在数据检查器中检查数据
既然我们已经设置了数据的坐标系,让我们试着在数据检查器中查看它,看看公共汽车站(TXT)通过向阅读器添加一个检查器,运行工作区:
输出如下:
停了好多站!注意,我们不必使用VertexCreator来显示TXT文件作为点。GTFS阅读器自动将停止栏和停止栏解释为x和y坐标。这使得将这些功能转换为点形状文件非常容易。完成此操作只需要3个步骤!
1.添加gtfs阅读器并选择包含gtfs数据的.zip文件夹(或选定的文本文件)
2。选择要读取的功能类型(在本例中为“停止”)。
三。添加形状文件编写器,指定输出位置和文件名。请为形状文件定义选择“自动”:
4。一旦添加了作者,在编写器参数中,将格式属性fme_feature_type指定为形状文件名。这将确保输出形状文件名与输入gtfs功能类型匹配:
5。shapefile功能类型上的某些属性名称已更改,但是FME会自动映射它们。对于更稳定的属性名称链接,右键单击要素流,然后选择用attributeManager替换链接。
6.现在运行工作区,看看有多少功能正在通过:
就这样!现在我们有一个shapefile,包含我们所有的中转站,由translink提供服务。
如何将布线线写出形状文件?
答案取决于理解GTFS表是如何相关的。这个TXT文件包含每个路由的信息,但不包含任何地理信息。文件整形器包含为每条路线创建线条形状的绘制顺序和规则,但是如果你检查桌子整形器,只有一列:shape_id。
我们如何联系整形器致TXT桌子?要将这些数据连接在一起,我们需要TXT.记住TXT是到其余gtfs表的重要链接-它与gtfs数据集中几乎每个强制表都有关系。行程属于特定路线(route_id),行程的长度/形状由中的shape_id字段中的链接定义。TXT文件到整形器文件。此关系在下面以红色突出显示:
让我们尝试为数据集中的每个路由创建行功能。
1.第一,我们添加了一个GTFS阅读器,并选择了3种功能类型:路由,形状和行程
2。我们知道形状和旅行是通过形状链接的。正如我们之前在关系图中看到的。我们想要的是加入几何信息整形器属性信息来自TXT.为了实现这一点,我们可以使用功能合并。在这种情况下,让我们使用“trips”作为供应商,使用“shapes”作为请求者(shapes是trips的“请求”属性):
在FeatureMerge的参数中,我们可以指定要连接的属性(shape_id)。不管我们是否只想加入属性,或属性和几何体。我们需要属性和几何。请注意,“流程重复供应商”也设置为“是”。
在2017 +,有一个工作区参数定义了当FME遇到被拒绝的特性时要采取的行动:
如果“处理重复供应商”设置为“否”,重复的供应商将被视为被拒绝的特征,因此,如果将“拒绝的功能处理”设置为“终止转换”,则转换将终止。我们可以将此工作区参数更改为“继续转换”,或者我们可以将“处理重复供应商”设置为“是”。
我们期待着许多重复的供应商,因为每个形状都有很多行程。因为我们只需要每个形状的形状和一次路径信息,我们将选择第二个选项,将“流程重复供应商”设置为“是”。
让我们通过向合并的端口添加一个inspector transformer来检查featuremerge的输出(或者,在启用完全检查的情况下运行工作区,然后双击深灰色气泡,其中功能计数来自“合并”端口):
在上图中,我强调了通往Burrard站的2路线。地图上的点是直线段的顶点,不是我们的终点站。这向我们表明,线路已经成功地生成了出行路段信息,但我们仍然缺少一些仅包含在我们的TXT表。因此,我们需要使用另一个功能合并来执行第二个联接。TXT我们第一次合并的结果。
三。这次,我们将只合并属性,链接将基于路由标识:
请注意,在这个图像中,我使用了新的参数编辑器窗口。
4。添加一个作者,在这种情况下,ESRI形状文件,选择输出数据集位置并将shapefile定义设置为自动。当出现“功能类型”对话框时,将shapefile name设置为属性fme_feature_type,然后将其连接到FeatureMerged_2合并端口。shapefile功能类型上的某些属性名称已更改,但是FME会自动映射它们。对于更稳定的属性名称链接,右键单击要素流,然后选择用attributeManager替换链接。
让我们运行这个翻译并检查输出,看看我们是否达到了预期的结果:
杰出的!我们现在将路线和旅行信息附加到表示路线的形状上。注意,在某些情况下,您将看到一些重复的路由条目。这是因为路由的服务ID值超过1,与中的条目关联日历.例如,给定的路由可能具有与周末服务关联的服务ID值,还有一个工作日服务的ID,还有一个是度假。
当您开始将每个表编织在一起以生成新信息时,GTFS数据异常复杂。本文介绍了如何基于GTFS数据中存储的几何图形创建简单的形状文件,但是还有许多其他方法可以将其他数据块连接到这些形状以执行更高级的分析。
?2019安全亚搏在线软件公司|合法的