r - 当我从 R 中的 ncdf 文件中提取值时发生错误
问题描述
我写了一个函数来从 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')”类的对象
我们如何解决这样的错误?
解决方案
我认为 Roman 是正确的,magrittr::extract
是 masking 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)
}
推荐阅读
- mysql - 在 MySQL 数据库上激活远程访问
- windows - 如何在显示所选颜色的名称时显示用户选择的颜色的输出?
- svn - VsCode SVN 显示历史
- google-apps-script - getRange & setValue 设置错误的值
- conditional-statements - 在简单计算中添加条件
- c# - 对 Web 服务进行 API 调用时,Xamarin Android 应用程序“错误请求”
- oauth-2.0 - OAUTH 注销和 Oauth 令牌验证
- python - cocos creator 无法为安卓平台构建
- php - phpseclib SFTP 用户身份验证失败
- python - 如何知道python中的下载文件扩展名?