在气象上,通过二分类可以得到模型预测的准确度,但是要预测数据和观测数据点对点对应上,我现在遇到的问题是用双线性插值将预测数据变得跟观测数据一样,因为这两个数据的经纬度信息不同,分辨率也不同,请问各位代码相关的内容,谢谢大家
你可以使用scipy.interpolate.interp2d
对已知网格点数据进行插值。然后你可以通过坐标变换(平移、缩放、旋转)把目标坐标系上的坐标映射到插值区域的坐标,进而通过插值函数得到相应的数值。下面是一个例子供你参考。
https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.interp2d.html
import numpy as np
from scipy import interpolate
import matplotlib.pyplot as plt
x = np.arange(-5.01, 5.01, 0.25) # 按步长生成列表
y = np.arange(-5.01, 5.01, 0.25)
xx, yy = np.meshgrid(x, y) # 生成网格
z = np.sin(xx**2+yy**2) # 计算网格点上的值
f = interpolate.interp2d(x, y, z, kind='linear') # 线性插值
xnew = np.arange(-5.01, 5.01, 0.4) # 降低网格点分辨率
ynew = np.arange(-5.01, 5.01, 0.4)
znew = f(xnew, ynew)
plt.plot(x, z[0, :], 'ro-', xnew, znew[0, :], 'b-') # 比较x方向上的原始值(红色)与降低分辨率后线性插值得到的结果(蓝色)
plt.show()
griddata即可
不知道你这个问题是否已经解决, 如果还没有解决的话: