我正在跟踪流场中的粒子。我在整个领域中都有位置和速度。这给我留下了一个带有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
上面的代码适用于2d问题。有没有办法为3D情况做同样的事情?如果我在域内有预定义的3d网格和分散的数据,该怎么办?
提前谢谢!