Как мы можем очистить кеш при растровой обработке
Я использую R-растр и пакет rLandsat8 для обработки некоторых изображений Landsat 8, полученных с помощью дистанционного зондирования Когда я написал цикл для преобразования DN в Radiance для 10+ изображений, это заняло более 50 ГБ жесткого диска.
Итак, как мы можем очистить кеш при использовании растра после каждой обработки изображения?
Например, в цикле мы можем сделать
- обработка первого изображения
- очистить кеш
- обработка второго
Чисто...
for (i in l8.lst) { sceneName <- i$metadata$landsat_scene_id if (!file.exists(file.path(dir.toaRad, sceneName))) { dir.create(file.path(dir.toaRad, sceneName), recursive = T) } for(j in bandnames){ idx <- seq_along(bandnames)[sapply(bandnames, function(x) j %in% x)] # a number bandidx <- paste0("file_name_band_", idx) bandName <- sapply(i, "[[", bandidx)[[1]] Rad.rst <- ToTOARadiance(i, j) writeRaster(Rad.rst, filename = file.path(dir.toaRad, sceneName, bandName), overwrite = T) }
1 ответ
Решение
Наконец, я обнаружил, что использование raster::removeTmpFiles(h = 1) хорошо работает для меня.