Jak mogę utworzyć mozaikę rastrową przy użyciu listy rastrów?
Muszę utworzyć kilka mozaik rastrowych. Używam pakietu rastrowego w wersji 2.0-31 na 64-bitowym komputerze z systemem Windows. Wierzę, że sprawdziłem pracę domową poprzez wszystkie możliwe blogi i zadałem to pytanie niektórym kolegom, ale wciąż nie mogę znaleźć rozwiązania.
Mam problem z tym, że nie mogę utworzyć mozaiki, jeśli moje siatki są wymienione w obiekcie rastrowym. znalazłemten przykład że myślę, że mogę się zgłosić, ale nie, otrzymuję dziwny komunikat o błędzie. Poniższy przykład przedstawia mój problem:
r <- raster()
r1 <- crop(r, extent(-10, 10, -10, 10))
r2 <- crop(r, extent(0, 20, 0, 20))
r3 <- crop(r, extent(10, 30, 10, 30))
r1[] <- 1:ncell(r1)
r2[] <- 1:ncell(r2)
r3[] <- 1:ncell(r3)
rasters1 <- list(r1, r2, r3)
mos <- mosaic(rasters1,fun=mean)
To jest błąd, który otrzymuję:
Error in function (classes, fdef, mtable) :
unable to find an inherited method for function ‘mosaic’ for signature ‘"list", "missing"’
Wypróbowałem również funkcję sugerowaną wtutaj, ale też nie działa.
fmerge <- function(rasters1, fun, ...){
ex <- raster(union(rasters1))
res(ex) <- res(rasters1[[1]])
for( i in 1:length(rasters1) )
rasters[[i]] <- merge(rasters1[[i]], ex)
rasters <- stack(rasters1)
fun(rasters1, ...)
}
rfm <- fmerge(rasters1, mean, na.rm=T)
To jest komunikat o błędzie:
Error in raster(union(rasters1)) :
error in evaluating the argument 'x' in selecting a method for function 'raster': Error in as.vector(y) : argument "y" is missing, with no default