Mercurial Hosting > traffic-intelligence
changeset 1183:38f0d0ceac3f
issue with window length for savgol
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Fri, 01 Apr 2022 15:39:04 -0400 |
parents | 0e5d37b0b9ff |
children | f9cf827a73a6 |
files | trafficintelligence/moving.py |
diffstat | 1 files changed, 9 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/trafficintelligence/moving.py Fri Apr 01 15:33:22 2022 -0400 +++ b/trafficintelligence/moving.py Fri Apr 01 15:39:04 2022 -0400 @@ -1564,12 +1564,17 @@ else: return speeds - def getAccelerations(self, window_length, polyorder, delta=1.0, axis=-1, mode='interp', cval=0.0, speeds = None, nInstantsIgnoredAtEnds = 0): + def getAccelerations(self, window_length, polyorder, delta=1.0, axis=-1, mode='interp', cval=0.0, nInstantsIgnoredAtEnds = 0): '''Returns the 1-D acceleration from the 1-D speeds Caution about previously filtered data''' - if speeds is None: - speeds = self.getSpeeds(nInstantsIgnoredAtEnds) - return savgol_filter(speeds, min(window_length, len(speeds)), polyorder, 1, delta, axis, mode, cval) + speeds = self.getSpeeds(nInstantsIgnoredAtEnds) + if window_length > len(speeds): + wlength = min(window_length, len(speeds)) + if wlength % 2 == 0: + wlength -=1 + else: + wlength = window_length + return savgol_filter(speeds, wlength, polyorder, 1, delta, axis, mode, cval) def getSpeedIndicator(self): from indicators import SeverityIndicator