我在使用(理解)从.nc文件获得的质量检查信息来选择栅格的各个像元方面遇到问题。
我正在使用“ raster”包,并且raster()命令会自动将存储在原始文件中的二进制信息转换为整数。
现在,我想弄清楚所得的数字(范围从68到282)。
不幸的是,位字没有遵循MODIS模式,而是如下所示:
xx | x | xxx | xx
从bit7到bit0(未使用位15-8),每个位置的内容的详细说明可以在下表中看到:
The bit string description from the documentation)
现在的问题是,当我将栅格中的整数“转换”为二进制时,我得到的字符串不符合“用词模式”。
我使用了R Book(Crawley 2007)中的一个函数:
binary <- function(x) {
i <- 0
string <- numeric(32)
while(x > 0) {
string[32 - i] <- x %% 2
x <- x %/% 2
i <- i + 1
}
first <- match(1, string)
string[first:32]
}
给出以下结果:
> binary(280)
[1] 1 0 0 0 1 1 0 0 0
> binary(204)
[1] 1 1 0 0 1 1 0 0
现在,任何一种阅读方法都不会产生有意义的结果。
(根据表1中的标签方案)
我的方法
->向后/向前
->限制在8个位置以适应长度的变化
不工作。
在此先感谢您,感谢您的帮助。
抱歉,如果术语中有错误的术语和错误,我正在输入此域。
顺便说一句: 我还尝试了另一种整数位转换,结果相似:
> f <- as.integer(intToBits(280))
> f
[1] 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
> f[9:1]
[1] 1 0 0 0 1 1 0 0 0