如何在 python3 中插入风向数据?

How can I interpolate the wind direction data in python3?

import numpy as np
from scipy import interpolate
wind_direction = np.array([230,265,300,330,355,10,45,12,350,14,35,70,90])
x = np.linspace(1,10,13)
xnew = np.linspace(1,10,26)
f = interpolate.interp1d(x, wind_direction ,kind="slinear")
wind_direction_new = f(xnew)
print(wind_direction_new)

问题是当插值在 355 和 10、或 12 和 350 或 350 和 14 之间时,插值不正确。

听起来问题在于风角中的圆形环绕看起来像是人工跳转到 interp1d 函数。

您可以尝试在 wind_direction 上使用 np.unwrap 在插值之前删除跳跃。

另一种思路:用wind_phasor = np.exp((2j*np.pi/360) * wind_direction)wind_direction表示为complex phasor,然后插值,用np.angle将插值后的相量转回角度