我尝试将 RasterLayer 16 位转换为 RasterLayer 8 位,但没有成功。有任何想法吗 ?
谢谢!
如果要将 RasterLayer 从 16 位转换为 8 位,则需要先将值拉伸到 8 位间隔(0-255 无符号)。然后您可以将其保存为 8 位图像:
#sample raster
library(raster)
ras16b <- raster(x=matrix(as.integer(rnorm(180*180,1000,50)),180,180))
#convert to 0-255 using the calc. function and basic raster algebra
ras8b <- calc(ras16b, fun=function(x){((x - min(x)) * 255)/(max(x)- min(x)) + 0})
#export 8b raster
writeRaster(ras8b, '/bla/bla/ras8b.tif', datatype='INT1U')
您可以在此处找到有关如何将值标准化为 0-255 区间的更多信息