ошибка времени выполнения griddata - Python / SciPy (интерполяция) - PullRequest
3 голосов
/ 17 июня 2011

Я использую функцию griddate для scipy для интерполяции.

Что означает следующее сообщение об ошибке, которое появляется, когда 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 ]

7 голосов
/ 17 июня 2011

Это обычно означает, что набор точек, который вы передали, не может быть триангулирован.Некоторые распространенные случаи, когда это может произойти:

  • У вас есть 2D-данные, но все точки лежат вдоль линии.В этом случае нет триангуляции данных в невырожденные треугольники.
  • У вас есть трехмерные данные, но все точки лежат на плоскости, поэтому нет разложения в невырожденные тетраэдры.И так далее, к более высоким измерениям.

В этих случаях интерполяция также не имеет смысла, поэтому этот сбой не является признаком ошибки, но неверным использованием griddata.

Как правило, Qhull выводит дополнительную информацию о том, что пошло не так, как обычно, в stderr, поэтому проверьте вывод программы, чтобы увидеть, что он говорит.

1 голос
/ 17 июня 2011

Это означает, что код qhull (http://www.qhull.org), используемый функцией, не возвращает результат из-за ошибки.

Это всегда происходит или только для определенных входных данных?

Можете ли вы опубликовать пример ввода, который вызывает ошибку?

...