我们如何在光栅处理时清除缓存

时间:2014-09-18 03:28:53

标签: r caching raster

我使用R raster和rLandsat8包来处理一些Landsat 8遥感图像。当我编写一个循环来将DN转换为Radiance 10个以上的图像时,它需要超过50G的硬盘。

那么,在每次图像处理完成后,如何在使用光栅时清除缓存?

例如,我们可以在循环中

  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 个答案:

答案 0 :(得分:0)

最后,我发现使用raster :: removeTmpFiles(h = 1)对我来说效果很好。