У меня есть несколько точек в пространстве, и я хочу создать интерполированную сетку. Я использую функцию griddata из библиотеки scipy.
Может ли кто-нибудь объяснить, почему эти 2 фрагмента дают разные результаты для точки (2,2)?
import pandas as pd
from scipy.interpolate import griddata
g = pd.DataFrame({
'lon': [1,1,1,2,2,3,3,3],
'lat': [1,2,3,1,3,1,2,3],
'windspeed': [1,100,1000,2,2000,3,300,3000]
})
grid_x, grid_y = np.mgrid[1:4, 1:4]
gridmap = g[['lon', 'lat']].to_numpy()
grid_z0 = griddata(gridmap, g['windspeed'], (grid_x, grid_y), method='linear')
Это приводит к:
import pandas as pd
from scipy.interpolate import griddata
g = pd.DataFrame({
'lon': [1,1,1,2,2,3,3,3],
'lat': [1,2,3,1,3,1,2,3],
'windspeed': [1,2,3,100,300,1000,2000,3000]
})
grid_x, grid_y = np.mgrid[1:4, 1:4]
gridmap = g[['lon', 'lat']].to_numpy()
grid_z0 = griddata(gridmap, g['windspeed'], (grid_x, grid_y), method='linear')
This results in:
введите описание изображения здесь
Как видите, я транспонировал только вектор скорости ветра, но это не должно изменить интерполированное значение для точки (2,2). Или, может быть, мне просто не хватает чего-то действительно основного c и я должен go вернуться в школу?