Ho cercato di trovare un modo efficiente in termini di tempo per unire più immagini raster in R. Queste sono scene adiacenti ASTER della regione meridionale del Kilimangiaro, e il mio obiettivo è metterle insieme per ottenerne una immagine grandeUnione di più raster in R
Questo è quello che ho ottenuto finora (oggetto 'ast14dmo' che rappresenta un elenco di oggetti raster):
# Loop through single ASTER scenes
for (i in seq(ast14dmo.sd)) {
if (i == 1) {
# Merge current with subsequent scene
ast14dmo.sd.mrg <- merge(ast14dmo.sd[[i]], ast14dmo.sd[[i+1]], tolerance = 1)
} else if (i > 1 && i < length(ast14dmo.sd)) {
tmp.mrg <- merge(ast14dmo.sd[[i]], ast14dmo.sd[[i+1]], tolerance = 1)
ast14dmo.sd.mrg <- merge(ast14dmo.sd.mrg, tmp.mrg, tolerance = 1)
} else {
# Save merged image
writeRaster(ast14dmo.sd.mrg, paste(path.mrg, "/AST14DMO_sd_", z, "m_mrg", sep = ""), format = "GTiff", overwrite = TRUE)
}
}
Come sicuramente indovinare, il codice funziona. Tuttavia, la fusione richiede tempi abbastanza lunghi considerando che ogni singolo oggetto raster è grande circa 70 mb. Ho anche provato Reduce e do.call, ma ciò non è riuscito poiché non ho potuto passare l'argomento "tolerance" che elude le diverse origini dei file raster.
Qualcuno ha un'idea di come velocizzare le cose?
Ottima soluzione, grazie! Ho appena dato una rapida occhiata al tempo di calcolo e ho scoperto che il tuo approccio tramite 'do.call' funziona quasi il doppio di' Reduce'. – fdetsch