从具有嵌套组的NetCDF4文件中读取属性值

时间:2018-09-03 14:34:30

标签: r netcdf4

这应该是微不足道的,但我一辈子都无法弄清楚该怎么做:我正在尝试从R中的NetCDF4文件读取属性值。现在,我的NetCDF4文件(已上载{{{3} })非常复杂,即它包含嵌套组。

我想使用R从组gml:posList中提取名为METADATA/EOP_METADATA/om:featureOfInterest/eop:multiExtentOf/gml:surfaceMembers/gml:exterior的属性的值。我不确定在这种情况下是否重要,但是该组不包含任何变量,仅元数据属性。

我尝试了以下

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

大概表明它找不到该属性,我认为我以某种方式弄错了路径。

所以我的问题是,我该如何指定一个属性的路径,即a)嵌套组中的b)不链接到特定变量的,这样ncatt_get()可以找到该属性并返回其值?

顺便说一句,仅供参考,在Matlab中,命令

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

工作正常,所以我知道这与文件无关。

任何提示将不胜感激!

0 个答案:

没有答案