Sim*_*onR 1 encoding parsing gtfs
几个月来我一直在为这个问题感到困惑,无法找到解决方案.
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 ^ R ^ F ^ P ^ ^ E ^ R ^ K ^ A2 ^ R ^ F ^P ^ E ^ R ^ K ^ A3 ^ R ^ F ^ P ^ ^ E ^ R ^ K ^ A4 ^ R ^ F ^ P ^ ^ E ^ R ^ K ^ A5 ^ R ^ F ^ P ^ ^ E ^ R ^ K ^ A6 ^ R ^ F ^ P ^ ^ E ^ R ^ K ^ AS ^ R ^ F ^ P ^ ^ E ^ R [^ F000001 ^ ZQ 6 ^ N050400_1..S02R ^ Z ^ H20140917*^A1 > ^ V ^ P01 0824 242/SFY ^ P ^ A ^ X ^ C ^ R ^ W ^ R ^ F ^Pɚ ^ E"^D140Sʚ> ^ F ^ AA ^ R ^ AA ^ RR ^ F000002"H 6
根据MTA网站(看起来不真实)
所有数据都以GTFS实时格式化
有关将此神秘文件转换为可用GTFS数据所需步骤的任何想法吗?我缺少一些编码吗?我已经找了10+并且无法提出解决方案.
此外,不是一个坚持者,但我不是指MTA的实时数据源,它是正确格式化和可用的.我具体指的是上面引用的历史数据转储(已经收到许多"解决方案",仅指实时数据馈送)
您链接到的文件是GTFS实时格式,而不是GTFS,您链接到的页面在解释其数据实际所在的格式方面做得非常糟糕(尽管在您的引用中提到过).
GTFS用于存储计划数据,例如路线和预定到达时间.
GTFS-realtime通常用于实时传输实际的运输性能数据,如车辆位置和预期或实际到达时间.它是一个protobuf,是由Google公布的已编译二进制数据的规范,这意味着您无法在文本编辑器中有效地阅读它,但您必须使用Google protobuf工具以编程方式加载它.通过公开提供GTFS-rt feed的每日转储,它可以像MTA一样用作历史数据格式.这就是所谓的GTFS实时因为实时的各种数据字段,如route_id,trip_id和stop_id设计链接到已发布的GTFS时间表.
我通过使用gtfs-realtime.proto规范和用于Python的Google protobuf工具对其进行反编译来确认您链接的数据的有效性.它始于:
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"
}
}
}
...
Run Code Online (Sandbox Code Playgroud)
并继续这种情况共计55833行(采用默认的字符串输出格式).
编辑:用于将protobuf转换为字符串表示的Python脚本非常简单:
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
Run Code Online (Sandbox Code Playgroud)
这需要gtfs-realtime.proto编译成gtfs_realtime_pb2.py使用protoc(遵循"编译协议缓冲区"下的Python protobuf文档中的说明)并放在与Python脚本相同的目录中.此外,从MTA下载的二进制protobuf需要命名gtfs-rt.pb并与Python脚本位于同一目录中.
| 归档时间: |
|
| 查看次数: |
1069 次 |
| 最近记录: |