微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从坐标列表列表中选择并在 Xarray 中求和

如何解决从坐标列表列表中选择并在 Xarray 中求和

我正在使用 Xarray 处理定义在三角形上的非结构化海洋网格。我在每个三角形的节点上定义了数据,并想在脸上找到总和。使用 Xarray,我有一个如下所示的数组:

ds = xr.open_dataset(...)
ds

<xarray.DataArray 'w' (nod2: 3140,nz: 48)>
dask.array<transpose,shape=(3140,48),dtype=float32,chunksize=(3140,1),chunktype=numpy.ndarray>
Coordinates:
  * nod2     (nod2) int64 0 1 2 3 4 5 6 7 ... 3133 3134 3135 3136 3137 3138 3139
  * nz       (nz) float64 0.0 -5.0 -10.0 -20.0 ... -5.65e+03 -6e+03 -6.25e+03

此外,我有一个三角形节点列表:

[[   0   11    1]
 [   1   11    9]
 [   1    9    8]
 ...
 [3138 3135 3139]
 [3138 3134 3133]
 [3139 3136 3137]]

形状:

(5839,3)

在 numpy 中,我可以这样做(也可以进行一些缩放):

elem_mean = np.sum(w[mesh.elem.T,:],axis=0) / 3.0 * 1.0e-6

在 Xarray 中会是什么样子?

目标最终是删除任何需要直接打开数组的 numpy 代码,并使所有内容都在 dask 中运行,这将允许我们将计算连接到例如SLURM。

谢谢! 保罗

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。