Я пытаюсь найти эффективный по времени способ слияния нескольких растровых изображений в R. Это соседние сцены ASTER из южного региона Килиманджаро, и моя цель - собрать их вместе, чтобы получить одно большое изображение.
Это то, что я получил до сих пор (объект "ast14dmo", представляющий список объектов RasterLayer):
# 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)
}
}
Как вы, наверное, догадались, код работает. Однако слияние происходит довольно долго, учитывая, что каждый отдельный растровый объект имеет размер около 70 мб. Я также попытался уменьшить и do.call, но это не удалось, поскольку я не мог передать аргумент "допуск", который обходит разные истоки растровых файлов.
Кто-нибудь понял, как ускорить процесс?