[Alteryx]スムージングツールを利用してポリゴンを滑らかにしてみた

はじめに

こんにちは。DI部の大高です。

Alteryxの「空間」カテゴリのツールを触っています。今回は「スムージングツール」を利用してポリゴンを滑らかにしてみました。

前回「ポリスプリットツール」を試した際に「ポリビルドツール」でポリゴンを作成したので、同様にポリゴンを作成してそのポリゴンを滑らかにしてみたいと思います。

[Alteryx]ポリスプリットツールを利用してポリゴンを分割してみた | DevelopersIO

前提条件

Alteryx Designerは「Alteryx 非管理者 Designer / Version 2019.1.4.57073」で検証しています。

スムージングツールについて

「スムージングツール」を利用するとポリゴンを滑らかにすることができます。

「スムージングツール」のヘルプページはこちらです。

スムージングツール

ワークフローの説明

「テキスト入力ツール」でサンプルの緯度と経度を入力し、「ポイント作成ツール」で空間オブジェクト(ポイント)に変換します。その後、「ポリビルドツール」でポリゴンに変換しています。

その後、最終的な出力として以下の4パターンを出力しました。

  1. 作成したポリゴンをそのまま「閲覧ツール」で表示
  2. 「スムージングツール」で「スムージング」をして「閲覧ツール」で表示
  3. 「スムージングツール」で「より滑らかなスムージング」をして「閲覧ツール」で表示
  4. 「スムージングツール」で「非常に滑らかなスムージング」をして「閲覧ツール」で表示

「テキスト入力ツール」の設定

「テキスト入力ツール」では、以下のようなサンプル座標を設定しています。

前回「ポリスプリットツール」を試した際のデータとほぼ同じですが、Otherポリゴンを別途追加してIwamotoポリゴンの北東にかなり近づけて配置しました。

「ポイント作成ツール」の設定

「ポイント作成ツール」の設定は以下の通りです。

こちらは前回の設定と全く同じです。

「ポリビルドツール」の設定

「ポリビルドツール」の設定は以下の通りです。

こちらも前回の設定と同じです。

「ポリスプリットツール」の設定

「ポリスプリットツール」の設定は以下の通りです。

空間フィールド

ここにはスムージングをしたいポリゴンの空間オブジェクトを指定します。今回は「ポリビルドツール」で出力されたSpatialObj_Builtを設定しています。

スムージング

スムージングする際の滑らかさをここで指定します。「スムージング」、「より滑らかなスムージング」、「非常に滑らかなスムージング」から選択できます。

今回は3パターン全て試してみます。

最大半径、単位

直線を曲線化する際の最大半径です。曲線は直線の中心から始まるように処理されるのでポリゴンの各辺の大きさに応じて設定すると、良い感じにスムージングできると思います。なお、単位は「キロメートル」と「マイル」から選択できます。今回のポリゴンは一般的なビルの大きさなので、1メートル(0.001キロメートル)に設定してみました。

最大半径のN%をスムージング後に一般化処理する

スムージング後に、追加された角を削除する処理を指しています。後述しますが、ここは分かりづらかったので実際に何パターンか試してみました。

レイヤー全体の整合性を保持

スムージングする際に、複数のオブジェクトで共有されている線分のギャップや重なりを発生しないようにする設定とのことです。これも検証してみたかったのですが、発生条件が分からなかった為、今回は検証していません。

実行結果

このワークフローを実行すると、それぞれ以下のようになります。

1. 作成したポリゴンをそのまま「閲覧ツール」で表示

「ポリビルドツール」で作成したポリゴンを「閲覧ツール」で表示すると、以下のようになっています。

ポリゴンが3つ作成されており、1つ目は2つのポリゴンから成るマルチポリゴン(Hashimoto)、2つ目は穴空きポリゴン(Iwamoto)、3つ目は穴空きポリゴンの北東に非常に近いポリゴン(Other)となっていることが確認できます。これがスムージングする前のポリゴンの状態です。

拡大した地図から、穴空きポリゴン(Iwamoto)の非常に近くに別のポリゴン(Other)が配置されていることが分かると思います。

2. 「スムージングツール」で「スムージング」をして「閲覧ツール」で表示

次に「スムージングツール」で「スムージング」をしたパターンです。

何もしなかったものに比べて角が丸くなって滑らかになっていることが分かります。

3. 「スムージングツール」で「より滑らかなスムージング」をして「閲覧ツール」で表示

次に「スムージングツール」で「より滑らかなスムージング」をしたパターンです。

「スムージング」の時よりも更に滑らかになっている気がします。細かく見ると拡大したOtherポリゴンの南東あたりは、より滑らかになっているようです。

4. 「スムージングツール」で「非常に滑らかなスムージング」をして「閲覧ツール」で表示

最後に「スムージングツール」で「非常に滑らかなスムージング」をしたパターンです。

こちらは拡大したOtherポリゴンを見てもより滑らかになるように処理しようとしたことが推察されます。一方で、穴空きポリゴンの穴が消えてしまったり、角が歪になってしまっています。

これを、設定の「最大半径のN%をスムージング後に一般化処理する」で調整してみます。

初期値は「1%」だったので、まずは「2%」に上げてみました。

穴空きポリゴンの穴は復活しました。一方で、角の歪みは残っているのでもう少し調整します。「3%」に上げてみます。

歪みもとれてよい感じになりました!スムージング後に変な歪みが出てしまう場合には、このパラメータでうまく調整できることが分かりました。

まとめ

以上、「スムージングツール」を利用したポリゴンのスムージングのご紹介でした。

どなたかのお役に立てば幸いです。それでは!

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

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

alteryx_960x400