【问题标题】:Put multi-model multi-run ensemble into xarray Dataset将多模型多运行集成到 xarray 数据集中
【发布时间】:2019-05-17 13:58:03
【问题描述】:

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

我没有为单个模型使用组,因为这样就很难对整个集合进行统计。 这将如何在文件中组织?

【问题讨论】:

    标签: python-xarray


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2020-02-10
      • 2021-10-26
      • 1970-01-01
      • 1970-01-01
      • 2021-06-14
      • 2017-06-13
      • 2016-12-14
      • 1970-01-01
      • 2021-05-21
      相关资源
      最近更新 更多