如何解决从坐标列表列表中选择并在 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 举报,一经查实,本站将立刻删除。