Esempio n. 1
0
    def open_xas_project(self):
        options = QtWidgets.QFileDialog.DontUseNativeDialog
        filename, _ = QtWidgets.QFileDialog.getOpenFileName(self, 'Load XAS project', self.working_folder,
                                                  'XAS project files (*.xas)', options=options)
        if filename:
            self.xasproject_loaded_from_file = xasproject.XASProject()
            self.xasproject_loaded_from_file.load(filename = filename)

            if ret == 0:
                self.xasproject = self.xasproject_loaded_from_file
                self.update_xas_project_list(self.xasproject._datasets)
            if ret == 1:
                for i in self.xasproject_loaded_from_file._datasets:
                    self.xasproject.append(i)
Esempio n. 2
0
    def __init__(self, hhm_pulses_per_deg, processing_sender=None, db=None, db_analysis=None,
                 *args, **kwargs):

        super().__init__(*args, **kwargs)
        self.setupUi(self)

        self.hhm_pulses_per_deg = hhm_pulses_per_deg
        self.sender = processing_sender
        self.db = db
        self.db_analysis = db_analysis
        self.gen_parser = xasdata.XASdataGeneric(hhm_pulses_per_deg, db=db)

        self.xasproject = xasproject.XASProject()
        self.xasproject.datasets_changed.connect(self.update_xas_project_list)


        # pushbuttons
        self.pushbuttonSelectFolder.clicked.connect(self.select_working_folder)
        self.pushbuttonRefreshFolder.clicked.connect(self.getFileList)
        self.pushbutton_plot_bin.clicked.connect(self.plotBinnedData)
        self.comboBox_sort_files_by.addItems(['Time','Name'])
        self.comboBox_sort_files_by.currentIndexChanged.connect((self.getFileList))
        # file lists
        self.listFiles_bin.itemSelectionChanged.connect(self.selectBinnedDataFilesToPlot)
        self.listFiles_bin.setSelectionMode(QtWidgets.QAbstractItemView.ExtendedSelection)
        self.addCanvas()
        self.keys = []
        self.last_keys = []
        self.current_plot_in = ''


        self.binned_data = []
        self.gen = xasdata.XASdataGeneric(self.hhm_pulses_per_deg, db=None)

        self.last_num = ''
        self.last_den = ''


        # Persistent settings
        self.settings = QSettings('ISS Beamline', 'Xview')
        self.working_folder = self.settings.value('WorkingFolder', defaultValue='/GPFS/xf08id/User Data', type=str)

        if self.working_folder != '/GPFS/xf08id/User Data':
            self.label_working_folder.setText(self.working_folder)
            self.label_working_folder.setToolTip(self.working_folder)
            self.getFileList()

        self.label_E0.setText("E<sub>0</sub>")
        # Setting up Preprocess tab:
        self.pushbutton_add_to_xasproject.clicked.connect(self.add_files_to_xas_project)
        self.listView_xasproject.itemSelectionChanged.connect(self.show_ds_params)
        self.listView_xasproject.setSelectionMode(QtWidgets.QAbstractItemView.ExtendedSelection)
        self.pushbutton_plotE_xasproject.clicked.connect(self.plot_xas_project_in_E)
        self.pushbutton_plotK_xasproject.clicked.connect(self.plot_xas_project_in_K)
        self.pushbutton_plotR_xasproject.clicked.connect(self.plot_xas_project_in_R)
        self.lineEdit_e0.textEdited.connect(self.update_ds_params)
        self.lineEdit_preedge_lo.textEdited.connect(self.update_ds_params)
        self.lineEdit_preedge_hi.textEdited.connect(self.update_ds_params)
        self.lineEdit_postedge_lo.textEdited.connect(self.update_ds_params)
        self.lineEdit_postedge_hi.textEdited.connect(self.update_ds_params)
        self.lineEdit_spline_lo.textEdited.connect(self.update_ds_params)
        self.lineEdit_spline_hi.textEdited.connect(self.update_ds_params)
        self.lineEdit_clamp_lo.textEdited.connect(self.update_ds_params)
        self.lineEdit_clamp_hi.textEdited.connect(self.update_ds_params)
        self.lineEdit_k_ft_lo.textEdited.connect(self.update_ds_params)
        self.lineEdit_k_ft_hi.textEdited.connect(self.update_ds_params)

        self.pushButton_e0_set.clicked.connect(self.set_ds_params_from_plot)
        self.pushButton_preedge_lo_set.clicked.connect(self.set_ds_params_from_plot)
        self.pushButton_preedge_hi_set.clicked.connect(self.set_ds_params_from_plot)
        self.pushButton_postedge_lo_set.clicked.connect(self.set_ds_params_from_plot)
        self.pushButton_postedge_hi_set.clicked.connect(self.set_ds_params_from_plot)
        self.pushButton_spline_lo_set.clicked.connect(self.set_ds_params_from_plot)
        self.pushButton_spline_hi_set.clicked.connect(self.set_ds_params_from_plot)
        self.pushButton_k_ft_lo_set.clicked.connect(self.set_ds_params_from_plot)
        self.pushButton_k_ft_hi_set.clicked.connect(self.set_ds_params_from_plot)

        self.pushButton_truncate_at_set.clicked.connect(self.set_ds_params_from_plot)

        # Push to selected/all  buttons defs
        self.pushButton_push_norm_param_to_selected.clicked.connect(self.push_param)
        self.pushButton_push_norm_param_to_all.clicked.connect(self.push_param)
        self.pushButton_push_bkg_param_to_selected.clicked.connect(self.push_param)
        self.pushButton_push_bkg_param_to_all.clicked.connect(self.push_param)

        self.pushButton_truncate_below.clicked.connect(self.truncate)
        self.pushButton_truncate_above.clicked.connect(self.truncate)

        #Menu defs
        self.action_exit.triggered.connect(self.close_app)
        self.action_save_project.triggered.connect(self.save_xas_project)
        self.action_open_project.triggered.connect(self.open_xas_project)
        self.action_save_datasets_as_text.triggered.connect(self.save_xas_datasets_as_text)
        self.action_combine_and_save_as_text.triggered.connect(self.combine_and_save_xas_datasets_as_text)
        self.action_merge.triggered.connect(self.merge_datasets)
        self.action_rename.triggered.connect(self.rename_dataset)
        self.action_remove.triggered.connect(self.remove_from_xas_project)

        self.lineEdit_to_ds_parameter_dict = {
            'lineEdit_preedge_lo':  'pre1',
            'lineEdit_preedge_hi':  'pre2',
            'lineEdit_postedge_lo': 'norm1',
            'lineEdit_postedge_hi': 'norm2',
            'lineEdit_e0':          'e0',
            'lineEdit_spline_lo':   'kmin',
            'lineEdit_spline_hi':   'kmax',
            'lineEdit_clamp_lo':    'clamp_lo',
            'lineEdit_clamp_hi':    'clamp_hi',
            'lineEdit_truncate_at': 'truncate',
            'lineEdit_k_ft_lo':     'kmin_ft',
            'lineEdit_k_ft_hi':     'kmax_ft'
        }

        self.pushButton_set_to_lineEdit_dict = {
            'pushButton_e0_set':           'lineEdit_e0',
            'pushButton_preedge_lo_set':   'lineEdit_preedge_lo',
            'pushButton_preedge_hi_set':   'lineEdit_preedge_hi',
            'pushButton_postedge_lo_set':  'lineEdit_postedge_lo',
            'pushButton_postedge_hi_set':  'lineEdit_postedge_hi',
            'pushButton_spline_lo_set':    'lineEdit_spline_lo',
            'pushButton_spline_hi_set':    'lineEdit_spline_hi',
            'pushButton_k_ft_lo_set':      'lineEdit_k_ft_lo',
            'pushButton_k_ft_hi_set':      'lineEdit_k_ft_hi',
            'pushButton_truncate_at_set':  'lineEdit_truncate_at'
        }
        self.windows_list = [
            'hanning',
            'kaiser',
            'gaussian',
            'sine'
        ]