xarray - 按特定日期范围对数据进行分组
xarray - group data by specific date ranges
我有一个名为 da_ffdi_daily_max
的 xarray DataArray 对象。
<xarray.DataArray 'FFDI' (time: 3653, latitude: 106, longitude: 193)>
dask.array<shape=(3653, 106, 193), dtype=float32, chunksize=(1, 106, 193)>
Coordinates:
* time (time) datetime64[ns] 2008-01-01 2008-01-02 ... 2017-12-31
* latitude (latitude) float32 -39.2 -39.149525 ... -33.950478 -33.9
* longitude (longitude) float32 140.8 140.84792 140.89584 ... 149.95209 150.0
time
坐标范围为2008-01-1至2017-12-31。我想将 11 月份的 FFDI 数据按三类分组,即 Nov 01 - 10
、Nov 11-20
和 Nov 21-30
.
xarray
的groupby
功能如何实现?
Groupby
通常会尝试将您的所有数据分类到特定的组中,而看起来您正在尝试提取数据的子集。您可以使用常规日期时间索引制作所需的子集。
a = xr.tutorial.open_dataset('air_temperature')
nov_1_10 = a['air'][(a['time'].dt.day <= 10) & (a['time'].dt.month == 11)]
nov_11_20 = a['air'][(a['time'].dt.day <= 20) & (a['time'].dt.day >= 11) & (a['time'].dt.month == 11)]
nov_21_30 = a['air'][(a['time'].dt.day >= 21) & (a['time'].dt.month == 11)]
我有一个名为 da_ffdi_daily_max
的 xarray DataArray 对象。
<xarray.DataArray 'FFDI' (time: 3653, latitude: 106, longitude: 193)>
dask.array<shape=(3653, 106, 193), dtype=float32, chunksize=(1, 106, 193)>
Coordinates:
* time (time) datetime64[ns] 2008-01-01 2008-01-02 ... 2017-12-31
* latitude (latitude) float32 -39.2 -39.149525 ... -33.950478 -33.9
* longitude (longitude) float32 140.8 140.84792 140.89584 ... 149.95209 150.0
time
坐标范围为2008-01-1至2017-12-31。我想将 11 月份的 FFDI 数据按三类分组,即 Nov 01 - 10
、Nov 11-20
和 Nov 21-30
.
xarray
的groupby
功能如何实现?
Groupby
通常会尝试将您的所有数据分类到特定的组中,而看起来您正在尝试提取数据的子集。您可以使用常规日期时间索引制作所需的子集。
a = xr.tutorial.open_dataset('air_temperature')
nov_1_10 = a['air'][(a['time'].dt.day <= 10) & (a['time'].dt.month == 11)]
nov_11_20 = a['air'][(a['time'].dt.day <= 20) & (a['time'].dt.day >= 11) & (a['time'].dt.month == 11)]
nov_21_30 = a['air'][(a['time'].dt.day >= 21) & (a['time'].dt.month == 11)]