Количество растровых клеток без NA - PullRequest
0 голосов
/ 26 марта 2020

Этот вопрос задавался один раз в прошлом (из того, что я смог найти), но единственный ответ не дал решения. В RasterStack я хочу сгенерировать сводную статистику для каждого растра (мин, макс, среднее значение, SD) И количество ячеек, включенных в эти вычисления (т. Е. Количество ячеек, отличных от NA). Вы можете подумать, что число будет одинаковым для каждого растра, если все они имеют одинаковый экстент и разрешение, но эти растры были замаскированы их соответствующими слоями QA, что привело к разному количеству не-NA ячеек в каждом растровом слое. Я использовал cellStats, но это не обеспечивает количество ячеек в качестве вывода. Я мог бы также использовать зональную статистику, но, похоже, эта функциональность отсутствует (из того, что я читал). Кто-нибудь знает, как добавить это в мой вывод?

Спасибо

1 Ответ

0 голосов
/ 26 марта 2020

Я думаю, вы ищете функцию freq. Эта функция даст вам частоту пикселей по значению. Вот один из способов, которым вы можете рассчитать количество пикселей без NA с некоторыми фиктивными данными.

library(raster)

#Create 2 matrix
m1<-matrix(sample(1:10, 250, replace = T), 
           nrow = 50, 
           ncol = 50)
m2<-matrix(sample(11:20, 250, replace = T), 
           nrow = 50, 
           ncol = 50)

#Transform it to stack
r1 <- stack(raster(m1), raster(m2))

#Set pixel values == 3 and == 12 as NA
r1[r1 ==3 | r1 == 12]<-NA

#Get your cellStats
cellStats(r1, stat = "mean")

#Transform non-NA values to 1
r1[!is.na(r1)]<-1

#Get frequency of pixels by value
#1's will be the number of non-NA pixels
freq(r1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...