1Click飲みRomoCartTempescope色色[:iroiro]Other Projects

2015年4月5日日曜日

山手線リアルタイム混雑情報で遊んでみよう

去年から公開されてる「JR東日本アプリ」ですが、機能の一つに「山手線トレインネット」というものがあります。
これは山手線の各車両の現在位置、混雑状況、室内温が見えるというもので、
座りやすい車両を探すのに便利だったりします。
山手線トレインネットから取得した車両位置と混雑率

電車の運行情報がここまで時間粒度細かく公開されているのは世界的にも珍しいので、特に目的も無しにデータをクローリングして遊んでみました。


データをクローリングする

まずは山手線トレインネットの車両位置・混雑情報をクローリングします。
JR東日本アプリの山手線トレインネット。
今の車両内の混雑や室内温が見える。すごい!
「山手線トレインネット」はブラウザから見えるページが存在しない、iPhone/Androidアプリ専用の画面です。
なので普段の「FirebugでAJAXの通信を見てAPIをリバースエンジニアリング」ほど簡単な作業ではありませんが、こういうツールを使えば難なく通信が読めます。
これでAPIを解析して、一定間隔で車両情報を取得するクローラーを作りました。


とりあえず可視化してみよう

とりあえず、ある1日の車両の動きと混雑状況をアニメーションにしてみました。
動いている四角が一本の電車、四角の中の色が各車両の混雑を表しています。(青:混雑無し 赤:身動きがとれない程度)
見所としては:
・8時あたりからの朝のラッシュ
・12時あたりに一旦電車が止まる。湘南新宿ラインの線路支障の影響で一時運転見合わせがあったそうです。
・18時あたりから帰宅ラッシュ →朝のラッシュほどじゃないですね。
・23時以降:徐々に本数が減っていきます。
あまり情報量はないですが、ウニョウニョしてて可愛いですね。


混雑の傾向を見てみよう

もう少し社会の役に立ちそうな解析をしてみましょう。
せっかく混雑の情報があるので、時間帯毎や車両毎の傾向を見てみました。

こちらは、4月2日(金)の時間帯毎・駅毎の混雑率です:
山手線・2015年4月2日の駅毎混雑率
・朝のラッシュは7時手前から8時過ぎまで続いてますね。この時間帯を外せばあまり混雑の影響を受けなくて済むかもしれません
・内回りは帰宅ラッシュがあまり見られません。
・外回りでも17時〜18時半あたりに引っ掛からなければ、あまり混雑しないかもしれません。
というわけで(僕はあまり山手線に乗らないので実態はよく知らないですが)山手線は朝のラッシュさえ避ければそんなに酷い目には合わなそうです。


じゃあ朝のラッシュ時はどの車両に座ればいいの?

朝のラッシュの時間帯を避けられないんだとすると、せめて空いている車両に座りたいですよね。
山手線トレインネットは混雑率が車両毎に分かるので、最適な乗車位置を計算してみましょう。

とりあえず朝8時〜9時の各駅出発時の平均混雑率を車両毎に見てみます:
2015/3/29~2015/4/2 8時~9時の各駅出発時の車両毎平均混雑率
大まかに、「外回りのときは先頭車両(1号車)、内回りの時は後方車両(1号車)」が空いている」気がしますね。
人気駅(東京とか)の階段位置とか関係するんでしょうかね。
唯一、外回りの新大久保付近は真ん中付近のほうが空いているようです。

このデータに基づいて、「ここからここに行く時にどの車両に乗ればいいの?」早見表を作ってみました。
平日8時~9時の駅間毎最適乗車車両早見表。数字は号車、色は平均混雑率。移動方向(内回り・外回り)は最短経路を選択した場合。
ほとんどのケースで1号車に乗れば、朝のラッシュ時でもさほど混雑を感じずにすみそうです。
新宿→新大久保だけは、どうしても混むようです。時間を避けたほうがいいかもしれませんね。
ちなみにこれは「平均混雑率」を最適化した場合なので、例えば「混雑率60%以上の時間が一番短いように」などの基準が欲しい場合はまた違う結果になるかもしれません。

あとがき

・朝の山手線は1号車に乗ろう。
・中央線のデータも早く出して欲しいな。
・APIを難読化してないJRは超素敵。
 (このデータ公開するのって色んな人怒らせる可能性あるけど、怒らないでくれるといいなあ。)

追記:4月12日に山手線が9時間半止まったトラブルの時の電車の動きがすごい!




他の分析エントリ

140文字の「重み」を言語毎に比較してみた
世界で一番住みやすい場所を計算してみた
サイゼリヤの間違い探しが難しすぎたので大人の力で解決した
建物のWifiをホッピングして東京から大阪まで通信できるか
Topcoderに一番有利な時間帯を調べてみた
Wikipediaのデータで人生解析をしてみよう
明日の天気を過去の似た日から合成して可視化してみよう
「頭痛」を含むツイートと気圧の関係を調べてみた

0 件のコメント:

コメントを投稿