Вычисление 1-го и 3-го квадрилл для стека растра с использованием функции квантиля в пакете Raster в R - PullRequest
0 голосов
/ 05 июля 2018

Я использую следующий код для расчета квартиля в R с использованием функции квантиля в растровом пакете. Мой набор растровых изображений содержит 307 изображений, и все изображения имеют некоторые значения Нет данных. Я просто хочу вывод без учета значений Нет данных. Я попробовал следующий код:

    library(raster)    
    raster_data<-list.files(path= getwd() , pattern= "\\.tif$", all.files=FALSE,
    full.names=TRUE,recursive=TRUE) 
    s <- stack(raster_data)
    quantile(s, na.rm = TRUE)

Выход:

квантиль (s)

                   0% 25% 50% 75% 100%

    X2008001h25v06 NA  NA  NA  NA   NA

    X2008002h25v06 NA  NA  NA  NA   NA

    X2008003h25v06 NA  NA  NA  NA   NA

    X2008004h25v06 NA  NA  NA  NA   NA

    X2008005h25v06 NA  NA  NA  NA   NA

    X2008006h25v06 NA  NA  NA  NA   NA
      --------------   
     -----------------  so on 

Почему значения NA NA NA NA NA поступают в выходные данные вместо квартилей.

1 Ответ

0 голосов
/ 06 июля 2018

Вот пример, который работает:

library(raster)
fn <- system.file("external/test.grd", package="raster")
s <- stack(fn, fn)
quantile(s)

#            0%      25%     50%      75%    100%
#test.1 128.434 293.2325 371.412 499.8195 1805.78
#test.2 128.434 293.2325 371.412 499.8195 1805.78

То же самое можно получить (с меньшими наборами данных) с помощью:

t(apply(values(s), 2, quantile, na.rm=TRUE))

Так что вам нужно выяснить, что отличается от ваших файлов.

Единственный способ, которым я могу думать о том, чтобы вернуть квантили, которые являются NA, - это когда все значения равны NA:

quantile(rep(NA, 10), na.rm=TRUE)
# 0%  25%  50%  75% 100% 
# NA   NA   NA   NA   NA 

Так что может показаться, что все значения в ваших файлах NA. Возможно, это не тот случай, но трудно устранить это без одного из файлов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...