有没有办法将分散的数据插值到复杂的3d网格上?

时间:2019-10-01 19:13:45

标签: python interpolation

我正在跟踪流场中的粒子。我在整个领域中都有位置和速度。这给我留下了一个带有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网格和分散的数据,该怎么办?

提前谢谢!

0 个答案:

没有答案