この記事は シェアモビリティの標準的なデータフォーマット GBFS Advent Calendar 2023 の 17日目の記事です。
はじめに
この記事をご覧の方はGBFSがどういったものかご存知だと思うので、GBFSの基本的な説明は省きます。
GBFSってなに?という方は、@kumatira さんの記事を参照してください。
この記事ではブラウザ上でPythonを実行できるGoogle ColabからGBFSのデータにアクセスする方法を紹介します。
GBFSはjsonの集合体です。そのまま見てもある程度の内容は確認できますが、プログラミング言語を使ってアクセスするとデータの加工やフィルタが簡単にできます。今回はPythonを使ってGBFSのデータにアクセスしてみようと思います。
Google Colab
以下のURLからアクセスします。
Google Colabを開くとこのような画面になります。
左上のメニューから ノートブックを新規作成
をクリックします。
GBFSにアクセスするためのライブラリをインストールする
まずはライブラリをインストールするためのコマンドを入力して実行します。 ▶️
を押すと実行されます。
pip install gbfs-client
しばらく待つとライブラリのインストールが完了します。
あとはPythonでGBFSにアクセスするコードを書くだけです!
自転車をたくさん置けるステーションの一覧
シェアサイクルのステーションで自転車がたくさん置ける場所の一覧を出してみようと思います。
今回はドコモバイクシェアさんのデータを使用しています、コードを変えることで他のシェアサイクル事業者のデータを見ることもできます。
以下のコードをGoogle Colabに入力して実行します。
from gbfs.services import SystemDiscoveryService
from gbfs.client import GBFSClient
ds = SystemDiscoveryService()
# ドコモ・バイクシェア
client = ds.instantiate_client('docomo-cycle', 'ja')
# ステーションの情報を取得
stations = client.request_feed('station_information').get('data').get('stations')
station_dict = {}
for station in stations:
name = station.get('name')
capacity = station.get('capacity')
station_dict[name] = capacity
# キャパシティの多い順にソートする
station_dict = sorted(station_dict.items(), key=lambda x:x[1], reverse=True)
for station in station_dict:
print(station)
数秒待つとGoogle Colabに結果が表示されます。
(2023/12/16時点のデータです)
1位のステーションでは、なんと115台も自転車が置けるようです!!
2以下も巨大なステーションであることがわかりますね。
このようなにGoogle Colabを使うと、Pythonの環境構築など面倒な作業なしでコードを実行することができます。
参考