2013-02-13 61 views
1

我檢查在R.一批的netCDF文件的元數據作爲SO似乎沒有允許文件上傳,我已附加的簡化示例的標頭的netCDF以下文件:如何一次獲取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」,一次寫入一個向量。但是,包ncdf中的att.get.ncdf()似乎只允許一次一個。因爲通過重複代碼來獲得更多屬性可能相當乏味和費力,我認爲必須有一個更好的方法來實現它,但是我只是沒能在Google上找到它。請有人與我分享他們的經驗嗎?

非常感謝!

回答

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"