У меня есть 3 массива numpy: X и Y - долготы и широты, а Z - цифровые значения высоты. Все X, Y и Z покрывают КРАСНЫЙ многоугольник.Ускорьте SciPy Griddata Function
Однако, когда я делаю сетку данных следующим образом, она покрывает синий полигон.
x = X.ravel()
y = Y.ravel()
z = Z.ravel()
xi = np.linspace(np.min(x), np.max(x), 5000) #As you see the size of data are so large (5000 by 5000)
yi = np.linspace(np.max(y), np.min(y), 5000)
zi = griddata((x, y), z, (xi.reshape(1,-1), yi.reshape(-1,1)), method='nearest') #from
scipy.interpolate import griddata
Как это сделать, чтобы покрыть только КРАСНЫЙ многоугольник?
Вычисление также очень медленно, если я сделать это можно вычислить только в пределах КРАСНОЙ полигона было бы быстрее и.
Simen, вы можете вставить изображение прямо в свой вопрос, посмотреть небольшую панель инструментов над окном ввода SO. Ciao от – gboffi
Спасибо. Я отредактировал мой вопрос. – Borys
Насколько мне известно, griddata пытается вычислить значение для каждой ячейки в вашей матрице (либо ближайшее значение, либо через интерполяцию). Таким образом, ваша цель не может быть достигнута с помощью этой функции, потому что в результате нет «отсутствующих данных» (область между синим и красным). Это верно? Кроме того, пропущенные значения внутри красного квадритера заполняются. – HyperCube