# HG changeset patch # User Nicolas Saunier # Date 1648841944 14400 # Node ID 38f0d0ceac3f4309becc4adb78256bcc2ed0bd28 # Parent 0e5d37b0b9ffa7d5d70ba3781eaeaf840b3c12a6 issue with window length for savgol diff -r 0e5d37b0b9ff -r 38f0d0ceac3f trafficintelligence/moving.py --- 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