Tableau可視化に用いるKMLファイルをAlteryx Designerで作成する #tableau #alteryx

2018.08.20

下記2本のエントリでは「Tableau v2018.2の新機能である『空間情報におけるPolyline(線)やPolygon(面)のレンダリング方法が変わったこと』を紹介」し「その検証データをTableau Prepで作る方法」について紹介していました。

これらのエントリを書いていく過程で、「おっ、後者はAlteryxでも行けるんじゃないか...?」と思い立ち、試してみようかと書いてみたのが当エントリとなります。似たような処理を行う箇所、また別のアプローチとなった箇所がそれぞれありましたのでその違いを踏まえてお読み頂けますと幸いです。

目次

 

利用したデータ

ワークフロー作成に使ったデータは、前述2本目のエントリで用いた以下2つのファイルを活用します。

  • ルート情報(routes.csv)
  • 空港情報(airports.csv)

 

作成したワークフロー

  • そして、Alteryx Designer(v2018.2)を用いて作成したワークフローの全体像は以下となります!やらなければ行けない処理はそこまで多くは無いので全体像としてもシンプルにまとまったかなと思います。

 

ワークフロー作成に関するポイント

ここからは、どの様な点を踏まえてワークフローを作っていったかについてそれぞれのパートに分けて説明して行きます。

 

ルート情報の作成はTableau Prepと同じ流れで

処理の大元となる情報の作成方法についてはTableau Prepで行った内容と同じです。routes.csvの情報をベースとして、出発側(Source)及び到着側(Destination)の空港情報を「空港ID(Airport ID)」をキーにして「Join Tool」で結合させました。結合させた内容はそれぞれ分り易くなるように名称変更を行っています。SourceとDestinationそれぞれの結合を行ってこのパートは終了。

 

計算フィールドに相当する部分(の一部)は関数で代用可能

Tableau Prep版で作成した「Route」に関する部分と「Description」に関する部分も同様に関数を使って文字列を作り上げました。

 

AlteryxではKMLファイルを出力対象として選べる

Tableau Prep版と大きく内容が異なったのがこちらの部分となります。ワークフローの出力過程で「Output Tool」の選択肢を調べてみると、何とそのものズバリの「KMLファイル」への出力が設定出来るではないですか!これを使わない訳には行きません。

ですが設定欄を見てみると、幾つか指定を行う必要がありそうです。

  • Name Field
  • Description Field

上記2つについては、前述の処理過程で作成したものを設定する形で行けそうです。ですがこの

  • Spatial Object Field

については文字情報ではダメで、空間情報の形として情報を準備しておかなければなりません。

 

KMLファイル作成に必要な情報を準備

思案と試行錯誤の結果、作成したパートが以下の内容になります。

今回情報として渡したい部分は、KMLファイルの定義に於ける以下赤線枠の部分となります。任意のポイント(Point)から任意のポイント(Point)への、2点間を結ぶ線(Polyline)を作ってあげれば行けるんじゃないか...という形です。

出発点と到着点の情報をそれぞれ「Create Points Tool」で作成し、

作成したポイント情報をそれぞれ分りやすくリネーム、

準備した2点の空間情報を用いてAlteryxの関数であるST_CreateLine(point1, point2...)を用いてPolyline(線)の空間情報を作成する事が出来ました。(※出力結果を「Spatial Obj」として置くのも必要です)

この部分はツールで行けるかな?と思ったのですが該当する機能は無く、関数で対応した、という形となります。空間情報(Spatial)を扱える関数はこの他にも幾つかあるようなので、この手の情報を処理する場合は重宝しそうですね。

ST_CreateLine(point1, point2...):
指定された点と線をシーケンス内に接続して線(空間オブジェクト)を作成
ST_CreatePoint(x,y):
指定された経度と緯度の座標を含む点(空間オブジェクト)を作成
ST_CreatePolygon(obj1, obj2...):
指定された点と線をシーケンス内に接続してポリゴン(空間オブジェクト)を作成
ST_Cut(object1,object2):
オブジェクト2からオブジェクト1を"切断した"結果(空間オブジェクト)を返す

 

KMLファイルをOutput Tool経由で出力

情報は整いました。後は出力を行うだけです。

実際出力に必要なのは3つのカラムだけとなるので、Select Toolで対象を絞り、

Output Toolの各種設定項目に値を指定すれば出来上がりです。

生成されたKMLファイルの中を除いてみます。以下の様な構成となっていました。(そして情報量が多くなった分、ファイルサイズも大きめになっていました)

kml-output-by-alteyrx.kml

<?xml version="1.0" encoding="utf-8" ?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document id="root_doc">
<Folder><name>kml_output_by_alteyrx</name>
  <Placemark>
        <name>MAG - GKA</name>
        <description>Madang Airport - Goroka Airport</description>
        <Style><LineStyle><color>ff0000ff</color></LineStyle><PolyStyle><fill>0</fill></PolyStyle></Style>
      <LineString><coordinates>145.789001465,-5.20707988739 145.391998291,-6.08168983459</coordinates></LineString>
  </Placemark>
  <Placemark>
        <name>HGU - GKA</name>
        <description>Mount Hagen Kagamuga Airport - Goroka Airport</description>
        <Style><LineStyle><color>ff0000ff</color></LineStyle><PolyStyle><fill>0</fill></PolyStyle></Style>
      <LineString><coordinates>144.296005249023,-5.82678985595703 145.391998291,-6.08168983459</coordinates></LineString>
  </Placemark>
  <Placemark>
        <name>LAE - GKA</name>
        <description>Nadzab Airport - Goroka Airport</description>
        <Style><LineStyle><color>ff0000ff</color></LineStyle><PolyStyle><fill>0</fill></PolyStyle></Style>
      <LineString><coordinates>146.725977,-6.569803 145.391998291,-6.08168983459</coordinates></LineString>
  </Placemark>
  :
  :
</Folder>
</Document></kml>

Tableau Desktop v2018.2でもご覧の様に問題なく取り込み、可視化する事が出来ました!(一通り終わってから気づいたけど重複排除させるの忘れてた...のでこちらは逆に重複レコード分を色で分けて表示させる形にしてみました)

 

まとめ

という訳で、KMLファイルの作成をAlteryxで実践してみた内容のご紹介でした。

KMLファイルとしての出力もAlteryxでカバーリング出来ているという事で、必要な情報さえ用意してあればそこに流し込むだけでよしなに作成してくれる(構成要素タグの生成、ヘッダー&フッター行の結合、ファイル名拡張子指定等の作業が不要となる)のは嬉しいですね。いざこの手のファイルを作成するとなると面倒な部分も出てくると思いますので、Alteryxを使えばお手軽に作成出来るというのは覚えておいて損は無いかもしれません。

Alteryxの導入なら、クラスメソッドにおまかせください

日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。

alteryx_960x400