def _copy_to_table(self): """ Read data from clipboard / file and copy it to `self.ba` as float / cmplx # TODO: More checks for swapped row <-> col, single values, wrong data type ... """ data_str = qtext2table( self, 'ba', title="Import Filter Coefficients") # returns ndarray of str if data_str is None: # file operation has been aborted or some other error return logger.debug( "importing data: dim - shape = {0} - {1} - {2}\n{3}".format( type(data_str), np.ndim(data_str), np.shape(data_str), data_str)) conv = self.myQ.frmt2float # frmt2float_vec? frmt = self.myQ.frmt if np.ndim(data_str) > 1: num_cols, num_rows = np.shape(data_str) orientation_horiz = num_cols > num_rows # need to transpose data elif np.ndim(data_str) == 1: num_rows = len(data_str) num_cols = 1 orientation_horiz = False else: logger.error("Imported data is a single value or None.") return None logger.info("_copy_to_table: c x r = {0} x {1}".format( num_cols, num_rows)) if orientation_horiz: self.ba = [[], []] for c in range(num_cols): self.ba[0].append(conv(data_str[c][0], frmt)) if num_rows > 1: self.ba[1].append(conv(data_str[c][1], frmt)) if num_rows > 1: self._filter_type(ftype='IIR') else: self._filter_type(ftype='FIR') else: self.ba[0] = [conv(s, frmt) for s in data_str[0]] if num_cols > 1: self.ba[1] = [conv(s, frmt) for s in data_str[1]] self._filter_type(ftype='IIR') else: self.ba[1] = [1] self._filter_type(ftype='FIR') self.ba[0] = np.asarray(self.ba[0]) self.ba[1] = np.asarray(self.ba[1]) self._equalize_ba_length() qstyle_widget(self.ui.butSave, 'changed') self._refresh_table()
def _copy_to_table(self): """ Read data from clipboard / file and copy it to `self.zpk` as array of complex # TODO: More checks for swapped row <-> col, single values, wrong data type ... """ data_str = qtext2table(self, 'zpk', title="Import Poles / Zeros ") if data_str is None: # file operation has been aborted return conv = self.frmt2cmplx # routine for converting to cartesian coordinates if np.ndim(data_str) > 1: num_cols, num_rows = np.shape(data_str) orientation_horiz = num_cols > num_rows # need to transpose data elif np.ndim(data_str) == 1: num_rows = len(data_str) num_cols = 1 orientation_horiz = False else: logger.error("Imported data is a single value or None.") return None logger.debug("_copy_to_table: c x r:", num_cols, num_rows) if orientation_horiz: self.zpk = [[], []] for c in range(num_cols): self.zpk[0].append(conv(data_str[c][0])) if num_rows > 1: self.zpk[1].append(conv(data_str[c][1])) else: self.zpk[0] = [conv(s) for s in data_str[0]] if num_cols > 1: self.zpk[1] = [conv(s) for s in data_str[1]] else: self.zpk[1] = [1] self.zpk[0] = np.asarray(self.zpk[0]) self.zpk[1] = np.asarray(self.zpk[1]) self._equalize_columns() qstyle_widget(self.ui.butSave, 'changed') self._refresh_table()