私は常に np.diff() 関数を使用して、変化が 180 度より大きいポイントを取得し、マスクされた要素を挿入します。主な欠点は、プロットのために「インデックス」も保持する必要があることです。
そう:
a = np.array([10,15,30,90,150,290,350,40,50,20,310,250,150])
idx = np.arange(len(a))
b = np.diff(a)
mask = np.where(np.abs(b) >= 180)[0]+1
c = np.ma.masked_equal(np.insert(a, mask, -1), -1)
idx = np.ma.masked_equal(np.insert(idx, mask, -1), -1)
fig, ax = plt.subplots(figsize=(10,3))
ax.plot(idx, c)
ax.set_xticks(idx)
ax.set_ylim(0,360)

これは範囲外の値を挿入しませんが、追加できると思います。マスクされた 1 つの要素の代わりに、2 つの要素を挿入して、グラフの「外」と「内」に再び挿入することができます。
また、180 度というしきい値は単なる仮定に過ぎないことに注意してください。実際に測定しない限り、風が後退しているのか方向転換しているのかはわかりません。