1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

シェアモビリティの標準的なデータフォーマット GBFSAdvent Calendar 2023

Day 17

Google Colabで気軽にGBFSに触れてみる

Last updated at Posted at 2023-12-15

はじめに

この記事をご覧の方はGBFSがどういったものかご存知だと思うので、GBFSの基本的な説明は省きます。

GBFSってなに?という方は、@kumatira さんの記事を参照してください。

この記事ではブラウザ上でPythonを実行できるGoogle ColabからGBFSのデータにアクセスする方法を紹介します。

GBFSはjsonの集合体です。そのまま見てもある程度の内容は確認できますが、プログラミング言語を使ってアクセスするとデータの加工やフィルタが簡単にできます。今回はPythonを使ってGBFSのデータにアクセスしてみようと思います。

Google Colab

以下のURLからアクセスします。

Google Colabを開くとこのような画面になります。
左上のメニューから ノートブックを新規作成 をクリックします。
スクリーンショット 2023-12-16 0.19.14.png

GBFSにアクセスするためのライブラリをインストールする

まずはライブラリをインストールするためのコマンドを入力して実行します。 ▶️ を押すと実行されます。

pip install gbfs-client

スクリーンショット 2023-12-16 0.20.08.png

しばらく待つとライブラリのインストールが完了します。

スクリーンショット 2023-12-16 0.24.08.png

あとは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以下も巨大なステーションであることがわかりますね。

image.png

このようなにGoogle Colabを使うと、Pythonの環境構築など面倒な作業なしでコードを実行することができます。

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?