From 0936506e3767b86365d9bbf9b2e038afaf8da6f8 Mon Sep 17 00:00:00 2001
From: tangchao0503 <735056338@qq.com>
Date: Fri, 28 Jul 2023 11:20:31 +0800
Subject: [PATCH] =?UTF-8?q?v2.2.1add=EF=BC=9A=E8=83=BD=E5=A4=9F=E9=80=9A?=
=?UTF-8?q?=E8=BF=87=E5=85=89=E8=B0=B1bin1=E7=A9=BA=E9=97=B4bin1=E7=9A=84?=
=?UTF-8?q?=E5=AE=9A=E6=A0=87=E6=96=87=E4=BB=B6=E7=94=9F=E6=88=90=E5=85=89?=
=?UTF-8?q?=E8=B0=B1bin2=E7=A9=BA=E9=97=B4bin1=E7=9A=84=E5=AE=9A=E6=A0=87?=
=?UTF-8?q?=E6=96=87=E4=BB=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.gitignore | 1 +
1.1radiance_calibration_300tc.py | 139 ++++++++
change_bin_for_calfile.py | 55 ---
radiance_calibration_ui.py | 123 ++++++-
radiance_calibration_ui.ui | 557 ++++++++++++++++++++-----------
5 files changed, 619 insertions(+), 256 deletions(-)
delete mode 100644 change_bin_for_calfile.py
diff --git a/.gitignore b/.gitignore
index a648c2f..355127a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,6 +2,7 @@
/.idea
*.xlsx
*.cal
+testdata
# Byte-compiled / optimized / DLL files
__pycache__/
diff --git a/1.1radiance_calibration_300tc.py b/1.1radiance_calibration_300tc.py
index cb36572..55a44a5 100644
--- a/1.1radiance_calibration_300tc.py
+++ b/1.1radiance_calibration_300tc.py
@@ -14,6 +14,7 @@ from osgeo import gdal
from scipy.interpolate import interp1d
import spectral
import time
+import copy
from PyQt5.QtWidgets import QMainWindow, QFileDialog, QApplication
from PyQt5.QtCore import Qt
@@ -25,6 +26,7 @@ class EnterWindow(QMainWindow, Ui_MainWindow):
self.setupUi(self)
self.radiance_calibration_object = RadianceCalibration()
+ self.changeBinForCorning_object = ChangeBinForCorning()
# self.setWindowState(Qt.WindowMaximized) # 初始化时就最大化窗口
@@ -32,6 +34,9 @@ class EnterWindow(QMainWindow, Ui_MainWindow):
self.dn_bt.clicked.connect(self.select_dn)
self.dark_bt.clicked.connect(self.select_dark)
self.out_file_bt.clicked.connect(self.select_out_file)
+ self.calfile_bin1_bt.clicked.connect(self.select_calfile_changebin)
+ self.out_calfile_bt.clicked.connect(self.select_out_file_changebin)
+
self.operate_bt.clicked.connect(self.operate)
self.dark_checkBox.stateChanged.connect(self.disabledDark)
@@ -41,6 +46,14 @@ class EnterWindow(QMainWindow, Ui_MainWindow):
self.tmp_dark_file_path = None # 用于保存当前路径,下次打开就默认在此路径下
self.tmp_out_file_path = None # 用于保存当前路径,下次打开就默认在此路径下
+ self.spatialbin_comboBox.addItem("1")
+ # self.spatialbin_comboBox.addItem("2")
+ # self.spectral_comboBox.addItem("1")
+ self.spectral_comboBox.addItem("2")
+
+ self.change_bin_operate_bt.clicked.connect(self.operate_changebin)
+
+
def select_rad(self):
if self.tmp_rad_file_path == None:
rad_file_path = QFileDialog.getOpenFileName(self, '选择asd辐亮度文件', os.path.dirname(__file__))[0]
@@ -93,12 +106,29 @@ class EnterWindow(QMainWindow, Ui_MainWindow):
self.radiance_calibration_object.out_file_path = out_file_path
self.out_file_le.setText(out_file_path)
+ def select_calfile_changebin(self):
+ tmp = QFileDialog.getExistingDirectory(self, 'bin1定标文件夹', os.path.dirname(__file__))
+
+ self.changeBinForCorning_object.calfile_path = tmp
+ self.calfile_bin1_le.setText(tmp)
+
+ def select_out_file_changebin(self):
+ tmp = QFileDialog.getExistingDirectory(self, '选择输出路径', os.path.dirname(__file__))
+ self.changeBinForCorning_object.out_file_path = tmp
+ self.out_calfile_changebin_le.setText(tmp)
+
def operate(self):
if(self.dark_checkBox.isChecked()):
self.radiance_calibration_object.operate()
else:
self.radiance_calibration_object.operate_without_dark()
+ def operate_changebin(self):
+ self.changeBinForCorning_object.spatialbin = int(self.spatialbin_comboBox.currentText())
+ self.changeBinForCorning_object.spectralbin = int(self.spectral_comboBox.currentText())
+
+ self.changeBinForCorning_object.changebin()
+
def disabledDark(self, isEnable):
self.dark_le.setEnabled(isEnable)
self.dark_bt.setEnabled(isEnable)
@@ -284,6 +314,115 @@ class RadianceCalibration():
traceback.print_exc()
+class ChangeBinForCorning():
+ def __init__(self):
+ self.calfile_path = None
+ self.out_file_path = None
+ self.spatialbin = None
+ self.spectralbin = None
+
+ def get_hdr_filename(self, file_path):
+ return os.path.splitext(file_path)[0] + ".hdr"
+
+ def get_hdr_filename_with_bip(self, file_path):
+ return os.path.splitext(file_path)[0] + ".bip.hdr"
+
+ def write_img(self, dst_filename, data):
+ format = "ENVI"
+ driver = gdal.GetDriverByName(format)
+ RasterXSize = data.shape[2] # 遥感影像的sample(列数)
+ RasterYSize = data.shape[1] # 遥感影像的line(行数)
+ band = data.shape[0]
+ # driver.Create()函数中RasterXSize代表影像的sample(列数),RasterYSize代表影像的line(行数)
+ dst_ds = driver.Create(dst_filename, RasterXSize, RasterYSize, band, gdal.GDT_Float64,
+ options=["INTERLEAVE=BIP"])
+ for i in range(band):
+ dst_ds.GetRasterBand(i + 1).WriteArray(data[i, :, :]) # gdal的band从1开始,所以dst_ds.GetRasterBand(i+1)
+ dst_ds = None
+
+ def write_fields_to_hdrfile(self, fields, hdr_file):
+ header_tmp = spectral.envi.read_envi_header(hdr_file)
+
+ fields['generated time'] = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
+ with open(hdr_file, "a", encoding='utf-8') as f:
+ for key in fields.keys():
+ if key in header_tmp or key == "description":
+ continue
+
+ if type(fields[key]) == list:
+ f.write(key + " = {" + ", ".join(fields[key]) + "}\n")
+ else:
+ f.write(key + " = " + fields[key] + "\n")
+
+ def process_hdr(self, hdr_file_path, envi_header_dict):
+ self.write_fields_to_hdrfile(envi_header_dict, self.get_hdr_filename(hdr_file_path))
+ shutil.copyfile(self.get_hdr_filename(hdr_file_path), self.get_hdr_filename_with_bip(hdr_file_path))
+ os.remove(self.get_hdr_filename(hdr_file_path))
+
+ def changebin(self):
+ gain_name_in = os.path.join(self.calfile_path, "gain.bip")
+ offset_name_in = os.path.join(self.calfile_path, "offset.bip")
+ img_proj, img_geotrans, img_data = ImageReaderWriter.read_img(gain_name_in)
+ img_proj1, img_geotrans1, img_dark = ImageReaderWriter.read_img(offset_name_in)
+
+ in_hdr_dict = spectral.envi.read_envi_header(self.get_hdr_filename_with_bip(gain_name_in))
+
+ if in_hdr_dict["spectral binning"] != "1" and in_hdr_dict["sample binning"] != "1":
+ print("输入定标文件不是bin1。")
+ return
+
+ if self.spatialbin == 1 and self.spectralbin == 1:
+ print("Bin1 is not need to convert.")
+ return
+
+ if self.spatialbin == 1 and self.spectralbin == 2:
+ samples = int(in_hdr_dict["samples"])
+
+ if int(in_hdr_dict["bands"]) % 2 == 0:
+ bands = int(int(in_hdr_dict["bands"]) / 2)
+ else:
+ print("Bands is not divisible by 2.")
+ return
+
+ out_hdr_dict = copy.deepcopy(in_hdr_dict)
+ out_hdr_dict["bands"] = str(bands)
+ out_hdr_dict["spectral binning"] = str(2)
+ wave = []
+
+ gain = np.empty((bands, 1, samples))
+ dark = np.empty((bands, 1, samples))
+ for i in range(gain.shape[0]):
+ gain[i, :, :] = (img_data[2 * i, :, :] + img_data[2 * i + 1, :, :]) / 2
+ dark[i, :, :] = (img_dark[2 * i, :, :] + img_dark[2 * i + 1, :, :]) / 2
+
+ tmp = (float(out_hdr_dict["wavelength"][2 * i]) + float(out_hdr_dict["wavelength"][2 * i + 1])) / 2
+ wave.append(str(round(tmp, 3)))
+ out_hdr_dict["wavelength"] = wave
+
+ gain_name = os.path.join(self.out_file_path, "gain.bip")
+ offset_name = os.path.join(self.out_file_path, "offset.bip")
+ self.write_img(gain_name, gain)
+ self.process_hdr(gain_name, out_hdr_dict)
+ self.write_img(offset_name, dark)
+ self.process_hdr(offset_name, out_hdr_dict)
+
+ if self.spatialbin == 2 and self.spectralbin == 2:
+ samples = int(in_hdr_dict["samples"])
+
+ if int(in_hdr_dict["bands"]) % 2 == 0:
+ bands = int(int(in_hdr_dict["bands"]) / 2)
+ else:
+ print("Bands is not divisible by 2.")
+ return
+ # # 空间bin
+ # gain = np.empty((300, 1, 688))
+ # for i in range(gain.shape[2]):
+ # if i <= 683:
+ # gain[:, :, i] = img_data[:, :, i*2] # 丢弃
+ # else:
+ # gain[:, :, i] = img_data[:, :, 683] # 重复
+
+
if __name__ == '__main__':
app = QApplication(sys.argv)
diff --git a/change_bin_for_calfile.py b/change_bin_for_calfile.py
deleted file mode 100644
index a2dcfd3..0000000
--- a/change_bin_for_calfile.py
+++ /dev/null
@@ -1,55 +0,0 @@
-#!/usr/bin/env python
-# coding: utf-8
-
-import os
-import glob
-import sys, traceback, re
-from osgeo import gdal
-import numpy as np
-import matplotlib.pyplot as plt
-from library.image_reader_writer import ImageReaderWriter
-import spectral
-
-
-def write_img(dst_filename, data):
- format = "ENVI"
- driver = gdal.GetDriverByName(format)
- RasterXSize = data.shape[2] # 遥感影像的sample(列数)
- RasterYSize = data.shape[1] # 遥感影像的line(行数)
- band = data.shape[0]
- # driver.Create()函数中RasterXSize代表影像的sample(列数),RasterYSize代表影像的line(行数)
- dst_ds = driver.Create(dst_filename, RasterXSize, RasterYSize, band, gdal.GDT_Float64,
- options=["INTERLEAVE=BIP"])
- for i in range(band):
- dst_ds.GetRasterBand(i + 1).WriteArray(data[i, :, :]) # gdal的band从1开始,所以dst_ds.GetRasterBand(i+1)
- dst_ds = None
-
-
-gainfilepath = r'D:\delete\254_11\offset.bip'
-gainfilepathhdr = r'D:\delete\254_11\offset.bip.hdr'
-gainfilepath_out = r'D:\delete\254_11\convert\offset.bip'
-img_proj, img_geotrans, img_data = ImageReaderWriter.read_img(gainfilepath)
-
-# # 空间bin
-# gain = np.empty((300, 1, 688))
-# for i in range(gain.shape[2]):
-# if i <= 683:
-# gain[:, :, i] = img_data[:, :, i*2] # 丢弃
-# else:
-# gain[:, :, i] = img_data[:, :, 683] # 重复
-
-# 光谱bin
-gain = np.empty((150, 1, 1368))
-for i in range(gain.shape[0]):
- gain[i, :, :] = (img_data[2 * i, :, :] + img_data[2 * i + 1, :, :]) / 2
-
-header_tmp = spectral.envi.read_envi_header(gainfilepathhdr)
-
-wavetmp = []
-for i in range(150): # len(header_tmp["wavelength"])
- x = (float(header_tmp["wavelength"][2 * i]) + float(header_tmp["wavelength"][2 * i + 1])) / 2
- wavetmp.append(x)
-
- print("%.4f, " % x, end='')
-
-write_img(gainfilepath_out, gain)
diff --git a/radiance_calibration_ui.py b/radiance_calibration_ui.py
index 2e9eb30..b7f0d42 100644
--- a/radiance_calibration_ui.py
+++ b/radiance_calibration_ui.py
@@ -14,12 +14,18 @@ from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
- MainWindow.resize(964, 621)
+ MainWindow.resize(1153, 696)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.gridLayout_2 = QtWidgets.QGridLayout(self.centralwidget)
self.gridLayout_2.setObjectName("gridLayout_2")
- self.frame = QtWidgets.QFrame(self.centralwidget)
+ self.tabWidget = QtWidgets.QTabWidget(self.centralwidget)
+ self.tabWidget.setObjectName("tabWidget")
+ self.tab = QtWidgets.QWidget()
+ self.tab.setObjectName("tab")
+ self.gridLayout_3 = QtWidgets.QGridLayout(self.tab)
+ self.gridLayout_3.setObjectName("gridLayout_3")
+ self.frame = QtWidgets.QFrame(self.tab)
self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.frame.setFrameShadow(QtWidgets.QFrame.Raised)
self.frame.setObjectName("frame")
@@ -74,6 +80,11 @@ class Ui_MainWindow(object):
self.dn_bt.setObjectName("dn_bt")
self.gridLayout.addWidget(self.dn_bt, 1, 2, 1, 1)
self.dark_checkBox = QtWidgets.QCheckBox(self.frame)
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.dark_checkBox.sizePolicy().hasHeightForWidth())
+ self.dark_checkBox.setSizePolicy(sizePolicy)
self.dark_checkBox.setChecked(True)
self.dark_checkBox.setObjectName("dark_checkBox")
self.gridLayout.addWidget(self.dark_checkBox, 2, 0, 1, 1)
@@ -122,14 +133,100 @@ class Ui_MainWindow(object):
self.out_file_bt.setSizePolicy(sizePolicy)
self.out_file_bt.setObjectName("out_file_bt")
self.gridLayout.addWidget(self.out_file_bt, 3, 2, 1, 1)
- self.gridLayout_2.addWidget(self.frame, 0, 0, 1, 1)
- self.operate_bt = QtWidgets.QPushButton(self.centralwidget)
+ self.gridLayout_3.addWidget(self.frame, 0, 0, 1, 1)
+ self.operate_bt = QtWidgets.QPushButton(self.tab)
self.operate_bt.setMaximumSize(QtCore.QSize(16777215, 60))
self.operate_bt.setObjectName("operate_bt")
- self.gridLayout_2.addWidget(self.operate_bt, 1, 0, 1, 1)
+ self.gridLayout_3.addWidget(self.operate_bt, 1, 0, 1, 1)
+ self.tabWidget.addTab(self.tab, "")
+ self.tab_2 = QtWidgets.QWidget()
+ self.tab_2.setObjectName("tab_2")
+ self.gridLayout_4 = QtWidgets.QGridLayout(self.tab_2)
+ self.gridLayout_4.setObjectName("gridLayout_4")
+ self.label_2 = QtWidgets.QLabel(self.tab_2)
+ self.label_2.setAlignment(QtCore.Qt.AlignCenter)
+ self.label_2.setObjectName("label_2")
+ self.gridLayout_4.addWidget(self.label_2, 0, 0, 1, 1)
+ self.calfile_bin1_le = QtWidgets.QLineEdit(self.tab_2)
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.calfile_bin1_le.sizePolicy().hasHeightForWidth())
+ self.calfile_bin1_le.setSizePolicy(sizePolicy)
+ font = QtGui.QFont()
+ font.setPointSize(18)
+ self.calfile_bin1_le.setFont(font)
+ self.calfile_bin1_le.setReadOnly(True)
+ self.calfile_bin1_le.setObjectName("calfile_bin1_le")
+ self.gridLayout_4.addWidget(self.calfile_bin1_le, 0, 1, 1, 1)
+ self.calfile_bin1_bt = QtWidgets.QPushButton(self.tab_2)
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.calfile_bin1_bt.sizePolicy().hasHeightForWidth())
+ self.calfile_bin1_bt.setSizePolicy(sizePolicy)
+ self.calfile_bin1_bt.setObjectName("calfile_bin1_bt")
+ self.gridLayout_4.addWidget(self.calfile_bin1_bt, 0, 2, 1, 1)
+ self.label_5 = QtWidgets.QLabel(self.tab_2)
+ self.label_5.setAlignment(QtCore.Qt.AlignCenter)
+ self.label_5.setObjectName("label_5")
+ self.gridLayout_4.addWidget(self.label_5, 1, 0, 1, 1)
+ self.spatialbin_comboBox = QtWidgets.QComboBox(self.tab_2)
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.spatialbin_comboBox.sizePolicy().hasHeightForWidth())
+ self.spatialbin_comboBox.setSizePolicy(sizePolicy)
+ self.spatialbin_comboBox.setStyleSheet("")
+ self.spatialbin_comboBox.setEditable(False)
+ self.spatialbin_comboBox.setCurrentText("")
+ self.spatialbin_comboBox.setObjectName("spatialbin_comboBox")
+ self.gridLayout_4.addWidget(self.spatialbin_comboBox, 1, 1, 1, 1)
+ self.label_6 = QtWidgets.QLabel(self.tab_2)
+ self.label_6.setAlignment(QtCore.Qt.AlignCenter)
+ self.label_6.setObjectName("label_6")
+ self.gridLayout_4.addWidget(self.label_6, 2, 0, 1, 1)
+ self.spectral_comboBox = QtWidgets.QComboBox(self.tab_2)
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.spectral_comboBox.sizePolicy().hasHeightForWidth())
+ self.spectral_comboBox.setSizePolicy(sizePolicy)
+ self.spectral_comboBox.setObjectName("spectral_comboBox")
+ self.gridLayout_4.addWidget(self.spectral_comboBox, 2, 1, 1, 1)
+ self.label_7 = QtWidgets.QLabel(self.tab_2)
+ self.label_7.setAlignment(QtCore.Qt.AlignCenter)
+ self.label_7.setObjectName("label_7")
+ self.gridLayout_4.addWidget(self.label_7, 3, 0, 1, 1)
+ self.out_calfile_changebin_le = QtWidgets.QLineEdit(self.tab_2)
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.out_calfile_changebin_le.sizePolicy().hasHeightForWidth())
+ self.out_calfile_changebin_le.setSizePolicy(sizePolicy)
+ font = QtGui.QFont()
+ font.setPointSize(18)
+ self.out_calfile_changebin_le.setFont(font)
+ self.out_calfile_changebin_le.setReadOnly(True)
+ self.out_calfile_changebin_le.setObjectName("out_calfile_changebin_le")
+ self.gridLayout_4.addWidget(self.out_calfile_changebin_le, 3, 1, 1, 1)
+ self.out_calfile_bt = QtWidgets.QPushButton(self.tab_2)
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.out_calfile_bt.sizePolicy().hasHeightForWidth())
+ self.out_calfile_bt.setSizePolicy(sizePolicy)
+ self.out_calfile_bt.setObjectName("out_calfile_bt")
+ self.gridLayout_4.addWidget(self.out_calfile_bt, 3, 2, 1, 1)
+ self.change_bin_operate_bt = QtWidgets.QPushButton(self.tab_2)
+ self.change_bin_operate_bt.setMaximumSize(QtCore.QSize(16777215, 60))
+ self.change_bin_operate_bt.setObjectName("change_bin_operate_bt")
+ self.gridLayout_4.addWidget(self.change_bin_operate_bt, 4, 0, 1, 3)
+ self.tabWidget.addTab(self.tab_2, "")
+ self.gridLayout_2.addWidget(self.tabWidget, 0, 0, 1, 1)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
- self.menubar.setGeometry(QtCore.QRect(0, 0, 964, 26))
+ self.menubar.setGeometry(QtCore.QRect(0, 0, 1153, 23))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
@@ -137,12 +234,13 @@ class Ui_MainWindow(object):
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
+ self.tabWidget.setCurrentIndex(0)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
- MainWindow.setWindowTitle(_translate("MainWindow", "Corning Calibration v2.1"))
- self.label.setText(_translate("MainWindow", "ASD辐亮度"))
+ MainWindow.setWindowTitle(_translate("MainWindow", "Corning Calibration v2.2.1"))
+ self.label.setText(_translate("MainWindow", "能量"))
self.rad_bt.setText(_translate("MainWindow", "浏览..."))
self.label_3.setText(_translate("MainWindow", "DN"))
self.dn_bt.setText(_translate("MainWindow", "浏览..."))
@@ -151,6 +249,15 @@ class Ui_MainWindow(object):
self.label_4.setText(_translate("MainWindow", "输出路径"))
self.out_file_bt.setText(_translate("MainWindow", "浏览..."))
self.operate_bt.setText(_translate("MainWindow", "执行"))
+ self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("MainWindow", "rad cal"))
+ self.label_2.setText(_translate("MainWindow", "bin1 cal file"))
+ self.calfile_bin1_bt.setText(_translate("MainWindow", "浏览..."))
+ self.label_5.setText(_translate("MainWindow", "spatial bin"))
+ self.label_6.setText(_translate("MainWindow", "spectral bin"))
+ self.label_7.setText(_translate("MainWindow", "out"))
+ self.out_calfile_bt.setText(_translate("MainWindow", "浏览..."))
+ self.change_bin_operate_bt.setText(_translate("MainWindow", "执行"))
+ self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("MainWindow", "change bin"))
if __name__ == "__main__":
diff --git a/radiance_calibration_ui.ui b/radiance_calibration_ui.ui
index 94340ea..089775b 100644
--- a/radiance_calibration_ui.ui
+++ b/radiance_calibration_ui.ui
@@ -6,205 +6,376 @@
0
0
- 964
- 621
+ 1153
+ 696
- Corning Calibration v2.1
+ Corning Calibration v2.2.1
-
-
-
- QFrame::StyledPanel
-
-
- QFrame::Raised
-
-
-
-
-
-
- ASD辐亮度
-
-
- Qt::AlignCenter
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
- 18
-
-
-
- true
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
- 浏览...
-
-
-
- -
-
-
- DN
-
-
- Qt::AlignCenter
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
- 18
-
-
-
- true
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
- 浏览...
-
-
-
- -
-
-
- dark_300tc
-
-
- true
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
- 18
-
-
-
- true
-
-
-
- -
-
-
- true
-
-
-
- 0
- 0
-
-
-
- 浏览...
-
-
-
- -
-
-
- 输出路径
-
-
- Qt::AlignCenter
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
- 18
-
-
-
- true
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
- 浏览...
-
-
-
-
-
-
- -
-
-
-
- 16777215
- 60
-
-
-
- 执行
+
+
+ 0
+
+
+ rad cal
+
+
+
-
+
+
+ QFrame::StyledPanel
+
+
+ QFrame::Raised
+
+
+
-
+
+
+ 能量
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 18
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ 浏览...
+
+
+
+ -
+
+
+ DN
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 18
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ 浏览...
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ dark_300tc
+
+
+ true
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 18
+
+
+
+ true
+
+
+
+ -
+
+
+ true
+
+
+
+ 0
+ 0
+
+
+
+ 浏览...
+
+
+
+ -
+
+
+ 输出路径
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 18
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ 浏览...
+
+
+
+
+
+
+ -
+
+
+
+ 16777215
+ 60
+
+
+
+ 执行
+
+
+
+
+
+
+
+ change bin
+
+
+ -
+
+
+ bin1 cal file
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 18
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ 浏览...
+
+
+
+ -
+
+
+ spatial bin
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+
+
+ false
+
+
+
+
+
+
+ -
+
+
+ spectral bin
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ -
+
+
+ out
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 18
+
+
+
+ true
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ 浏览...
+
+
+
+ -
+
+
+
+ 16777215
+ 60
+
+
+
+ 执行
+
+
+
+
+
@@ -214,8 +385,8 @@
0
0
- 964
- 26
+ 1153
+ 23