从R中的ncdf文件提取值时出错
我编写了一个从ncdf文件中提取值的函数,如下所示:从R中的ncdf文件提取值时出错,r,extract,ncdf4,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 stand
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)
Lappy函数用于提取多个站点的值
但是,出现以下错误:
UseMethodextract中出错:没有适用于的方法
“提取”应用于c类“光栅砖”、“光栅”的对象,
“RasterStackBrick”,“BasicRaster”
我们如何解决这样的错误?我认为Roman是正确的,magrittr::extract是掩蔽光栅::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)
}
只是黑暗中的一个镜头-有任何掩蔽吗?也许您可以尝试使用raster::extract。我猜现在正在使用magrittr::extract。非常感谢您的评论。根据你的评论,我终于解决了我的问题。非常感谢你的帮助。根据你的建议,我成功地解决了我的问题。