griddata 运行时错误 -- Python / SciPy(插值)

3 投票
2 回答
5041 浏览
提问于 2025-04-16 19:46

我在使用scipy的griddata函数进行插值处理。

当Python执行griddata函数时,出现了以下错误信息,这是什么意思呢?

File "C:\Python25\lib\site-packages\scipy\interpolate\ndgriddata.py", line 182, in griddata
ip = LinearNDInterpolator(points, values, fill_value=fill_value)
File "interpnd.pyx", line 192, in interpnd.LinearNDInterpolator.__init__ (scipy\interpolate\interpnd.c:2524)
File "qhull.pyx", line 917, in scipy.spatial.qhull.Delaunay.__init__ (scipy\spatial\qhull.c:4030)
File "qhull.pyx", line 170, in scipy.spatial.qhull._construct_delaunay (scipy\spatial\qhull.c:1269)
RuntimeError: Qhull error

2 个回答

1

这表示用到的qhull代码(可以在http://www.qhull.org找到)因为出错了,所以没有返回结果。

这种情况是总是发生,还是只对某些输入会出现呢?

你能提供一个导致出错的输入例子吗?

7

这通常意味着你传入的点集无法进行三角剖分。以下是一些常见的情况:

  • 你有二维数据,但所有的点都在一条线上。在这种情况下,无法将这些数据分割成有效的三角形。
  • 你有三维数据,但所有的点都在一个平面上,因此也无法分割成有效的四面体。更高维度的情况也是如此。

在这些情况下,插值也没有意义,所以这个失败并不是程序出错的表现,而是对griddata的使用不当。

通常,Qhull会在错误输出中打印出更多关于出错原因的信息,所以检查程序的输出,看看它说了什么。

撰写回答