Beispiel #1
0
    def fit_multi_peaks(self):

        QApplication.setOverrideCursor(Qt.WaitCursor)

        _peak_range_list = [
            tuple(_range) for _range in
            self.parent._ui_graphicsView_fitSetup.list_peak_ranges
        ]
        _peak_center_list = [
            np.mean([left, right]) for (left, right) in _peak_range_list
        ]
        _peak_tag_list = [
            "peak{}".format(_index)
            for _index, _ in enumerate(_peak_center_list)
        ]
        _peak_function_name = str(
            self.parent.ui.comboBox_peakType.currentText())

        _peak_xmin_list = [left for (left, _) in _peak_range_list]
        _peak_xmax_list = [right for (_, right) in _peak_range_list]

        # Fit peak
        hd_ws = self.parent.hidra_workspace

        _wavelength = hd_ws.get_wavelength(True, True)
        fit_engine = PeakFitEngineFactory.getInstance(hd_ws,
                                                      _peak_function_name,
                                                      'Linear',
                                                      wavelength=_wavelength)
        fit_result = fit_engine.fit_multiple_peaks(_peak_tag_list,
                                                   _peak_xmin_list,
                                                   _peak_xmax_list)
        self.parent.fit_result = fit_result

        self.parent.populate_fit_result_table(fit_result=fit_result)
        # self.parent.update_list_of_2d_plots_axis()

        o_gui = GuiUtilities(parent=self.parent)
        o_gui.set_1D_2D_axis_comboboxes(with_clear=True,
                                        fill_raw=True,
                                        fill_fit=True)
        o_gui.initialize_combobox()
        o_gui.enabled_export_csv_widgets(enabled=True)
        o_gui.enabled_2dplot_widgets(enabled=True)

        o_plot = Plot(parent=self.parent)
        o_plot.plot_2d()

        QApplication.restoreOverrideCursor()
Beispiel #2
0
    def load(self, project_file=None):
        if project_file is None:
            return

        try:
            self.__set_up_project_name(project_file=project_file)
            ws = self.parent._core.load_hidra_project(
                project_file,
                project_name=self.parent._project_name,
                load_detector_counts=False,
                load_diffraction=True)

            # Record data key and next
            self.parent._curr_file_name = project_file
            self.parent.hidra_workspace = ws
            self.parent.create_plot_color_range()
        except (RuntimeError, TypeError) as run_err:
            pop_message(self,
                        'Unable to load {}'.format(project_file),
                        detailed_message=str(run_err),
                        message_type='error')

        # # Edit information on the UI for user to visualize
        # self.parent.ui.label_loadedFileInfo.setText('Loaded {}; Project name: {}'
        #                                             .format(project_file, self.parent._project_name))

        # Get and set the range of sub runs
        o_utility = Utilities(parent=self.parent)
        sub_run_list = o_utility.get_subruns_limit()

        o_gui = GuiUtilities(parent=self.parent)
        o_gui.initialize_fitting_slider(max=len(sub_run_list))

        o_gui.set_1D_2D_axis_comboboxes(with_clear=True, fill_raw=True)
        o_gui.enabled_1dplot_widgets(enabled=True)
        o_gui.initialize_combobox()