こんにちは。Insight Edge引越し好き(?)Data Scientistの中野です。 最近は1年半のペースで引越してるので、免許書の住所記入欄が足りなくなり付箋のようなものに住所を記入しています! 新しいエリアに引っ越す時は近隣のカフェや本屋情報を調査しているのですが毎回イマイチ綺麗に可視化できないので、 今回は地理情報データを可視化できるツールの比較や、その際のちょっとしたコツを紹介します!
背景
製造業や小売業など様々な顧客データを分析するときに地理情報を扱うケースは少なくないかと思います。個人的な意見ですが、分析をする際はまずざっくりとデータを可視化すると顧客が感じている仮説やデータで表現できていない点などを効率的にヒアリングできると考えています。しかし地理情報データはExcelのような普段使用するツールで可視化することが大変であることから、他の形式のデータに比べおざなりにされがちであると感じています。
そこで今回は、BigQueryに保存された地理情報データを簡単に可視化するツールとして
Looker Studio、BigQuery Geo Viz、Apache Supersetの3つを紹介します。
自転車盗難データの準備
自転車盗難データとは
まずサンプルデータを準備します。
サンプルデータとして空間の粒度が細かく、件数が多いデータを使用したいため 警視庁の犯罪発生情報(年計) を使用します。このデータは東京都で発生した犯罪の7つの手口の住所と日時が記録されています。今回はこの中から自転車の盗難件数を対象とします。
また住所から町丁目のポリゴン情報を取得するために e-Statの統計地理情報システム,令和2年国勢調査町丁・字等別境界データ を使用します。
これらのデータは、住所の表記揺れや欠損などのため、そのまま紐付けできません。そのため、以下の前処理を行いBigQueryにアップロードしました。
- 住所の表記揺れの修正(1丁目→一丁目、ヶ→ケ、など)
- 海上に位置するポリゴンデータの除外
- 犯罪発生地が不明のレコードの除外
- ポリゴンデータをWKT形式, GeoJSON形式へ変換
サンプルデータの概要
地理情報の可視化を行う前に、東京都の1日当たりの犯罪発生件数を時系列グラフにして確認してみます。以下のグラフは、横軸が発生年月日、縦軸が1日当たりの発生件数、色が手口を表しています。
これだけでも7つの手口の中で自転車盗難が圧倒的に多いことや、コロナ影響で20年3月ごろに発生件数の減少したことなどが確認できます。また統計学の教科書でよく触れられる話ですが、気温と犯罪件数には相関があるというのも確認できそうです。(コロナ影響でわかりにくいですが)
各ツールの紹介
サンプルデータの準備が完了したため、各ツールを使い自転車の盗難件数をを可視化していきます。 チュートリアルや導入方法は各サイトに既に存在するため、今回はデータを可視化した際のポイント(つまずいた点や各ツールの特徴)をまとめます。
01.Looker Studio(旧:データポータル)
Looker Studio(旧:データポータル)はデータソースへの接続からデータの変換、可視化、共有までを行うことのできるGoogle Cloudの無料BIツールです。
特徴としては分析結果の共有が容易で、グラフだけでなくフィルタやパラメータの設定フォームも埋め込むことができるため、
共有された側でも結果の内訳を細かく調べることができるなどレポートに向いているツールだと思います。
LookerStudioを使用してBigQueryGEOGRAPHYポリゴンを可視化する を参考にしました。
使用時のポイント
- GEOGRAPHY型への変換
- Looker Studioを使用するためには、何かしらの方法で国勢調査境界データをGEOGRAPHY型に変換する必要があります。まず、WKT形式に変換してその後ST_GEOGFROMTEXT関数を使用して、GEOGRAPHY型に変換するのが便利かと思いました。
- Looker Studioの表示上限
- Looker Studioではデフォルトで10万ポイント、最大100万ポイント(ポリゴンの頂点数)までしかプロットできません。そのため町丁目ポリゴンをすべて表示するためにはフィルタを適用して対象のエリアを制限したり、ST_SIMPLIFY関数を使用してポリゴンを簡略化したりするなどして、ポリゴン数を削減する必要があります。
- 参考: BigQuery GEOGRAPHY データの操作に関するヒントと制約
画面イメージ
東京都における過去3年間の自転車盗難数を町丁目別に可視化しました。
ポリゴン数に上限があるため、エリアは東京23区内を対象としています。
この図から、自転車の盗難件数が最も多いエリアは蒲田駅周辺であり、その次は新宿駅周辺であることがわかります。
02. BigQuery Geo Viz
BigQuery Geo Vizは、BigQueryの地理空間データを可視化するためのウェブツールです。
多くの機能は備わっていないものの、地理情報のクエリ結果を1度にひとつずつ手軽に可視化できます。
そのため、分析の初期にデータの欠損を確認したり、傾向を理解したりする探索的データ分析(EDA)の段階で使用することに向いていると思います。
Geo Viz でのクエリ結果の可視化 を参考にしました。
使用時のポイント
- GEOGRAPHY型への変換
- BigQuery Geo Vizを使用するためには、何かしらの方法で国勢調査境界データをGEOGRAPHY型に変換する必要があります。まず、WKT形式に変換してその後ST_GEOGFROMTEXT関数を使用して、GEOGRAPHY型に変換するのが便利かと思いました。
画面イメージ
東京都における過去3年間の自転車の盗難数を町丁目別に可視化しました。 共有リンクを作成することで、30日間クエリ結果と描画スタイルを保存できます。
03. Apache Superset
Apache Supersetは、ビッグデータを処理できるオープンソースのBIツールです。
インストールなど導入に手間はかかるものの、データソースにつなげてしまえばエンジニアやデータサイエンティストでなくとも分析・可視化を行える点が特徴だと思います。
また他のツールに比べ描画できるグラフの種類も豊富です。
環境構築は こちら を参考にしました。
使用時のポイント
- BigQueryを使用するための設定
- BigQueryを使用するにはサービスアカウントの設定として"データ閲覧者"権限のものを作成し設定します。
- 地図情報を可視化するための設定
- SupersetではMapboxを使用するため、 Mapbox.com に登録しトークンを取得します。
- ドキュメントを見ると、APIキーは
superset_config.py
に追記するとあるが、場所は指定されていませんでした。とりあえず、./superset/superset_config.py
にファイルを置けば動きました。
- ポリゴンデータの形式
- ポリゴンデータの形式はGoogleCloudのサービスではGEOGRAPHYでしたが、 SupersetではPolyLineまたはGeoJSONの形式に対応しているようです。
- 今回はGeoJSON形式を使いました。参考:How to display Superset data as polygons in deck.gl
{ "type": "Polygon", "geometry":{ "type": "Polygon", "coordinates": [[[ ...
画面イメージ
東京都における過去3年間の自転車の盗難数を町丁目別に可視化しました。
データソースにさえ接続しておけば、SQLを記述しなくてもGUI操作のみで簡単に集計できます。 そのため、気になる項目の内訳をGUI操作でドリルダウンしていくことも容易に実行できそうです。
3Dにもできる!
まとめ
今回は、地理情報データの可視化ツールを3つ紹介しました。 各ツールの特徴や向いている使い方についてまとめます。
Looker Studio(旧:データポータル)
元のデータ数が多い場合、ある程度は事前に集約やフィルタを行っておいた方が良いと思いました。
しかし共有が容易で、共有された側で詳細を調べることもできるため、分析結果をレポートする際に向いていると思います。
BigQuery Geo Viz
SQLを記述できなければ分析できませんが、記述できれば手軽に可視化できるため
データサイエンティストなどが探索的データ分析(EDA)の段階で使用することに向いていると思います。
Apache Superset
導入に手間がかかりますが、データソースに接続しておけばSQLを記述できない人でも細かい分析や可視化ができるため、
データや分析結果の共有人数が多い場合や、非エンジニア部門にも共有したい場合に向いていると思います。
犯罪発生情報(年計)、東京都・警視庁、クリエイティブ・コモンズ・ライセンス 表示4.0国際
このブログは、以下の著作物を改変して利用しています。犯罪発生情報(年計)、東京都・警視庁、クリエイティブ・コモンズ・ライセンス 表示4.0国際
出典:政府統計の総合窓口(e-Stat) https://www.e-stat.go.jp/
「統計地理情報システム,令和2年 国勢調査町丁・字等別境界データ」を加工して作成