Alteryxで行う空間分析について解説するシリーズです。
今回はポリゴン加工に関するお話をしていきたいと思います。
ポリゴンを加工する
以前の記事で、空間マッチツールを使って、ポリゴンの重なり合った部分を新たなポリゴンとして作成していました。同様のことは「空間プロセス」ツールでも可能です。
空間プロセスツールは、重なった部分からポリゴンを作成するだけではなく、カット、結合などが可能です。空間プロセスツールのオプションは以下のとおりです。
2つの空間フィールドに対しての処理を選ぶだけです。可能なアクションとしては以下のとおりです。
- オブジェクトを結合する・・・2つの空間フィールドを結合します
- #2から#1を切り取る・・・#2で指定した空間フィールドから#1を切り取ります
- #1から#2を切り取る・・・#1で指定した空間フィールドから#2を切り取ります
- 交差オブジェクトを作成する・・・2つの空間フィールドで重なり合ったポリゴンを作成します
- 逆交差オブジェクトを作成する・・・2つの空間フィールドで重なり合っていない部分のポリゴンを作成します
それぞれの処理結果を見てみましょう。
交差オブジェクトを作成したいような場合は、正直なところ空間マッチした際にそのまま交差オブジェクトまで作った方が早いです。空間プロセスツールは、より細かくポリゴンの加工を行いたいような場合に向いているツールです。
ポリゴンを分解・作成する
空間オブジェクトは基本的にポイント、ライン(線)、ポリゴン(多角形)の三種類しかありません。商圏を作成する際に、円を描いていると思いますが、円に見えるものも実は直線で構成されています。
実際にこれをポイントデータに分割してみましょう。ポリゴンを構成しているポイント情報は、「ポリゴン分割」ツールにて取得することができます。
ポリゴン分割ツールで円をポイントに分割すると以下のようになります。
このように101個のレコードに分割できました。
これを元に戻すには、「ポリビルド」ツールを使います。
ポリビルドツールでは、ビルド方法を選択し、ソースフィールドと順番を示すシーケンスフィールドを指定します。
これにより、元の円に戻りました。例えば半円を作りたいということであれば、一旦円を点に分解し、不要な点を取り除いて再度ポリゴンとして作成する、といったようなことが可能です(とはいえ、自由自在に不要な点を取り除いたり、というのもなかなか骨が折れるケースもあると思います)。
GPSによるルートデータをラインに加工する
別のサンプルとして、GPSによるルートトラッキングを考えてみましょう。みなさんお持ちのスマートフォンにはGPSが内蔵されており位置情報を確認することが可能です。例えばGPS記録ソフトをスマートフォンにインストールすれば、どこを移動したかを記録することができます。このデータをルートデータとしてラインに変換してみましょう。
例えば、以下のようなロギングデータがあるとします。都合により先頭10レコードのみ表示していますが、行番号と緯度経度情報です。
ここからラインにしていくためには、まず「ポイント作成」ツールにて、緯度経度情報を空間オブジェクトに変換する必要があります。
ポイントデータに変換できたら、さらにポリラインを作ってきます。この場合は「ポリビルド」ツールを使います。
設定として、ビルド方法は「シーケンスポリライン」、ソースフィールドはポイントデータを指定し、シーケンスフィールドは行番号を指定しています。
これにより、上の用にラインデータに変換できました。ワークフローとしては以下のように非常にシンプルなものとなります。
マルチポイント/ライン/ポリゴンを個別の空間オブジェクトに分割する
1レコード内に複数のポイントやライン、ポリゴンを含んだ「マルチポイント/マルチライン/マルチポリゴン」というものが存在します。
例えば、マルチポリゴンであれば、以下のようになっています。
このような場合、ポリゴン分割ツールにて個別のポリゴンに分割可能です。
これにより、以下のように領域が分かれているポリゴンが個別に分割されました。
穴が空いているポリゴンの取り扱い
ポリゴンには穴が空いているケースがあります。
この穴を取り除きたい、穴のサイズを変えたい、といった場合は一度ポリゴン分割ツールで穴の部分を別のポリゴンとして分解してから加工を行う必要があります。ポリゴン分割ツールの設定としては以下の通りで、分割方法として「詳細な領域」を選択します。
これによって、穴の部分が別のポリゴンとして作成され、それぞれのポリゴンには穴かどうかを示すフラグ「Split_IsHole」というフラグが作成され、ここで穴の部分かどうか判別できます。
例えば、穴の部分を少しバッファツールで大きくして、再度元のポリゴンに穴をあけてみましょう。ワークフローとしては以下のようになります。
最終的な結果は以下のとおりです。
まとめ
- ポリゴンの加工方法についてご紹介しました
- ポリゴン同士の加工は、空間プロセスによって行います
- ポリビルド、ポリゴン分割を使ってポリゴンやラインをポイントや個別の空間オブジェクトに分割することができます
- 穴があいたようなポリゴンはポリゴン分割ツールをうまくつかって加工を行っていく必要があります
コメント