删除重复次数,但保持最大值xarray



关于如何在xarray数据集或dataaray中删除重复次数,有几种不同的解决方案。然而,我没有看到任何问题或例子来描述基于该值的掉落时间。我想优先删除时间,只保留该时间的最大值。

我的数据由两个数据数组组成:data1包含2020年7月12小时分辨率的数据,data2包含2020年7月24小时分辨率的数据。

data1
xarray.DataArray 'tp' (time:62, latitude:137, longitude:261)
data2
xarray.DataArray 'tp' (time:31, latitude:137, longitude:261)

我试着做一些我认为可能对这个解决方案有效的事情,使用这样的循环:

test=xr.concat([data1, data2], dim='time')
max_vals=[]
for i in test['time']:
print(i)
max_=test.sel(time=i).max(dim='time').expand_dims(time=[i])
max_vals.append(max_)

我认为/想要发生的是.sel()命令将选择与当前在循环中选择的时间相对应的所有时间。在这个特定的示例中,应该有两个小时00的时间值,但只有一个小时12的时间值。然而,它抛出了一个错误。关于如何完成这样的事情有什么想法或想法吗?

我注意确保完全理解您想要的合并行为。我的理解是,你有ds1ds2重叠的时间索引,你想要一个dsds1ds2的合并,并为重叠的索引提供max(ds1, ds2)?

在这种情况下,您可以这样写:

ds = xr.concat([ds1, ds2], dim='new_dim').max(dim='new_dim')

我正确理解你的问题了吗?