我使用R raster和rLandsat8包来处理一些Landsat 8遥感图像。当我编写一个循环来将DN转换为Radiance 10个以上的图像时,它需要超过50G的硬盘。
那么,在每次图像处理完成后,如何在使用光栅时清除缓存?
例如,我们可以在循环中
...清晰
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)
}
答案 0 :(得分:0)
最后,我发现使用raster :: removeTmpFiles(h = 1)对我来说效果很好。