래스터의 모든 픽셀 합계의 값을 알아야합니다. 그러나 속성의 메타 데이터 탭에있는 통계 섹션에서 모든 셀 합계 아래에는 항상 0.00이 표시됩니다. 다른 래스터 형식을 사용해 보았습니다. 내가 무엇을 잘못하고 있지? 이 값을 어떻게 얻을 수 있습니까?
답변
- 레이어 범위에서 벡터> 연구 도구> 다각형을 사용하여 다각형을 만듭니다. 여기서 레이어는 문제의 래스터입니다.
- Zonal statistics Plugin을 활성화 / 설치합니다.
- 래스터는 합계가 필요한 다각형이고 레이어 범위에서 만든 다각형 인 Zonal statistics 플러그인을 사용하십시오. 출력 열 접두사를 입력하십시오 (예 : stats_). 플러그인을 실행하십시오.
- 다각형의 속성 테이블을 엽니 다. 이제 stats_sum 열과 stats_ 접두사가있는 다른 열이 있습니다.
- GRASS GIS에서 값을 확인했으며 일치가 완벽합니다.
답변
QGIS 2.x에서는 처리 도구 상자의 래스터 레이어 통계 알고리즘을 사용하여 전체 레이어 (대역의 모든 픽셀 값의 합계 포함)에 대한 래스터 통계를 얻을 수 있습니다.
가공 | 도구 상자 (확인란)
그런 다음 처리 도구 상자로 이동하십시오.
QGIS 지리 알고리즘 | 래스터 도구 | 래스터 레이어 통계
검사하려는 계층에 대한 통계를 생성하십시오. 결과는 레이어 메타 데이터에 저장되며, 레이어를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택하여 액세스 할 수 있습니다.
답변
pyqgis를 사용하고 numpy 배열과 합계를 만들 수 있습니다.
import gdal
import numpy as np
ds = gdal.Open(r'C:\somefolder\someraster.tif')
band1 = ds.GetRasterBand(1).ReadAsArray()
s = np.sum(band1)
print(s)
답변
나는 래스터의 모든 픽셀 값의 합계를 어떻게 얻습니까?라는 질문을 이해했습니다. 벡터의 속성에서 통계를 실행하는 것과 같은 것. 프로그래밍을 통해 쉽게 할 수 있습니다. QGIS를 통해 다른 방법을 생각할 수 있습니다. 비효율적이며 약간 부정확하지만 작동합니다.
- 래스터의 각 픽셀을 나타내는 점 레이어를 만듭니다. 벡터-> 연구 도구-> 일반 포인트를 통해이 작업을 수행 할 수 있습니다. 포인트 수를 x_size * y_size로 사용하십시오. 따라서 100px 너비 x 100px 높이의 래스터의 경우 10000을 사용하십시오. (픽셀 해상도) / 2의 오프셋을 지정하여 픽셀 중심을 샘플링합니다.
- 그런 다음 Point Sampling 플러그인을 설치하십시오. 이 플러그인을 사용하면 모든 10000 포인트에서 래스터를 샘플링하고 픽셀 값인 속성 값을 얻을 수 있습니다.
- 결과 벡터에서 벡터-> 분석-> 기본 통계를 실행하여 합계를 얻으십시오.
답변
gdalinfo를 사용하여 래스터 통계를 얻을 수 있습니다. 예를 들면 다음과 같습니다.
gdalinfo -stats filename.tif
평균 픽셀 값과 래스터 크기를 픽셀 단위로 제공합니다. 특성-> 메타 데이터 탭에서이 데이터를 얻을 수도 있습니다.
그런 다음 산술 문제입니다 : 평균 값 x (높이 픽셀 x 너비 픽셀).
새긴 금.