Чтение значения атрибута из файла NetCDF4 с вложенными группами - PullRequest
0 голосов
/ 03 сентября 2018

Это должно быть тривиально, но я никак не могу понять, как это сделать: я пытаюсь прочитать значение атрибута из файла NetCDF4 в R. Теперь мой файл NetCDF4 (загружен здесь ) довольно сложный, то есть содержит вложенные группы.

Я хотел бы извлечь значение атрибута с именем gml:posList из группы METADATA/EOP_METADATA/om:featureOfInterest/eop:multiExtentOf/gml:surfaceMembers/gml:exterior, используя R. Я не уверен, имеет ли это значение в этом контексте, но эта группа не содержит никаких переменных, только атрибуты метаданных.

Я пробовал следующее

library(ncdf4)
fid = nc_open('S5P_NRTI_L2__NO2____20180728T130136_20180728T130636_04089_01_010100_20180728T140302.nc')
ncatt_get(fid, varid=0, attname='METADATA/EOP_METADATA/om:featureOfInterest/eop:multiExtentOf/gml:surfaceMembers/gml:exterior/gml:posList', verbose=TRUE)

но это возвращает

[1] "ncatt_get: entering"
[1] "ncatt_get: is a global att"
[1] "ncatt_get: calling ncatt_get_inner for a global att"
[1] "ncatt_get_inner: entering with ncid= 65536 varid= -1 attname= METADATA/EOP_METADATA/om:featureOfInterest/eop:multiExtentOf/gml:surfaceMembers/gml:exterior/gml:posList"
[1] "ncatt_get_inner: about to call R_nc4_inq_att"
[1] "ncatt_get_inner: R_nc4_inq_att returned with error= -43 type= -1"
$`hasatt`
[1] FALSE

$value
[1] 0

предположительно указывает на то, что он не может найти атрибут, и я предполагаю, что я как-то неправильно понял путь.

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

Кстати, просто для справки, в Matlab команда

test = ncreadatt(file, 'METADATA/EOP_METADATA/om:featureOfInterest/eop:multiExtentOf/gml:surfaceMembers/gml:exterior', 'gml:posList')

работает нормально, поэтому я знаю, что это не проблема с файлом.

Любые советы будут высоко оценены!

...