Xarray 按多次运行和时间分组
Xarray group by multiple runs and time
我有一个如下所示的 xarray 数据集:
<xarray.Dataset>
Dimensions: (lat: 100, lon: 130, model: 7, month: 240)
Coordinates:
lev float64 1.0
* month (month) datetime64[ns] 2040-01-01 2040-02-01 ... 2059-12-01
* lon (lon) float32 -99.375 -99.291664 ... -88.708336 -88.625
* lat (lat) float32 49.78038 49.696426 ... 41.552795 41.46884
* model (model) object 'bcc-csm1-1' 'CCSM4' ... 'MRI-CGCM3'
Data variables:
month_mean_snow (month, lat, lon) float32 ...
month_mean_tmin (model, month, lat, lon) float32 nan nan ... -6.0107846
month_mean_tmax (model, month, lat, lon) float32 nan nan ... -0.30793613
month_mean_prec (model, month, lat, lon) float32 nan nan ... 0.5480785
month_mean_relh (model, month, lat, lon) float32 nan ... 69.789246
month_mean_wspd (model, month, lat, lon) float32 nan 4.9480243 ... 9.585804
month_mean_rads (model, month, lat, lon) float32 nan 21.520756 ... 34.00794
用例是我有 7 个不同的气候 运行 数据,然后我将其重新采样为每月时间尺度。
问:如何同时对模型和月份进行分组?
预期结果:尺寸(纬度:100,经度:130,月=12)
当我 运行 时我得到了什么:
res.groupby('month.month', 'model').mean('month', 'model')
是尺寸(纬度:100,lon:130,型号:7,月份:12)。
我是否需要在 groupby 之前挤压或以某种方式扩展模型/月,然后在月进行?
试试这个:
res.groupby('month.month').mean(dim=['model','month'])
我有一个如下所示的 xarray 数据集:
<xarray.Dataset>
Dimensions: (lat: 100, lon: 130, model: 7, month: 240)
Coordinates:
lev float64 1.0
* month (month) datetime64[ns] 2040-01-01 2040-02-01 ... 2059-12-01
* lon (lon) float32 -99.375 -99.291664 ... -88.708336 -88.625
* lat (lat) float32 49.78038 49.696426 ... 41.552795 41.46884
* model (model) object 'bcc-csm1-1' 'CCSM4' ... 'MRI-CGCM3'
Data variables:
month_mean_snow (month, lat, lon) float32 ...
month_mean_tmin (model, month, lat, lon) float32 nan nan ... -6.0107846
month_mean_tmax (model, month, lat, lon) float32 nan nan ... -0.30793613
month_mean_prec (model, month, lat, lon) float32 nan nan ... 0.5480785
month_mean_relh (model, month, lat, lon) float32 nan ... 69.789246
month_mean_wspd (model, month, lat, lon) float32 nan 4.9480243 ... 9.585804
month_mean_rads (model, month, lat, lon) float32 nan 21.520756 ... 34.00794
用例是我有 7 个不同的气候 运行 数据,然后我将其重新采样为每月时间尺度。
问:如何同时对模型和月份进行分组?
预期结果:尺寸(纬度:100,经度:130,月=12)
当我 运行 时我得到了什么:
res.groupby('month.month', 'model').mean('month', 'model')
是尺寸(纬度:100,lon:130,型号:7,月份:12)。
我是否需要在 groupby 之前挤压或以某种方式扩展模型/月,然后在月进行?
试试这个:
res.groupby('month.month').mean(dim=['model','month'])