오픈 소스 도구를 사용하여 위성 이미지의 이미지 경계 / 발자국을 계산합니까?


10

여기에 표시된 것처럼 범위 / 경계 상자가 아니라 nodata 값이없는 영역 인 여러 단일 레이어 래스터 이미지의 다각형 외곽선을 만들어야합니다 . .

위의 질문에 대한 답변에서 Image Boundary 플러그인 이 언급되었지만 Ubuntu에서 실행되는 QGIS 1.8.0 Lisboa에서는 찾을 수 없습니다.

도구를 계속 사용할 수 있습니까?

그렇지 않은 경우 ArcMap이 아닌 gdal, R, QGIS, GRASS 또는 이와 유사한 오픈 소스 도구를 사용 하여이 작업을 수행 할 수 있습니까?


답변:


4

공식 리포지토리에서 플러그인이있는 기존 리포지토리를 추가 할 수 있습니다.

http://pyqgis.org/repo/contributed

이미지 경계 플러그인에는 유효한 픽셀을 계산할 수있는 옵션이 있지만 이미지는 전체 장면, CBERS 또는 Landsat 방식이어야합니다.이 프로세스에서는 처음 4 개의 모서리를 계산합니다. 이미지는 이미징이없는 영역에 대해 ZERO 값을 가진 데이터가 필요하지 않습니다 (위성 센서로 스캔).

이미지 경계의 저자


저장소 링크에 감사드립니다. 현재 작업중 인 이미지는 NA 값을 가진 모든 SAR 이미지입니다 (또는 QGIS의 값 도구에 따라 -3.4e + 38). ZERO를 유일한 옵션으로 사용하는 대신 도구에 nodata 값을 수동으로 추가 할 수 있다면 좋을 것입니다. 그렇지 않으면 먼저 NA에 스크립트를 실행하여 NA 값에 새로운 값 0을 줄 수 있습니다. 그래도 훌륭한 도구입니다. 감사합니다!
spib

Image Boundary를위한 새로운 저장소가 있습니까? 당신이 제공하는 링크는 404입니다. 아마도 다음과 같은 것입니까? : github.com/lmotta/imagefootprint_plugin
Aaron

Image Boundary에 대한 문서를 찾을 수있는 곳이 있습니까?
Loonuh

12

마침내이 작업을 수행 할 수있는 방법을 찾았습니다.

1 단계: gdalwarp -dstnodata 0 -dstalpha -of GTiff foo1 foo2

이것은 두 가지 중요한 작업을 수행합니다. 대상 데이터 없음 (외부 경계) 값을 0으로 설정하고 알파 밴드를 만듭니다.

2 단계: gdal_polygonize.py foo2 -b 2 -f "ESRI Shapefile" foo3

두 번째 단계는 1 단계에서 만든 알파 밴드 (밴드 2)를 사용하고 해당 밴드에서 모양 파일을 만듭니다.

그런 다음 이미지가 많은 경우 bash 스크립트로 쉽게 스크립트를 작성하여 정확한 외곽선을 만들 수 있습니다.  


훌륭합니다.이 솔루션은 플러그인이나 소프트웨어에 의존하지 않습니다. NoData에 민감한 래스터 풋 프린트를 생성하는 것은 생각보다 간단하지 않은 GIS 작업 중 하나입니다.
Charlie Parr

이 방법을 사용하면 다각형으로 구성된 shapefile로 끝나고 서로 다른 색상을 그룹화한다고 가정합니다. 어떻게 이것을 피하고 몇 개의 다각형으로 예 데이터를 나타낼 수 있습니까?
Loonuh

5

GDAL 프로젝트에서 제안한gdal_translate 대로 사용 했습니다 .

gdal_translate -b mask -of vrt -a_nodata 0 test.tif test.vrt
# Note the  -a_nodata 0 doesn't seem to work when the mask is input, so do another pass
gdal_translate -b 1 -of vrt -a_nodata 0 test.vrt test2.vrt
gdal_polygonize.py -q  -8 test2.vrt -b 1 -f "ESRI Shapefile" testdata.shp

여기에 이미지 설명을 입력하십시오


1
GDAL 트렁크 버전을 사용하면 소스 이미지 osgeo-org.1560.x6.nabble.com/… 에 대해 gdal_polygonize를 직접 사용할 수 있습니다 . 그러나 데이터가없는 다각형을 제거하려면 약간의 정리가 필요합니다.
user30184

4

Image Boundary 플러그인 도 작동하지 않았으므로 GDAL과 동일한 접근 방식을 사용했습니다. 그럼에도 불구하고 첫 번째 단계를 다음과 같이 변경 한 후에 만 ​​나에게 효과적이었습니다.

1 단계 : gdalwarp -srcnodata 0 -dstalpha -of GTiff foo1 foo2

Landsat8 밴드 (데이터가없는 0)로 작업하고 있으며 -dstnodata함수를 사용할 때 얻을 수 있습니다.

데이터없는 band1 = 'no
data'band2 (알파 밴드) = 전체 장면 / 연장에 대한 '255'

반면 -srcnodata함수를 사용하면 얻을 수 있습니다.

데이터없는 band1 = '데이터 없음' 데이터없는
band2 (알파 밴드) = 'no data'및 valid data = '255'그러면 유효한 데이터에 대해서만 다각형을 추출 할 수 있습니다.

나는이 행동의 이유를 완전히 이해할 수 없었지만 (알파가 계산되는 방법은 무엇입니까?) 그러나 이것이 동일한 문제에 직면 한 다른 사람들을 도울 수 있기를 바랍니다.


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