Tôi đã cố gắng tìm một cách hiệu quả thời gian để hợp nhất nhiều hình ảnh raster trong R. Đây là những cảnh ASTER liền kề từ vùng Kilimanjaro phía nam và mục tiêu của tôi là đặt chúng lại với nhau để có được một hình ảnh lớn.Hợp nhất nhiều raster trong R
Đây là những gì tôi có cho đến nay (object 'ast14dmo' đại diện cho một danh sách các đối tượng 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)
}
}
Như bạn chắc chắn đoán, mã hoạt động. Tuy nhiên, việc sáp nhập mất khá lâu để xem xét rằng mỗi đối tượng raster đơn là 70 mb lớn. Tôi cũng đã cố gắng giảm và do.call, nhưng điều đó đã thất bại vì tôi không thể vượt qua đối số 'khoan dung' mà circumvents nguồn gốc khác nhau của các tập tin raster.
Bất kỳ ai có ý tưởng về cách tăng tốc mọi thứ?
Giải pháp tuyệt vời là tốt, cảm ơn bạn! Tôi chỉ có một cái nhìn nhanh về thời gian tính toán và hóa ra phương pháp của bạn thông qua 'do.call' hoạt động nhanh gấp đôi' Reduce'. – fdetsch