本記事で紹介する関数ポイントに町丁目ポリゴンを紐づけるポイントの周辺人口の集計まとめ関連する記事snowflakeの地理空間関数が充実してきたようなので、これらを使ってPODBのデータを空間データを集計してみました。本記事で紹介する関数ST_POINTST_INTERSECTSST_DISTANCEST_DWITHINポイントに町丁目ポリゴンを紐づけるまず一つ目は、緯度・経度列からポイントデータを作り、そのポイントに、2020年の町丁目ポリゴンデータを紐づける処理です。ポイントデータには駅の位置情報データを使用しています。ST_INTERSECTS(ST_POINT(POINT.LONGITUDE,POINT.LATITUDE),STREET.POLYGON_JP_STREET)=TRUE;緯度経度からポイントデータを作るのにはST_POINT関数を使用しています。ST_POINTで作成したポイントに、ポイントが所在する町丁目の情報を紐づけるために、ST_INTERSECTS関数を使っています。この関数は指定した二つの空間オブジェクトが、空間のいずれかの部分を共有する場合TRUEを返します。領域が重なる(関数の結果がTRUE)場合、その町丁目のデータを駅のデータに結合します。※町丁目ポリゴンデータは仕様上、隣り合う町丁目でポリゴンが重なる場合があるため、場合によって、それらを考慮して処理を行う必要があります。次にポイントから指定した距離内に、代表点が入る町丁目の人口を集計してみようと思います。今回は病院から直線距離500m以内の町丁目の人口を、病院ごとに集計します。ポイントデータとして、日本の医療機関データを使用しています。結合した町丁目の人口を医療機関ごとに集計しています。下記のST_DWITHIN関数を使用した場合は、処理が数分かかりました。(重いので途中でやめた。上記のクエリをそのまま、コピペでテストしていただけるので、ぜひお試しください。↓すぐに使えるオープンデータが揃っています。ついてのお知らせです。