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.