我需要插入这些数组并进行最平滑的插值:
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(没有插值完成)。我想让我在整个绘图区域都有蓝点。
答案 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可能有助于指导您!如果这有帮助,请告诉我!如果您希望我扩展,请评论!希望这些是您正在寻找的资源!