如何使用R获取单波段光栅的RGBA颜色表?
这是一个名为的光栅文件 使用R,我可以得到如下颜色表:如何使用R获取单波段光栅的RGBA颜色表?,r,raster,geotiff,R,Raster,Geotiff,这是一个名为的光栅文件 使用R,我可以得到如下颜色表: my.raster <- raster( "/path/to/singleband-raster.tif" ) colortable( my.raster ) 这没关系,但我想得到的是RGBA(红、绿、蓝、阿尔法)值,而不是RGB值。因为光栅文件也有alpha值,应该是这样的: [1] "#FFFFFF00" "#969696FF" "#FA00FFFF&quo
my.raster <- raster( "/path/to/singleband-raster.tif" )
colortable( my.raster )
这没关系,但我想得到的是RGBA(红、绿、蓝、阿尔法)值,而不是RGB值。因为光栅文件也有alpha值,应该是这样的:
[1] "#FFFFFF00" "#969696FF" "#FA00FFFF" "#F200FFFF" "#E600FFFF"
可以通过命令行中的GDAL工具检查alpha值,如下所示:
my.raster <- raster( "/path/to/singleband-raster.tif" )
colortable( my.raster )
gdalinfo/path/to/singleband-graster.tif
如何使用R获取单波段光栅的RGBA颜色表?这说明
TIFF格式仅支持调色板/颜色的R、G、B组件
桌子。因此,在写入alpha信息时,将保持静默
丢弃
(因此,在阅读时不可用)
在这种情况下(文件中没有alpha),GDAL似乎将alpha值0指定给NA标志,将255指定给所有其他值<代码>光栅::颜色表不显示该值。但是有了(版本0.9-1)的开发版本,您就可以得到您想要的东西
library(terra)
x <- rast("singleband-raster.tif")
ct <- cols(x)[[1]]
head(ct)
# red green blue alpha
#1 255 255 255 0
#2 150 150 150 255
#3 250 0 255 255
#4 242 0 255 255
#5 230 0 255 255
#6 222 0 255 255
cols <- rgb(ct[,1], ct[,2], ct[,3], ct[,4], maxColorValue=255)
head(cols)
#[1] "#FFFFFF00" "#969696FF" "#FA00FFFF" "#F200FFFF" "#E600FFFF" "#DE00FFFF"
图书馆(terra)
x,谢谢你的信息。然而,格达尔的那句话让我非常困惑。通过使用它们,它可以从TIFF中检索正确的alpha值。因此,我没有得到TIFF格式仅支持R、G、B的部分,可能是一个4层(带)TIFF文件(即不使用颜色表)?Robert,它只有1个带。我已经在问题中附加了TIFF文件以供参考。我认为在本例中,NA的alpha值为0,所有其他值的alpha值为255。GDAL分配这些,因为它们不在文件.Aw中!我懂了。它仅被视为0
或255
的布尔值?这是有道理的。