将多模型多运行集合集成到xarray数据集中

时间:2019-05-16 09:20:55

标签: python-xarray

我有多模型多行程合奏数据,即一个模型合奏,其中每个模型也有独立的行程。我希望能够通过模型(即获取属于特定模型的所有集合成员)和成员(即,无论是哪种模型,均获得特定/所有运行的均值)来解决运行问题。因此,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

我尝试制作一个依赖于member坐标的model变量,但是后来我无法为其选择。

我不对单个模型使用组,因为那样很难对整个集合进行统计。 该文件的组织方式如何?

1 个答案:

答案 0 :(得分:0)

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

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)),
                               })

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