我正在阅读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
答案 0 :(得分:1)
“无索引尺寸”只是没有关联坐标变量的尺寸。更好的部分标题可能是“没有坐标的尺寸”。这没有什么本质上的错误:有时维度没有有意义的坐标值,而xarray处理这个就好了。
这是xarray对象的repr
中的新部分。从x0.0.0开始,xarray数据模型中为coordinates for dimensions are now optional,而不是使用[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问题发表评论)。