从netcdf文件读取质量标志

问题描述 投票:0回答:1

我在使用(理解)从.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
r raster netcdf qa satellite
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.