首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >阅读gtfs google transitFeed python

阅读gtfs google transitFeed python
EN

Stack Overflow用户
提问于 2019-04-24 00:04:32
回答 2查看 1.4K关注 0票数 4

我正在尝试从gtfs读取数据,是一个压缩文件。google存储库告诉我这个库可以阅读,但是我没有找到任何关于如何使用transitfeed库来阅读gtfs的内容。

你知道吗,我怎样才能读懂gtfs的结构?

我想获得所有的结构并创建一个Json

例如

代码语言:javascript
复制
{
 agency:{agencyName: 'aaa', agencyTimezone: 'bbb'...},
 routes: [
  busStop: {...},
  busStop: {...},
 ]
 .....
}

我知道如何在库中验证它,我不知道它是否能帮上忙。

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2019-04-26 20:53:00

在使用transitfeed时,我从未在文档中看到任何读取现有提要的方法,这也是我选择不在我的项目中使用它的原因之一。

有一个名为pygtfs的库可以从gtfs feed中提取所有相关信息,您可以使用它的API将其转换为您喜欢的格式。

要阅读gtfs提要(文件夹或.zip文件),您需要做的就是:

代码语言:javascript
复制
sched = pygtfs.Schedule(":memory:")                # create a schedule object (a sqlite database)
pygtfs.append_feed(sched, "sample-gtfs-feed.zip")  # add the GTFS feed to the database

然后,API中有几种方法可以查询schedule对象并获取有关提要的所有相关信息(大多数情况下,根据需要,您只需要其中的一部分)。

尽管如果你需要处理大量的提要,或者处理不完全符合标准的提要(涉及到这一点,pygtfs是相当暴躁的),我建议你只需解压缩提要并“手动”解析文件,就可以构建一个GTFS自制对象。

为了在json中编码数据,json库完成了这项工作。

票数 3
EN

Stack Overflow用户

发布于 2019-05-06 23:41:12

我找到了制作我想要的东西的方法。我将展示给你看。

只需要安装googleTransitFeed即可。

代码非常简单。

代码语言:javascript
复制
import transitfeed

extension_module = transitfeed
gtfs_factory = extension_module.GetGtfsFactory()
loader = gtfs_factory.Loader(<the path of you zip>)
schedule = loader.Load()

现在,您已经在schedule对象中拥有了gtfs的所有结构

注意:如果你想要stop_time的值,在trip中你必须使用GetStopTimes()方法

例如

代码语言:javascript
复制
trip.GetStopTimes()

最后,我不需要将其解析为json。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55815242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档