我正在尝试创建一个气候模型。我已按照此链接中的说明进行操作。
即使我将数据集更改为来自不同卫星的数据,我仍然会遇到以下两个错误。
"'z' 必须是一个矩阵"
“z的维度不是长度(x)(-1)乘以长度(y)(-1)”
library('readr')
library('dplyr')
library('tidyr')
library('viridis')
library('viridisLite')
library('lattice')
library('ncdf4')
dat <- nc_open("1.nc")
print(dat)
ncpath <- "/users/data"
ncname <- "data"
ncfname <- paste(ncpath, ncname, ".nc", sep="")
dname <- "ta"
lon <- ncvar_get(dat, "lon")
nlon <- dim(lon)
head(lon)
lat <- ncvar_get(dat,"lat")
nlat <- dim(lat)
head(lat)
print(c(nlon,nlat))
time <- ncvar_get(dat,"time")
time
tunits <- ncatt_get(dat,"time","units")
nt <- dim(time)
nt
at_array <- ncvar_get(dat,dname)
dlname <- ncatt_get(dat,dname,"long_name")
dunits <- ncatt_get(dat,dname,"units")
fillvalue <- ncatt_get(dat,dname,"_FillValue")
dim(at_array)
# get a single slice or layer (January)
m <- 1
at_slice <- at_array[,,,m]
image(lon, lat, as.matrix(at_slice), col = rev(brewer.pal(10, "RdBu")))
我想在问题中添加一些示例数据,但常见问题解答示例部分的方法似乎不适用于 NetCDF。我在这里上传了示例数据:
https://www.dropbox.com/sh/p481sc7ppf9mzd8/AAAO9m64SA-WJvr30YxTAi8ua?dl=0:
我已经设法解决了第一个问题,但事实证明第二个是一个挑战。
先感谢您!