xarray - 将数据重新采样为可变长度的季节性频率
我有每月时间序列的数据,我想以特定的方式对其进行重新采样,这样我就有两个季节组 - 5 个月 (DJFMA) 和 7 个月 (MJJASON),并找到每个组中每个网格点的最大值。这是我所拥有的,但显然它没有达到我想要的效果:
my_data.resample(time='2QS-NOV').max(dim='time')
谢谢!
I have data that is on a monthly timeseries, and I want to resample it in a specific way such that I have two seasonal groups - 5 months (DJFMA) and 7 months (MJJASON) and find the maximum value for each gridpoint from each group. Here is what I have, but obviously it does not do what I want:
my_data.resample(time='2QS-NOV').max(dim='time')
Thank you!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用
DateTimeAccessor
任何日期时间坐标的属性来定义您自己的石斑鱼,然后使用 groupby 而不是重新采样来使用自定义重新采样频率。例如,我将设置一个包含 4 年日常数据的虚拟数据集。
您可以使用
.dt.month
访问器以 1 到 12 之间的整数形式访问月份:您可以将其用作它自己的系列来构建您想要的任何条件:
我将在此基础上制作格式为 YYYY-{monthgroup} 的字符串,确保将 12 月包含在下一年的组中:
我们可以使用此石斑鱼对数据进行重新采样时间维度:
请注意,第一组和最后一组缺少月份,因为数据与 12 月到 11 月的季节性方案不完全一致。您可能想根据您的目标放弃这些。
you can use the
DateTimeAccessor
attribute of any datetime coordinate to define your own grouper, then use groupby instead of resample to work with custom resampling frequencies.As an example, I'll set up a dummy dataset with 4 years of daily data
You can access the month as an integer from 1 to 12 using the
.dt.month
accessor:You can use this as its own series to build any conditions you want:
I'll build on this to make a string of the format YYYY-{monthgroup}, making sure to include December in the next year's group:
We can use this grouper to resample the data along the time dimension:
Note that the first and last groups are missing months because the data doesn't align cleanly with the December through November seasonal scheme. You may want to drop these depending on your goals.