如何通过对 XArray 数据集的坐标值应用函数来创建数据数组?
例如。
ds = xr.Dataset(
coords={
'x': [1.5, 4, 2],
'y': [2, -3, -1],
},
)
# some function like *apply that takes the coordinates as a list?
r = ds.apply*(lambda coords: math.sqrt(coords.x**2 + coords.x**2))
应该输出
r = [ [ [2.5, ..],
[.., 5, ..], .. ]
您可以使用
xr.apply_ufunc
来完成此操作
ds = xr.Dataset(
coords={
'x': [1.5, 4, 2],
'y': [2, -3, -1],
},
)
r = xr.apply_ufunc(lambda x,y: math.sqrt(x**2 + y**2), ds.x, ds.y, vectorize=True)
输出:
array([[2.5 , 3.35410197, 1.80277564],
[4.47213595, 5. , 4.12310563],
[2.82842712, 3.60555128, 2.23606798]])