我有多个数据具有相同的coords
和相似的值。即,没有单个唯一ID,而是组合ID (index, split)
。理想情况下,我只想一个接一个地附加所有数据集,但我没有找到正确的方法。
import xarray as xr
from xarray import Dataset
import numpy as np
datasets = []
for split in range(3):
dim2_len = 4
dim1_len = 3
data_len = 5
d = Dataset({'data1': (['index', 'dim1'], np.random.rand(data_len, dim1_len)),
'data2': (['index', 'dim2'], np.random.rand(data_len, dim2_len)),
'data3': (['index', 'dim2'], np.random.rand(data_len, dim2_len))},
coords={'index': range(data_len),
'dim2': range(dim2_len),
'dim1': range(dim1_len),
'split': split})
datasets.append(d)
xr.auto_combine(datasets)
# ValueError: too many different dimensions to concatenate: {'dim1', 'dim2', 'index'}
当前的xr.concat
/ xr.auto_combine
函数不允许您沿多个维度(https://github.com/pydata/xarray/blob/4b8339b53f1b9dcd79f2a9060933713328a13b90/xarray/core/combine.py#L358)连接数据集。
我想,我可以手动获取所有数据和坐标并将它们放入一个新的数据集中,但似乎应该有更好的方法在库中。
有没有办法在多个维度上连接数据集?