def get_block(self): self.source = GenSource(e for i in xrange(len(self.cross_val_keys)) if not i == self.cross_val_index for e in self.data[self.cross_val_keys[i]]) self.ph_source = Transformer([self.source], {self.source.getName(): 'd'}, lambda d: d['phase']) self.bw_source = Transformer([self.source], {self.source.getName(): 'd'}, lambda d: d['raw']) block = SignalBlock( [self.source], [self.bw_source, self.ph_source] ) self.source.callback = block.stop return block
def get_block(self, shift = 1): a_meas = self.raws_per_phase[0][1] self.ph_source = GenSource(li[0] for rep in repeat(self.raws_per_phase, len(a_meas)) for li in rep) self.bw_source = GenSource(li for i in xrange(0, len(a_meas), shift) for li in map(lambda t: interp_ls(t[0][1], t[1][1], i) ,zip(self.raws_per_phase[0:-1], self.raws_per_phase[1:]))) block = SignalBlock( [self.bw_source, self.ph_source], [Transformer( [self.bw_source, self.ph_source], {self.bw_source.getName(): 'b', self.ph_source.getName(): 'd'}, lambda b,d: (b,d)) ] ) self.bw_source.callback = block.stop self.ph_source.callback = block.stop #result.sinks.append(Sink([self.bw_source, self.ph_source], lambda x: print(x))) return block
def __init__(self, source): self.original_source = source if hasattr(source, 'select'): raw_source = source.select('raw') else: raw_source = source fixlentrans = Transformer([raw_source], {raw_source.getName(): 'l'}, lambda l: fix_length(l, 512)) self.wt = Preprocessor(fixlentrans, wavelet_trans) self.ft = Preprocessor(fixlentrans, fourier_trans) self.et = Preprocessor(fixlentrans, extremes) Transformer.__init__(self, [self.wt, self.ft, self.et], { self.wt.getName(): 'w', self.ft.getName(): 'f', self.et.getName(): 'e' }, lambda w, f, e: merge(w, f, e)) #if hasattr(source, 'initialized'): # if not source.initialized: # source.push() source.push() self.pull() # For some reason this needs to happen at least once for the output_dim to be correct # TODO check why ^ self.output_dim = len(self.pull())