Wie kann ich ein Rastermosaik mithilfe einer Rasterliste erstellen?

Ich muss mehrere Rastermosaike erstellen. Ich verwende die Package-Raster-Version 2.0-31 auf einem 64-Bit-Windows-Computer. Ich glaube, dass ich meine Hausaufgaben gemacht habe, indem ich alle möglichen Blogs durchgesehen und einigen Kollegen diese Frage gestellt habe, aber immer noch keine Lösung gefunden habe.

Das Problem ist, dass ich kein Mosaik erstellen kann, wenn meine Raster in einem Rasterobjekt aufgelistet sind. ich fanddieses Beispiel dass ich mich zwar bewerben könnte, aber nicht, bekomme ich eine komische fehlermeldung. Das folgende Beispiel stellt mein Problem dar:

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)

Dies ist der Fehler, den ich erhalte:

Error in function (classes, fdef, mtable)  : 
  unable to find an inherited method for function ‘mosaic’ for signature ‘"list", "missing"’

Ich habe auch die in vorgeschlagene Funktion ausprobiertHier, hat aber auch nicht funktioniert.

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)

Dies ist die Fehlermeldung:

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

Antworten auf die Frage(1)

Ihre Antwort auf die Frage