У меня проблемы с использованием (пониманием) информации QA, полученной из файла .nc, для выбора соответствующих ячеек моего растра.
Я автоматически использую пакет "растр" и команду raster ()преобразует двоичную информацию, хранящуюся в исходном файле, в целые числа.
Теперь я хочу разобраться в результирующих числах (в диапазоне от 68 до 282).
К сожалению, битовые слова не соответствуют шаблону MODIS,но выглядят так:
xx | x | xxx | xx
переход от бита 7 к бит 0 (биты 15-8 не используются, подробное описание содержимого каждой позиции можно увидеть в следующей таблице: Описание битовой строки из документации )
Проблема теперь в том, что когда я "переводю" целые числа в моем растре в двоичный файл, я получаю строки, которые не соответствуют "формулировке"pattern ".
Я использовал функцию из 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