예제 #1
0
    def runSequenceLineEditEvent(self):
        run_sequence = self.runSequenceLineEdit.text()
        self.is_manual_edit_of_tableWidget = False
        oListRuns = RunSequenceBreaker(run_sequence)
        _new_runs = oListRuns.getFinalList()

        _old_runs = self.loaded_list_of_runs
        _list_runs = np.unique(np.hstack([_old_runs, _new_runs]))
        o_load_and_sort_nxsdata = LoadAndSortNXSDataForSFcalculator(_list_runs, parent=self, read_options=self.read_options)
        self.update_table(o_load_and_sort_nxsdata)
        self.is_manual_edit_of_tableWidget = True
예제 #2
0
    def runSequenceLineEditEvent(self):
        run_sequence = self.runSequenceLineEdit.text()
        self.is_manual_edit_of_tableWidget = False
        oListRuns = RunSequenceBreaker(run_sequence)
        _new_runs = oListRuns.getFinalList()

        _old_runs = self.loaded_list_of_runs
        _list_runs = np.unique(np.hstack([_old_runs, _new_runs]))
        o_load_and_sort_nxsdata = LoadAndSortNXSDataForSFcalculator(
            _list_runs, parent=self, read_options=self.read_options)
        self.update_table(o_load_and_sort_nxsdata)
        self.is_manual_edit_of_tableWidget = True
예제 #3
0
    def loadNxs(self):
        self.clearMetadataTable()
        run_sequence = self.ui.runNumberEdit.text()
        oListRuns = RunSequenceBreaker(run_sequence)
        _list_runs = oListRuns.getFinalList()
        if len(_list_runs) > self.WARNING_NBR_FILES:
            msgBox = QMessageBox()
            _str = "Program is about to load " + str(len(_list_runs)) + " files. Do you want to continue ?"                                                                   
            msgBox.setText(_str)
            msgBox.addButton(QPushButton('NO'), QMessageBox.NoRole)
            msgBox.addButton(QPushButton('YES'), QMessageBox.YesRole)
            ret = msgBox.exec_()
            if ret == 0:
                self.ui.inputErrorLabel.setVisible(False)
                return

        if _list_runs[0] == -1:
            if self.list_nxs == []:
                return
            else:
                _list_runs = self.list_runs
                _list_nxs = self.list_nxs
                _list_filename = self.list_filename

        elif _list_runs[0] == -2:
            self.ui.inputErrorLabel.setVisible(True)
            return

        else:
            self.list_runs = _list_runs
            self.list_filename = []
            self.list_nxs = []
            for _runs in _list_runs:
                try:
                    _filename = RefRed.nexus_utilities.findNeXusFullPath(_runs)
                except:
                    self.ui.inputErrorLabel.setVisible(True)                    
                    return
                self.list_filename.append(_filename)
                randomString = RefRed.utilities.generate_random_workspace_name();print("About to load %s" % _filename)
                _nxs = LoadEventNexus(Filename = _filename, OutputWorkspace = randomString, MetaDataOnly=True)
                self.list_nxs.append(_nxs)

        self.ui.inputErrorLabel.setVisible(False)
        list_metadata_selected = self.list_metadata_selected

        _header = ['Run #','IPTS']
        for name in list_metadata_selected:
            self.ui.metadataTable.insertColumn(2)
            _header.append(name)
        self.ui.metadataTable.setHorizontalHeaderLabels(_header)
        list_nxs = self.list_nxs
