【问题标题】:Split 2D trajectories into points with equal intervals将 2D 轨迹分割成等间隔的点
【发布时间】:2021-09-14 16:38:09
【问题描述】:

我想使用欧几里得距离对轨迹进行聚类。但是,构成轨迹的点的数量不同。所以我需要用相同数量的点打破每个点并相应地计算它们。

例如,我有一个由一组 2D 点组成的轨迹(它们不在相同的区间内)。

[(0.0, 13.935130773499658),  
(0.9206715658615288, 87.63458690840814), 
(1.2245818835622884, 111.96041116227424),  
(1.6280390619875555,144.22535883207814),  
(2.4687774761711263, 211.49397181142362),  
(2.8179447735365812, 239.4273556006593),  
(3.2963389341232032, 239.4273556006593),  
(4.527849090835078, 239.4273556006593), 
(6.05237501176546, 969.4543366873916), 
(6.05237501176546, 969.4543366873916),  
(7.427758223451998, 969.4543366873916),  
(9.628371362150414, 969.4543366873916),  
(15.369101289189876, 3961.68816425364),  
(17.234838515477744, 4861.421805491894),  
(17.234838515477744, 4861.421805491894),  
(18.400924281907635,4861.421805491894),  
(18.628546140914224, 4879.631554212427),  
(18.778532556213293, 4891.665691215202), 
(18.912718114201468,4902.404931114517),  
(19.051842229505283, 4913.539707867735),  
(19.449597896390035, 4944.813545621106),  
(19.841058908365085,4976.143225350869), 
 (20.13926859147929, 5000.0)]

它给出了如下散点图和折线图:

我想要做的是识别将整个轨迹分成相同长度的片段的点。例如,30 分。我该怎么做?谢谢。

【问题讨论】:

    标签: python arrays cluster-analysis similarity polyline


    【解决方案1】:

    你可以这样做

    • 为每对连续的点生成点斜率形式
    • 沿某个轴选取值
    for index in range(len(my_points) - 1):
        (x1, y1), (x2, y2) = my_points[index:index + 1]
        # _y = (y2 - y1) / (x2 - x1) * (_x - x1) + y1 
    

    您可以为这个位置生成一个匿名函数,但保留原始列表并即时生成可能更有用


    如果你想在比点集更小的范围内映射点集,那么你需要选择如何处理中间点,例如平均它们或总是选择一侧

    【讨论】:

      猜你喜欢
      • 2021-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多