首页 > 解决方案 > 有没有办法将分散的数据插入到复杂的 3d 网格上?

问题描述

我正在跟踪流场中的粒子。我在整个域中都有位置和速度。这给我留下了一个带有 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 案例做同样的事情?如果我在域内有预定义的 3d 网格和分散的数据怎么办?

提前致谢!!

标签: pythoninterpolation

解决方案


推荐阅读