位置情報とパブリックデータ#07: (地理空間関数)ポリゴンの併合と交差
(TeradataのSQL実行環境に関してはこちらをご覧ください)
今回ご紹介する関数は、複数のポリゴンをつなぎ合わせる関数です。SQLでいうところのUnionとIntersectionと言えばわかりやすいでしょうか。Unionであれば重複を排除したワンセットにすることを意味し、Intersectionであればオブジェクト間の共通部分をワンセットとして返します。使うシナリオとしては以下のような感じでしょうか。
顧客行動範囲をポリゴンとして管理していたが、違う顧客と思っていた2顧客が名寄せしたら同じ顧客だったのでUnionしたい
自店の商圏と競合店の商圏の重複エリアにのみ、重点的な販促を仕掛けたい。で、それってどこ?
元のデータが以下のような二つのポリゴンデータであるとして、これをUnionする、Intersectionすることを考えます。
以下にノートブックをまとめました。データはマガジン内以前の記事にて利用したデータを再利用しています。
補足です。operationというパラメーターでUnion操作をするかIntersectionを行うか決めています。このagggeomという関数はテーブル関数であるため、入力は表になります。最初の列にst_geometry型をセットしてあげて、その列がUnionもしくはIntersectionの対象になります。partitionごとに処理を行うため、上述した顧客単位での統合処理も一括で可能です。上述の例ではpartitionがなく、1つの値のみであるため、ダミーのpartition列を与えています。
結果は以下のようになります。
ご参考までに描画に利用したデータおよび定義ファイルを置いておきます。
以上です。
#geospatial #gis #teradata #sql #analytics #st_geometry