我有一个表面看起来像图a,想象一下这是俯视图。曲面已计算Z值。在
现在我需要在新的点中找到所有的Z值,如图B所示?我试过scipy.interpolate.interp2d
,但结果却很奇怪:
我只想在“图形”中找到自定义的x和y的z。在
模拟代码示例
func_int = scipy.interpolate.interp2d([point[0] for point in pointsbottom],[point[1] for point in pointsbottom],[point[2] for point in pointsbottom], kind = 'linear')
pointscaption = map(lambda point:(point[0],point[1],func_int(point[0],point[1])),pointscaption)
其中pointsbottom
是(x,y,z)的列表,pointscaption
是(x,y,z)的列表,但是我需要找到新的z
请尝试改用griddata:
区别在于griddata需要常规数据作为输入(嗯…,我想)。不是说你应该有不同的结果,而是你能更快地发现问题。您可以轻松屏蔽“常规网格”数据。在
我的第一个猜测是,这些输入坐标不是您期望的那样(也许与您正在计算的函数具有不同的比例),但是如果不进行测试,很难说出来。在
在任何情况下,您似乎需要一个表面,根据定义,它是一种网格数据类型,因此使用这个不同的框架应该很容易发现问题。在
编辑(关于海报疑问的进一步考虑):
假设你想要一个对象,你想在里面输入一些数据。在完成这项工作之后,你希望能够使用这些数据来估计任何位置。为此,您可以构建这样的类:
^{pr2}$这个例子使用的是平方反比法,它对于估计非常稳定(如果你避免被零除)。不会很快,但我希望可以理解。从这一点开始,您可以通过执行以下操作来估计二维空间中的任何点:
如果要对整个网格执行此操作:
例如,可以使用matplotlib(其中颜色表示曲面中的高度)获得可以看到的图像:
实验结果如下:
若不想使用ISD(平方反比),只需在Estimation类上实现一个新方法。这就是你要找的吗?在
相关问题 更多 >
编程相关推荐