コード例 #1
0
ファイル: dw_gui.py プロジェクト: dishwasher-rfi/dw
    def open_file(self):
        """Open data file"""
        try:
            for i in self.mainwidget.imagewidget.plot.items:
                if dwwidg.is_flag(i):
                    msgBox = QMessageBox()
                    msgBox.setText(
                        "There are not saved flags! Are you sure to discard them?"
                    )
                    msgBox.addButton(QMessageBox.Cancel)
                    msgBox.addButton(QMessageBox.Ok)
                    msgBox.setDefaultButton(QMessageBox.Cancel)
                    ret = msgBox.exec_()
                    if ret == QMessageBox.Cancel:
                        return -1
                    elif ret == QMessageBox.Ok:
                        break
        except:
            pass

        self.toolbar.clear()
        try:
            self.flag_toolbar.close()
        except:
            pass
        try:
            self._open_file()
        except:
            msgBox = QMessageBox()
            msgBox.setText("File structure not recognized!")
            msgBox.exec_()
            return -1
コード例 #2
0
ファイル: dw_gui.py プロジェクト: dishwasher-rfi/dw
    def _open_file(self):
        saved_in, saved_out, saved_err = sys.stdin, sys.stdout, sys.stderr
        sys.stdout = None
        filename, _filter = getopenfilename(self, _("Open"), "")
        sys.stdin, sys.stdout, sys.stderr = saved_in, saved_out, saved_err

        if filename:
            extension = splitext(str(filename))[1]
            if extension not in ['.fits', '.hdf5', '.hdf', '.h5']:
                msgBox = QMessageBox()
                msgBox.setText("Wrong file type!")
                msgBox.exec_()
                return -1

            if extension == '.fits':
                file_type = "fits"
            elif extension == (".hdf5" or ".h5" or ".hdf"):
                msgBox = QMessageBox()
                msgBox.setText(
                    "Are data spectrometric or spectropolarimetric?")
                msgBox.addButton(QPushButton('Spect'), QMessageBox.NoRole)
                msgBox.addButton(QPushButton('Polar'), QMessageBox.YesRole)
                ret = msgBox.exec_()
                if ret == False:
                    widg_type = 0
                    file_type = 'hdf'
                elif ret == True:
                    widg_type = 1
                    file_type = 'hdf_pola'

            self.data = dwdata.DWData()
            self.data.open_data(filename, file_type)
            if file_type == 'fits':
                if self.data.data_type_dict[0][0] == 'simple':
                    widg_type = 0
                elif self.data.data_type_dict[0][0] == 'stokes':
                    widg_type = 1

            if widg_type == 0:
                self.setup_central_widget(dwwidg.MainWidget, self.toolbar)
            elif widg_type == 1:
                self.setup_central_widget(dwwidg.PolaViewerWidget,
                                          self.toolbar)
            self.set_flag_toolbar()

            self.mainwidget.open_setup(self.data)
            self.setWindowTitle(APP_NAME + " - " + filename)
コード例 #3
0
ファイル: dw_gui.py プロジェクト: dishwasher-rfi/dw
 def close_dw(self):
     """Close DW"""
     try:
         for i in self.mainwidget.imagewidget.plot.items:
             if dwwidg.is_flag(i):
                 msgBox = QMessageBox()
                 msgBox.setText(
                     "There are not saved flags! Are you sure to discard them?"
                 )
                 msgBox.addButton(QMessageBox.Cancel)
                 msgBox.addButton(QMessageBox.Ok)
                 msgBox.setDefaultButton(QMessageBox.Cancel)
                 ret = msgBox.exec_()
                 if ret == QMessageBox.Cancel:
                     return -1
                 elif ret == QMessageBox.Ok:
                     break
         self.close()
     except:
         self.close()
コード例 #4
0
ファイル: dw_gui.py プロジェクト: dishwasher-rfi/dw
    def close_file(self):
        """Close data file"""
        for i in self.mainwidget.imagewidget.plot.items:
            if dwwidg.is_flag(i):
                msgBox = QMessageBox()
                msgBox.setText(
                    "There are not saved flags! Are you sure to discard them?")
                msgBox.addButton(QMessageBox.Cancel)
                msgBox.addButton(QMessageBox.Ok)
                msgBox.setDefaultButton(QMessageBox.Cancel)
                ret = msgBox.exec_()
                if ret == QMessageBox.Cancel:
                    return -1
                elif ret == QMessageBox.Ok:
                    break

        self.mainwidget.close()
        self.toolbar.clear()
        self.flag_toolbar.close()
        self.data.close()
        del self.data
        del self.mainwidget
        self.setWindowTitle(APP_NAME)
コード例 #5
0
    def apply_fit(self):
        msgBox = QMessageBox()
        msgBox.setText("Apply corrections?")
        msgBox.setInformativeText(
            "Select to which files will be applied the correction.")
        CancelButton = msgBox.addButton("Cancel", msgBox.RejectRole)
        SelectButton = msgBox.addButton("Select", msgBox.NoRole)
        AllButton = msgBox.addButton("All", msgBox.YesRole)
        #msgBox.setDefaultButton(QMessageBox.Cancel)
        msgBox.exec_()
        if msgBox.clickedButton() == CancelButton:
            return -1
        elif msgBox.clickedButton() == AllButton:
            filelist = None
        elif msgBox.clickedButton() == SelectButton:
            flret = getopenfilenames(self, _("Select file list"),
                                     self.data_ref.dir_name)[0]
            filelist = []
            for f in flret:
                filelist.append((basename(str(f)), dirname(str(f))))
            msgBox = QMessageBox()
            msgBox.setText("Select the correction file")
            msgBox.addButton(QMessageBox.Ok)
            msgBox.exec_()

        filename = getopenfilename(
            self, _("Correction file"),
            self.data_ref.dir_name + "/" + basename(
                normpath(self.data_ref.dir_name) + "_fit." +
                self.data_ref.files_type))
        try:
            self.data_ref.applycorr(str(filename[0]), filelist)
        except:
            msgBox = QMessageBox()
            msgBox.setText("Not a correction file!")
            msgBox.exec_()
            return -1
コード例 #6
0
    def fitfile(self):
        if self.fitc == None:
            msgBox = QMessageBox()
            msgBox.setText("Fit not yet executed!")
            msgBox.exec_()
            return -1

        msgBox = QMessageBox()
        msgBox.setText("Save correction file?")
        #msgBox.setInformativeText("A correction file will be saved in the root directory of the observation.")
        msgBox.addButton(QMessageBox.Cancel)
        msgBox.addButton(QMessageBox.Ok)
        msgBox.setDefaultButton(QMessageBox.Cancel)
        ret = msgBox.exec_()
        if ret != QMessageBox.Ok:
            return -1

        name = getsavefilename(self,
                               _("Save File"),
                               self.data_ref.dir_name + "/" + basename(
                                   normpath(self.data_ref.dir_name) + "_fit." +
                                   self.data_ref.files_type),
                               options=QFileDialog.DontConfirmOverwrite)
        if str(name[0]):
            if exists(str(name[0])):
                msgBox = QMessageBox()
                msgBox.setText("File exists!")
                msgBox.setInformativeText("Do you want to update it?")
                msgBox.addButton(QMessageBox.Cancel)
                msgBox.addButton(QMessageBox.Ok)
                msgBox.setDefaultButton(QMessageBox.Cancel)
                ret = msgBox.exec_()
                if ret != QMessageBox.Ok:
                    return -1

            self.data_ref.fitfile(str(name[0]), self.fitc)