예제 #4
0
    def loadNxs(self):
        self.clearMetadataTable()
        run_sequence = self.ui.runNumberEdit.text()
        oListRuns = RunSequenceBreaker(run_sequence)
        _list_runs = oListRuns.getFinalList()
        if len(_list_runs) > self.WARNING_NBR_FILES:
            msgBox = QMessageBox()
            _str = "Program is about to load " + str(len(_list_runs)) + " files. Do you want to continue ?"
            msgBox.setText(_str)
            msgBox.addButton(QPushButton("NO"), QMessageBox.NoRole)
            msgBox.addButton(QPushButton("YES"), QMessageBox.YesRole)
            ret = msgBox.exec_()
            if ret == 0:
                self.ui.inputErrorLabel.setVisible(False)
                return

        if _list_runs[0] == -1:
            if self.list_nxs == []:
                return
            else:
                _list_runs = self.list_runs
                _list_nxs = self.list_nxs
                _list_filename = self.list_filename

        elif _list_runs[0] == -2:
            self.ui.inputErrorLabel.setVisible(True)
            return

        else:
            self.list_runs = _list_runs
            self.list_filename = []
            self.list_nxs = []
            for _runs in _list_runs:
                try:
                    _filename = RefRed.nexus_utilities.findNeXusFullPath(_runs)
                except:
                    self.ui.inputErrorLabel.setVisible(True)
                    return
                self.list_filename.append(_filename)
                randomString = RefRed.utilities.generate_random_workspace_name()
                _nxs = LoadEventNexus(Filename=_filename, OutputWorkspace=randomString, MetaDataOnly=True)
                self.list_nxs.append(_nxs)

        self.ui.inputErrorLabel.setVisible(False)
        list_metadata_selected = self.list_metadata_selected

        _header = ["Run #", "IPTS"]
        for name in list_metadata_selected:
            self.ui.metadataTable.insertColumn(2)
            _header.append(name)
        self.ui.metadataTable.setHorizontalHeaderLabels(_header)
        list_nxs = self.list_nxs
예제 #5
0
    def __init__(self, parent=None, row=0, col=1, runs=None):
        self.parent = parent
        self.row = row
        self.col = col

        item = self.parent.ui.reductionTable.item(row, col)
        if item.text() == '':
            self.clear_cell(row, col)
            self.parent.file_loaded_signal.emit()
            QApplication.processEvents()
            return

        data_type = 'data' if col == 1 else 'norm'
        self.is_data_displayed = True if (col == 1) else False

        self.raw_runs = str(runs)
        run_breaker = RunSequenceBreaker(run_sequence=self.raw_runs)
        list_run = run_breaker.final_list

        # check if nexus can be found
        list_run_object = LocateListRun(list_run=list_run)
        if list_run_object.list_run_not_found != []:
            str_list_run_not_found = [
                str(x) for x in list_run_object.list_run_not_found
            ]
            runs_not_located = ', '.join(str_list_run_not_found)
            mess = "Can not locate %s run(s): %s" % (data_type,
                                                     runs_not_located)
            self.parent.ui.reductionTable.item(row, 8).setText(mess)
            _color = QtGui.QColor(RefRed.colors.VALUE_BAD)
            self.parent.ui.reductionTable.item(row, 8).setBackground(_color)
        else:
            mess = "%s runs have been located!" % data_type
            self.parent.ui.reductionTable.item(row, 8).setText(mess)
            _color = QtGui.QColor(RefRed.colors.VALUE_OK)
            self.parent.ui.reductionTable.item(row, 8).setBackground(_color)

        list_run_found = list(list_run_object.list_run_found)

        if list_run_found == []:
            self.parent.ui.reductionTable.item(row, col).setText('')
            return
        str_list_run_found = [str(x) for x in list_run_found]
        final_list_run_found = ','.join(str_list_run_found)
        self.parent.ui.reductionTable.item(row,
                                           col).setText(final_list_run_found)

        list_nexus_found = list_run_object.list_nexus_found
        thread_index = ((self.col - 1) + 2 * self.row)
        self.parent.loading_nxs_thread[
            thread_index] = CheckListRunCompatibilityAndDisplayThread()
        self.parent.loading_nxs_thread[thread_index].setup(
            parent=self.parent,
            list_run=list_run_found,
            list_nexus=list_nexus_found,
            row=row,
            is_working_with_data_column=self.is_data_displayed,
            is_display_requested=self.display_of_this_row_checked())
        self.parent.loading_nxs_thread[thread_index].start()
 def calculate_discrete_list_of_runs(self):
     _raw_run_from_input = self.raw_run_from_input
     sequence_breaker = RunSequenceBreaker(_raw_run_from_input)
     self.list_of_run_from_input = sequence_breaker.final_list