我有一个散乱网格的三维有限元计算结果。 我想用python在一个水平平面上插值这些数据,并使用matplotlib在该平面上绘制结果的等高线。 输出文件结果.dat包含6列,即x、y、z坐标和三个位移分量。我对第三部分感兴趣。 我想在一个100 x 100的矩形网格上插值,从(-50,10)到(50110),位于z=-5。 我想到了以下可能性:
import numpy as np
from scipy.interpolate import grid data
res = np.loadtxt('results.dat')
points = res[:,0:3]
values = res[:,-1]
xi,yi,zi = np.mgrid[-50.:50.:101j,10.:100.:101j,-5:-5:1j]
gridres = griddata(points, values, (xi, yi, zi))
为了检查结果是否正确,我应该能够画出等高线做些类似的事情
^{pr2}$ <>但我不能按照要求的格式处理席、彝、GrdDATAplt.轮廓在
经过反复试验,我终于发现,为了得到我想要的结果,我必须:
如果有人能帮助我理解为什么这样做,我将非常感激! 有没有其他建议的方法来做插值?如果我可以使用任何高阶插值方法而不是“线性”插值方法,这将是一个很好的选择,这似乎是三维情况下唯一的选择。在
相关问题 更多 >
编程相关推荐