当起始变量存储为矩阵而不是向量时,访问netCDF数据

时间:2014-05-21 15:31:32

标签: r netcdf

我正在使用北美区域再分析(NARR数据集),它存储为netCDF文件。我对netCDF格式有一定的了解,但我目前很难过。 我试图使用uwnd.10m.mon.mean.nc文件访问Uwind速度。

通常在访问变量时我使用了标准代码:

var <- get.var.ncdf(nc, varid=NA, start=NA, count=NA, verbose=FALSE,signedbyte=TRUE,         forcevarid=NA)

其中start变量的格式为x-y-z-t。在以前的经验中,我已经将纬度起始码,经度起始码和时间放在lat,long和time中,每个都存储为一个向量。

然而,我现在的问题是经度作为(x,y)矩阵以及纬度(x,y)存储在上述数据集中。所以,我有一个特定的经度,我想选择的格式为long [271,1]和特定的纬度lat [1,137]。当我把它放入start = NA部分时,它不喜欢它,我得到一个错误。

如果每个lat和long都有自己特定的x,y值,如何以x-y-z-t的形式输入lats和longs起始值?下面的代码给了我一个错误,因为它显然不喜欢start = NA格式。

UwndJu2006_A= get.var.ncdf(Uwnd, "uwnd", start=c([271,1], [1,137] ,330), count=c(1,1,1))

这可能是一个简单的问题,但我不知所措。 所有帮助表示赞赏。

1 个答案:

答案 0 :(得分:3)

所以你想提取所有时间的测量值,特别是在长271,纬度137?看起来uwnd变量只是由[x,y,time]索引,所以

library(ncdf)
nc <- open.ncdf("uwnd.10m.mon.mean.nc")
uwnd <- get.var.ncdf(nc, "uwnd", start=c(271,137,1), count=c(1,1,-1))

似乎打开那一部分。在这里,我使用count来获取所有时间值时只使用那些long / lat值。您可以使用

验证这些索引的纬度/经度坐标
get.var.ncdf(nc, "lat", start=c(271,137), count=c(1,1))
get.var.ncdf(nc, "lon", start=c(271,137), count=c(1,1))