XArray 将函数应用于坐标

问题描述 投票:0回答:1

如何通过对 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, ..], .. ]
python-xarray
1个回答
0
投票

您可以使用

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]])
© www.soinside.com 2019 - 2024. All rights reserved.