# HG changeset patch # User Nicolas Saunier # Date 1722023583 -7200 # Node ID 9012fb72d79a3130e3b9d6b61bf1a0f1783c15d6 # Parent 86122f5fe500a85be8fbc3bb3497fa628d111388 update isstationary diff -r 86122f5fe500 -r 9012fb72d79a trafficintelligence/moving.py --- a/trafficintelligence/moving.py Sun Jul 21 23:00:06 2024 -0400 +++ b/trafficintelligence/moving.py Fri Jul 26 21:53:03 2024 +0200 @@ -1766,7 +1766,7 @@ self.velocities = self.getPositions().differentiate(True) else: self.velocities = self.getPositions().differentiate().filterMovingWindow(halfWidth) - self.velocities.addPosition(self.velocities[-1]) + self.velocities.addPosition(self.velocities[-1]) def smoothPositions(self, halfWidth, replace = False): 'Returns the smoothed positions (or replaces them)' @@ -1862,7 +1862,7 @@ if len(indices) >= 2: i = 0 j = len(indices)-1 - #incrementI = True + incrementI = True while i speedThreshold or Point.distanceNorm2(self.getPositionAt(indices[i]),self.getPositionAt(indices[j])) > distanceThreshold): #if incrementI: i+=1 @@ -1870,6 +1870,15 @@ j-=1 #incrementI = not incrementI if i=0 and (mean(speeds[indices[i]:indices[j]+1]) <= speedThreshold and Point.distanceNorm2(self.getPositionAt(indices[i]),self.getPositionAt(indices[j])) <= distanceThreshold): + i-=1 # it will go 1 too far + i+=1 + j+=1 + while j