1

我正在检查 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" ;
}

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

非常感谢!

4

1 回答 1

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" 
于 2013-02-13T19:19:53.343 回答