Сначала лучший способ написать, что вы делаете (используйте lapply)
library(raster)
ff <- list.files("D:/lidar_grid_metrics/ElevMax",
pattern="\\.asc$", full.names=TRUE, recursive=TRUE)
rast.list <- lapply(ff, raster)
rast.list$fun <- mean
rast.mosaic <- do.call(mosaic,rast.list)
Теперь к ошибке вы получите. Полезно показать результаты traceback()
после возникновения ошибки. Но из полученного сообщения об ошибке я делаю вывод, что один из RasterLayers имеет экстент со значением NA
. Это делает его недействительным. Вы можете проверить, правда ли это (и если это так, выяснить, что происходит), выполнив
t(sapply(rast.list, function(i) as.vector(extent(i))))
РЕДАКТИРОВАТЬ
С файлами, которые отправил мне Рам, я разобрался, что происходит. При создании RasterLayer из файла ascii с собственным драйвером произошла ошибка, если в файле указано «xllcenter», а не «xllcorner».
Теперь это исправлено в версии для разработчиков (2.9-1), доступной на github .
Эту проблему также можно избежать, установив rgdal
, поскольку, если доступно rgdal
, собственный драйвер не будет использоваться.