问题描述
我有一个 Zarr 数据存储,但我需要重命名其中一个维度。假设我有这个 (from xarray docs):
data = np.random.rand(4,3)
locs = ["IA","IL","IN"]
times = pd.date_range("2000-01-01",periods=4)
da = xr.DataArray(data,coords=[times,locs],dims=["time","space"])
ds = xr.Dataset({'my_var': da})
ds.to_zarr("my_zarr.zarr")
但我希望我的 space
维度实际上被称为 state
。
我该怎么做? (我找到了一种 hacky 方法 - 见下文)
解决方法
我的hacky解决方案是手动重命名它们:
- 重命名目录
cd my_zarr.zarr
mv space state
- 手动重命名相关
.zattts
文件中的维度:
老my_zarr.zarr/my_var/.zattrs
{
"_ARRAY_DIMENSIONS": [
"time","space"
]
}
老my_zarr.zarr/state/.zattrs
{
"_ARRAY_DIMENSIONS": [
"space"
]
}
新my_zarr.zarr/my_var/.zattrs
{
"_ARRAY_DIMENSIONS": [
"time","state"
]
}
新my_zarr.zarr/state/.zattrs
{
"_ARRAY_DIMENSIONS": [
"state"
]
}
但这太难了,我不喜欢它的手动方式。它胜过编写一个全新的 zarr 商店,但有没有更好的方法?