我需要创建几个光栅马赛克。我在 64 位 Windows 计算机上使用 Package raster 版本 2.0-31。我相信我做功课检查了所有可能的博客并向一些同事提出了这个问题,但仍然找不到解决方案。
我遇到的问题是,如果我的网格列在栅格对象中,我将无法创建马赛克。我发现这个例子虽然我可以应用,但不是,我收到一条奇怪的错误消息。下面的例子代表了我的问题:
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)
这是我得到的错误:
函数错误(类、fdef、mtable):无法为签名“列表”、“缺失”的函数“马赛克”找到继承的方法</p>
我也尝试了这里建议的功能,但也没有用。
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)
这是错误消息:
raster(union(rasters1)) 中的错误:在为函数“raster”选择方法时评估参数“x”时出错:as.vector(y) 中的错误:缺少参数“y”,没有默认值