Source code for crappy.modifier.differentiate

# coding: utf-8

from .modifier import Modifier


[docs]class Diff(Modifier): """Differentiation filter. This will differentiate the value at ``label`` over time. Note: The time label must be specified with `time='...'`. """ def __init__(self, label: str, time: str = 't(s)', out_label: str = None) -> None: Modifier.__init__(self) self.label = label self.t = time if out_label is None: self.out_label = 'd_' + self.label self.last_t = 0 self.last_val = 0 def evaluate(self, data: dict) -> dict: t = data[self.t] val = data[self.label] data[self.label] = (data[self.label] - self.last_val) / (t - self.last_t) self.last_t = t self.last_val = val return data