PostGIS2에서 구역 통계가 가능합니까?


12

이제 기본적으로 래스터를 지원하는 postgis2를 사용하면 영역 통계 분석을 수행 할 수 있습니까?

나는 그것을 구글하지만 아무 것도 찾지 못했습니다? 저를 시작할 수있는 튜토리얼이 있습니까?

누구든지 그것을하는 방법에 대한 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;

안녕 @ 닉스, 당신은 구역 통계를 작동 관리 했습니까? 업데이트 된 쿼리가 작동하지 않는 것 같습니다.
Cliff

@CliffPatterson은 내가 운동 한 것을 기억합니다. 그 이후로 3 년이 지났습니다. 나중에 querry를 시험 해보고 확인하거나 업데이트 할 것입니다.
nickves

내가 마지막으로 사용한 때부터 뭔가 바뀌었을 것입니다. 현재 쿼리가 시작되는 시간을 알기에 충분하지 않습니다. 문제를 해결하려면 무료로 업데이트하십시오.
nickves

주제에 관한 최근 질문 을 확인하십시오 .
Cliff

답변:


6

FOSS에서 발표 된 Pierre Racine과 Steve Cumming 의 PostgreSQL / PostGIS 공간 데이터베이스 문서 내에서 래스터 데이터를 저장, 조작 및 분석 해야 합니다 . 문제를 해결하기 위해 래스터 통계로 정의 된 많은 기능이 있습니다. ST_SummaryStats가 영역 정적에 대해 도움이 될 것입니다. 물론 충분하지 않습니다.

ST_SummaryStats(raster) (최소, 최대, 합, 평균, stddev, (데이터 픽셀 포함)) 레코드 세트를 설정합니다.

Postgis 2.0은 사용자가 작업 한 일부 SQL 쿼리로 영역 통계 분석을 지원합니다. esri vs postgis 2.0을 사용하여 구역 통계에 대한 좋은 문서를 얻었습니다. Moving Spatial here 에서 몇 가지 정보를 확인 하십시오 . 두 쿼리 모두 약간의 쿼리로 동일한 통계 결과를 얻었습니다.

앞서 언급 한 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를 사용한 래스터 분석에 약간의 성능 문제가 있다고 언급했다.

나는 그것이 당신에게 도움이되기를 바랍니다 ...


좋은 출발점입니다!
nickves
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.