插值以摆脱NAN和等高线图

时间:2018-03-02 02:30:17

标签: python interpolation contour

我需要插入这些数组并进行最平滑的插值:

x = time
y = height
z = latitude

print np.shape(x)
print np.shape(y)
print np.shape(z)

结果:

(99, 25)
(99, 25)
(99, 25)

y是海拔高度并且不均匀。虽然它们具有相同的大小(具有高度数量的变量n_alt,对于此示例为99),但它有一堆南非。

x是时间,它一直是统一的(该数组的一列中的所有值都是相同的)。

z是纬度,它是实际的' z'它是一个数组,其行数与时间点数相同,行数与海拔点数相同。

我想在2D中进行插值(数据集在x和y方向都有一系列的nans)来填补数据上的空白,因为几个文件将覆盖某个高度范围而不是其他文件

我的问题是:

1)是否有一种很好的方法来填充两个方向的间隙,同时使网格均匀(想法是绘制并同时将插值数据(x,y和z)保存到新文件中)?

2)使用前面提到的形状对数据进行轮廓绘制的好方法是什么(尝试过plt.contour,但它没有给出令人满意的结果,只是直接绘制)?

感谢所有

编辑:

我相信这会更好地说明问题:

X: Time, Y: Altitude, Z: Latitude or Longitude

我基本上想要填补空白区域(我理解外推和所有的后果,但我只想在这一点上有一个有效的算法。蓝点是我的网格,颜色图只是一个正常的plt.contour(没有插值完成)。我想让我在整个绘图区域都有蓝点。

1 个答案:

答案 0 :(得分:0)

圣拉斐尔!关于插值问题,如果你想手动提出插值函数,我可以解释数学,但是你可能想要查看现有的资源:scipy.interpolate.RegularGridInterpolator (见https://docs.scipy.org/doc/scipy-0.16.1/reference/generated/scipy.interpolate.RegularGridInterpolator.html

如果我误解了你的问题,那么该类中的另一种插值方法可能是合适的:参见,scipy.interpolate

为了绘制3D表面,https://matplotlib.org/examples/mplot3d/surface3d_demo.html可能有助于指导您!如果这有帮助,请告诉我!如果您希望我扩展,请评论!希望这些是您正在寻找的资源!