我有一些大型栅格图像(每个约110 MB),我想对其执行一些栅格计算。在本示例中,我想对
两个输入栅格都是整数(INT1U)数据,我希望输出也是INT1U。但是,每当我尝试进行栅格计算时,它就会创建浮点格式的临时文件,这些文件非常大。我的笔记本电脑只有约7 GB的可用硬盘空间,在计算完成之前就会被填满。
SNDPPT_M_sl1_1km_ll.tif
和SNDPPT_M_sl2_1km_ll.tif
进行求平均值,可在此网站上下载。实际上,数学运算会更加复杂(需要对多个栅格进行乘法和除法)。两个输入栅格都是整数(INT1U)数据,我希望输出也是INT1U。但是,每当我尝试进行栅格计算时,它就会创建浮点格式的临时文件,这些文件非常大。我的笔记本电脑只有约7 GB的可用硬盘空间,在计算完成之前就会被填满。
# load packages
require(raster)
## script control
# which property?
prop <- "SNDPPT"
# load layers
r.1 <- raster(paste0("1raw/", prop, "_M_sl1_1km_ll.tif"))
r.2 <- raster(paste0("1raw/", prop, "_M_sl2_1km_ll.tif"))
# allocate space for output raster - this is about 100 MB (same size as input files)
r.out <- writeRaster(r.1,
filename=paste0("2derived/", prop, "_M_meanTop200cm_1km_ll.tif"),
datatype="INT1U")
# perform raster math calculation
r.out <- integer(round((r.out+r.2)/2))
# at this point, my hard drive fills due to temporary files > 7 GB in size
请问有没有办法在R中进行光栅运算,同时使用整数输入和输出文件,并在最小化或避免非常大的中间文件的情况下进行操作?