трехмерная линейная интерполяция в SciPy с триангуляцией без Делоне

#python #class #scipy #interpolation

#python #класс #scipy #интерполяция

Вопрос:

Теоретически линейная интерполяция может быть выполнена с помощью любой триангуляции (не только триангуляции Делоне).

Я пытаюсь использовать scipy.interpolate.LinearNDInterpolator с предварительно вычисленной 3D-триангуляцией, которая не относится к классу scipy.spatial.Delaunay . Однако это не сработает, потому что код SciPy проверяет класс триангуляции ( if isinstance(points, qhull.Delaunay) …). Я попытался создать «поддельную» триангуляцию Делоне с правильным классом, изменив атрибуты ‘points’ и ‘simplices’ объекта Delaunay, но я получил ошибку AttributeError: can't set attribute .

Есть ли способ обойти это или другая библиотека для линейной интерполяции?

Ответ №1:

Похоже, matplotlib.tri.LinearTriInterpolator это может быть хорошей альтернативой. Я обновлю этот пост, когда протестирую это.

Редактировать: Это не решение моей проблемы, потому что оно реализовано только в 2D.