Tableauで滞在人口データを可視化してみる

こんにちは。

パーソルプロセス＆テクノロジー株式会社（以下パーソルP&T）、システムソリューション（SSOL）事業部所属の出利葉です。

## やること
今回はBIツール「**Tableau**」を用いて、「**東京都の1kmメッシュ別の滞在人口データ**」を可視化してみます。
以前、チームメンバーの戸田が執筆した[Supersetで滞在人口データを可視化してみる]( https://qiita.com/ppt_msdg_maas/items/8d62cfa28203e3ccdcda)のTableau版となりますので、上記の記事と併せて読むと、TableauとSupersetの違いが分かって面白いと思います。

完成イメージ
![20.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1457643/40ab5d6a-322b-993c-3d03-4833ab4adab7.png)
## 利用したツール
Tableau Desktop Proffessional Editon
Ver.2020.4.8

Tableauの詳しいダウンロード方法は公式ドキュメントを参照してください。
https://www.tableau.com/ja-jp/products/trial

## データの準備
まずは可視化するデータを準備します。
[G空間情報センター]( https://www.geospatial.jp/gp_front/)でオープンデータとして公開されている、[日本全国の2019年と2020年の1kmメッシュ内における滞在数データ]( https://www.geospatial.jp/ckan/dataset/mlit-1km-fromto)の中から、東京都のデータをダウンロードしてください。（ダウンロードにはユーザー登録とログインが必要です。）
今回は2020年1月のデータを利用するので、該当のzipファイルを解凍しておきます。
![1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1457643/d680d350-ea96-17d0-f6c0-8d8725f46f08.png)

G空間情報センターでは、1kmメッシュデータにおけるメッシュIDの座標を示すattributeデータがcsv形式で公開されていますが、Tableauでは位置情報データとして読み込むことができないので、「[政府統計の総合窓口 e-Stat] (https://www.e-stat.go.jp/)」から別途メッシュデータをダウンロードします。
地図で見る統計(統計GIS)の [境界データダウンロード]( https://www.e-stat.go.jp/gis/statmap-search?type=2)にアクセスし、「3次メッシュ（1kmメッシュ）」＞「世界測地系緯度経度・Shapefile」を選択、「都道府県で絞り込み」から「13 東京都」でデータを絞り込みます。
今回は以下の範囲に絞ってデータを可視化していくので、最後尾の「M5339」データをダウンロードしてください。ダウンロードしたzipファイルを解凍する必要はありません。
（メッシュ範囲とコードの対応については[こちら]( chrome-extension://efaidnbmnnnibpcajpcglclefindmkaj/viewer.html?pdfurl=https%3A%2F%2Fwww.e-stat.go.jp%2Fpdf%2Fgis%2Fprimary_mesh_jouhou.pdf&clen=1296605&chunk=true)から確認できます。）
![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1457643/4389dfa4-f41d-5a6e-d481-ecc9b8e0c92a.png)
![3.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1457643/0c671bbf-1459-d69f-ff8e-cc89a357afd6.png)

## メッシュデータ投入
データが準備できたら、Tableauにデータを取り込みます。
Tableau Desktopを起動し、「接続」ペインから「空間ファイル」を選択し、先ほどe-Statからダウンロードしたメッシュデータを取り込みます。
![4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1457643/facbf519-6649-5c99-ab69-fb12167cd5a2.png)
![5.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1457643/db52168d-db27-6a29-0a5c-37fa87e0c1db.png)
![6.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1457643/9218bd6c-3320-2682-60ca-aed96d84a2be.png)
ここで、取り込んだメッシュデータを見てみます。
ワークシートに移動し、左ペインのデータから経度（生成）、緯度（生成）、ジオメトリを列、行、「マーク」カードの「詳細」にそれぞれ移動します。
![7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1457643/ba7dc6db-8aad-58d9-0aae-6b99297c2153.png)
対象の範囲が1km四方に区切られていることがわかります。
（背景の地図はTableau上部の「マップ」メニューから「バックグラウンドマップ」＞「ストリート」を選択して見やすくしています。）
このデータにG空間情報センターからダウンロードしてきた滞在数データを結合して可視化します。
## 滞在数データ投入
「データソース」シートに戻り、「接続」ペインの「追加」を選択します。「接続の追加」ペインが立ち上がるので、「テキストファイル」を選択し、G空間情報センターからダウンロードした滞在数データを取り込んでください。
![8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1457643/7cdfe634-f946-a309-3b17-e1e1f037ffb1.png)
![9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1457643/e4bd6208-64e0-5af4-90dc-c1add4112b41.png)
![10.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1457643/130c2566-1bed-7d6c-5b30-f0bcec52d609.png)
取り込んだ滞在数データを右側のテーブルエリアにドラッグ&ドロップし、メッシュデータと結合します。
![11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1457643/88dd4178-58db-03de-426d-8cb30755923e.png)
結合キーとしてメッシュデータの「Key Code」フィールドと滞在数データの「Mesh1Kmid」フィールドを利用しますが、フィールドの型が異なっておりそのまま結合することができないので、「Key Code」フィールドを数値に変換した値を指定します。
「リレーションシップの編集」画面でメッシュデータ側の「関係の計算を作成」を選択し、起動した画面で以下の式を入力後、OKを押してください。

```
INT([Key Code])
```
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1457643/7cf92d45-62b4-8616-e30c-ca733d0af2a0.png"width=60%>
![13.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1457643/e4a10a7c-989c-e694-22e6-a321eeecb8f4.png)
滞在数データ側ではそのまま「Mesh1Kmid」フィールドを指定して画面を閉じればデータの結合は完了です。
![14.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1457643/bbf335f4-f0f9-44d4-e0d3-f9e7d04bc60d.png)

## 論理フィールドの作成
滞在数データのDayflagフィールドとTimezoneフィールドには数値が入っていますが、何を示しているかが直感的に分かりにくいため、以下のように変換した論理フィールドを作成します。
・Dayflag_logフィールド　0:休日 1:平日 2:全日
・Timezone_logフィールド　0:昼 1:深夜 3:終日
ワークシートに移動し、左ペイン上部の▼から、「計算フィールドの作成」を選択します。
![15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1457643/8338b5e9-a53e-e9cc-fdaa-80dfdeb87185.png)
計算フィールドに「Dayflag_log」と名前を付け、以下の関数を入力し、OKを押してください。

```
CASE [Dayflag]
WHEN 0
THEN "休日"
WHEN 1
THEN "平日"
WHEN 2
THEN "全日"
END
```
![16.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1457643/e97a4c8b-6881-e422-8698-0730828020df.png)
同様の手順でTimezone_logフィールドを作成します。

## 滞在数データの可視化
それでは滞在数データを可視化してみましょう。
今回は「平日」「昼」のデータに絞って表示させます。
「フィルター」カードに先ほど作成したDayflag_logフィールドとTimezone_logフィールドをドラッグ&ドロップし、それぞれ「平日」「昼」でフィルターしてください。
次にMesh1Kmidフィールド、Populationフィールドを「マーク」カードの「詳細」、「色」にそれぞれドラッグ&ドロップします。
これで、メッシュごとの滞在人口が塗分けされるようになりました。
![17.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1457643/f727fac8-8eb9-d0a7-1925-b946d9334b64.png)
後は、画面右の「色の編集」で塗分ける範囲などを調節すれば完成です。
![18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1457643/41c072a2-3329-b9f1-2a6c-9b964b981cf5.png)
![19.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1457643/c12b061d-249f-94b1-1d37-5b83d9d6a540.png)
![20.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1457643/387fe0ff-71ab-9303-801e-6bb2baf0442c.png)

## まとめ
今回はTableauを用いて、滞在データを可視化してみました。
Tableauでは他にも様々なグラフの作成や、分析機能による予測線の追加が可能ですので、是非いろいろなデータを可視化してみてください。

## おまけ
滞在数データは月ごとにCSVファイルが分かれていますが、それらをすべて結合して取り込むと、月単位で滞在数が変化する様子を可視化することができます。
![月次データ.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1457643/ada18012-7ab4-a3de-c977-a905731b2ba9.gif)
## 宣伝
私が所属するモビリティソリューションデザインチームでは、**モビリティ（ここでは移動手段全般）に関するサービスを考えたり、アプリを構築したり**しながら、いわゆる**「MaaS」**に取り組んでおります。
本Qiitaはモビリティソリューションデザインチームのメンバーで運営しており、「MaaS」に取り組む中で現在活用している、もしくは活用する予定の技術やサービスやとりあえず発信したいことなどなど、幅広く執筆しています。
メンバーごとに違った内容を発信していきますので、お楽しみに！

また、「MaaS」について詳しく知りたい方は、チームメンバーの吉田がnoteにて記事を掲載しておりますので、ぜひそちらをご覧ください。
[「MaaSとは」でたどり着いて欲しい記事　（1/3 前編）](https://note.com/ppt_msdg_maas/n/naae427dbc37c)
[「MaaSとは」でたどり着いて欲しい記事　（2/3 中編）](https://note.com/ppt_msdg_maas/n/na45c90b2f02f)
[「MaaSとは」でたどり着いて欲しい記事　（3/3 後編）](https://note.com/ppt_msdg_maas/n/n8fd724f7db6c)

最後まで読んでいただき、ありがとうございました。