1

我正在阅读一个 NetCDF 文件,我得到了Unindexed dimensions. 这是什么意思,我应该担心吗?它与坐标有关*empty*吗?这是否意味着源文件中有一些不整洁的东西?

In [33]: ds
Out[33]: 
<xarray.Dataset>
Dimensions:                     (hirs-n17_nx: 7, hirs-n17_ny: 7, hirs-n18_nx: 7, hirs-n18_ny: 7, matchup_count: 11969)
Coordinates:
    *empty*
Unindexed dimensions:
    hirs-n17_nx, hirs-n17_ny, hirs-n18_nx, hirs-n18_ny, matchup_count
Data variables:
(...)
    hirs-n18_counts_ch12        (matchup_count, hirs-n18_ny, hirs-n18_nx) float64 -2.147e+09 ...
(...)

In [35]: ds["hirs-n17_radiance_ch12"]
Out[35]: 
<xarray.DataArray 'hirs-n17_radiance_ch12' (matchup_count: 11969, hirs-n17_ny: 7, hirs-n17_nx: 7)>
[586481 values with dtype=float64]
Unindexed dimensions:
    matchup_count, hirs-n17_ny, hirs-n17_nx
Attributes:
    units: mW m^-2 sr^-1 cm
4

1 回答 1

1

“未索引的维度”只是没有关联坐标变量的维度。更好的部分标题可能是“没有坐标的维度”。这本身并没有什么问题:有时一个维度没有有意义的坐标值,而 xarray 可以很好地处理这个问题。

这是repr用于 xarray 对象的新部分。从 v0.9.0 开始,维度坐标现在在 xarray 数据模型中是可选的,而不是使用 form 的默认值填充[0, 1, 2, ..., N-1]

旧行为/repr(xarray v0.8.2):

>>> ds = xarray.Dataset({'foo': (('x',), [1, 2, 3])})
>>> ds
<xarray.Dataset>
Dimensions:  (x: 3)
Coordinates:
  * x        (x) int64 0 1 2
Data variables:
    foo      (x) int64 1 2 3
>>> 'x' in ds.coords
True

新行为/repr(xarray v0.9.0):

>>> ds = xarray.Dataset({'foo': (('x',), [1, 2, 3])})
>>> ds
<xarray.Dataset>
Dimensions:  (x: 3)
Coordinates:
    *empty*
Unindexed dimensions:
    x
Data variables:
    foo      (x) int64 1 2 3
>>> 'x' in ds.coords
False

我很高兴你提出了这个担忧。我们最近一直在调整repr(见https://github.com/pydata/xarray/issues/1199)试图以最清晰的方式传达数据模型的这一新方面,但我们可能没有做对然而。非常欢迎提出改进建议(请对链接的 GitHub 问题发表评论)。

于 2017-01-26T17:56:13.237 回答