【问题标题】:Interpolate TO a grid FROM random points从随机点插入到网格
【发布时间】:2016-04-07 14:57:03
【问题描述】:

我有一系列坐标表示二维标量字段中的数据:x[i]、y[i]、F[i]。但是,x[i] 和 y[i] 不在直线网格上,它们是“随机”放置的。我想对 f[i] 进行插值,这样我就可以在 x, y 中位置的直线网格上估计它的值。

这个问题应该是一个地形的相同高度插值(见http://www.cs.uu.nl/geobook/interpolation.pdf)。例如,如果有一个地形的高度图,它不一定是在直线网格上测量的。但是,许多地图更喜欢直线网格上的高度。因此,必须将数据内插到直线网格中。

我使用 Matlab,它有一个 griddata 命令,可以对直线网格执行插值。该方法使用 Delaunay 三角剖分和一些未描述的插值。我可以猜测它是如何工作的,但在我看来,这种类型的代码应该已经由其他人编写了。

请参阅:http://www.mathworks.com/help/matlab/ref/griddata.html?refresh=true,了解有关 griddata 如何从“分散”数据生成直线插值的参考。

我想将代码集成到 C# 应用程序中,因此我正在寻找要合并的库或源代码。 ALGLIB 将执行从均匀间隔到均匀间隔的三次样条插值。我找不到任何适用于非均匀间隔数据的东西。

【问题讨论】:

    标签: c# interpolation terrain delaunay kriging


    【解决方案1】:

    你可以把两个三角形做成四边形。 IMO 行进立方体算法给出了一个直线网格。你可以试试 Paul Bourke conrec 算法。

    【讨论】:

    • 我不确定我是否理解您的建议。行进立方体从均匀分布的数据创建一个网格。 CONREC (paulbourke.net/papers/conrec) 似乎也需要一个直线网格。对吗?
    • 没有。行进立方体创建直线网格 Delaunay 三角剖分创建更小、更好的网格。 DT 也更难。
    • 也许我不明白。这是我在研究 Marching Cubes 时开始的两个地方:en.wikipedia.org/wiki/Marching_cubesgraphics.stanford.edu/~mdfisher/MarchingCubes.html。这些中的每一个都描述了一种从通过已知函数/表面的直线“行进”创建多边形网格的方法。我不明白这与我的问题有什么关系。你能指出一些参考资料或提供一些额外的细节吗?
    • 我有一组不均匀分布的数据点。他们对平面和该平面上的标量函数的值进行采样。我希望将该标量函数重新采样(插值)到一个直线网格。
    • 直线是输入。检查行进立方体的东西。 Paul Bourke 也有 DT 算法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-04
    相关资源
    最近更新 更多