2013-12-18 1 views
3

래스터 스택은 래스터 스택이 특정 횟수만큼 반복되는 래스터 스택 인 래스터 스택을 만들려고합니다.래스터 스택을 만들기 위해 같은 래스터 레이어를 반복합니다.

library(raster) 
rasterstack <- addLayer(rasterlayer, rasterLayer, rasterLayer) 

이 작동 :

나는 이런 식으로 뭔가를 할 수 있습니다. 그러나, 나는 스택이 약 1000 개의 레이어가되기를 원한다. 나는 반복 할 수있을 것 같았지만, 이것을하기위한 더 세련된 방법이 있는지 궁금해하고 있었다.

내가 이것을하려는 이유는 각 레이어가 다른 시간대이고 다른 래스터 레이어 개체에있는 데이터가 포함 된 래스터 스택의 가중 평균을 계산하기 위해서입니다.

weightedmean <- weighted.mean(data.RasterStack, weights.RasterStack) 
+0

가중치가 공간적으로 가변적입니까? 그렇지 않다면 weighted.mean 함수의 래스터 스택 대신에 가중치 벡터 (data.RasterStack의 각 레이어에 하나씩)를 제공하면됩니다. –

+0

예, 가중치는 공간적으로 가변적이지만 (각 그리드 셀마다 다름) 각 레이어마다 동일합니다. – user2872602

+1

내 최근 게시물 [this] (http://stackoverflow.com/questions/21041499/stacking-an-existing-rasterstack-multiple-times/21041582?noredirect=1#comment31634090_21041582)을 참조하십시오. @ SimonO'Hanlon이 훌륭한 답을 제공했습니다! – fdetsch

답변

0

예 데이터

library(raster) 
r <- raster(ncol=10, nrow=10, vals=1:100) 

: 나는 데이터와 계층의 동일한 번호로 무게 래스터 레이어에서 rasterstack를 만들 경우, 내가 좋아하는 뭔가를 할 수있을 것이다 바라고 솔루션

n <- 10 # number of copies 
s <- stack(lapply(1:n, function(i) r)) 

또는

s <- stack(replicate(n, r))