我有一个函数,它将多波段图像作为raster brick对象读入,遍历各个波段进行各种计算,然后将raster写出为新的.tif文件。所有这些都很好,但新图像文件的文件大小大约是原始图像的四倍(我认为是因为原始图像有4个波段)。我想知道writeRaster()函数中是否有我不知道的参数,或者是否有其他方法可以确保输出图像基本上与输入相同的文件大小。
原始文件大小为134 MB;输出范围从471到530 MB左右,具体取决于格式。
简化代码:
原始文件大小为134 MB;输出范围从471到530 MB左右,具体取决于格式。
简化代码:
library(rgdal)
library(raster)
path = "/Volumes/ENVI Standard Files/"
img = "qb_tile.img"
imageCorrection = function(path, img){
raster = brick(paste0(path, img))
raster = reclassify(raster, cbind(0, NA))
for(i in 1:nlayers(raster)){
raster[[i]] = raster[[i]] - minValue(raster[[i]])
}
writeRaster(raster, paste0(path,img,"_process.tif"), format = "GTiff", overwrite=TRUE)
}