在Python中将大型不规则网格插值到另一个不规则网格

在Python中将大型不规则网格插值到另一个不规则网格,第1张

在Python中将大型不规则网格插值到另一个不规则网格

Scipy的griddata似乎能够处理这种大小的数据集而不会出现问题:

将numpy导入为np导入scipy.interpolate#旧网格x,y = np.mgrid [0:1:201j,0:1:513j]z = np.sin(x * 20)*(1j + np.cos(y * 3))** 2#一些数据#个新网格x2,y2 = np.mgrid [0.1:0.9:201j,0.1:0.9:513j]#插值到新网格上z2 = scipy.interpolate.griddata((x.ravel(),y.ravel()),z.ravel(),(x2,y2),method ='cubic')

在旧的AMD Athlon上,griddata步骤大约需要5秒钟。

如果您的数据在网格上(即,与值z [i,j]对应的坐标为(x [i],y
[j])),则可以使用scipy.interpolate.RectBivariateSpline来提高速度

z3 =(scipy.interpolate.RectBivariateSpline(x [:,0],y [0 ,:],z.real)(x2 [:,0],y2 [0 ,:]) + 1j * scipy.interpolate.RectBivariateSpline(x [:,0],y [0 ,:],z.imag)(x2 [:,0],y2 [0 ,:]))

这需要0.05秒。它的速度要快得多,因为即使您的网格间距不规则,只要网格是矩形的,也可以使用更有效的算法。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5498854.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存