从netcdf文件读取质量标志

时间:2019-02-27 17:44:22

标签: r raster netcdf qa satellite

我在使用(理解)从.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

0 个答案:

没有答案