我在使用(理解)从.nc文件获得的质量检查信息来选择栅格的各个像元方面遇到问题。
我正在使用“ raster”包,并且raster()命令自动将存储在原始文件中的二进制信息转换为整数。现在,我想弄清楚所得的数字(范围从68到282)。
[不幸的是,位字没有遵循MODIS模式,而是像这样:xx | x | xxx | xx从第7位到第0位(未使用第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