Я пытаюсь интерполировать двумерную неструктурированную сетку, используя scipy.interpolate.SmoothBivariateSpline. Боюсь, я не понял, как это должно работать.
Я пробовал на очень простом примере:
from scipy import interpolate
x = [0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2]
y = [0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3]
z = [-0.07453796, -0.10857792, -0.07307213, 0.01813757, -0.31634891, -0.47235507, -0.33198942, -0.28530956, -0.26995915, -0.40618327, -0.0950876, -0.18871505]
xy_func = interpolate.SmoothBivariateSpline(x, y, z, kx=1, ky=1, s=0)
print(xy_func.ev(0, 1), xy_func.ev(1, 0), xy_func.ev(1, 3))
Я визуализировал результат, и очевидно, что он неверный. Я также оценил результат по некоторым точкам данных, так как должно быть ясно, каким должен быть результат. Из печати я ожидал получить вывод "-0.10857792, -0.31634891, -0.28530956", но я получил результат "-0.1390947215 -0.272092075 -0.16190767".
Где я?