在不规则网格上进行插值
因此,我有三个numpy数组,它们在网格上存储纬度,经度和一些属性值-也就是说,我有LAT(y,x),LON(y,x)和温度T(y,x)
),对于x和y的某些限制。网格不一定是规则的-实际上,它是三极的。
然后,我想将这些属性(温度)值插值到一堆不同的纬度/经度点上(分别存储为lat1(t),lon1(t),大约10,000 t
…),这些点不属于实际的网格点。我已经尝试过matplotlib.mlab.griddata,但这花费了太长的时间(毕竟,它并不是真正针对我的工作而设计的)。我也尝试了scipy.interpolate.interp2d,但是遇到了MemoryError(我的网格约为400x400)。
是否有任何巧妙的方法,最好是快速的方法?我不禁觉得答案很明显……谢谢!
-
尝试结合 SO的 反距离加权和scipy.spatial.KDTree结合
使用。 Kd树
在2d 3d …中很好地工作,逆距离加权是平滑且局部的,并且k =最近邻居的数量可以改变以权衡速度/精度。