見出し画像

[Tips]自分で作成した空間データをTableauで表示させる[DATA Saber挑戦 #Week4]

DATA Saber BridgeプロジェクトにApprenticeとして参加しています。
週一note更新目指します。

はじめに

以前Tableau Publicに投稿したViz「ズワイガニの漁獲量推移」で、右上の海域マップのデータは自分で作成しました。その作成方法をご紹介します。

ズワイガニの漁獲量推移 #DATASaberBridge
この部分の作成方法を紹介

大まかな手順

  1. QGISのインストール

  2. QGISでレイヤー(ポリゴンデータ)を作成

  3. QGISからシェープファイルやGeoJSONファイルなど、空間データ形式でエクスポート

  4. TableauにシェープファイルやGeoJSONファイルをインポート

使用したソフトウェア

  • Tableau Desktop 2022.3(Public Editionでも可)

  • QGIS Desktop 3.16.8
    ※OSSで、無料です。

注意事項

私もQGISのプロではないので、より効率的に空間データを作成する方法もあるかと思います。

1.QGISのインストール

QGISのインストーラーのダウンロードは、下記公式サイトから。

インストール手順については、こちらの記事が参考になります。
詳細は割愛。

2.QGISでレイヤー(ポリゴンデータ)を作成

ひとまずQGIS Desktopを起動します。

QGISの初期画面はこのような感じ

背景の地図を表示させる

ウィンドウ左側の「ブラウザ」内の「XYZ Tiles」から「OpenStreetMap」を選択します。
こうすることで、ウィンドウ左下の「レイヤ」内に「OpenStreetMap」レイヤが生成され、OpenStreetMapを画面に表示できます。
背景に地図がないと作業しにくいので、基本は表示させたまま作業を進めます。

左側の「ブラウザ」内の「XYZ Tiles」から「OpenStreetMap」を選択した
初期状態だと、おそらくXYZ Tilesの中に他の地図の選択肢は設定されていないかと思われる

レイヤーを作成する

ポリゴンデータを作成するためのレイヤを作成します。
ウィンドウ上部のメニューツールバー内の レイヤ(L)>レイヤを作成>新規シェープファイルレイヤ を選択し、新規レイヤを作成します。

メニューツールバー内の レイヤ(L)>レイヤを作成>新規シェープファイルレイヤ を選択する

レイヤの設定画面が出てくるので、以下のように設定していきます。

  • ファイル名:レイヤをファイルとして保存する必要があるので、保存場所を指定します。

  • ファイルの文字コード:UTF-8にしておけば無難。

  • ジオメトリタイプ:今回はポリゴン(いわゆる多角形)を作成するので、「ポリゴン(Polygon)」を指定します。

  • 座標系(EPSG:4326 - WGS84のようなもの):ひとまず「EPSG:4326 - WGS84」にしておきます。
    ※座標系とは何ぞや?という方は以下の記事をどうぞ。https://note.com/rescuenow_hr/n/n46ac5c505a5a

ファイル名などは記入・選択した

空間データには、ポリゴンデータ(ジオメトリ)だけでなく、他のフィールド(列)も作成することができます。
ここで名称などを空間データに設定しておけば、Tableauでデータを利用する際に扱いやすくなります。

今回はID(整数)と名称(文字列)を作成する

フィールドが作成出来たら、ウィンドウ下部のOKを選択します。

OKを選択

ウィンドウ左下の「レイヤ」内に、先ほど作成したレイヤが表示されていれば成功です。

「海域」レイヤが作成された

ポリゴンを作成する

ここからは実際にポリゴンを作成していきます。
ウィンドウ上部のツールバーの中の「編集モード切替」(黄色いペンのマーク)を選択し、編集モードに入ります。

黄色いペンのマークが編集モード切替ボタン

編集モードに入ることで、ポリゴンを作成できるようになります。
メニューツールバーの 編集(E)>長方形を追加>領域範囲の長方形を追加(A) を選択します。

メニューツールバーの 編集(E)>長方形を追加>領域範囲の長方形を追加(A) を選択する

すると、地図のエリア内で長方形を作成できるようになります。

始点で左クリックをして、範囲を決めてから終点(対角)で右クリックする
ドラッグアンドドロップではないので注意

範囲を指定すると、属性情報を入力できるウィンドウが出ます。
ここで、先ほどレイヤ作成時に追加したフィールド(列)の値を設定できます。

各フィールドの値を入力していく

これで、先ほど範囲指定した長方形がポリゴンとして作成できました。

レイヤ内に先ほどの長方形が作成された

先ほど作成した長方形の頂点をいじりたい場合、ツールバー内の「頂点ツール」を選択します。

ツールバー内の「頂点ツール」を選択する
デフォルトであれば、編集モード切替の少し右にある

頂点ツールを使うことで、頂点の場所を変える、頂点を増やすといったことが可能となります。
さらに、ウィンドウ左下に表示される「頂点エディタ」では、ポリゴンの頂点を数値(緯度・経度)指定することができます。

頂点ツールを選択後、対象のポリゴン上で右クリックすると、頂点エディタが表示される
緯度(y)と経度(x)は直接数値入力できる
辺の真ん中にポインタを合わせてクリックすると、頂点を増やすこと可能

同様の手順で、同一レイヤ内に他のポリゴンデータも作成することができます。

3.QGISからシェープファイルやGeoJSONファイルなど、空間データ形式でエクスポート

シェープファイルの保存

編集モードを抜けると、シェープファイルを保存することができます。

「編集モード切替」を選択すると、変更を保存するか聞かれる
「保存」を選択する

(参考)GeoJSON形式で保存する場合は

シェープファイル以外の形式で空間データをエクスポートすることもできます。

エクスポートしたいレイヤで右クリックし、エクスポート>地物の保存 を選択する
ファイル名を指定して保存する

これで、QGISでの空間データ作成は完了です。

こんなポリゴンデータを作りました

4.TableauにシェープファイルやGeoJSONファイルをインポート

QGISで作成したシェープファイル(.shp)やGeoJSONファイル(.geojson)をTableauで読み込みます。

「空間ファイル」を選択する
Excelなど他のデータソースと同様に扱うことができる

「ジオメトリ」をダブルクリックすれば、自動でマップが表示されます。

ポリゴンデータは「ジオメトリ」フィールドに格納されている
「ジオメトリ」をダブルクリックすれば、Tableauは勝手にマップ形式で表示してくれる

これで、自身で作成した空間データをTableauで読み込み、表示させることができるようになりました。

補足情報(Tips)

1.空間データと他データソースを結合することができる

空間データも他のデータソースと同様に扱うことができるので、他のマスタ情報と結合したりすることも可能です。

2.マップに日本列島のみ表示させる

大陸の海岸線はいらない、日本列島だけ表示させたい、という場合もあるかと思います。そんな時に使えるTipsです。

1.計算フィールドを作成

"日本" の文字列になるように

2.「日本」フィールドの地理的役割を「国/地域」に設定

フィールド右側の「=Abc」と書かれたアイコンをクリックする

3.「日本」フィールドをマークレイヤーに設定

「日本」フィールドをドラッグアンドドロップすると、新規レイヤ―が作成される
マップ形式にすれば、日本列島が表示される

4.見た目の調整

地図の非表示: マップ(M)>バックグラウンド レイヤー(Y) でバックグラウンドマップレイヤ―のチェックをすべて外す
ズームなどの不許可:マップ(M)>地図のオプション(O)で各チェックを外す
日本列島の選択不許可:マークシェルフ内の「日本」の右側の「▼」をクリックし、「選択項目を無効にする」にチェックを入れる

さっきよりはスッキリしたワークシートになった

さいごに

地図を使ったVizを作ろうにも空間データがなく、どうしようかと思いましたが、無料のGISソフトを使って解決させることができました。
もし自分でポリゴンデータを作りたい方がいらっしゃいましたら、参考にしていただければと思います。


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