我正在使用R并使用以下库:raster,sp,rgeos,rgdal
我从SpatialPointsDataFrame创建了一个RasterLayer。 可以使用
轻松导出此栅格raster::writeRaster(ras8b,
filename="filepath", format="GTiff" ,
datatype='INT1U')
我遇到的问题如下: 我需要一个8BitsPerPixel GeoTiff。但是我使用的代码将栅格保存为64位的PerPixel光栅。
我尝试在StackOverflow上找到的几个选项后解决问题。例如: RasterLayer 16-bits into a RasterLayer 8-bits
第一个选项给了我一个8 BitsPerPixel栅格,但没有值,只有NAs。
或者我在这篇文章之后将R中的RasterLayer转换为整数: https://gis.stackexchange.com/questions/175383/round-does-not-return-an-integer-raster-in-r/175384
但是R继续将Raster存储为64 BitsPerPixel Raster。
有人有解决方案吗? 如果您需要更多信息,请告诉我。 非常感谢。最好的问候。
答案 0 :(得分:0)
似乎工作:
library(raster)
r <- raster(ncol=10,nrow=10)
r[] <- 1:100
x <- writeRaster(r, 'test.tif', datatype='INT1U', overwrite=TRUE)
dataType(x)
#[1] "INT1U"
library(rgdal)
GDALinfo('test.tif')
# GDType hasNoDataValue NoDataValue blockSize1 blockSize2
#1 Byte TRUE 255 10 10
但请注意,此格式仅存储0到255之间的值。所有其他值变为NA