我正在检查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上找不到它。有人可以与我分享他们的经历吗?
非常感谢!
答案 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"