QGIS에서 픽셀 값을 요약하는 방법은 무엇입니까? 탭에있는 통계

래스터의 모든 픽셀 합계의 값을 알아야합니다. 그러나 속성의 메타 데이터 탭에있는 통계 섹션에서 모든 셀 합계 아래에는 항상 0.00이 표시됩니다. 다른 래스터 형식을 사용해 보았습니다. 내가 무엇을 잘못하고 있지? 이 값을 어떻게 얻을 수 있습니까?



답변

  1. 레이어 범위에서 벡터> 연구 도구> 다각형을 사용하여 다각형을 만듭니다. 여기서 레이어는 문제의 래스터입니다.
  2. Zonal statistics Plugin을 활성화 / 설치합니다.
  3. 래스터는 합계가 필요한 다각형이고 레이어 범위에서 만든 다각형 인 Zonal statistics 플러그인을 사용하십시오. 출력 열 접두사를 입력하십시오 (예 : stats_). 플러그인을 실행하십시오.
  4. 다각형의 속성 테이블을 엽니 다. 이제 stats_sum 열과 stats_ 접두사가있는 다른 열이 있습니다.
  5. 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 너비 픽셀).

새긴 ​​금.


답변