PostGIS2.0 을 사용하여 래스터 / 폴리곤 교차를 수행하고 있습니다. 사용해야하는 작업과이를 수행하는 가장 빠른 방법을 이해하는 데 어려움이 있습니다. 내 문제는 다음과 같습니다.
- 다각형과 래스터가 있습니다
- 다각형에 속하는 모든 픽셀을 찾고 픽셀 값의 합계를 얻고 싶습니다.
- 그리고 (업데이트 된 문제) : 쿼리를 수행 할 때 원래 래스터에 존재하지 않는 일부 픽셀에 대해 막대한 값을 얻습니다.
내가 사용할지 여부 어려움을 인식하지 못했습니다 ST_Intersects()
나 ST_Intersection()
. 또한 내 픽셀을 합산하는 가장 좋은 방법이 무엇인지 모르겠습니다. 내가 시도한 첫 번째 접근법은 다음과 같습니다 (# 1).
SELECT
r.rast
FROM
raster as r,
polygon as p
WHERE
ST_Intersects(r.rast, p.geom)
이것은 rast
무엇을 해야할지 잘 모르는 값 목록을 반환합니다 . 를 사용하여 요약 통계를 계산하려고 시도했지만 ST_SummaryStats()
이것이 다각형 내에있는 모든 픽셀의 가중치 합계인지 확실하지 않습니다.
SELECT
(result).count,
(result).sum
FROM (
SELECT
ST_SummaryStats(r.rast) As result
FROM
raster As r,
polygon As p
WHERE
ST_Intersects(r.rast, p.geom)
) As tmp
내가 시도한 다른 접근법 (# 2)은 ST_Intersection()
다음을 사용합니다 .
SELECT
(gv).geom,
(gv).val
FROM
(
SELECT
ST_Intersection(r.rast, p.geom) AS gv
FROM
raster as r,
polygon as p
WHERE
ST_Intersects(r.rast, p.geom)
) as foo;
이것은 내가 더 분석 한 기하학 목록을 반환하지만 이것이 덜 효율적이라고 가정합니다.
어느 것이 가장 빠른 작동 순서인지 확실하지 않습니다. 항상 또는를 선택 raster, polygon
하거나 polygon, raster
다각형을 래스터로 변환하여 다각형으로 변환 해야합니까 raster, raster
?
편집 : R.K.
의 링크 에서 일부 세부 사항으로 접근법 2를 업데이트했습니다 .
접근법 # 2를 사용하여 결과를 이해하지 못하는 이유의 일부인 결과에서 다음 오류를 발견했습니다. 다음은 원래 래스터의 이미지와 교차하는 데 사용되는 다각형의 개요입니다.
PostGIS를 사용한 교차 결과는 다음과 같습니다.
결과의 문제점은 원래 래스터에없는 21474836 값이 리턴된다는 것입니다. 왜 이런 일이 일어나고 있는지 모르겠습니다. 어딘가 작은 숫자 (거의 0으로 나눔)와 관련이 있다고 생각하지만 잘못된 결과를 반환합니다.
ST_SummaryStats()
# 1에 사용했지만 # 2에 사용하는 방법을 잘 모르겠습니다.