2017-03-02 6 views
0

그래서 여러 개의 래스터 (x1, x2, x3, x4, ...)를 쌓고 모든 래스터 (xmaster)에서 평균 래스터를 성공적으로 계산했습니다. 그러나 나는 그 래스터 (xmaster)의 평균 픽셀 값을 원한다. 일반적으로 요약 통계를 표시하고 평균값을 호출합니다 .... 그러나 'xmaster'에 대한 요약에는 평균값이 표시되지 않습니다! 나는 왜 그런지 잘 모르겠다. 누군가가 나에게 일을 친절하게 도와 줄지 궁금해하고있다. 내 아래 스크립트를 참조하십시오 "..> 요약 (xmaster) 계층 최소 11,488 1 숨어 18016 중간 20048 3 숨어 21,968 최대를 28,704 NA의 0.."RasterLayer의 평균은 계산하지 않습니다. (R 래스터 패키지)

lightstackFF<-list.files() 
stacklights<-stack(lightstackFF) 
xmaster<- mean(stacklights, na.rm=TRUE) 
summary(xmaster) 

사람들이 볼 수 있듯이 래스터에 평균값이 표시되지 않습니다. 물론 래스터를 저장하고 다른 소프트웨어에서 평균을 추출 할 수는 있지만 시간이 많이 걸립니다. 왜 이것이 평균을 보이지 않는지에 관해 나를 도와 줄 수 있습니까?

답변

0

예를 들어, 레이어 수단의 평균을 얻기 위해, 다음과 같은 것을 사용할 수 있습니다 (RasterLayer자체가 아닌). 이렇게하면 다음 정보가 제공됩니다 (따라서 평균 포함).

Min. 1st Qu. Median Mean 3rd Qu. Max. 
+0

감사합니다. ztl! 그 이유는 모르겠지만 요약으로는 평균을 표시하지 않습니다.하지만이 방법은 효과가 있으며 앞으로도 꼭 사용해야 할 것입니다. – Alexander

1

raster 패키지의 요약 함수 (최소, 최대, 평균 등)는 각 셀이 새로운 계산 된 값인 새 래스터 객체를 반환합니다. 레이어의 모든 셀 값에 대한 요약을 하나만 반환하려면 raster::cellStats()이 필요합니다. 이것은 당신의 RasterLayer의 모든 값을 포함하는 벡터에 summary을 적용하는 방법에 대한

summary(xmaster[]) # Please note the [] 
# which is equivalent to: 
summary(values(xmaster)) 
# or even 
summary(getValues(xmaster)) 

r <- raster(nrow=18, ncol=36) 
r[] <- runif(ncell(r)) * 10 
rs <- stack(r,r,r) 
layermeans <- cellStats(rs, stat='mean', na.rm=TRUE) 
u <- mean(layermeans) 
> layermeans 
layer.1 layer.2 layer.3 
5.028814 5.028814 5.028814 
> u 
[1] 5.028814