У меня есть таблица значений размером 6000 x 9600. которая должна быть интерполирована на сетку 300 x 480. Использование griddata приводит к 100% потреблению памяти и перезапуску программы.
Я знаю, что в Matlab эту проблему можно решить с помощью функции interp2
. После небольшого поиска в Google я обнаружил, что функция scipy.interpolate.RectBivariateSpline
почти эквивалентна interp2
. Но с его использованием, результат был таким же, как с griddata
.
Если есть другие способы решения этой проблемы, я буду рад их видеть.
Код приведен ниже.
#regular grid 300 * 480
L,B = np.meshgrid(np.linspace(Lmin, Lmax, 480), np.linspace(Bmin, Bmax, 300))
#regular grid 6000 * 9600
L_dem, B_dem = np.meshgrid(np.linspace(L_dem_min, L_dem_max, 9600), np.linspace(B_dem_min, B_dem_max, 6000))
#array of values of size 6000 * 9600
H = pd.read_csv("....", delim_whitespace=True)).values
#preparing data for using the griddata
L_dem = np.reshape(L_dem, (6000*9600,))
B_dem = np.reshape(B_dem, (6000*9600,))
H = np.reshape(H, (6000*9600,))
#interpolation
H_interp = griddata((B_dem, L_dem), H, (B,L))