插值多维数据的首选和有效方法是什么?

计算科学 Python 表现 插值 delaunay三角剖分 外推
2021-12-09 20:32:30

插值多维数据的首选和有效方法是什么?

我担心的事情:

  1. 用于构建、单/批评估的性能和内存
  2. 处理尺寸从 1 到 6
  3. 线性或高阶
  4. 获得梯度的能力(如果不是线性的)
  5. 规则网格与分散网格
  6. 用作插值函数,例如求根或最小化
  7. 外推能力

是否有有效的开源实现?

我对 scikit-learn 的 scipy.interpolate 和 kriging 有部分运气。

我没有尝试样条曲线、切比雪夫多项式等。

以下是我迄今为止在该主题上发现的内容:

矩形网格上的 Python 4D 线性插值

在 x、y 和 z 中具有不同间隔的定期采样 3D 数据的快速插值

常规网格数据的快速插值

哪种多元分散插值方法最适合实际使用?

1个回答

对于我的问题的第一部分,我发现使用 python 库对不同线性插值方法的性能进行了非常有用的比较:

http://nbviewer.ipython.org/github/pierre-haessig/stodynprog/blob/master/stodynprog/linear_interp_benchmark.ipynb

以下是迄今为止收集的方法列表。

标准插值,结构化网格:

http://docs.scipy.org/doc/scipy-dev/reference/generated/scipy.ndimage.interpolation.map_coordinates.html

http://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.RegularGridInterpolator.html

https://github.com/rncarpio/linterp/

非结构化(分散)网格:

http://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.LinearNDInterpolator.html#scipy.interpolate.LinearNDInterpolator

http://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.griddata.html

http://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.Rbf.html

2个包含插值的大型项目:

https://github.com/sloriot/cgal-bindings(CGAL的一部分,许可的 GPL/LGPL)

https://www.earthsystemcog.org/projects/esmp/(伊利诺伊大学-NCSA 许可证 ~= MIT + BSD-3)

稀疏网格:

https://github.com/EconForge/Smolyak

https://github.com/EconForge/dolo/tree/master/dolo/numeric/interpolation

http://people.sc.fsu.edu/~jburkardt/py_src/sparse_grid/sparse_grid.html

https://aerodynamics.lr.tudelft.nl/~rdwight/work_sparse.html

https://pypi.python.org/pypi/puq

克里金法(高斯过程):

http://scikit-learn.org/stable/modules/generated/sklearn.gaussian_process.GaussianProcess.html

https://github.com/SheffieldML/GPy

https://software.sandia.gov/svn/surfpack/trunk/

http://openmdao.org/dev_docs/_modules/openmdao/lib/surrogatemodels/kriging_surrogate.html

通用 GPL 许可:

https://github.com/rncarpio/delaunay_linterp

塔斯马尼亚

自适应随机建模和非侵入式逼近工具包 - 是用于高维积分和插值以及参数校准的强大库。

塔斯马尼亚的 Python 绑定:

https://github.com/rncarpio/py_tsg

https://github.com/sloriot/cgal-bindings(CGAL的一部分,许可的 GPL/LGPL)