def read1Dv(self, fname, tname): # open file and read column 0, 1 and 2 (variance), separator is tab data_t = [] data_x = [] data_v = [] fp = open(fname, 'r') for l in fp: args = l.split('\t') if args[0][0].isalpha() == 0: data_t.append(float(args[0])) data_x.append(float(args[1])) data_v.append(float(args[2])) fp.close() if len(data_v)<len(data_x): data_v = np.zeros(len(data_x)) data1 = DataArray(name=tname+" 0", shape=[len(data_t)]) data2 = DataArray(name=tname+" 1", shape=[len(data_t)]) data1.coords = [np.array(data_t)] data1.data = np.array(data_x) data1.shape = [len(data_x)] data2.coords = [np.array(data_t)] data2.data = np.array(data_v) data2.shape = [len(data_v)] return [data1, data2]
def read1D(self, fname, tname): # open file and read column 0 and 1, separator is tab data_t = [] data_x = [] fp = open(fname, 'r') for l in fp: args = l.split('\t') if args[0][0].isalpha() == 0: data_t.append(float(args[0])) data_x.append(float(args[1])) fp.close() data = DataArray(name=tname, shape=[len(data_t)]) data.coords = [np.array(data_t)] data.data = np.array(data_x) data.shape = [len(data_x)] return [data]
def ComputeReference(self, inst): """ Compute reference from given data if reference filter exists. Parameters: inst - array (DataArray) or pubsub event data inst.data must be DataArray """ if not(isinstance(inst,DataArray)): array = inst.data else: array = inst narray = DataArray(shape=array.shape[:]) narray.coords = array.coords[:] narray.data = array.data[:] # build reference data # first apply previous filter banks bank = self while bank.parent!=None: bank = bank.parent while bank!=self: narray = bank.ApplyFilters(narray) bank = bank.children[-1] # then apply current filter bank up to reference filter for ft in self.filters: if not(ft.is_reference): if ft.is_active: ft.apply_filter(narray) else: ft.ref = narray ft.source = array if inst!=array: pub.sendMessage("filter.change", data=self) # send filter change notification with filter bank as object break
def UpdateFilterDisplay(self, inst=None): """ Update display of apodization window. Parameters: inst - pubsub event data """ # update apodization filter preview arr = DataArray(shape=[201]) arr.coords = [np.linspace(-1.0,1.0,201)] arr.data = np.ones(201) is_before_ft = True if isinstance(self.bank,FilterBank): for ft in self.bank.filters: if ft.is_pre_filter and is_before_ft and ft.is_active: ft.apply_filter(arr) if ft.is_transform: is_before_ft = False data_x = np.concatenate(([-1.5,-1.0], arr.coords[0], [1.0,1.5])) data_y = np.concatenate(([0.0,0.0], arr.data, [0.0,0.0])) self.line_filter.set_data(data_x, data_y) self.plot_filter.draw()