Source code for pycalibration.trigger

#  Copyright (c) 2017-2021 Jeorme Douay <jerome@far-out.biz>
#  All rights reserved.

[docs]class Trigger(object): ''' Generate Table at the time of the event. The event shall be generated from a digital signal ''' def __init__(self): super().__init__() self.signals = [] self.trigger = '' self.up = True # determine direction of trigger
[docs] def set_trigger(self, name, up=True): ''' Set the name of the trigger signal :param name: name of the signal to be used as trigger ( digital ) :param up: True if the event is rising :return: None ''' self.trigger = name self.up = up
[docs] def process(self, data): ''' Process the data and returns the events in a pandas dataframe :param data: data to be analysed :return: pandas dataframe with all the signals and events ''' self.__change(self.trigger, data) if self.up: trigs = data.loc[data['%s_mod' % (self.trigger)] > 0] else: trigs = data.loc[data['%s_mod' % (self.trigger)] < 0] trigs.drop('%s_mod' % (self.trigger),axis=1,inplace=True) trigs.drop('%s' % (self.trigger),axis=1,inplace=True) return trigs
def __change(self, name, data): dest = '%s_mod' % (name) data[dest] = data[name].shift(-1) - data[name] data.dropna()