如何从R中的netCDF文件中提取变量名?

时间:2013-01-29 15:33:12

标签: r netcdf variable-names

我在R中编写一个函数,从netCDF文件中提取一些空气质量建模数据。我安装了包“ncdf”。

为了让其他用户或我自己选择从netCDF文件中提取哪些变量,我想提取文件中所有变量的名称,这样我就可以在一个简单的列表中而不仅仅是{{ 1}}文件提供太多信息。有没有办法做到这一点?

我尝试print.ncdf()到ncdf对象的unlist()字段,但它似乎也返回了内容......

我用Google搜索并搜索了堆栈* 溢出 *但似乎没有找到答案,所以非常感谢您的帮助。

非常感谢提前。

2 个答案:

答案 0 :(得分:16)

如果您的ncdf对象被称为nc,那么很简单:

names(nc$var)

举个例子,使用下载的here数据集(因为你没有提供一个):

nc <- open.ncdf("20130128-ABOM-L4HRfnd-AUS-v01-fv01_0-RAMSSA_09km.nc")
names(nc$var)
[1] "analysed_sst"     "analysis_error"   "sea_ice_fraction" "mask"   

答案 1 :(得分:6)

现在是2016年。不推荐使用ncdf包。 与SE用户plannapus相同的代码&#39;答案现在是:

library(ncdf4)
netcdf.file <- "flux.nc"
nc = ncdf4::nc_open(netcdf.file)
variables = names(nc[['var']])
#print(nc)

文件中的说明:

Package: ncdf
Title: Interface to Unidata netCDF Data Files
Maintainer: Brian Ripley <ripley@stats.ox.ac.uk>
Version: 1.6.9
Author: David Pierce <dpierce@ucsd.edu>
Description: This is deprecated and will be removed
   from CRAN in early 2016: use 'RNetCDF' or 'ncdf4' instead.

Newer package "ncdf4" is designed to work with the netcdf library 
version 4, and supports features such as compression and 
chunking.Unfortunately, for various reasons the ncdf4 package must have
a different API than the ncdf package.

维护者主页上的说明:

Package ncdf4 -- use this for new code

The "ncdf4" package is designed to work with the netcdf library, version 4. 
It includes the ability to use compression and chunking, 
which seem to be some of the most anticipated benefits of the version 4 
library. Note that the API of ncdf4 has to be different 
from the API of ncdf, unfortunately. New code should use ncdf4, not ncdf. 

http://cirrus.ucsd.edu/~pierce/ncdf/