PrepTableau『カスタマーストーリー』を支えるツール特集2018年08月20日しんや(675)28この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。v2018.2で「空間情報におけるPolyline(線)やPolygon(面)のレンダリング方法が変わった」旨ご紹介する内容となりましたが、検証・確認に使ったKMLファイルについては紹介を割愛していました。Prepを用いる」という手順について、実際に手元で試してみた内容をご紹介したいと思います。手順に倣い、情報を公開している「OpenFlighs」へアクセス。data空港データ(airports)空港のマスタ的な情報を格納しているファイル「airports.dat」をCSVファイル(拡張子:*.csv)として保存します。こちらのファイルについては、ヘッダが存在していません。ページ内にはヘッダに関する情報自体は存在しているので、これを使ってヘッダ行の文字列を作成します。以下の形でヘッダ行を冒頭に追加し、ファイルとして用意しました。Guinea","POM","AYPY",-9.443380355834961,147.22000122070312,146,10,"U","Pacific/Port_Moresby","airport","OurAirports":経路データ(routes)同様に、経路に関する情報を格納している「routes.dat」もCSVファイル(拡張子:*.csv)として保存します。以下の形で先頭に追加しました。Desktopからすると入力データ)となるKMLについては、以下公式情報をご参照ください。Prepで作成して行きます。フロー作成実践KML情報生成のためのデータ準備まずはKMLの情報を作成するために必要となる空港ルート情報を準備します。Prepから開き、入力情報として定義します。source/destinationのベースとなる情報は「routes」側なので、こちらの情報にsource/destinationそれぞれの空港情報を紐付ける形でデータを構成していきます。routes側の「+」印をクリックし「結合の追加」を選択。追加した結合に対し、airportsのデータをドラッグアンドドロップする形で結合スペースに連携。以下の様な形で結合設定を行う事が出来るようになります。結合条件に合致するデータが右側のウインドウに表示されます。内容を確認後、「ステップの追加」を選択。」という文字列を手動で付与します。項目名変更が終わりました。同じ手順で今度はDestination(到着側)のデータを準備します。「結合の追加」を選択。各種処理の色味は「ステップカラーの編集」で任意の色を選択する事が可能です。ID」を選択し、到着側の空港情報を紐付け。」というプレフィックスを各種項目に付与しました。計算フィールドを用いた表示要素の作成これで処理に必要な情報が出来ました。ステップを別途用意し、そのステップで計算フィールドを用いた文字列情報を2つ、作成します。1つ目、「ルート情報」を作成します。「計算フィールドの作成」を選択。準備した項目を用いて以下の様な文字列情報を生成する計算フィールド「Route」を作成します。Placemark」という計算フィールドを作成します。ここで指定した内容はエントリ序盤で解説したKML定義に倣うものとなっています。Placemark」だけですので、他の項目は不要です。Shift押下しながら選択していく事で複数要素を選択可能ですので、別途新しいステップを用意した上でこの項目以外をまとめて選択し、「フィールドの削除」を実施。すると、以下の様な形で不要な項目が全てクリアされました。残った情報の詳細を確認してみます。並び替えを行ってみると、一部データについては同じ内容が複数件あるようです。これは重複排除しておきたいところですね。「集計処理を追加」して項目のグルーピングを行う事でこの重複を排除する事が出来ます。処理後の内容を確認してみると重複が見られる件数のデータが無くなった事を確認出来ました。主だった部分の処理はここまでで粗方出来ているのですが、KMLのファイルとしては不完全です。元エントリではユニオンを使って、足りない部分となる「KMLファイルのヘッダー部分とフッター部分」を連結させていますので当エントリでもその手順に倣って実践してみたいと思います。xmlns="http://www.opengis.net/kml/2.2">そしてフッターはこちらの内容を使います。</kml>ヘッダーファイルを入力情報として定義。空白文字を含む項目名にしていたので、区切り文字はそこを誤認しないような設定に変更しました。用意したファイルに対し、前述までの処理を終えた要素をドラッグアンドドロップで「ユニオン」に連携。以下の様な形で、情報が連結されている事が客員出来ました。同じ手順でフッター情報も連携します。Placemarkで作成した中身の部分」+「フッター部分」という順序で連結させたかったのですが、上手く設定する事が出来ませんでした。Names」という項目も不要ですので、新規ステップを用意した上で「フィールドの削除」を行います。ファイル出力ここまで出来たら後はこれをファイル出力すればオッケーです。「出力の追加」を選択し、CSV形式でファイルを出力します。csvのみ選択可能となっているようです...)フローが実行され、程無くして処理が完了し、CSVの出力も確認出来ました。これでこのファイルをそのままTableauで可視化出来るぜ!...と思いきや、幾つかの追加処理を経ないと実際のところは利用出来ませんでした。対応したのは以下2点。前述の通り、ユニオンの処理では現状「順序」を指定出来ないようです。Placemark」という情報も残ったままです。イメージとしてはこんな感じ。xmlns="http://www.opengis.net/kml/2.2">これを、正しい順序となるように加工しました。-77.3197021484375,37.505199432373047</coordinates></LineString></Placemark>"</kml>不要な文字列を除去・変換また、動作検証を進めて行く上で以下2点の問題に直面しました。データ行の先頭と末尾にダブルクオートが含まれているが、これは不要。データ項目の値に一部「&」が含まれるものがあり、これが入っているとデータとして上手く認識してくれない。これはsedを用いて問題無い形に変換処理をかます事で対応。(ヘッダー部分2行の中に含まれるダブルクオートは必要なので、一旦変換掛ける前にこの2行は別途退避の後実行しました)ファイルの拡張子についても、このタイミングでKMLファイルの拡張子である*.kmlに変更しています。Prepを使って任意のデータからKMLファイルを作成する手順についてのご紹介でした。Prepを使って行くことでスムーズなフローを介して生成する事が出来ました。一方で細かい取り回しについては気になる部分もありましたのでその辺りの改善は今後に期待、という感じですね。6,756,612まとめ職人→出張ブロガー(初代)→AWSエンジニア→ビッグデータ系エンジニアDevelopers.IO全投稿のうち1,000本を書いています。リモート】クラスメソッドの会社説明会を開催しますクラスメソッドでは、AWS・AI・ビッグデータ・モバイルなどの技術職や営業のメンバーとして一緒にお仕事をする仲間を大募集しています。#cmdevio新型コロナウイルスの感染拡大を受け、本イベントを延期させていただくことになりました(開催時期未定)。お申し込みいただいた皆様には大変申し訳ございませんが、何卒ご理解いただけますようよろしくお願いいたします。AWSについてライトに色んな情報交換をしましょう。カフェ店長のオカノです。今日はオフィスに用があるので、通勤ラッシュを避けて出社しました。この子は新メンバーのさめくんです。在宅勤務が推奨されているのでオフィスが閑散としており、すこしさみしそうです。本が出ていたので読んでみたところよかったので紹介させていただきます。使いたいときの注意点を書きました。新井成一64最近Sphinxつかってドキュメントを書いてるのですがなかなかイケています。臼田佳祐295ワークフロー自動化OSSのn8nをAWS環境で建てて検証してみました。非常に期待できるサービスです。Fargateの勉強をしています。使ってみたい方は参考にしてください。洋介255SnowflakeがAWSの東京リージョン上で稼働するようになりました。データを日本に置けます。芳賀健232こんにちは!猫様の忠実なるしもべ、芳賀健です。Tokyoで開催されました。カフェ店長のオカノです。クラスメソッド株式会社が運営するAWS・iOS・HTML5に関する技術情報サイトです。