如何一次在netCDF文件中获取变量的多个属性?

时间:2013-02-13 18:45:06

标签: r netcdf

我正在检查R中一批netCDF文件的元数据。由于SO似乎不允许文件上传,我在下面附加了简化示例netCDF文件的标题:

netcdf no2 {
dimensions:
    lon = 360 ;
    lat = 179 ;
    time = UNLIMITED ; // (10 currently)
variables:
    double lon(lon) ;
        lon:units = "degsE" ;
    double lat(lat) ;
        lat:units = "degsN" ;
    int time(time) ;
        time:units = "days since 1900-01-01" ;
    float no2(time, lat, lon) ;
        no2:units = "ug/m3" ;
        no2:missing_value = 1.e+30f ;
        no2:long_name = "nitrogen dioxide" ;
        no2:standard_name = "no2" ;
}

基本上,我试图将变量的几个属性,例如“standard_name”,“long_name”和“no2”的“单位”一次性放入向量中。但是,包att.get.ncdf()中的ncdf似乎一次只允许一个。由于通过重复代码获得更多属性可能相当繁琐和费力,我认为必须有一种更简洁的方式来做到这一点,但我在Google上找不到它。有人可以与我分享他们的经历吗?

非常感谢!

1 个答案:

答案 0 :(得分:3)

ncdf似乎没有提供获取变量所有属性的方法。但是如果你知道这些属性,你可以使用循环或sapply来获取它们。

例如:

filename <- "no2"
nc <- open.ncdf( filename )
var <- "no"
attrs <- c('standard_name','long_name','units','missing_value')
sapply(attrs,function(x)
   att.get.ncdf( nc, var, x)$value)
close.ncdf(nc)

standard_name          long_name              units      missing_value 
         "no2" "nitrogen dioxide"            "ug/m3"             "1200"