散乱数据的Java空间插值

散乱数据的Java空间插值,java,android,math,interpolation,Java,Android,Math,Interpolation,我有一个metars点列表(纬度、经度、海平面压力),需要插值压力。我需要3D还是2D都可以 我见过双三次插值,但它似乎只适用于规则网格 以下是一些方法: 对于我的情况,什么是最精确和最充分的?(我认为克里格法是最精确的,但需要很多时间,而最合适的可能是自然邻居) 对于这种方法,我是否需要在内存中保留一个包含所有插值点的网格或栅格?我只想调用一些插值函数(lat,lon),它返回可用点的插值压力 这个算法有java版本吗?我只见过它被应用于图像大小调整 我也看到了这一点。对于你的例子,物理域是地

我有一个metars点列表(纬度、经度、海平面压力),需要插值压力。我需要3D还是2D都可以

我见过双三次插值,但它似乎只适用于规则网格

以下是一些方法:

对于我的情况,什么是最精确和最充分的?(我认为克里格法是最精确的,但需要很多时间,而最合适的可能是自然邻居)

对于这种方法,我是否需要在内存中保留一个包含所有插值点的网格或栅格?我只想调用一些插值函数(lat,lon),它返回可用点的插值压力

这个算法有java版本吗?我只见过它被应用于图像大小调整


我也看到了这一点。

对于你的例子,物理域是地球,这是一个封闭的表面,我建议使用3D。也就是说,把压强P构造成(x,y,z)的函数,而不是(经度,纬度)的函数。调用函数插值(lat,lon)时,可以先在内部将(lat,long)转换为(x,y,z)


对于散乱数据插值,我以前有使用径向基函数、薄板样条曲线等的经验。它们非常容易实现(不需要进行三角剖分或计算Voronoi图),结果通常很好。主要的缺点是,它需要解一个(nxn)矩阵(其中N是点数),因此只适用于点数最多为数千的情况。

我希望在你发布时我能回答你的问题。但无论如何,我很幸运地使用了自然邻域插值处理非结构化数据集。自然邻域插值生成平滑且视觉愉悦的曲面,速度相对较快。您可以在上找到一个开源Java实现。我已经在网站上发布了一些关于这项技术的说明。巧合的是,我作为示例使用的数据源与您提到的METARs(气象机场报告)相同。

如果您还没有看到高斯过程回归和平滑样条曲线,请看一看。高斯过程回归是克里格算法。平滑样条曲线适用于散乱数据(不规则网格)?将(lat,long)转换为(x,y,z),x=lat,y=long,那么z呢?这不是将(lat,long)转换为(x,y,z)的方式。