我想将我的大geotiff文件(4个RGBA波段)裁剪成较小的瓦片。raster包中的brick函数用于读取栅格文件,writeRaster用于写入磁盘。但是,我无法使用图像查看器打开新文件。这是由于缺少ColorInterp标记造成的。我
a <- brick(old.tif)
writeRaster(a, filename = new.tif)比较old.tif和new.tif中的tiff标记。对于old.tif,标记BitsPerSample为8;对于new.tif,标记为64。所以我将栅格中的dataType更新为INT1U,它应该是0-255。
dataType(a) <- 'INT1U'
writeRaster(a, filename = new.tif, dataType = 'INT1U')但是,标记BitsPerSample仍然等于64。我现在的问题是,我应该如何将BitsPerSample指定为8。
PS:这段代码也不能工作
writeRaster(a, filename = new.tif, dataType = 'INT1U', BitsPerSample = 8)PPS:writeTIFF可以生成没有crs信息的可视tiff文件。
发布于 2017-02-09 03:55:20
使用GeoTiff,您不需要指定每个样本的位数,除非您想偏离基本格式。例如,可以使用GDT_Byte (0-255)指定每个采样2位,以减小布尔图像的文件大小。当它被读回时,它将被正确地解释为GDT_Byte (被大多数软件)。
但是,如果您的数据已经是GDT_Byte (INT1U),则没有必要指定每个样本的位数,它将默认为所需的大小;参数需要小于“默认值”的值,例如:指定的8位格式为1到7位,16位格式为9到15位,等等。
请在此处查看有关GeoTiff镜像的NBITS参数的文档:http://www.gdal.org/frmt_gtiff.html。
它还看起来BitsPerSample不是writeRaster的有效参数,但它应该作为创建选项传递,作为options=c("NBITS=n"),与GDAL在R之外使用的语法相同。
关于您引用的颜色解释标记,您可以在options:options=c("PHOTOMETRIC=RGB")中指定。如果存在alpha通道,则可以添加"ALPHA=YES"。这些都是上面链接中记录的标准创建选项。
https://stackoverflow.com/questions/38069631
复制相似问题