RasterLayer 16位进入RasterLayer 8位

时间:2015-08-11 22:36:26

标签: r raster r-raster

我试图将RasterLayer 16位转换为R中的RasterLayer 8位,但我没有成功。有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

如果要将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区间here

中找到有关如何将值标准化的详细信息