首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解析NYC Transit/MTA历史GTFS数据(非实时)

解析NYC Transit/MTA历史GTFS数据(非实时)
EN

Stack Overflow用户
提问于 2016-08-15 16:10:35
回答 1查看 1.5K关注 0票数 1

几个月来,我一直在困惑这件事,却找不到解决办法。

MTA声称以GTFS格式以每日转储的形式提供历史数据:[http://web.mta.info/developers/MTA-Subway-Time-historical-data.html][1]

下载它们提供的示例,在本例中是2014年9月17日:[https://datamine-history.s3.amazonaws.com/gtfs-2014-09-17-09-31][1]

我的问题?文件是gobbledygook的。它不符合GTFS规范,没有扩展,当我使用文本编辑器打开它时,它看起来像7800行:

N ^C1.0^X�枪�^Eʞ>` ^C1.0^R^K ^A1^F^P����^E^R^K ^A2^R^F^P����^E^R^K ^A_3^F^P����^E^R^K^A_4^R^F^P����^E^R^K^A^A^F^R^R^A^F^R^F^P^F^F^����^F^P^F^R^F^R^F^P^F^P^F^E^R^F^P^F^R^E^R^F^P^F^R^F^F^P����^R^R^F^F^

根据MTA站点(似乎不真实)

所有数据都是用GTFS实时格式化的。

对于将这个神秘文件转换为可用的GTFS数据所需的步骤有什么想法吗?我遗漏了什么编码吗?我一直在寻找10+,但一直无法找到解决方案。

另外,不是为了粘贴,但我不是指MTA的实时数据提要,它是正确的格式化和可用的。我特别指的是我上面提到的历史数据转储(已经收到许多“解决方案”,仅指实时数据提要)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-16 15:22:28

您链接到的文件是GTFS--实时格式,而不是GTFS,您链接到的页面在解释其数据的实际格式方面做得非常糟糕(尽管在引用中提到过)。

GTFS用于存储日程数据,如路线和预定到达时间。

GTFS-实时通常用于实时传输实际的交通性能数据,如车辆位置和预期或实际到达时间。它是一个protobuf,是Google发布的编译二进制数据的规范,这意味着您不能在文本编辑器中有效地读取它,但是您必须使用Google protobuf工具以编程方式加载它。它可以以MTA的方式作为历史数据格式使用,方法是公开GTFS提要的每日转储。它被称为GTFS,因为实时中的各种数据字段(如route_idtrip_idstop_id )被设计成链接到已发布的GTFS计划。

我通过使用gtfs-realtime.proto规范和用于Python的Google工具来反编译链接到的数据的有效性。它开始于:

代码语言:javascript
复制
header {
  gtfs_realtime_version: "1.0"
  timestamp: 1410960621
}
entity {
  id: "000001"
  trip_update {
    trip {
      trip_id: "050400_1..S02R"
      start_date: "20140917"
      route_id: "1"
    }
    stop_time_update {
      arrival {
        time: 1410960713
      }
      stop_id: "140S"
    }
  }
}
...

并以这种方式继续进行总共55833行(以默认的字符串输出格式)。

编辑:用于将protobuf转换为字符串表示的脚本非常简单:

代码语言:javascript
复制
import gtfs_realtime_pb2 as gtfs_rt

f = open('gtfs-rt.pb', 'rb')
raw_str = f.read()

msg = gtfs_rt.FeedMessage()
msg.ParseFromString(raw_str)

print msg

这需要gtfs-realtime.proto使用protoc编译成gtfs_realtime_pb2.py (按照Python原型文档中“编译协议缓冲区”下的说明),并将其放在与protoc脚本相同的目录中。此外,从MTA下载的二进制原型需要命名为gtfs-rt.pb,并与Python位于同一个目录中。

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

https://stackoverflow.com/questions/38958751

复制
相关文章

相似问题

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