def energy_grid(self, array, e0, edge_start, edge_end, preedge_spacing, xanes, exafsk): preedge = np.arange(np.min(array), edge_start, preedge_spacing) edge = np.arange(edge_start, edge_end, xanes) eenergy = xray.k2e(xray.e2k(edge_end, e0), e0) postedge = np.array([]) while(eenergy < np.max(array)): kenergy = xray.e2k(eenergy, e0) kenergy += exafsk eenergy = xray.k2e(kenergy, e0) postedge = np.append(postedge, eenergy) return np.append(np.append(preedge, edge), postedge)
def get_k_data(self, e0, edge_end, exafsk, y_data, interp_dict, en_orig, data_orig, pow=1, energy_string='energy'): df = pd.DataFrame({k: v[:, 1] for k, v in interp_dict.items() }).sort_values(energy_string) energy_array = df[energy_string].values e_interval = self.get_k_interval(energy_array, e0, e0 + edge_end, exafsk) k_interval = xray.e2k(e_interval, e0) #e0 + edge_end) condition = en_orig >= e0 + edge_end en_orig = np.extract(condition, en_orig) data_orig = np.extract(condition, data_orig) polyfit = np.polyfit(en_orig, data_orig, 2) #2 is ok? p = np.poly1d(polyfit) calibration = p(e_interval) y_data = y_data[-len(k_interval):] - calibration data = y_data[-len(k_interval):] * (k_interval**pow) return np.array([k_interval, data])
def get_k_data(self, e0, edge_end, exafsk, df, en_orig, data_orig, pow=1, energy_string='energy'): y_data = data_orig.copy() energy_array = df[energy_string].values e_interval = self.get_k_interval(energy_array, e0, e0 + edge_end, exafsk) k_interval = xray.e2k(e_interval, e0) #e0 + edge_end) condition = en_orig >= e0 + edge_end en_orig = np.extract(condition, en_orig) data_orig = np.extract(condition, data_orig) try: polyfit = np.polyfit(en_orig, data_orig, 2) #2 is ok? p = np.poly1d(polyfit) calibration = p(e_interval) y_data = y_data[-len(k_interval):] - calibration data = y_data[-len(k_interval):] * (k_interval**pow) return np.array([k_interval, data]) except Exception as exc: print(exc) return np.array([[], []])
def mouse_press_event(self, event): e_vs_k_discriminate_list = [ 'pushButton_spline_lo_set', 'pushButton_spline_hi_set', 'pushButton_k_ft_lo_set', 'pushButton_k_ft_hi_set' ] lineEdit = getattr( self, self.pushButton_set_to_lineEdit_dict[self.sender_object]) e0 = float(self.lineEdit_e0.text()) if self.sender_object == 'pushButton_e0_set': new_value = event.xdata elif self.sender_object == 'pushButton_truncate_at_set': if self.current_plot_in == 'e': new_value = event.xdata elif self.current_plot_in == 'k': new_value = k2e(event.xdata, e0) elif self.sender_object in e_vs_k_discriminate_list: if self.current_plot_in == 'k': new_value = event.xdata elif self.current_plot_in == 'e': new_value = e2k(event.xdata, e0) else: new_value = event.xdata - e0 lineEdit.setText('{:.1f}'.format(new_value)) sender_object = lineEdit print(sender_object) selection = self.listView_xasproject.selectedIndexes() if selection != []: index = selection[0].row() ds = self.xasproject[index] try: float(sender_object.text()) setattr( ds, self.lineEdit_to_ds_parameter_dict[ sender_object.objectName()], float(sender_object.text())) except: print('what' 's going wrong') self._disconnect_cid()
def get_k_data(self, e0, edge_end, exafsk, y_data, energy_array, en_orig, data_orig, pow=1): e_interval = self.get_k_interval(energy_array, e0, e0 + edge_end, exafsk) k_interval = xray.e2k(e_interval, e0) #e0 + edge_end) condition = en_orig >= e0 + edge_end en_orig = np.extract(condition, en_orig) data_orig = np.extract(condition, data_orig) polyfit = np.polyfit(en_orig, data_orig, 2) #2 is ok? p = np.poly1d(polyfit) calibration = p(e_interval) y_data = y_data[-len(k_interval):] - calibration data = y_data[-len(k_interval):] * (k_interval**pow) return np.array([k_interval, data])