当我从R中的ncdf文件提取值时发生错误

时间:2018-08-25 07:54:40

标签: r extract ncdf4

我编写了一个从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 :(得分:1)

我认为Roman是正确的,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)
}