scipy.interpolate.griddata由于不必要的数据而变慢

ggazkfy8  于 2022-11-23  发布在  其他
关注(0)|答案(1)|浏览(212)

我有一个600600不等距的x,y网格的Map,带有相关的标量值。
我有大约1000个x,y坐标,我想得到双线性插值Map值。这些是随机放置在一个内部中心区域的Map与约400
400大小。
我决定使用griddata函数的线性方法。我的理解是,使用线性插值,我只需要每个坐标周围的三个最近的网格位置就可以得到定义良好的插值值。因此,我需要Map上大约3000个数据点来执行插值。360k个数据点对于这项任务来说是非常不必要的。
愚蠢地把完整的Map扔进去会导致半分钟的执行时间。因为很容易把Map缩小到感兴趣的区域,我可以把执行时间减少到将近20%。
我现在想知道,我是否忽略了我的假设,即我只需要三个最近的邻居来完成我的任务。如果没有,是否有一个快速的解决方案来过滤掉这360k行中的3000行。我假设在360k行上循环3000次将比直接放入内部Map花费更长的时间。
编辑:我也看了一下结果与600*600和减少的数据点的比较。我实际上感到惊讶和关注的观察,插值结果部分显着不同。

bq3bfh9z

bq3bfh9z1#

所以我发现RegularGridinterpolator对我来说是一个不错的选择。它速度很快,而且我已经有了一个规则的网格。
我试图整理我的发现与插值的差异,并发现网格数据显示意外的行为对我来说。
查看我创建的问题以了解详细信息。https://github.com/scipy/scipy/issues/17378

相关问题