如何对 xarray Dataset/DataArray 的索引进行排序?

How to sort the index of a xarray Dataset/DataArray?

我正在沿时间维度从多个切片创建一个 DataArray,并在尝试重新采样时偶然发现了 'index must be monotonic for resampling' 错误,我猜这表明我的时间索引未排序。我 concat()ininated 它们时没有注意顺序。

# TODO: sort instead of raising an error

在出现错误的代码中找到。

我的问题:如何在 DataSet 中对 DataArray 的索引进行排序?我找不到类似 sort_index().

的内容

您可以在已排序的索引上重建索引 - .reindex(time=sorted(dataset.time))

不如sort_index()优雅,但应该可以

编辑:@scottclowe 指出 xarray 自从添加 .sortby(),所以使用它! http://xarray.pydata.org/en/stable/generated/xarray.DataArray.sortby.html

我必须添加 .values 才能正确排序。我的 time.values 是 datetime64[ns]。 Xarray v0.10.0。

.reindex(time=sorted(dataset.time.values))

现在有一个sortby()方法可以使用。

da = da.sortby('time')