我想从表面轮廓图中提取给定的点探针。因此,我使用以下代码片段创建表面:
def createInterpolatedSurface():
npts=1000
xi = np.linspace(min(x), max(x),npts)
yi = np.linspace(min(y), max(y),npts)
xi,yi=np.meshgrid(xi,yi,indexing='xy')
ui=scipy.interpolate.griddata((x,y),u,(xi,yi),method='linear')
return xi,yi,ui
我的下一步是设置一个点数组,使用initSensorArray作为嵌套循环函数,我感兴趣的是:
所以有我的主要问题。我想使用我的点的真实物理坐标,而不是griddata插值函数的ij索引坐标。
例如:物理空间中的Point(0.5,0.1)等于griddata ij索引中的Pointg(100,125),.
如何将物理点坐标映射到griddata,推断点并将它们映射回去?
感谢您的帮助
答案 0 :(得分:0)
你可以在2D中使用scipy'` interpolate函数,
from scipy import interpolate
x,y,u = createInterpolatedSurface()
#Create an interpolation function
f = interpolate.interp2d(x, y, u, kind='cubic')
#Use interpolation function to get results
xpoint = 0.5
ypoint = 0.1
upoint = f(xpoint, ypoint)