Как мы можем очистить кеш при растровой обработке

Я использую R-растр и пакет rLandsat8 для обработки некоторых изображений Landsat 8, полученных с помощью дистанционного зондирования Когда я написал цикл для преобразования DN в Radiance для 10+ изображений, это заняло более 50 ГБ жесткого диска.

Итак, как мы можем очистить кеш при использовании растра после каждой обработки изображения?

Например, в цикле мы можем сделать

  1. обработка первого изображения
  2. очистить кеш
  3. обработка второго
  4. Чисто...

    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) хорошо работает для меня.

Другие вопросы по тегам