comparison trafficintelligence/moving.py @ 1197:0475b4cd0cfb

adding simple direct acceleration calculation
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Sun, 31 Jul 2022 16:49:51 +0200
parents d5566af60a69
children 7b3384a8e409
comparison
equal deleted inserted replaced
1196:d5566af60a69 1197:0475b4cd0cfb
1559 else: 1559 else:
1560 print('Object {} has no features loaded.'.format(self.getNum())) 1560 print('Object {} has no features loaded.'.format(self.getNum()))
1561 return None 1561 return None
1562 1562
1563 def getSpeeds(self, nInstantsIgnoredAtEnds = 0): 1563 def getSpeeds(self, nInstantsIgnoredAtEnds = 0):
1564 '''Returns the scalar speed'''
1564 speeds = self.getVelocities().norm() 1565 speeds = self.getVelocities().norm()
1565 if nInstantsIgnoredAtEnds > 0: 1566 if nInstantsIgnoredAtEnds > 0:
1566 n = min(nInstantsIgnoredAtEnds, int(floor(self.length()/2.))) 1567 n = min(nInstantsIgnoredAtEnds, int(floor(self.length()/2.)))
1567 return speeds[n:-n] 1568 return speeds[n:-n]
1568 else: 1569 else:
1569 return speeds 1570 return speeds
1570 1571
1572 def getAccelerations(self, fromSpeeds = True, nInstantsIgnoredAtEnds = 0):
1573 '''Returns the scalar acceleration by differentiating the speeds (fromSpeeds = True) or by differentiating the velocity (vector) and taking the norm (frompSpeeds = False. In the second case, speed is always positive'''
1574 if fromSpeeds:
1575 speeds = array(self.getSpeeds())
1576 accelerations = speeds[1:]-speeds[:-1]
1577 else:
1578 accelerations = self.getVelocities().differentiate().norm()
1579 if nInstantsIgnoredAtEnds > 0:
1580 n = min(nInstantsIgnoredAtEnds, int(floor(len(accelerations)/2.)))
1581 return accelerations[n:-n]
1582 else:
1583 return accelerations
1584
1571 def getAccelerationsSG(self, window_length, polyorder, delta=1.0, axis=-1, mode='nearest', cval=0.0, nInstantsIgnoredAtEnds = 0): 1585 def getAccelerationsSG(self, window_length, polyorder, delta=1.0, axis=-1, mode='nearest', cval=0.0, nInstantsIgnoredAtEnds = 0):
1572 '''Returns the 1-D acceleration from the 1-D speeds 1586 '''Returns the 1-D acceleration from the 1-D speeds
1573 Caution about previously filtered data''' 1587 Caution about previously filtered data'''
1574 speeds = self.getSpeeds() 1588 speeds = self.getSpeeds()
1575 wlength = min(window_length, len(speeds)) 1589 wlength = min(window_length, len(speeds))