PostGIS2でゾーン統計は可能ですか?


12

デフォルトでラスターをサポートするpostgis2では、ゾーン統計分析を実行できますか?

Googleで検索しましたが、しっかりしたものが見つかりませんでしたか?私を始めるためのチュートリアルはありますか?

誰でもそれを行う方法に関するSQLの例を教えてもらえますか?

編集:

ブログ Aragonの言及による更新された(簡略化された)クエリ:

CREATE TABLE sum_pop3 AS 
 SELECT gid, SUM((ST_SummaryStats(ST_Clip(rast,1,geom))).sum)
 FROM perez_grid, ls_den
 WHERE ST_Intersects(geom,rast) 
GROUP BY gid;

こんにちは@nickves、ゾーン統計を機能させることができましたか?更新されたクエリが機能しないようです。
クリフ

@CliffPattersonは、私がうまくやったことを覚えています-それから3年が経ち、多くが変わりました。後でクエリーを試して、確認または更新します。
ニック

前回使用したときから何かが変わったに違いありません。現時点では、クエリが開始される場所を確認するのに十分な時間はありません。修正できた場合は、無料で更新してください
ニックス

このテーマに関する最近の質問をご覧ください。
クリフ

回答:


6

ここでFOSSで発表されたPierre RacineとSteve CummingによるPostgreSQL / PostGIS空間データベースドキュメント内のラスタデータの保存、操作、分析を確認する必要があります。問題を解決するためのラスター統計として定義された多くの機能があります。もちろん、ST_SummaryStatsはゾーンの静力学について役立つと思いますが、十分ではありません。

ST_SummaryStats(raster) 一連の(最小、最大、合計、平均、stddev、カウント(withdataピクセルの))レコードを取得します。

Postgis 2.0は、作業中のいくつかのSQLクエリによるゾーン統計分析をサポートしています。私はesri対postgis 2.0を使用して、ゾーン統計に関するネット上で良いドキュメントを見つけました。空間の移動で情報を確認してください。両方とも、いくつかのハードクエリで同じ統計結果が与えられました。

前に言及したAnthony Lopezサイトから取得したクエリの例...

 CREATE TABLE sum_pop2 AS
WITH 
   feat AS (SELECT gid, geom FROM perez_grid AS b ),
   b_stats AS
(SELECT  gid, (stats).*
FROM (
SELECT gid, ST_SummaryStats(ST_Clip(rast,1,geom)) AS stats
FROM ls_den
INNER JOIN feat
ON ST_Intersects(feat.geom,rast) ) AS foo )
SELECT gid, SUM(count) AS cell_count
  ,SUM(sum) AS population
FROM b_stats
 WHERE count > 0
GROUP BY gid
ORDER BY gid;

Esri Zonal統計結果:人口:207,578セル数:14,400

Postgisメソッドの結果:人口:207,578セル数:14,400

人口パーセント差:0%

まだ試していませんが、Anthonyはpostgisでのラスター解析にパフォーマンスの問題があると述べました。

私はそれがあなたを助けることを願っています...


それは良い出発点です!
ニックス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.