0

我正在尝试创建一个气候模型。我已按照此链接中的说明进行操作。

即使我将数据集更改为来自不同卫星的数据,我仍然会遇到以下两个错误。

"'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

我已经设法解决了第一个问题,但事实证明第二个是一个挑战。

先感谢您!

4

0 回答 0