見出し画像

ユーザーの移動ログが交通分析データになるまで

 こんにちは yoshiです。ナビタイムジャパンで移動ビッグデータの分析を担当しています。
 私が所属する交通データ事業では、ユーザーの移動ログを加工し、交通状況の把握と交通課題の解決のため分析、検証をしています。
 今日は移動ログが交通分析データになるまでどのような工程を踏んで作成されていくかを具体的な分析を通してご紹介できればと思います。

今回する話:移動ログデータが分析データになるまでの流れ
 しない話:データ基盤の話 工程ごとの細かい処理の説明

移動ログに関して

 当社は、ドアtoドアのナビゲーションアプリ「NAVITIME」をはじめ、カーナビアプリや自転車専用ナビアプリなど、様々なサービスを提供しています。
 移動ログはそれらサービスから収集されたログデータのうち、同意を得たユーザーを対象に、ナビゲーションの際に取得した車両の位置情報データ(GPSデータなど)のことを指します。このデータは記録したときの位置情報を点として持つようなデータになっており、道路上での点の移動の軌跡を追うことで様々な集計、分析を行うことが可能です。

集計の概要

 さて、交通分析をするにあたって具体的な例を出し集計していきたいと思います。
 今回は国土交通省の調査結果で通過に時間がかかるとされる「八千代市境 ~こてはし台入口交差点付近」の1交差点を対象に、当社の1か月分のデータを利用して交差点の通過にどの程度時間がかかっているかを集計してみます。Googleマップで表示すると下の図の交差点です。

1. 検証対象の交差点


0. 集計の内容を検討する

 初めにどのような集計を行うかを検討します。初めの段階で検討することで、後段のデータの抽出や集計時の抜け漏れを防いだり、事前に必要なデータを絞りこむことが可能です。
 交差点での渋滞をイメージすると交差点進入前から車が立ち往生するケースや、通過後もスムーズに通過できないケースが考えられるので交差点進入前や通過後のデータも含め、ある程度距離を取って集計するのがよさそうです。今回は交差点通過前200m、交差点通過後50mのログを集計対象とします。
 また今回は通過時間を測定するので、移動ログの測位時間(点が取れた時間)などもデータとして取得しておく必要があります。

1. 必要なデータを抽出する

 基本的にログデータとして保存されているデータは特に区分なく全国のデータが保存されている状態だと思うので、そのまま利用するには無駄なデータが多くなってしまいます。そのため対象交差点付近の移動ログを抽出します。今回は位置情報としてGPSデータを利用することとします。
 元データの付属情報によって抽出のアプローチはいくつか存在しますがGPSデータであれば緯度経度の情報がありますので交差点付近を満たすよう緯度経度の最大最小値を決め、その範囲のGPSデータを抽出しようと思います。
 抽出したGPSデータをGISツールで可視化すると下の図のような感じです。緑で表示されているものがGPSデータになります。当社のデータの場合、全国のデータ約数十億個のうち、約80万個ほどのGPSデータを抽出することができました。

2. 交差点付近の点列

2. データを加工する

 交差点付近の点列データを抽出できましたが、下記のような理由でまだ分析を行うのは厳しそうです。

  • データを集約するのが難しい

  • 交差点を正しく通過しているのかが不明寮な状態である

  • 異常データをはじきたい

そのためGPSデータを利用しやすいように加工していきます。

2.1 マップマッチング処理を施す

 マップマッチングとは、GPSなどから取得した緯度経度情報を道路情報と比較し、どこにいるのか、どこを通ったのかを補完する技術になります。今回はマップマッチングを用いて点列がどこを通ったのかを分かりやすくするために利用します。
 下の図は簡単なマップマッチングの概要になります。道路情報にユーザーごとのGPSデータを補完することで道路情報に進入時刻と退出時刻を付与し、通過時間を算出できるようにしていきます。

3. マップマッチングの処理概要

 道路情報は広域だと有償のものが多い印象です。道路情報が確保できない場合、交差点1つ程度の規模であれば緯度経度から自力で道路情報を作成してもいいかと思います。今回は当社で管理している道路情報にマップマッチングをかけていきます。マップマッチングをかけた結果をデータとしてみると下のような感じです。

道路情報_ID,ユーザー情報_ID,進入時間,退出時間,通過時間,"地物情報",道路情報etc...
1,user_1,2021-10-21 12:55:26,2021-10-21 12:56:33,67,"LINESTRING(140.121045 35.710676,...)",...
1,user_2,2021-10-22 21:37:10,2021-10-22 21:37:31,81,"LINESTRING(140.121045 35.710676,...)",...
1,user_3,2021-10-23 12:03:08,2021-10-23 12:03:51,103,"LINESTRING(140.121045 35.710676,...)",...
1,user_4,2021-10-14 16:41:36,2021-10-14 16:41:40,64,"LINESTRING(140.121045 35.710676,...)",...
2,user_5,2021-10-22 09:11:34,2021-10-22 09:11:52,18,"LINESTRING(140.117693 35.712750,...)",...
2,user_6,2021-10-10 10:12:45,2021-10-10 10:13:01,16,"LINESTRING(140.117693 35.712750,...)",...

2.2 データのクレンジング

 ここまでの工程でデータとしては集計できる形になりました。ただしこのまま利用すると交差点付近で長時間停車したデータや、GPSの荒れから交差点を一瞬で通過してしまったログなどが含まれています。これらのデータを含めてしまうと分析の結果に悪影響を及ぼす可能性があります。
 そのため通過の際に明らかに異常な速度で通過しているデータを削除することにします。

3. 集計する

  最後に集計を行います。利用した地物情報をベースにユーザー数や平均通過時間などを算出します。

4. データの可視化を行う

 集計結果をより理解しやすくするためにデータを可視化します。先ほどの道路情報を見やすいようにレイアウトを変更したり、集計結果をラベルとして出したりしています。今回は通過に時間がかかる経路をより赤い色で表現し、交差点の通過時間と方向をラベルとして表示しています。
 ここまで可視化には QGIS という無料の GISソフトを利用しています。

4. 交差点の通過時間の集計結果(S:直進 R:右折 L:左折 U:折り返し)
5. 交差点の通過時間の凡例

データを見る

 集計結果から南方向(こてはし台方向)からの交通が、直進は44秒とスムーズな反面、右左折折り返しにはそれぞれ92秒、87秒、100秒になっており時間がかかっていることが確認できます。またその影響か西側からの右折に影響が出ており、通過にかかった時間は110秒と交差点のなかでは通過にもっとも時間がかかる区間になっています。
 今回の集計は250m単位での集計ですので時速30kmであれば30秒で通過できます。それと比較すると交差点の信号待ち時間などを加味してもかなり混雑していそうです。
 上記データを日時や時間帯ごとに分けたり、点列の抽出条件を見直したりすることでより高度な検証を行うことができそうです。

最後に

 移動ログが交通分析になるまでの流れはいかがだったでしょうか?
 今回は分析データを確認するところまで行いましたが、このような交通データを利用し、さらに分析、考察することで、実社会の課題を解決することに役立っています。実際の事例に関しては交通データ事業の業務紹介のページにまとめてありますので、気になる方はぜひご覧ください。
 昨今、ビッグデータ利用の機運が高まっており、官民ともにオープンデータなども様々利用できるような環境になりました。簡単な集計でも意味のある結果を出せるデータもたくさんあると思いますので、まずはデータに触ってみてはいかがでしょうか?