def cutfigure(self):
     self.windows = Ui_Form_Cut(self.topo)
     self.windows.exec_()
     new_topo = self.topo[
         int(self.windows.YPoint[1]):int(self.windows.YPoint[0]):1,
         int(self.windows.XPoint[0]):int(self.windows.XPoint[1]):1]
     print(np.shape(new_topo))
     print(self.windows.XPoint)
     print(self.windows.YPoint)
     self.topo = new_topo
     self.topomap_draw(self.topo)
Example #2
0
 def contrast_ratio(self):
     self.max = np.max(self.topo)
     self.min = np.min(self.topo)
     self.median = np.median(self.topo)
     self.windows = Ui_Form_contrast()
     self.windows.slider_emit.connect(self.sliderfunction)
     #self.windows.slider_2_emit.connect(self.slidernumber2)
     self.windows.show()
 def choose_impurity(self):
     self.windows = Ui_Form_impurity(self.topo)
     self.windows.exec_()
     print("nihao")
class Ui_MainWindow(Baseui):
    def __init__(self):
        super(Ui_MainWindow, self).__init__()
        self.setObjectName("MainWindow")
        self.resize(805, 709)

        self.centralwidget = QtWidgets.QWidget(self)
        self.centralwidget.setObjectName("centralwidget")
        self.verticalLayout = QtWidgets.QVBoxLayout(self.centralwidget)
        self.verticalLayout.setObjectName("verticalLayout")

        self.fft_count = 0
        self.count_bin = 0

        self.verticalLayout.addWidget(self.canvas)
        self.setCentralWidget(self.centralwidget)

        self.menubar = QtWidgets.QMenuBar(self)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 805, 20))
        self.menubar.setObjectName("menubar")
        self.menu = QtWidgets.QMenu(self.menubar)
        self.menu.setObjectName("menu")
        self.menu_2 = QtWidgets.QMenu(self.menubar)
        self.menu_2.setObjectName("menu_2")
        self.menu_3 = QtWidgets.QMenu(self.menubar)
        self.menu_3.setObjectName("menu_3")
        self.menu_4 = QtWidgets.QMenu(self.menubar)
        self.menu_4.setObjectName("drift_correction")
        self.menu_5 = QtWidgets.QMenu(self.menubar)
        self.menu_5.setObjectName("图形处理")
        self.menu_6 = QtWidgets.QMenu(self.menubar)
        self.menu_6.setObjectName('绘制linecut')

        self.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(self)
        self.statusbar.setObjectName("statusbar")
        self.setStatusBar(self.statusbar)
        self.actionchoose_color = QtWidgets.QAction(self)
        self.actionchoose_color.setObjectName("actionchoose_color")

        self.actionopen3ds = QtWidgets.QAction(self)
        self.actionopen3ds.setObjectName("actionopen3ds")
        self.actionopen3ds.setShortcut('Shift+D')

        self.actionopenpythonbin = QtWidgets.QAction(self)
        self.actionopenpythonbin.setObjectName("actionopenpythonbin")
        self.actionopenpythonbin.setShortcut('Shift+p')

        self.actionopenjavabin = QtWidgets.QAction(self)
        self.actionopenjavabin.setObjectName("actionopenjavabin")
        self.actionopenjavabin.setShortcut('Shift+j')

        self.actionopendidvdata = QtWidgets.QAction(self)
        self.actionopendidvdata.setObjectName('actionopendidvdat')
        self.actionopendidvdata.setShortcut('shift+d')

        self.actionochooseimpurities = QtWidgets.QAction(self)
        self.actionochooseimpurities.setObjectName("choose_impurities")
        self.actionoaddmask = QtWidgets.QAction(self)
        self.actionoaddmask.setObjectName("add_mask")

        self.actionochooseBraggPeak = QtWidgets.QAction(self)
        self.actionochooseBraggPeak.setObjectName("chooseBraggPeak")
        self.actionoDoingDrfitCorrection = QtWidgets.QAction(self)
        self.actionoDoingDrfitCorrection.setObjectName("DriftCorrection")

        self.actioncutfigure = QtWidgets.QAction(self)
        self.actioncutfigure.setObjectName("cutfigure")

        self.actiondidvs = QtWidgets.QAction(self)
        self.actiondidvs.setObjectName('didvmap')

        self.menu.addAction(self.actionopen3ds)
        self.menu.addAction(self.actionopenpythonbin)
        self.menu.addAction(self.actionopenjavabin)
        self.menu.addAction(self.actionopendidvdata)

        self.menu_2.addAction(self.actionchoose_color)

        self.menu_3.addAction(self.actionochooseimpurities)
        self.menu_3.addAction(self.actionoaddmask)

        self.menu_4.addAction(self.actionochooseBraggPeak)
        self.menu_4.addAction(self.actionoDoingDrfitCorrection)

        self.menu_5.addAction(self.actioncutfigure)

        self.menu_6.addAction(self.actiondidvs)

        self.menubar.addAction(self.menu.menuAction())
        self.menubar.addAction(self.menu_2.menuAction())
        self.menubar.addAction(self.menu_3.menuAction())
        self.menubar.addAction(self.menu_4.menuAction())
        self.menubar.addAction(self.menu_5.menuAction())
        self.menubar.addAction(self.menu_6.menuAction())

        self.actionchoose_color.triggered.connect(self.choosecolor)
        self.actionopen3ds.triggered.connect(self.open3ds_or_sxm)
        self.actionopenpythonbin.triggered.connect(self.openpythonbinfile)
        #self.actionopendidvdata.triggered.connect(self.opendidvdat)
        #self.actiondidvdatread.triggered.connect(self.didvdata)
        self.actionopenjavabin.triggered.connect(self.openjavabinfile)
        self.actionochooseimpurities.triggered.connect(self.choose_impurity)
        self.actionochooseBraggPeak.triggered.connect(self.choose_peak)
        self.actionoDoingDrfitCorrection.triggered.connect(
            self.driftcorrection)
        self.actioncutfigure.triggered.connect(self.cutfigure)
        self.actiondidvs.triggered.connect(self.didvmap)

        self.shortcut = QShortcut(QKeySequence('F3'), self.centralwidget,
                                  self.changecolor)
        self.shortcut_color_decrease = QShortcut(QKeySequence('F2'),
                                                 self.centralwidget,
                                                 self.changecolor_decrease)
        self.shortcut_1 = QShortcut(QKeySequence('Ctrl+Q'), self.centralwidget,
                                    self.dialog_open)
        self.shortcut_2 = QShortcut(QKeySequence('Ctrl+S'), self.centralwidget,
                                    self.savepng)
        self.shortcut_3 = QShortcut(QKeySequence('Ctrl+B'), self.centralwidget,
                                    self.savedata_bin)
        self.shortcut_4 = QShortcut(QKeySequence('F11'), self.centralwidget,
                                    self.contrast_ratio)
        self.shortcut_5 = QShortcut(QKeySequence('Ctrl+F'), self.centralwidget,
                                    self.fouriertransform)
        self.shortclipboard = QShortcut(QKeySequence('Ctrl+C'),
                                        self.centralwidget, self.to_clipboard)

        self.retranslateUi()

        QtCore.QMetaObject.connectSlotsByName(self)

    def savepng(self):
        self.counts = self.counts + 1
        self.ax.axis('off')
        self.figure.savefig(self.Newbinpath + '\\' + 'topo' + '_' +
                            str(self.counts) + '.eps',
                            dpi=100,
                            format='eps')
        self.figure.savefig(self.Newbinpath + '\\' + 'topo' + '_' +
                            str(self.counts) + '.png',
                            dpi=600,
                            format='png')
        self.ax.axis('on')
        self.topomap_draw(self.topo)

    def savedata_bin(self):
        self.count_bin = self.count_bin + 1
        op.write_txt_without_series(self.Newbinpath, self.topo,
                                    'topo' + str(self.count_bin))

    def choosecolor(self):
        self.color = QColorDialog.getColor()

    def open3ds_or_sxm(self):
        self.filename, _ = QFileDialog.getOpenFileName(self.centralwidget,
                                                       'openfile', 'C:\\data')
        self.Newpath = op.openup(self.filename)
        # javabin.Nanoispy_Open(self.filename)

    def openjavabinfile(self):
        self.filename, _ = QFileDialog.getOpenFileName(self.centralwidget,
                                                       'openfile', 'C:\\data',
                                                       'binfile(*.bin)')
        self.topo, self.Newbinpath = javabin.read_java_bin_single_layer(
            self.filename)
        self.topomap_draw(self.topo)

    def openpythonbinfile(self):
        self.filename, _ = QFileDialog.getOpenFileName(self.centralwidget,
                                                       'openfile', 'C:\\data',
                                                       'binfile(*.bin)')
        self.topo, self.Newbinpath = wrb.read_bin(self.filename)
        self.topomap_draw(self.topo)

    def opendidvdata(self):
        self.filename, _ = QFileDialog.getOpenFileName(self.centralwidget,
                                                       'opendata', 'C:\\data',
                                                       'datfile(*.dat')

    def choose_impurity(self):
        self.windows = Ui_Form_impurity(self.topo)
        self.windows.exec_()
        print("nihao")

    def choose_peak(self):
        self.fftdata = np.fft.fftshift(np.fft.fft2(self.topo))
        self.fftdata = np.log10(np.abs(self.fftdata)**2)
        self.ui = Ui_Form_bragg(self.fftdata)
        self.ui.exec_()

    def driftcorrection(self):
        self.Point_1_raw = []
        self.Point_2_raw = []
        for i in list(self.ui.datas.keys()):
            self.Point_1_raw.append(self.ui.datas[i][0])
            self.Point_2_raw.append(self.ui.datas[i][1])
        bragg_1, bragg_2 = fp.get_refine_bragg_point(self.fftdata,
                                                     self.Point_1_raw,
                                                     self.Point_2_raw)
        self.bragg_peak = np.empty((2, 2))
        self.bragg_peak[0] = bragg_1
        self.bragg_peak[1] = bragg_2
        self.calc = UFiedlCalculation.UFieldCalculationReal(
            False, self.topo, 60, self.bragg_peak, 13, True)
        self.calc.doExpUCalc()
        self.calc.pickBestlayer()
        self.calc.makeBestUfield()
        self.calc.doRegularization()
        self.calc.addReglarization()
        self.calc.applyUfield()
        self.topomap_draw(self.topo)

    def cutfigure(self):
        self.windows = Ui_Form_Cut(self.topo)
        self.windows.exec_()
        new_topo = self.topo[
            int(self.windows.YPoint[1]):int(self.windows.YPoint[0]):1,
            int(self.windows.XPoint[0]):int(self.windows.XPoint[1]):1]
        print(np.shape(new_topo))
        print(self.windows.XPoint)
        print(self.windows.YPoint)
        self.topo = new_topo
        self.topomap_draw(self.topo)

    def didvmap(self):
        self.Windows = Ui_Form_didvmap(self.Newbinpath)
        self.Windows.show()

    def fouriertransform(self):
        if self.fft_count % 2 == 0:
            self.fftdata = np.fft.fft2(self.topo)
            self.fftdata = np.log10(np.abs(np.fft.fftshift(self.fftdata))**2)
            self.topomap_draw(self.fftdata)
        elif self.fft_count % 2 == 1:
            self.topomap_draw(self.topo)
        self.fft_count = self.fft_count + 1

    def fourier_draw(self, fftdata):
        self.ax.clear()
        self.ax.axis('on')
        self.ax.pcolormesh(fftdata, cmap=plt.get_cmap(self.cmap))
        self.canvas.draw()

    def retranslateUi(self):
        _translate = QtCore.QCoreApplication.translate
        self.setWindowTitle(_translate("MainWindow", "STM数据处理程序"))
        self.menu.setTitle(_translate("MainWindow", "打开文件"))
        self.menu_2.setTitle(_translate("MainWindow", "选择颜色"))
        self.menu_3.setTitle(_translate("MainWindow", "Phase Reference QPI"))
        self.menu_4.setTitle(_translate("MainWindow", "原子位置矫正"))
        self.menu_5.setTitle(_translate("MainWindow", 'cut_picture'))
        self.menu_6.setTitle(_translate("MainWindow", 'didv绘制'))
        self.actionchoose_color.setText(_translate("MainWindow", "颜色表"))
        self.actionopen3ds.setText(_translate("MainWindow", "open3ds"))
        self.actionopenpythonbin.setText(
            _translate("MainWindow", "openpythonbin"))
        self.actionopenjavabin.setText(_translate("MainWindow", "openjavabin"))
        self.actionochooseimpurities.setText(_translate("MainWindow", "选取杂质"))
        self.actionoaddmask.setText(_translate("MainWindow", "addmask"))
        self.actionochooseBraggPeak.setText(
            _translate("MainWindow", "chooseBraggPeak"))
        self.actionoDoingDrfitCorrection.setText(
            _translate("MainWindow", "DriftCorrection"))
        self.actioncutfigure.setText(_translate("MainWindow", "cutfigure"))
        self.actiondidvs.setText(_translate("MainWindow", 'didvmap'))
