griddata 运行时错误 -- Python / SciPy(插值)
我在使用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会在错误输出中打印出更多关于出错原因的信息,所以检查程序的输出,看看它说了什么。