遍历 xarray 数据集中的 dataArray 属性

loop through dataArray attributes in an xarray dataset

我有一个 xarray 数据集,其中包含许多 dataArray。这些 dataArrays 中的每一个都有一个 .attrs,它包含一个有序的字典,其中包含 ] 诸如每个 dataArray 的描述和单位之类的东西。

我想遍历数据集中的每个 dataArray 并打印出它们的每个 .attrs。

for ii in dataSet.data_vars:
    print(ii)

会给我每个数据数组的名称。然而,当我尝试

for ii in dataSet.data_vars:
    print(ii.attrs)

我收到 AttributeError:'str' 对象没有属性 'attrs' 如果我改为尝试,

for ii in dataSet.data_vars:
     print(dataSet.ii.attrs)

我收到 AttributeError: 'Dataset' 对象没有属性 'ii'

python 似乎试图将 'ii' 读取为 DataArray 名称,而不是在 ii 下存储为字符串的实际 dataArray 名称。我怎样才能遍历所有 dataArray 并打印出每个数据的 [dataArray].attrs?

data_vars 是一个可以遍历键值对的字典。

for varname, da in dataSet.data_vars.items():
    print(da.attrs)

你的最后一个例子也可以,但你需要使用 ii 作为字典键:

for ii in dataSet.data_vars:
    print(dataSet[ii].attrs)

请注意,如果您使用的是最新版本的 xarray,您还可以使用 dataSet.info() method.

打印所有 variables/attributes