gpt4 book ai didi

Python xarray : Extract first and last time value within each month of a timeseries

转载 作者:行者123 更新时间:2023-12-01 04:25:47 25 4
gpt4 key购买 nike

编辑 2016-01-24:此行为源自 xarray 中的错误(当时称为“xray”)。请参阅answer由下面的 skc 提供。

我有一个 xarray.DataArray,其中包含跨越多年的每日数据。我想计算时间序列中每个月数据的时间趋势。我可以使用 resample 获取分子,即每个月的数量变化。假设 arr 是我的 xarray.DataArray 对象,时间坐标名为 'time':

data_first = arr.resample('1M', 'time' how='first')
data_last = arr.resample('1M', 'time' how='last')

然后 data_last - data_first 为我提供该变量在该月的变化。

但是,这对 time=arr.time 对象本身不起作用:'first''last' kwarg值产生相同的值,即该月的最后一天。另外,我无法使用 groupby 方法,因为使用 time.month 这样做会将所有一月分组在一起,所有二月分组在一起,等等,当我想要时间序列中每个月内的第一个和最后一个时间值。

在 xarray 中是否有一种简单的方法可以做到这一点?我怀疑是的,但我是这个包的新手,而且失败得很惨。

最佳答案

由于'time'是您提供的DataArray中的坐标,目前不可能1直接在其上执行重新采样。一种可能的解决方法是创建一个新的 DataArray,将时间坐标值作为变量(仍与相同的坐标 'time' 链接)

如果arr是你开始的DataArray,我会建议这样:

time = xray.DataArray(arr.time.values, coords=[arr.time.values], dims=['time'])
time_first = time.resample('1M', 'time', how='first')
time_last = time.resample('1M', 'time', how='last')
time_diff = time_last - time_first
<小时/>

1这不是预期的行为 - 请参阅上面 Stephan 的评论。

更新: Pull request 648已修复此问题,因此不再需要使用解决方法。

关于Python xarray : Extract first and last time value within each month of a timeseries,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33158558/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com