2013-02-13 2 views
1

Я проверяю мета-данные партии NetCDF файлов в R. Поскольку 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» и «units» из «no2», за один раз в вектор. Однако att.get.ncdf() в пакете 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"