Solución:
Puedes usar do.call
ast14dmo.sd$tolerance <- 1
ast14dmo.sd$filename <- paste(path.mrg, "/AST14DMO_sd_", z, "m_mrg.tif", sep = "")
ast14dmo.sd$overwrite <- TRUE
mm <- do.call(merge, ast14dmo.sd)
Aquí con algunos datos, del ejemplo en raster::merge
r1 <- raster(xmx=-150, ymn=60, ncols=30, nrows=30)
r1[] <- 1:ncell(r1)
r2 <- raster(xmn=-100, xmx=-50, ymx=50, ymn=30)
res(r2) <- c(xres(r1), yres(r1))
r2[] <- 1:ncell(r2)
x <- list(r1, r2)
names(x) <- c("x", "y")
x$filename <- 'test.tif'
x$overwrite <- TRUE
m <- do.call(merge, x)
La función ‘fusionar’ del paquete Raster es un poco lenta. Para proyectos grandes, una opción más rápida es trabajar con comandos gdal en R.
library(gdalUtils)
library(rgdal)
Cree una lista de todos los archivos ráster a los que desea unirse (en su directorio de trabajo actual).
all_my_rasts <- c('r1.tif', 'r2.tif', 'r3.tif')
Cree un archivo ráster de plantilla sobre el que construir. Piense en esto como un gran lienzo en blanco para agregar mosaicos.
e <- extent(-131, -124, 49, 53)
template <- raster(e)
projection(template) <- '+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs'
writeRaster(template, file="MyBigNastyRasty.tif", format="GTiff")
Fusiona todos los mosaicos ráster en un ráster grande.
mosaic_rasters(gdalfile=all_my_rasts,dst_dataset="MyBigNastyRasty.tif",of="GTiff")
gdalinfo("MyBigNastyRasty.tif")
Esto debería funcionar bastante bien para la velocidad (más rápido que fusionar en el paquete ráster), pero si tiene miles de mosaicos, es posible que incluso desee considerar la construcción de un vrt primero.
Puedes usar Reduce
así por ejemplo:
Reduce(function(...)merge(...,tolerance=1),ast14dmo.sd)
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)