如何使用C#/ SQL Server 2008空间“平均”两个或更多地理线串

假设我从一项关于特定候鸟行为的研究中得到了一组结果。 这只鸟已被标记,GPS接收器记录了它在五年内每年所遵循的迁移路径。 结果存储在SQL Server表中,该表包含每年路径的一个地理线串。

你将如何定义代表五年期间“平均”路径的线串?

请注意,每个样本线串可能包含不同数量的点。 它们也不会以完全相同的点开始和结束。

到目前为止,我所获得的最佳方法是使用插值来确定沿每个线串的特定设定比例的点。 因此,例如,起点,四分之一路,沿着每条路线的中途等。然后计算所有路线上这些位置的平均纬度/经度,并从这些平均点构建新的地理线串。

我查看了一些计算几何书籍,看看是否有更好的已知算法或技术来做到这一点,但似乎没有任何相关性。 我不敢相信这不是别人以前没有做过的事情……

我不需要确切的代码 – 只是建议任何更好的一般方法。 我也不需要“超精准”。 作为旁注,我理想地喜欢这种方法也适用于两个或多个多边形。

谢谢你的任何建议!

我现在无法发布任何示例代码,因为我现在在iPhone上工作,但我确实有一个建议(不知道它的好坏)…

对于每一行,确定沿线的每个顶点的位置(百分比)。

获取这些值后,每行使用所有OTHER行的百分比值沿每行计算新顶点。

此时,每条线应包含相同数量的顶点,并且每条线的第N个顶点直接对应于每个其他线的第N个顶点。

现在只需为每一行平均顶点0以获得“平均”线的顶点0。 重复每行的vertex1等。

这应该适用于线条和多边形。

请注意,如果可以确定每条线的精度值,也可以使用加权平均算法。 在过去,我尝试平均两条线时使用了这种方法。 我们有能力允许每一行加权,通常是50:50,但可以一直到100:0或0:100,具体取决于来源的准确性。

我回去重新阅读你的问题,看到你已经谈过插值了。 在计算插值点的平均值(固定间隔点)之前,你谈到这样做的方式似乎可以平滑或概括线。 通过我的方法,您将首先致密每一行,然后计算平均值。 看起来这可能更准确,但也许不是。

好的,我已经重新阅读了这里的所有内容并查看了图片。 只有办法才能真正做到这一点,并且已经有所说明了。 您必须对采样进行标准化, 然后将移动多项式平均公式应用于n个结果。

正确地做这个的数学是非常强烈的,这使我们想到你的速度要求是什么?

插值公式如下: http : //en.wikipedia.org/wiki/Interpolation

一旦您将每条线标准化或“重新塑造”成预定的采样率,您就可以对它们进行平均。

也看看这个答案: 哪种算法可以在一定距离的路径内有效地找到一组点?

我建议你对已知点应用线性回归。 这将通过它们给出直线平均值。