![見出し画像](https://assets.st-note.com/production/uploads/images/91642979/rectangle_large_type_2_859122adf886a299d12f2a7cd02dc3b2.png?width=800)
【Tableau】空間データを使いこなし、マップ作成を極める
こんにちは!SMKT事業部noteをお読みいただきありがとうございます。
今回の記事は、BI大好きな中嶋が担当します。
今回はTableau Desktopでビジュアライズをする際の、空間データの表示方法のさまざまなパターンをご紹介します!
空間データを使って地図上に落とし込んでわかりやすいビューを作りたい!という場面があっても、
・ジオジェイソンってなんだ?
・シェープファイル?
・作るのにGIS使うの?そもそもGISって?
とわからないこと尽くしで、結局諦めてしまうことはありませんか?
本記事では、空間データについての基礎的な知識や、さまざま空間データの表示方法やCSVなどのテキストファイルのみで表示する方法を紹介します!
空間データを使いこなしたい!
そんな想いを持ってる方に、この記事をお読みいただきたいです!
1.空間データとは?
Tableauで空間データを使用してビューを作りたい!といっても、そもそも空間データが何かを理解してないとゴールがイメージしにくいですよね!
なので、まずはざっくり空間データについて説明していきたいと思います。
1.1 空間データについて
空間データとは、国土地理院によると
「空間上の特定の地点又は区域の位置を示す情報(位置情報)とそれに関連付けられた様々な事象に関する情報、もしくは位置情報のみからなる情報をいう。」とあります。
ちょっとピンとこない言い回しになっていますが、要するにモノの位置情報がついたデータのことです!
例としては
国勢調査データや気象データ、位置情報やSNSデータなどがあり、従来のビジネスデータと組み合わせて分析可視化することで価値を発揮します。
例えば人口分布をみる際に、「○○市10万人、△△市8万人、□□市5万人…」といった情報の羅列だけでは万人が明確なイメージを持つことは難しいです。
そこで、地図上の実際の位置に数字を落とし込むことで、視覚的にわかりやすくすることが可能になります!
下図右の市区町村単位のデータが空間データです。
![](https://assets.st-note.com/img/1668995844011-1U4FPd6ZGE.png?width=800)
1.2 空間データの種類
空間データの拡張子は「.shp(シェープ)」「.geojson(ジオジェイソン)」「.kml(ケイエムエル)」などがあります。
「シェープファイル形式」はもっとも一般的な形式で、国道交通省でもこの形式で行政区域や道路網などのさまざまな情報を公開しています。
「ジオジェイソン(GeoJson)形式」は地理空間情報のついたJSONファイルのことです。地理空間データを扱ったことがない人でもJSON形式のため自分で作成しやすく、自治体等ではこの形式でデータを公開しているところも多いです。
「KML形式」はGoogle Earthで使用されているファイルです。KMLはXML言語なので、適当なエディターがあれば編集することができ、Google MapやGoogle Earthでも編集や閲覧を行うことができます。
1.3 空間データの入手方法
空間データの入手方法としては、
・オープンデータをダウンロードする
・自分で作る
の2パターンあります!
都道府県や市区町村といった行政区域や、道路網やバス停留所などの交通情報、公共施設の位置情報などを使用する場合はオープンデータを利用しましょう。
例として、以下のサイトからダウンロードすることができます。
■国土数値情報ダウンロードサービス
また、その他にどのようなデータがあるかは以下のサイトから検索することも可能です。
■G空間情報センター
一から自分で作りたい場合や、既存データを編集したい場合はGIS(Geographic Information System)ツールを使用します。
GISツールにはArcGIS等の有償のものや、QGISといった無償のものがあり、どちらも地図上にデータを表示、編集することができます。
以上、ここでは空間データについての基礎的な情報を紹介しました!
2.Tableauで空間データを表示する方法
Tableau Desktopで実際に空間データを表示させるにはさまざまなアプローチがあります。
使用するデータや、分析目的、ダッシュボードの構成に応じて選択しましょう!
2.1 作成およびダウンロードした空間ファイルを表示
まずはもっとも一般的な表示方法である、GISで作成したデータや、ダウンロードしたオープンデータを使用し、直接表示させる方法です。
シェープファイルやGeoJsonファイルをTableauで読み込み、「ジオメトリ」をダブルクリックすると地図上に表示されます。あとは属性を色やラベル、フィルタで調整します。
![](https://assets.st-note.com/img/1668996148863-fbSOvcVkyx.png?width=800)
2.2 地理的役割でデータ形式を変換
次にこれも割と使用頻度の高い、Tableauのプリセット機能を使用する方法です。例として、都道府県を地図上に表示します。
まず都道府県名のリスト(Pref)を用意します。
![](https://assets.st-note.com/img/1668996191188-HseAI6H0go.png)
次にTableauでリストを読み込み、Prefフィールドのデータ形式を「地理的役割」から「都道府県/州」で空間データに変換します。
![](https://assets.st-note.com/img/1668996211734-aR17jcK6LD.png)
変換したPrefフィールドをダブルクリックすることで地図上に表示されます。
あとは属性をラベルや色で調整します。
また、表示形式を「マップ」にすると都道府県の形で表示されますが、「円」や「四角」などのオブジェクトを選択すると、各都道府県の県庁所在地にオブジェクトが表示されます。
![](https://assets.st-note.com/img/1668996230759-O29pWcBJCI.png?width=800)
![](https://assets.st-note.com/img/1668996240541-xwaWfNx6rV.png?width=800)
2.3 その他の表示方法
シェープファイルやGeoJsonファイルなどの空間データがなく、都道府県や市区町村などのTableauのプリセット以外の空間データを表示させたい場合は以下の方法を使用します。
基本的に対象地点の座標データが記載されているテキストファイルのみで表示させることができます。
① 緯度経度で表示
データ上にある緯度経度といった座標データを、ディメンションとして読み込むことで表示させることができます。
② 空間関数を使用
データ上にある緯度経度といった座標データを、Tableauにある「MAKEPOINT」や「MAKELINE」などの空間関数を使用して表示します。
③ WKT形式で読み込む
WKTという既定の形式を座標データを用いて作成し、Tableau上で空間データに変換することで表示させることができます。
以上、ここではTableauでの空間データの表示方法を紹介しました!
一般的な表示方法だけでなく、最後の「その他の表示方法」を使いこなすことで、データの形やツールに縛られず、あらゆる場面での対応が可能となります。
次からは、「その他の表示方法」で用いるテキストデータを使用して、表示されるオブジェクトの形である点や線、面ごとに具体的な手法を紹介します!
3.テキストデータを使用して点データを表示する方法
座標データを使用して点データを表示する方法を紹介していきます!
サンプルデータとして、以下の座標情報を使用します。
![](https://assets.st-note.com/img/1668996292677-Q3kHikGnhp.png?width=800)
① 緯度経度で表示
緯度経度のフィールドをディメンションとして行/列に追加して表示させます。
マークは円などのオブジェクトやマップなどの地理情報を選択します。
![](https://assets.st-note.com/img/1668996317741-o7578au3Bo.png?width=800)
② 空間関数を使用
Tableauの空間関数であるMAKEPOINTを使用して、空間情報を作成します。
![](https://assets.st-note.com/img/1668996337898-7JpGw8TEOY.png?width=800)
作成した空間フィールドをダブルクリックすることで地図上に点が表示されます。
![](https://assets.st-note.com/img/1668996376584-vLW6yjuGLd.png?width=800)
③ WKT形式で読み込む
WKT形式とは、Well-known textの略称で、地図上に表現させるマークアップ言語です。
点データを表示させるWKTは以下の通りです。
#lon : 経度、lat : 緯度
#シングルポイント(1属性に対し1ポイントの表示)
POINT (lon lat)
#マルチポイント(1属性に対し複数ポイントの表示)
MULTIPOINT ((lon_1 lat_1), (lon_2 lat_2), (lon_3 lat_3), (lon_4 lat_4))
そして、サンプルデータにWKT情報を追加します。
![](https://assets.st-note.com/img/1668996406698-5Tl9mIAedn.png?width=800)
作成したデータを読み込み、データ形式を「空間」に変更し、そのフィールドをダブルクリックすることで、地図上に点が表示されます。
![](https://assets.st-note.com/img/1668996417006-Dj1xDjZ7XU.png)
![](https://assets.st-note.com/img/1668996425987-y5D6SsH0I4.png?width=800)
以上、点データの表示方法でした!
4.テキストデータを使用して線データを表示する方法
座標データを使用して線データを表示する方法を紹介していきます!
サンプルデータとして、点データと同じく以下の座標情報を使用します。
![](https://assets.st-note.com/img/1668996495772-UgAA4IYEGV.png?width=800)
① 緯度経度で表示
線データで表示するために、まずはデータを少し編集します。
この方法は、点データを緯度経度で表示させ、その点を順番に線でつないでいく仕組みになっています。
なので、点の順番(Group_Seq)と、最後に点の初めにつながるようにグループ内の起点を終点として追加します(着色部)。
![](https://assets.st-note.com/img/1668996512785-z1aZAFZnaB.png?width=800)
データを読み込み、緯度経度のフィールドをディメンションとして行/列に追加して表示させます。
そしてマーク内の表示方法を「線」に変更し、Group_Seqを「パス」に設定することで、地図上に線が表示されます。
![](https://assets.st-note.com/img/1668996583831-sKdYPMt7Vt.png?width=800)
② 空間関数を使用
こちらもデータを少し編集します。
この方法は、線単位で起点と終点の座標を点で表示させ、その2点をつなぐことで線とする仕組みです。
なので、点の順番(Group_Seq)にそって、次の座標を追加します(longitude_2、latitude_2)。
また、グループ内での最後の線の終点座標は、グループ内最初の点の座標を対象とします。
![](https://assets.st-note.com/img/1668996641605-XsyCkG8CZf.png?width=800)
データを読み込み、Tableauの空間関数であるMAKEPOINTおよびMAKELINEを使用して、空間情報を作成します。
![](https://assets.st-note.com/img/1668996652665-ADHO0GzEHB.png?width=800)
作成した空間フィールドをダブルクリックすることで地図上に線が表示されます。
![](https://assets.st-note.com/img/1668996664382-7OFIOeqt99.png?width=800)
③ WKT形式で読み込む
線データを表示させるWKTは以下の通りです。
#lon : 経度、lat : 緯度
#シングルライン(1属性に対し1ラインの表示)
LINESTRING (lon_1 lat_1, lon_2 lat_2, lon_3 lat_3)
#マルチライン(1属性に対し複数ラインの表示)
MULTILINESTRING ((lon_1 lat_1, lon_2 lat_2, lon_3 lat_3),(lon_4 lat_4, lon_5 lat_5, lon_6 lat_6))
そして、線ごとに起点と終点の座標を用いて作成したWKT情報を追加します。
![](https://assets.st-note.com/img/1668996817446-BlpUgqO1Re.png?width=800)
作成したデータを読み込み、データ形式を「空間」に変更し、そのフィールドをダブルクリックすることで、地図上に線が表示されます。
![](https://assets.st-note.com/img/1668996827612-SIwzRwwBWH.png)
![](https://assets.st-note.com/img/1668996834474-IRNAdlXB5l.png?width=800)
以上、点データの表示方法でした!
ちなみに、座標のパスでの線やWKT形式の線は直線なのに対し、Tableauの空間関数を使用した線は地球の球体を加味した曲線になっていますので、超長距離を対象とする場合は空間関数の使用をおすすめします!
5.テキストデータを使用して面データを表示する方法
座標データを使用して面データを表示する方法を紹介していきます!
サンプルデータとして、点データや線データと同じ座標情報を使用します。
① 緯度経度で表示
面データで表示するためのデータは、線データ用のデータと同じです。
この方法は、点データを緯度経度で表示させ、その点を順番に線でつないでいき、その中を塗りつぶすことで面とする仕組みになっています。
面用のデータでは線と違い、グループ内での最後の線の終点座標を追加する必要はありません。
これは表示方法の設定「多角形」では起点と終点は自動的に補完されて繋がれるためです。
![](https://assets.st-note.com/img/1668996917702-a0TdMG9XGf.png?width=800)
データを読み込み、緯度経度のフィールドをディメンションとして行/列に追加して表示させます。
マーク内の表示方法を「多角形」に変更し、Group_Seqを「パス」に設定することで、地図上に面が表示されます。
![](https://assets.st-note.com/img/1668996947384-NCRmFDHBxR.png?width=800)
② 空間関数を使用
この方法は、「緯度経度で表示」と基本的には同じです。
違いは、対象とする点をMAKEPOINTでジオメトリ化する事のみです。
![](https://assets.st-note.com/img/1668996957353-YBIMAjny9G.png?width=800)
パフォーマンスの観点でも大きな違いはありませんが、ダッシュボードの可読性やカスタマイズ性で考えると、MAKEPOINTを使用して、一度ジオメトリ化して整理しておいた方が無難です。
③ WKT形式で読み込む
面データを表示させるWKTは以下の通りです。
#lon : 経度、lat : 緯度
#シングルポリゴン(1属性に対し1ポリゴンの表示)
POLYGON ((lon_1 lat_1, lon_2 lat_2, lon_3 lat_3))
#マルチポリゴン(1属性に対し複数ポリゴンの表示)
MULTIPOLYGON (((lon_1 lat_1, lon_2 lat_2, lon_3 lat_3)),((lon_4 lat_4, lon_5 lat_5, lon_6 lat_6)))
そして、面ごとに地点座標を順番に使用して作成したWKT情報を追加します。
![](https://assets.st-note.com/img/1668996981960-OEtifi1JAX.png?width=800)
作成したデータを読み込み、データ形式を「空間」に変更し、そのフィールドをダブルクリックすることで、地図上に面が表示されます。
![](https://assets.st-note.com/img/1668996993469-djXFkKeUgI.png)
![](https://assets.st-note.com/img/1668997002203-MRsmtQmiTq.png?width=800)
また、ここまでの方法では基本的な仕組みとして、座標間をつないだ線の中を塗りつぶすことで面として表示してきました。
この例でいうと、Group2の面はGroup1と重複していることになります。
Groupごとに面を表示させるとこのような形になります!
![](https://assets.st-note.com/img/1668997011009-z8KwMrlFkj.png?width=800)
ここで、Group1の面をGroup2でくりぬいた形、いわゆるドーナツ形にするためにはWKTで対応可能です。
以下のようにWKTを書き換えます。
#lon : 経度、#lat : 緯度
POLYGON ((lon_1 lat_1, lon_2 lat_2, lon_3 lat_3),(lon_4 lat_4, lon_5 lat_5, lon_6 lat_6))
面ごとに地点座標を順番に使用して作成し、くりぬく内部も同様にWKT情報を追加します。
![](https://assets.st-note.com/img/1668997078066-PM7HF3jQkI.png?width=800)
作成したデータを読み込み、データ形式を「空間」に変更し、そのフィールドをダブルクリックすることで、地図上に面が表示されます。
![](https://assets.st-note.com/img/1668997087371-JZfouJccOW.png?width=800)
以上、面データの表示方法でした!
まとめ
今回は、空間データの基礎情報やTableauでの表示方法について紹介しました!
相手に伝えるコミュニケーションの基本として「5W1H」があります。
5W1HとはWho(だれが)、When(いつ)、Where(どこで)、What(なにを)、Why(なぜ)、How(どのように)を指す言葉で、分析を行う際にも同様に意識します。
空間データを使いこなし、地図上に可視化できるようになることで、「どこで」をより明確に表現することができます。
ダッシュボードやビジュアライズの選択肢を増やす意味でも、ぜひぜひ空間データを使ってみてください!
以上、最後までご覧いただきありがとうございました!
空間データを掘り下げていくと、空間同士の結合やマージ、ユニオン、面積計算、座標系の差異、、、とまだまだ奥が深いので、ぜひご興味を持っていただき、第一歩を踏み出すきっかけになれば幸いです!
●●●
SMKT事業部では、データアナリスト・データエンジニアを募集しています。是非こちらもご覧ください。
▽その他募集職種こちらから▽
●●●
●●●
✉ サービスに関するお問い合わせ ✉
パーソルプロセス&テクノロジー SMKT事業部
smkt_markegr_note@persol-pt.co.jp