Algorithm 查找航路点轨迹的最快部分

Algorithm 查找航路点轨迹的最快部分,algorithm,gps,Algorithm,Gps,运动跟踪器应用程序通常定期记录时间戳和位置,以便存储整个轨迹。然后,通过分析应用程序可以找到某些统计数据,例如在固定时间内具有最高速度的轨道分段(例如,5英里所需的时间)。反之亦然,在特定时间跨度内经过的最长距离(例如12分钟内的库珀距离) 我想知道什么是计算此类截面最优雅和/或有效的方法 在一种简单的方法中,我将对航路点进行规范化和插值,以获得更细粒度的航路点列表,可以使用固定的时间间隔或固定的距离步长。然后,移动一个代表我的时间跨度的滑动窗口。在列表上搜索距离分段,并搜索与我的条件匹配的最佳

运动跟踪器应用程序通常定期记录时间戳和位置,以便存储整个轨迹。然后,通过分析应用程序可以找到某些统计数据,例如在固定时间内具有最高速度的轨道分段(例如,5英里所需的时间)。反之亦然,在特定时间跨度内经过的最长距离(例如12分钟内的库珀距离)

我想知道什么是计算此类截面最优雅和/或有效的方法


在一种简单的方法中,我将对航路点进行规范化和插值,以获得更细粒度的航路点列表,可以使用固定的时间间隔或固定的距离步长。然后,移动一个代表我的时间跨度的滑动窗口。在列表上搜索距离分段,并搜索与我的条件匹配的最佳子列表。还有更好的方法吗?

优雅和高效是旁观者的眼中钉

就我个人而言,我认为你的想法很优雅

我认为插值算法很容易构建,对后续数据执行的搜索也很容易执行。这会导致代码紧凑,其正确性很容易验证。此外,插值算法可能已经存在,并且是多用途的,因此您不必重复自己(干)。您建议的解决方案具有将数据处理与数据分析分离的优点。这种性质的模块化通常被认为是优雅的一个组成部分

效率-我们谈论的是速度、空间还是代码行?您可以尝试将插值步骤与搜索步骤结合起来以节省空间,但这可能会牺牲速度和代码的简单性。当然,由于多个查询无法利用以前的计算,因此牺牲了速度

当你考虑代码的效率时,不要担心计算机将如何处理它,或者如何编写代码。更深入地思考您的方法的内在时间复杂性。我怀疑插值和搜索都可以在O(N)时间内完成,在这种情况下,需要大量数据才能让你陷入困境:很难让O(N)算法执行得非常糟糕


为了支持上述内容,插值只是估计两个值之间的中间点,因此这在值的数量上是线性的,在中间点的数量上是线性的。搜索可以用一个数值变体来完成,这也是线性的。

你可能想考虑把它发布到GIS.StasExchange。com,以获得更好的结果。这似乎是一个编码问题,”DavidPfeffer。仅仅是地理信息的存在不应该让某些东西被列入GIS列表。