Rob*_*aml 6 python grid interpolation numpy scipy
我有2048x2048网格的不规则数据zi = f(xi, yi),它们基本上是三组独立的2048个实数值.我需要平滑地插入(可能是双三次样条)到其中的常规网格wi = f(ui, vi),ui并且vi是从0到2047的整数值.
我已经尝试过griddata,它似乎在低于1000x1000的图像上运行良好,但是当你达到1500x1500时会爆炸(显然德劳内网格的内存qhull错误).我看过一些ndimage功能,即geometric_transform,RectBivariateSpline和map_coordinates,但他们似乎都采取正规化的数据作为输入.我可能会遗漏一些东西,但实际上也是错误的!
我试图使用Python/SciPy的做这个MATLAB脚本我一直在用做tformarray和makeresampler.有关我可以用来处理这个大型数据集的功能的任何建议吗?谢谢!
我尝试重现您的错误,但没有成功。你是32位系统吗?我在使用 scipy/numpy 和大型数组时遇到问题,因此切换到 64 位,从那时起就没有出现任何问题。
这是我用来尝试重现错误的代码(它不会生成任何有用的内容,但至少应该遇到相同的错误):
y,x=indices([2048,2048],dtype='float64')
z = randn(2048,2048)
yr = y + randn(2048,2048)
xr = x + randn(2048,2048)
zn = griddata(xr.ravel(),yr.ravel(),z.ravel(),x,y)
zl = griddata(xr.ravel(),yr.ravel(),z.ravel(),x,y,interp='linear')
Run Code Online (Sandbox Code Playgroud)
这在我的机器上有效。
如果您无法运行 64 位版本的 python(这可能会很困难,具体取决于您使用的操作系统),您可以将 2048x2048 网格分成 4 个 1024x1024 网格吗?
| 归档时间: |
|
| 查看次数: |
2696 次 |
| 最近记录: |