Ошибки возникают, когда я извлекаю значения из файла ncdf в R - PullRequest
0 голосов
/ 25 августа 2018

Я написал функцию для извлечения значений из файлов ncdf, как показано ниже:

precresults <- function(x){
    library(magrittr)
    library(ncdf4)
    library(raster)
    library(ncdf.tools)
    ##library(ncf)
    re1 <- brick(nl1a[x])
    re <- extract(re1,zuobiao)
        ####zuobiao stands for the coordinate of the targeted sites
    ###extract(zuobiao)
    return(re)
}

###precresults(20)
precresults11 <- lapply(1:420, precresults)

Функция «lapply» используется для извлечения значений для нескольких сайтов.

Однако ошибкапроисходит:

Ошибка в UseMethod ("extract_"): нет применимого метода для 'extract_', примененного к объекту класса "c ('RasterBrick', 'Raster', 'RasterStackBrick', 'BasicRaster') "

Как мы можем решить такую ​​ошибку?

1 Ответ

0 голосов
/ 26 августа 2018

Я думаю, что Роман прав, magrittr::extract маскирует raster::extract.В приведенном примере вы не используете magrittr, но можете использовать его в другом месте, поэтому используйте raster::extract вместо extract.Ваша функция может быть переписана как:

library(raster)
precresults <- function(x){
    re1 <- brick(nl1a[x])
    raster::extract(re1, zuobiao)
}
precresults11 <- lapply(1:420, precresults)

Или как это:

library(raster)
x <- matrix(nrow=length(zuobiao), ncol=420)
for (i in 1:420) {
    re1 <- brick(nl1a[i])
    x[,i] <- raster::extract(re1, zuobiao)
}
...