その他お問い合わせ先

lodestar@truestar.co.jp

運営会社

株式会社truestar
truestar activation株式会社

Tableau * Alteryx でポリゴンとポイントを同時にマッピングする

今回は前回の投稿でご案内したとおり、行政区画ポリゴンとバス停を同時にTableau上でマッピングする方法を共有します。

Tableauではポリゴンとポイントを同一地図上に配置する場合、若干工夫が必要です。 簡単に言うと、現時点では複数の緯度経度フィールドを一つのマップに落とすことができません。 これはポイントデータ同士でも同じです。

例えば、AさんがZ店で買い物をしたとします。この場合、Aさんの住所、Z店の店舗住所が取得可能とすると、一つのトランザクションレコードに『顧客住所緯度及び経度』と『店舗住所緯度及び経度』の二種類の緯度経度フィールドを紐付けることが可能です。

しかし、Tableauでは、同じマップ上に表現できる緯度経度フィールドは一種類の組み合わせのみとなります。 そのため、両者を共存させるには、顧客データと店舗データを縦に積み上げ、統合した緯度経度フィールドを持たせる必要があります。

実際に見ていきましょう。

最初は前回同様、ポリゴンとポイントのマッチングです。今回のモジュールでは分岐したフローの上側がそれに該当します。 ここはあくまでバス停に行政区画を紐付けることが目的です。 人口などはポリゴンデータに持たせれば良いため、今回はチェックを外しています。

分岐したフローの下側はポリゴンデータのTableau化です。 Developers.IOでも過去に取り上げられていた『Visual Analytics Kit for Tableau』の中に現在は[Polygon for Tableau]ツールが加わっており、これを用いると一発で変換されます。

ただ、人口数や世帯数のようなデータが、ポリゴンのポイントの数だけ増殖してしまいます。 集計の際に平均で取り扱うか、今回のモジュールのように1つを残してカットする必要があります。

最後に[Union]でデータを結合し、緯度・経度を1つのフィールドにまとめてデータソースは完成です。

TableauにこのTDEを接続し、ポリゴンとポイントのグラフを、列と行ともに二重軸でつなげで実装完了。(『統合緯度経度』シート)

注意点としては、行政区画のポリゴンデータは『町丁・字等名称』でユニークではないため、マークの詳細に『AlteryxKey』というディメンションを投げ込む必要があります。また、『PointOrder』もディメンションとしてパスに落とさなくてはなりません。

【蛇足】 最初、Alteryxのワークフロー上で『町丁・字等名称』をキーにポリゴンをグルーピングしたのですが、結果的にTableau上ではドーナツの穴の中に存在する区画との重複が生じました。 Tableauではドーナツのように穴の開いたポリゴンデータ(一筆書きできないもの)は現時点では取り扱えないようです。 なお、国勢調査の行政区画ポリゴンはドーナツ型のものは適当に分断されているようで、下手にグルーピングせずにそのまま使えば特に問題は無さそうです。 ご参考までに。

 

T.Fuji

続きを読む Tableau * Alteryx でポリゴンとポイントを同時にマッピングする

ポイントとポリゴンのマッチング

今回はAlteryxを使ってポイントデータをポリゴンに紐付ける方法をまとめます。

ポイントデータをポリゴンに紐付けると言われてもピンと来ない方も多いと思いますが、自社アプリなどで位置情報を取得している場合、これができると分析の幅が広がります。

簡単に言うと、緯度経度情報だけ持っていても、先日の投稿「Tableau * Alteryx でシェープファイルを可視化」でのアウトプットのように、Tableau上ではマップに個々の点としてプロットすることはできたとしても、全く同じ緯度経度でなければ異なる点として扱われます。 そのため、緯度経度を持つレコードに住所の情報などがなければ、特定の地区に何レコード存在するのか集計できません。

GPSによる行動ログデータなどの緯度経度が変化しやすいものは、ある程度の領域でグルーピングした上で移動なのか滞在なのかなどを判別していく必要が生じますので、今回のような処理が役立つものと考えられます。

実際にフローを見ていきましょう。

第一弾として藤沢市のバス停の位置情報を行政区画(町丁目)に紐付ける処理を実装してみます。 ※目的はあくまでもポイントデータとポリゴンデータのマッチングなので、サンプルアウトプットでは行動ログデータを用いていませんが、緯度経度のみのポイントデータをポリゴン(領域)に紐付ける処理であれば全く同じ流れで行うことができます。

バス停のデータは国土数値情報から、行政区画はeStatから国勢調査データを取得しています。

Alteryxでは[Spatial Match]ツールを使って、空間情報をマッチングさせます。 この場合は、まずは藤沢市の町丁目ポリゴンに含まれるバス停を抽出する必要があるため、ポリゴンをTargetとしています。

マッチング処理には複数のパターンがあります。英語ですがAlteryxのヘルプページに図で説明があるのでこれを見るとわかりやすいです。 今回は「contains」が該当します。

このケースでは、ポイントデータ(バス停)がどの領域(町丁目)に含まれているかを知りたいだけなので、Match側のデータのみ使います。

必要なデータを選択してTDEとして吐き出して、モジュールは完成です。

Tableauで可視化するとこんな感じです。

左側のマップについては、バス停のポイントを緯度経度に変換さえできれば、ほぼ同じアウトプットをTableauで実装できますが、実際には国勢調査データでの行政区画名や世帯数、人口数などが紐付いています。そのため、右側のアウトプットのように行政区画単位での集計も可能になっています。

次回は少し手を加えて、行政区画ポリゴンとバス停を同時にTableau上でマッピングする方法を共有したいと思います。

T.Fuji

続きを読む ポイントとポリゴンのマッチング