Example #5
0
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(805, 709)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.verticalLayout = QtWidgets.QVBoxLayout(self.centralwidget)
        self.verticalLayout.setObjectName("verticalLayout")
        self.width = 10
        self.height = 10
        self.dpi = 100
        self.figure = Figure(figsize=(self.width, self.height), dpi=self.dpi)
        self.canvas = FigureCanvas(self.figure)
        self.ax = self.figure.add_subplot(111)
        self.counts = 0
        self.count_bin = 0
        self.canvas.draw()
        #self.graphicsView = QtWidgets.QGraphicsView(self.centralwidget)
        #self.graphicsView.setObjectName("graphicsView")

        self.verticalLayout.addWidget(self.canvas)
        #这两行可以更改
        MainWindow.setCentralWidget(self.centralwidget)

        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 805, 20))
        self.menubar.setObjectName("menubar")
        self.menu = QtWidgets.QMenu(self.menubar)
        self.menu.setObjectName("menu")
        self.menu_2 = QtWidgets.QMenu(self.menubar)
        self.menu_2.setObjectName("menu_2")
        self.menu_3 = QtWidgets.QMenu(self.menubar)
        self.menu_3.setObjectName("menu_3")
        self.menu_4 = QtWidgets.QMenu(self.menubar)
        self.menu_4.setObjectName("drift_correction")
        self.menu_5 = QtWidgets.QMenu(self.menubar)
        self.menu_5.setObjectName("图形处理")
        self.menu_6 = QtWidgets.QMenu(self.menubar)
        self.menu_6.setObjectName('绘制linecut')

        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)
        self.actionchoose_color = QtWidgets.QAction(MainWindow)
        self.actionchoose_color.setObjectName("actionchoose_color")

        self.actionopen3ds = QtWidgets.QAction(MainWindow)
        self.actionopen3ds.setObjectName("actionopen3ds")
        self.actionopen3ds.setShortcut('Shift+D')
        self.actionopenpythonbin = QtWidgets.QAction(MainWindow)
        self.actionopenpythonbin.setObjectName("actionopenpythonbin")
        self.actionopenpythonbin.setShortcut('Shift+p')

        self.actionopenjavabin = QtWidgets.QAction(MainWindow)
        self.actionopenjavabin.setObjectName("actionopenjavabin")
        self.actionopenjavabin.setShortcut('Shift+j')

        self.actionochooseimpurities = QtWidgets.QAction(MainWindow)
        self.actionochooseimpurities.setObjectName("choose_impurities")
        self.actionoaddmask = QtWidgets.QAction(MainWindow)
        self.actionoaddmask.setObjectName("add_mask")

        self.actionochooseBraggPeak = QtWidgets.QAction(MainWindow)
        self.actionochooseBraggPeak.setObjectName("chooseBraggPeak")
        self.actionoDoingDrfitCorrection = QtWidgets.QAction(MainWindow)
        self.actionoDoingDrfitCorrection.setObjectName("DriftCorrection")

        self.actioncutfigure = QtWidgets.QAction(MainWindow)
        self.actioncutfigure.setObjectName("cutfigure")

        self.actionlincut = QtWidgets.QAction(MainWindow)
        self.actionlincut.setObjectName('select two point')

        self.menu.addAction(self.actionopen3ds)
        self.menu.addAction(self.actionopenpythonbin)
        self.menu.addAction(self.actionopenjavabin)

        self.menu_2.addAction(self.actionchoose_color)

        self.menu_3.addAction(self.actionochooseimpurities)
        self.menu_3.addAction(self.actionoaddmask)

        self.menu_4.addAction(self.actionochooseBraggPeak)
        self.menu_4.addAction(self.actionoDoingDrfitCorrection)

        self.menu_5.addAction(self.actioncutfigure)

        self.menu_6.addAction(self.actionlincut)

        self.menubar.addAction(self.menu.menuAction())
        self.menubar.addAction(self.menu_2.menuAction())
        self.menubar.addAction(self.menu_3.menuAction())
        self.menubar.addAction(self.menu_4.menuAction())
        self.menubar.addAction(self.menu_5.menuAction())
        self.menubar.addAction(self.menu_6.menuAction())

        self.color_count = 0
        """
        self.cmaplist = ['viridis', 'plasma', 'inferno', 'magma', 'cividis', 'Greys', 'Purples', 'Blues', 'Greens',
                         'Oranges', 'Reds',
                         'YlOrBr', 'YlOrRd', 'OrRd', 'PuRd', 'RdPu', 'BuPu', 'GnBu', 'PuBu', 'YlGnBu', 'PuBuGn', 'BuGn',
                         'YlGn','RdBu']
        """
        self.cmaplist = [
            'YlOrBr', 'YlOrBr_r', 'Blues', 'Blues_r', 'binary_r', 'binary',
            'autumn', 'autumn_r', 'YlOrRd', 'YlOrRd_r', 'Reds', 'Reds',
            'Purples', 'Purples_r', 'copper', 'copper_r', 'OrRd', 'OrRd_r',
            'RdBu', 'RdBu_r', 'coolwarm', 'coolwarm_r'
        ]
        self.cmap = self.cmaplist[self.color_count]
        self.actionchoose_color.triggered.connect(self.choosecolor)
        self.actionopen3ds.triggered.connect(self.open3ds_or_sxm)
        self.actionopenpythonbin.triggered.connect(self.openpythonbinfile)
        self.actionopenjavabin.triggered.connect(self.openjavabinfile)
        self.actionochooseimpurities.triggered.connect(self.choose_impurity)
        self.actionochooseBraggPeak.triggered.connect(self.choose_peak)
        self.actionoDoingDrfitCorrection.triggered.connect(
            self.driftcorrection)
        self.actioncutfigure.triggered.connect(self.cutfigure)
        self.actionlincut.triggered.connect(self.linecuts)
        #self.shortcut_change_color = QShortcut(QKeySequence(self.tr("Ctrl+Q")),self)
        #self.shortcut_change_color.activated.connect(self.changecolor)
        #self.shortcut_choose_color = QShortcut(QKeySequence('Ctrl+P'),self)
        #self.shortcut_choose_color.activated.connect(self.changecolor)

        #self.shortcut = QShortcut(QKeySequence('Ctrl+Q'),self)
        #self.shortcut.activated.connect(self .changecolor)

        self.shortcut = QShortcut(QKeySequence('F3'), self.centralwidget,
                                  self.changecolor)
        self.shortcut_1 = QShortcut(QKeySequence('Ctrl+Q'), self.centralwidget,
                                    self.dialog_open)
        self.shortcut_2 = QShortcut(QKeySequence('Ctrl+S'), self.centralwidget,
                                    self.savepng)
        self.shortcut_3 = QShortcut(QKeySequence('Ctrl+B'), self.centralwidget,
                                    self.savedata_bin)
        #self.shortcut_3 = QShortcut(QKeySequence('F'),self.centralwidget,self.ffts)
        self.shortcut_4 = QShortcut(QKeySequence('F11'), self.centralwidget,
                                    self.contrast_ratio)

        self.retranslateUi(MainWindow)

        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def contrast_ratio(self):
        self.max = np.max(self.topo)
        self.min = np.min(self.topo)
        self.median = np.median(self.topo)
        self.windows = Ui_Form_contrast()
        self.windows.slider_emit.connect(self.sliderfunction)
        #self.windows.slider_2_emit.connect(self.slidernumber2)
        self.windows.show()

    def sliderfunction(self, number1, number2):
        self.topomap_draw_2(number1, number2)

    def savepng(self):
        self.counts = self.counts + 1
        self.ax.axis('off')
        self.figure.savefig(self.Newbinpath + '\\' + 'topo' + '_' +
                            str(self.counts) + '.eps',
                            dpi=600,
                            format='eps')
        self.figure.savefig(self.Newbinpath + '\\' + 'topo' + '_' +
                            str(self.counts) + '.png',
                            dpi=600,
                            format='png')

    def savedata_bin(self):
        """
        self.count_bin = self.count_bin+1
        path = self.Newbinpath +'\\'
        """
        #功能暂时缺失

    def choosecolor(self):
        self.color = QColorDialog.getColor()

    def open3ds_or_sxm(self):
        self.filename, _ = QFileDialog.getOpenFileName(self.centralwidget,
                                                       'openfile', 'C:\\data')
        self.Newpath = op.openup(self.filename)
        #javabin.Nanoispy_Open(self.filename)

    def choose_peak(self):
        self.fftdata = np.fft.fftshift(np.fft.fft2(self.topo))
        self.fftdata = np.log10(np.abs(self.fftdata)**2)
        self.ui = Ui_Form_bragg(self.fftdata)
        self.ui.exec_()

    def openjavabinfile(self):
        self.filename, _ = QFileDialog.getOpenFileName(self.centralwidget,
                                                       'openfile', 'C:\\data',
                                                       'binfile(*.bin)')
        #self.topo=read_java_bin.read_java_bin_file(self.filename)
        self.topo, self.Newbinpath = javabin.read_java_bin_single_layer(
            self.filename)
        #self.topo = fieldops.subtractMeanPlane(self.topo)
        self.topomap_draw()

    def topomap_draw(self):
        self.ax.clear()
        self.ax.axis('on')
        self.ax.pcolormesh(self.topo, cmap=plt.get_cmap(self.cmap))
        self.canvas.draw()

    def topomap_draw_2(self, vmin, vmax):
        self.vmin = np.percentile(self.topo, vmin)
        self.vmax = np.percentile(self.topo, vmax)
        self.ax.clear()
        self.ax.axis('on')
        self.ax.pcolormesh(self.topo,
                           vmin=self.vmin,
                           vmax=self.vmax,
                           cmap=plt.get_cmap(self.cmap))
        self.canvas.draw()

    def openpythonbinfile(self):
        self.filename, _ = QFileDialog.getOpenFileName(self.centralwidget,
                                                       'openfile', 'C:\\data',
                                                       'binfile(*.bin)')
        self.topo, self.Newbinpath = wrb.read_bin(self.filename)
        #self.topo = fieldops.subtractMeanPlane(self.topo)
        #self.topo = fieldops.detectNaN(self.topo)
        self.topomap_draw()

    def choose_impurity(self):
        self.windows = Ui_Form_impurity(self.topo)
        self.windows.exec_()

    def driftcorrection(self):
        self.Point_1_raw = []
        self.Point_2_raw = []
        #这是我们选取的两个点

        for i in list(self.ui.datas.keys()):
            self.Point_1_raw.append(self.ui.datas[i][0])
            self.Point_2_raw.append(self.ui.datas[i][1])
        bragg_1, bragg_2 = fp.get_refine_bragg_point(self.fftdata,
                                                     self.Point_1_raw,
                                                     self.Point_2_raw)
        self.bragg_peak = np.empty((2, 2))
        self.bragg_peak[0] = bragg_1
        self.bragg_peak[1] = bragg_2
        self.calc = UFiedlCalculation.UFieldCalculationReal(
            False, self.topo, 60, self.bragg_peak, 13, True)
        self.calc.doExpUCalc()
        self.calc.pickBestlayer()
        self.calc.makeBestUfield()
        self.calc.doRegularization()
        self.calc.addReglarization()
        self.calc.applyUfield()
        #self.m = ms.Plotcanvas(self.graphicsView, width=10, height=10, topo=self.calc.after,)
        self.topomap_draw()

    def cutfigure(self):
        self.windows = Ui_Form_Cut(self.topo)
        self.windows.exec_()
        new_topo = self.topo[
            int(self.windows.YPoint[1]):int(self.windows.YPoint[0]):1,
            int(self.windows.XPoint[0]):int(self.windows.XPoint[1]):1]
        print(np.shape(new_topo))
        print(self.windows.XPoint)
        print(self.windows.YPoint)
        self.topo = new_topo
        self.topomap_draw()

    def changecolor(self):
        self.color_count = self.color_count + 1
        time = int(self.color_count % len(self.cmaplist))
        self.cmap = self.cmaplist[time]
        self.topomap_draw()

    def dialog_open(self):
        """
        items = ('raw','subtract best-fit line from horizontal lines','subtract best-fit line from horizontal lines','Nomalize to the range [0,1]',
                 'suppress bad pixels','subtract linear fit','subtract plane fit')
        item,ok =  QInputDialog.getItem(self.centralwidget,'scan correction','fit list',items,0,False)
        if ok and item:
            if item == 'raw':
                self.topo = self.topo
                print("形貌图保持不变")
            elif item == 'subtract plane fit':
                self.topo = fieldops.subtractMeanPlane(self.topo)
                print("形貌图planefit")
            elif item ==  'suppress bad pixels':
                self.topo = fieldops.detectNaN(self.topo)

        """
        self.topo = dialog_function(self.centralwidget, self.topo)
        self.topomap_draw()

    def linecuts(self):
        self.Windows = Ui_Form_linecut(self.topo)
        self.Windows.exec_()

    """
    @pyqtSlot()
    def KeyPressEvent(self,event):
        self.cmaplist = ['viridis', 'plasma', 'inferno', 'magma', 'cividis', 'Greys', 'Purples', 'Blues', 'Greens',
                         'Oranges', 'Reds',
                         'YlOrBr', 'YlOrRd', 'OrRd', 'PuRd', 'RdPu', 'BuPu', 'GnBu', 'PuBu', 'YlGnBu', 'PuBuGn', 'BuGn',
                         'YlGn']
        count =0
        super().KeyPressEvent(event)
        print(event.key())
        if event.key() ==QtCore.Qt.Key_C:
            count =count+1
            number = int(count%23)
            self.cmap = self.cmaplist[number]
            print("nihao")
    """

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.menu.setTitle(_translate("MainWindow", "open_file"))
        self.menu_2.setTitle(_translate("MainWindow", "Choose"))
        self.menu_3.setTitle(_translate("MainWindow", "Phase Reference QPI"))
        self.menu_4.setTitle(_translate("MainWindow", "drift_correction"))
        self.menu_5.setTitle(_translate("MainWindow", 'cut_picture'))
        self.menu_6.setTitle(_translate("MainWindow", 'linecut'))
        self.actionchoose_color.setText(
            _translate("MainWindow", "choose color"))
        self.actionopen3ds.setText(_translate("MainWindow", "open3ds"))
        self.actionopenpythonbin.setText(
            _translate("MainWindow", "openpythonbin"))
        self.actionopenjavabin.setText(_translate("MainWindow", "openjavabin"))
        self.actionochooseimpurities.setText(
            _translate("MainWindow", "choose_impurities"))
        self.actionoaddmask.setText(_translate("MainWindow", "addmask"))
        self.actionochooseBraggPeak.setText(
            _translate("MainWindow", "chooseBraggPeak"))
        self.actionoDoingDrfitCorrection.setText(
            _translate("MainWindow", "DriftCorrection"))
        self.actioncutfigure.setText(_translate("MainWindow", "cutfigure"))
        self.actionlincut.setText(_translate("MainWindow",
                                             'choose two point '))