我正在使用Python 2.7编写程序,但我很难找到插值/拟合矩形数据的最佳方法。
我的数据是已知的坐标点格式为z=f(x,y),其中x和y均匀地分布在网格上。我的x值从0到100以0.1的间隔变化。我的y值从0到100以2的间隔变化。
我的问题在于如何对这些数据进行插值或拟合,因为我的y数据坐标之间的间距很大。我正在寻找最佳方法来拟合这些数据,以便我可以评估任何(X,Y)坐标对的高度Z。我希望得到的曲面尽可能光滑。传统方法使用griddata或rectbivariatespline不能生成光滑的曲面-似乎是因为我的y坐标点之间的距离比x坐标点之间的距离要大得多。
我考虑的一个选项是使用polyfit(或类似的东西)将多项式拟合到每个切片(每个X处的Y vs Z曲线),然后将这些切片插值在一起以产生更平滑的曲面。这似乎是一种迂回的方式。这是最好的选择吗?
如果对多项式进行拟合,那么我的每个切片(固定X的Y vs Z)大致上是高斯或双峰的。它们是相当简单的分布。
我的目标是能够生成平滑的曲面,以在3D或pcolor样式图中显示。我需要避免超出Zmax和Zmin。我知道使用样条时会出现这个问题。
从我所了解的内容来看,似乎我要找的是Python中一个用于2D数据的形状保持插值方法。我需要类似于matlab中的pchip,但适用于曲面。我查看了所有文档,并找不到任何形状保持的内容能够给出光滑的曲面。谢谢您提供的任何帮助。我会仔细观察此线程并快速回复,如果您需要任何解释。
我的数据是已知的坐标点格式为z=f(x,y),其中x和y均匀地分布在网格上。我的x值从0到100以0.1的间隔变化。我的y值从0到100以2的间隔变化。
我的问题在于如何对这些数据进行插值或拟合,因为我的y数据坐标之间的间距很大。我正在寻找最佳方法来拟合这些数据,以便我可以评估任何(X,Y)坐标对的高度Z。我希望得到的曲面尽可能光滑。传统方法使用griddata或rectbivariatespline不能生成光滑的曲面-似乎是因为我的y坐标点之间的距离比x坐标点之间的距离要大得多。
我考虑的一个选项是使用polyfit(或类似的东西)将多项式拟合到每个切片(每个X处的Y vs Z曲线),然后将这些切片插值在一起以产生更平滑的曲面。这似乎是一种迂回的方式。这是最好的选择吗?
如果对多项式进行拟合,那么我的每个切片(固定X的Y vs Z)大致上是高斯或双峰的。它们是相当简单的分布。
我的目标是能够生成平滑的曲面,以在3D或pcolor样式图中显示。我需要避免超出Zmax和Zmin。我知道使用样条时会出现这个问题。
从我所了解的内容来看,似乎我要找的是Python中一个用于2D数据的形状保持插值方法。我需要类似于matlab中的pchip,但适用于曲面。我查看了所有文档,并找不到任何形状保持的内容能够给出光滑的曲面。谢谢您提供的任何帮助。我会仔细观察此线程并快速回复,如果您需要任何解释。