見出し画像

位置情報とパブリックデータ#07: (地理空間関数)ポリゴンの併合と交差

(TeradataのSQL実行環境に関してはこちらをご覧ください)

今回ご紹介する関数は、複数のポリゴンをつなぎ合わせる関数です。SQLでいうところのUnionとIntersectionと言えばわかりやすいでしょうか。Unionであれば重複を排除したワンセットにすることを意味し、Intersectionであればオブジェクト間の共通部分をワンセットとして返します。使うシナリオとしては以下のような感じでしょうか。

  • 顧客行動範囲をポリゴンとして管理していたが、違う顧客と思っていた2顧客が名寄せしたら同じ顧客だったのでUnionしたい

  • 自店の商圏と競合店の商圏の重複エリアにのみ、重点的な販促を仕掛けたい。で、それってどこ?

元のデータが以下のような二つのポリゴンデータであるとして、これをUnionする、Intersectionすることを考えます。

元の2ポリゴン

以下にノートブックをまとめました。データはマガジン内以前の記事にて利用したデータを再利用しています。

補足です。operationというパラメーターでUnion操作をするかIntersectionを行うか決めています。このagggeomという関数はテーブル関数であるため、入力は表になります。最初の列にst_geometry型をセットしてあげて、その列がUnionもしくはIntersectionの対象になります。partitionごとに処理を行うため、上述した顧客単位での統合処理も一括で可能です。上述の例ではpartitionがなく、1つの値のみであるため、ダミーのpartition列を与えています。
結果は以下のようになります。

Union後のポリゴン
Intersection後のポリゴン

ご参考までに描画に利用したデータおよび定義ファイルを置いておきます。

以上です。

#geospatial #gis #teradata #sql #analytics #st_geometry  


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