Mercurial Hosting > traffic-intelligence
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)) |