はじめに
熊本のGTFSリアルタイムが公開されたので、Pythonで取得してみましょう。
こういう便利なものが作れちゃいます。
最寄りのバス停にバスがあと何分で着くかだけを表示するものなんだけど、1番よく使う#熊本 #MaaS #M5Stack #GTFS pic.twitter.com/pjmSrhtCe0
— がちもとさん@メタバース熊本 (@sotongshi) December 16, 2021
開発環境
- Windows PC
- Python 3.6
- gtfs-realtime-bindings
実装
1.gtfs-realtime-bindingsをインストールします
pip install gtfs-realtime-bindings
2.熊本の産交バスのTripUpdate(ルートの最新情報)を取得してみましょう
gtfs-realtime-sample.py
from google.transit import gtfs_realtime_pb2
import requests
feed = gtfs_realtime_pb2.FeedMessage()
response = requests.get('https://km.bus-vision.jp/realtime/sankobus_trip_update.bin')
feed.ParseFromString(response.content)
for entity in feed.entity:
if entity.HasField('trip_update'):
print(entity.trip_update)
3.次のような結果が返ってきます
stop_time_update {
stop_sequence: 36
arrival {
delay: 429
time: 1639723749
uncertainty: 300
}
departure {
delay: 429
time: 1639723749
uncertainty: 300
}
stop_id: "100441_1"
}
vehicle {
id: "347"
label: "1201"
}
4.ダウンロードしたTripUpdateファイル(.bin)から読み込む場合
gtfs-realtime-sample.py
from google.transit import gtfs_realtime_pb2
import requests
feed = gtfs_realtime_pb2.FeedMessage()
with open("sankobus_trip_update.bin", 'rb') as f:
content = f.read()
feed.ParseFromString(content)
for entity in feed.entity:
if entity.HasField('trip_update'):
print(entity.trip_update)
stop_time_update {
stop_sequence: 36
arrival {
delay: 369
time: 1639723689
uncertainty: 300
}
departure {
delay: 369
time: 1639723689
uncertainty: 300
}
stop_id: "100441_1"
}
vehicle {
id: "347"
label: "1201"
}
お疲れ様でした。
GTFSリアルタイムを公開している都道府県リスト
GTFSリアルタイムを公開している都道府県リスト
— がちもとさん@メタバース熊本 (@sotongshi) December 17, 2021
北海道、群馬、富山、愛知、三重、和歌山、岡山、広島、佐賀、そして熊本みたいですねhttps://t.co/aFkLWek0ky#熊本 #MaaS #GTFS
熊本のGTFS Realtime
産交バス(TripUpdate) | https://km.bus-vision.jp/realtime/sankobus_trip_update.bin |
産交バス(VehiclePosition) | https://km.bus-vision.jp/realtime/sankobus_vpos_update.bin |
熊本電鉄バス(TripUpdate) | https://km.bus-vision.jp/realtime/dentetsu_trip_update.bin |
熊本電鉄バス(VehiclePosition) | https://km.bus-vision.jp/realtime/dentetsu_vpos_update.bin |
熊本バス(TripUpdate) | https://km.bus-vision.jp/realtime/kumabus_trip_update.bin |
熊本バス(VehiclePosition) | https://km.bus-vision.jp/realtime/kumabus_vpos_update.bin |
熊本都市バス(TripUpdate) | https://km.bus-vision.jp/realtime/toshibus_trip_update.bin |
熊本都市バス(VehiclePosition) | https://km.bus-vision.jp/realtime/toshibus_vpos_update.bin |
※15秒おきに更新されますが、過度なアクセスは行わないようにしてください。
参考文献