0

我正在尝试在 python 中使用 1991 年到 2020 年的数据重新采样 dataarray/xarray,以按日历年而不是季节将数据分组为季度(即 Q1 = JFM,Q2 = AMJ,... Q4 = OND)。我的数据数组 'wind_abs' 的维度是 -

wind_abs.dims
Out[70]: ('time', 'latitude', 'longitude')

我的目标是找到给定 Q1、Q2 等的wind_abs的“季度”平均值,例如按时间 =“QS”重新采样,但它似乎没有将数据保存到日历 Qs 中,但它保存在季节宿舍 - DJF、MAM、JJA 等。

result = ((wind_abs * month_length).resample(time='QS').sum() / 
          month_length.resample(time='QS').sum())

这个 groupby 按 DJF、MAM 等而不是 JFM、AMJ 等对“宿舍”进行分组。这是 groupby 行:

quarter_means =result.sel(time=slice('1991-01','2020-12')).groupby('time.season').mean(dim='time')

Quarter_means 看起来像这样:

         3.64661711, 3.8892598 ],
        [7.11546124, 7.10872887, 7.10433542, ..., 3.14532851,
         3.58238379, 3.93932429]]])
Coordinates:
    number     int32 0
    step       timedelta64[ns] 00:00:00
    surface    float64 0.0
  * latitude   (latitude) float64 65.0 64.75 64.5 64.25 ... 0.75 0.5 0.25 0.0
  * longitude  (longitude) float64 -140.0 -139.8 -139.5 ... -55.5 -55.25 -55.0

  * season     (season) object 'DJF' 'JJA' 'MAM' 'SON'

谢谢你,

4

1 回答 1

0

好的,我发现将 groupby 语句从“季节”更改为“季度”可以作为解决方案。而且,python 将四分之一标识为 1、2、3、4 整数,而不是“JFM”或“MAM”。所以按“季度”而不是“季节”查询。

于 2021-10-27T22:20:03.700 回答