Я отслеживаю частицы в поле потока. У меня есть положение и скорость по всей области. Это оставляет мне большой файл данных с координатами x, y, z и скоростью частиц. Есть ли способ интерполировать эти разбросанные данные на узловые точки существующего домена, чтобы у меня была сетка с данными частиц в ее узлах?
Ранее я делал то же самое на плоской сетке (простопрямоугольная сетка) с использованием np.meshgrid и scipy.interpolate.griddata.
def contours():
size = 700 # Refining grid
xi, yi = np.linspace(18.191, 61.851, size), np.linspace(0.25681, 17.721, size) # Define Domain
xi, yi = np.meshgrid(xi, yi) # Forming a grid
# xj, yj, uj are numpy arrays; Interpolation step
zi = scipy.interpolate.griddata((xj, yj), uj/603.0, (xi, yi), method=method, fill_value=1.1)
# Plotting
plt.figure()
plt.contour(xi ,yi, zi, np.linspace(0, 1.0, 10), linewidths=1.0, linestyles='dashed', cmap='jet')
plt.colorbar()
plt.xlabel('X(mm)')
plt.ylabel('Y(mm)')
plt.xlim(18.2, 61.9)
plt.ylim(0.257, 17.7)
return
Приведенный выше код работает для двумерной задачи. Есть ли способ сделать то же самое для 3d-корпуса? Что делать, если у меня есть заранее заданная трехмерная сетка и разбросанные данные внутри домена?
Заранее спасибо !!