Как извлечь имена переменных из файла netCDF в R?

Я пишу функцию в R для извлечения некоторых данных моделирования качества воздуха из файлов netCDF. У меня установлен пакет "ncdf".

Чтобы другие пользователи или я могли выбирать, какие переменные извлекать из файла netCDF, я хотел бы извлечь имена всех переменных в файле, чтобы я мог представить их в простом списке, а не просто print.ncdf() файл для передачи слишком много информации. Есть ли способ сделать это?

Я попробовал unlist() в поле var объекта ncdf, но, похоже, он также вернул содержимое...

Я гуглил и искал stack*overflow*, ​​но, похоже, не нашел ответа, поэтому ваша помощь очень ценится.

Спасибо заранее.


person elarry    schedule 29.01.2013    source источник


Ответы (2)


Если ваш объект ncdf называется nc, то достаточно просто:

names(nc$var)

Например, используя загруженный набор данных здесь, например (поскольку вы его не предоставили):

nc <- open.ncdf("20130128-ABOM-L4HRfnd-AUS-v01-fv01_0-RAMSSA_09km.nc")
names(nc$var)
[1] "analysed_sst"     "analysis_error"   "sea_ice_fraction" "mask"   
person plannapus    schedule 29.01.2013
comment
Большое спасибо, @plannapus - я должен был подумать об этом! Извините, что не предоставил пример файла, так как я новичок в R и netCDF, я думал, что не смогу скопировать свой рабочий файл размером ~ 35 ГБ для иллюстрации... ;-) - person elarry; 29.01.2013

Сейчас 2016 год. Пакет ncdf устарел. Тот же код, что и ответ пользователя SE plannapus, теперь:

library(ncdf4)
netcdf.file <- "flux.nc"
nc = ncdf4::nc_open(netcdf.file)
variables = names(nc[['var']])
#print(nc)

Примечание из документации:

Package: ncdf
Title: Interface to Unidata netCDF Data Files
Maintainer: Brian Ripley <[email protected]>
Version: 1.6.9
Author: David Pierce <[email protected]>
Description: This is deprecated and will be removed
   from CRAN in early 2016: use 'RNetCDF' or 'ncdf4' instead.

Newer package "ncdf4" is designed to work with the netcdf library 
version 4, and supports features such as compression and 
chunking.Unfortunately, for various reasons the ncdf4 package must have
a different API than the ncdf package.

Примечание с домашней страницы сопровождающего:

Package ncdf4 -- use this for new code

The "ncdf4" package is designed to work with the netcdf library, version 4. 
It includes the ability to use compression and chunking, 
which seem to be some of the most anticipated benefits of the version 4 
library. Note that the API of ncdf4 has to be different 
from the API of ncdf, unfortunately. New code should use ncdf4, not ncdf. 

http://cirrus.ucsd.edu/~pierce/ncdf/

person knb    schedule 08.02.2016
comment
Откуда мы можем знать, что вернется имя переменной по умолчанию ncvar_get? Он не первый в списке от names(nc$var). - person mlt; 23.11.2017