見出し画像

地理情報データをTableauで可視化してみる

今回はDATA Saberのコミュニティ活動#3ということで、Tableauをもちいてある施設と一定距離内にある施設一覧を可視化するVizを作成した際の流れをまとめたいと思います
今回作成したVizはこちら


データ取得

今回は緯度・経度の情報を含んだデータが欲しかったので、東京都オープンデータカタログから公衆無線LANのアクセスポイントのデータを取得しました

本当は各店舗のPOSデータと地理情報が含まれたデータセットがあれば商圏分析などしてみたかったのですが、オープンデータでそのようなサンプルデータセットを探すことができず、、(あれば教えてください)

地図上で可視化

つくりたいものは、ある地点を選択すると、一定距離内の地点がハイライトされ、その距離を半径とした円が表示されるものです
いろいろ調べてみると、Taleauの標準の関数でそれが実現できるみたいです
以下今回使用した関数一覧とドキュメントです
(今回はジオメトリが点データである場合)

MAKEPOINT(緯度, 経度) -> ジオメトリ
緯度経度情報を入力として、地図上での座標点データに変換
BUFFER(ジオメトリ, 半径, 単位)
ジオメトリ中心し定義した半径の円形のオブジェクトに変換
DISTANCE(ジオメトリ、ジオメトリ、単位)
2地点間の距離に変換

今回は、MAKEPOINT関数を用いて緯度・経度を点データへと変換、BUFFER関数を用いて円の表示、DISTANCE関数を用いて点どうしの距離を計算しました

パラメータアクション

今回ビジュアライズするのに必要な距離は選択したある点とそれ以外の点との距離です。すべての点どうしの距離を計算するとO(n^2)の計算になり無駄な計算量が増えます
選択した点の座標とすべての点の座標をDISTANCE関数に入れることができればO(n)で済むということになります
その際につかえる機能がパラメータアクションです

パラメーターアクション

選択したある点の情報をパラメータに入れる流れを以下に記載します

  1. パラメーターの作成

    1. 緯度・経度それぞれについて選択した点の情報を格納するパラメータを作成します

  2. アクションの作成

    1. アクションからパラメータの変更を選択

    2. ターゲットパラメータ・ソースフィールドに適切なものを選択(ターゲットパラメーターが格納先、ソースフィールドが点を選択した際に格納する情報元になります)

パラメータの作成(緯度の分)
アクションの作成(緯度の分)

これでパラメーターに格納されている緯度・経度が、選択された点で動的に変更されるようになりました
あとはこのパラメーターを利用してBUFFER関数、DISTANCE関数を作成していきます

BUFFER(MAKEPOINT([選択緯度],[選択経度]),[距離],"m")
これで地図上である地点を選択した際に、その地点から一定距離の半径の円が表示されるようになります([距離]は円の半径をパラメータで選択できるようにしたもの)

DISTANCE(MAKEPOINT([選択緯度],[選択経度]),[地点],"m")
これで地図上である地点を選択した際に、その地点とすべての地点との距離が計算されるようになります([地点]はMAKEPOINTで作成したもの)
最後にこれで計算された距離が、[距離]より小さければハイライトされるように計算式でフラグをつけました

出来上がったもの

あるLANスポット周りのほかのLANスポットの可視化

オレンジが定義した距離内のLANスポットになります、薄オレンジの円が定義した距離の半径の円です
パラメータで距離の大きさを変更できるようにし、地図の右側には距離内のLANスポットの名称と個数を表示させるものを付けました
理想としてたものはできたかなと思います
(店舗のデータなどがあれば売り上げ比較などをつけて示唆だしにつながるかなと思いますが、このデータでは「だから!?」という感じになりました笑 サンプルデータ求)

おわりに

今回は地理データを利用した可視化をしてみました
過去の記事などを見ていると、緯度経度のデータから距離の計算をする関数が昔はなかったために自作の計算式で実装していたり、BUFFER関数にあたるものがなかったのか点群で円を表現していたりと、先人の方々の工夫を感じつつ今の便利さを実感しました
Tableauのエンジニアには感謝しかないですね

次回はタブロー特化型ChatGPTを作成したいと思います

#DATASaber #GIS #Tableau

この記事が気に入ったらサポートをしてみませんか?