将多模型的多运行集合放入Xarray数据集中



i具有多模型的多运算集合数据,即每个模型也具有单个模型的模型集合。我希望能够通过模型(即获得属于特定模型的所有集合成员(和成员(即,无论哪种模型,都可以在特定/所有运行中获得平均值(。因此,model应该是模型名称,而member仅是任意号码或ID。

我的草稿看起来像:

ds = xr.Dataset(
        {'some_var': (['time', 'model'], some_data)},
        coords={'time': pd.date_range(from_date, to_date),
                'model': (['model', ], some_data.shape[1] * [model_name])})

但是,我没有设法做一个member变量/坐标,以便我可以同时做:

ds.sel(dict(model='model_a', member=0))  # select member 0 from model a

ds.sel(time=0).some_var.mean()  # calulate mean of whole ensemble at time 0

我试图制作一个取决于model坐标的member变量,但是我无法选择它。

i避免将组用于各个模型,因为随后在整个整体上进行统计数据变得很困难。这将如何在文件中组织?

好吧,我认为这比我想象的要容易。应该是:

ds = xr.Dataset({'some_var': (['time', 'member', 'model'], some_3D_var)},
                       coords={'member': (['member', ], np.arange(some_3D_var.shape[1])),
                               'model': (['model', ], ['model_name']),
                               'time': (['time', ], pd.date_range(from_date, to_date)),
                               })

这样,应该可以将两个选择应用于数据集。

最新更新