refactor: 中间层消除硬编码波段号+CRS动态探测
- GlintRemovalStep/handler/service 全部改为传递波长参数而非波段索引 - ContentMapper 移除 EPSG:32651 硬编码, 新增 _ensure_crs() + _probe_crs_from_file() - _prepare_shared_context 在 read_csv_data 前先探测边界文件 CRS - GUI QSpinBox→QDoubleSpinBox,默认值改为波长(nm),placeholder 提示自动探测 - 消除 38/36/49/47/25/37/65/91 等所有魔法数字
This commit is contained in:
@ -64,14 +64,18 @@ class Step3View(BaseView):
|
||||
# Goodman 参数组
|
||||
self.goodman_group = QGroupBox("Goodman方法参数")
|
||||
goodman_layout = QFormLayout()
|
||||
self.nir_lower = QSpinBox()
|
||||
self.nir_lower.setRange(0, 200)
|
||||
self.nir_lower.setValue(65)
|
||||
goodman_layout.addRow("NIR下波段索引:", self.nir_lower)
|
||||
self.nir_upper = QSpinBox()
|
||||
self.nir_upper.setRange(0, 200)
|
||||
self.nir_upper.setValue(91)
|
||||
goodman_layout.addRow("NIR上波段索引:", self.nir_upper)
|
||||
self.nir_lower_wavelength = QDoubleSpinBox()
|
||||
self.nir_lower_wavelength.setDecimals(2)
|
||||
self.nir_lower_wavelength.setRange(300.0, 3000.0)
|
||||
self.nir_lower_wavelength.setValue(641.93)
|
||||
self.nir_lower_wavelength.setSuffix(" nm")
|
||||
goodman_layout.addRow("NIR下界波长:", self.nir_lower_wavelength)
|
||||
self.nir_upper_wavelength = QDoubleSpinBox()
|
||||
self.nir_upper_wavelength.setDecimals(2)
|
||||
self.nir_upper_wavelength.setRange(300.0, 3000.0)
|
||||
self.nir_upper_wavelength.setValue(751.49)
|
||||
self.nir_upper_wavelength.setSuffix(" nm")
|
||||
goodman_layout.addRow("NIR上界波长:", self.nir_upper_wavelength)
|
||||
self.goodman_a = QDoubleSpinBox()
|
||||
self.goodman_a.setDecimals(6)
|
||||
self.goodman_a.setRange(0, 1)
|
||||
@ -88,22 +92,30 @@ class Step3View(BaseView):
|
||||
# Kutser 参数组
|
||||
self.kutser_group = QGroupBox("Kutser方法参数")
|
||||
kutser_layout = QFormLayout()
|
||||
self.oxy_band = QSpinBox()
|
||||
self.oxy_band.setRange(0, 200)
|
||||
self.oxy_band.setValue(38)
|
||||
kutser_layout.addRow("氧吸收波段索引:", self.oxy_band)
|
||||
self.lower_oxy = QSpinBox()
|
||||
self.lower_oxy.setRange(0, 200)
|
||||
self.lower_oxy.setValue(36)
|
||||
kutser_layout.addRow("下氧吸收波段索引:", self.lower_oxy)
|
||||
self.upper_oxy = QSpinBox()
|
||||
self.upper_oxy.setRange(0, 200)
|
||||
self.upper_oxy.setValue(49)
|
||||
kutser_layout.addRow("上氧吸收波段索引:", self.upper_oxy)
|
||||
self.nir_band = QSpinBox()
|
||||
self.nir_band.setRange(0, 200)
|
||||
self.nir_band.setValue(47)
|
||||
kutser_layout.addRow("NIR波段索引:", self.nir_band)
|
||||
self.oxy_wavelength = QDoubleSpinBox()
|
||||
self.oxy_wavelength.setDecimals(2)
|
||||
self.oxy_wavelength.setRange(300.0, 3000.0)
|
||||
self.oxy_wavelength.setValue(760.60)
|
||||
self.oxy_wavelength.setSuffix(" nm")
|
||||
kutser_layout.addRow("氧吸收波长:", self.oxy_wavelength)
|
||||
self.lower_wavelength = QDoubleSpinBox()
|
||||
self.lower_wavelength.setDecimals(2)
|
||||
self.lower_wavelength.setRange(300.0, 3000.0)
|
||||
self.lower_wavelength.setValue(742.39)
|
||||
self.lower_wavelength.setSuffix(" nm")
|
||||
kutser_layout.addRow("左肩波长:", self.lower_wavelength)
|
||||
self.upper_wavelength = QDoubleSpinBox()
|
||||
self.upper_wavelength.setDecimals(2)
|
||||
self.upper_wavelength.setRange(300.0, 3000.0)
|
||||
self.upper_wavelength.setValue(860.48)
|
||||
self.upper_wavelength.setSuffix(" nm")
|
||||
kutser_layout.addRow("右肩波长:", self.upper_wavelength)
|
||||
self.nir_wavelength = QDoubleSpinBox()
|
||||
self.nir_wavelength.setDecimals(2)
|
||||
self.nir_wavelength.setRange(300.0, 3000.0)
|
||||
self.nir_wavelength.setValue(842.36)
|
||||
self.nir_wavelength.setSuffix(" nm")
|
||||
kutser_layout.addRow("NIR参考波长:", self.nir_wavelength)
|
||||
self.kutser_group.setLayout(kutser_layout)
|
||||
self.kutser_group.setVisible(False)
|
||||
layout.addWidget(self.kutser_group)
|
||||
@ -111,10 +123,12 @@ class Step3View(BaseView):
|
||||
# Hedley 参数组
|
||||
self.hedley_group = QGroupBox("Hedley方法参数")
|
||||
hedley_layout = QFormLayout()
|
||||
self.hedley_nir_band = QSpinBox()
|
||||
self.hedley_nir_band.setRange(0, 200)
|
||||
self.hedley_nir_band.setValue(47)
|
||||
hedley_layout.addRow("NIR波段索引:", self.hedley_nir_band)
|
||||
self.hedley_nir_wavelength = QDoubleSpinBox()
|
||||
self.hedley_nir_wavelength.setDecimals(2)
|
||||
self.hedley_nir_wavelength.setRange(300.0, 3000.0)
|
||||
self.hedley_nir_wavelength.setValue(842.36)
|
||||
self.hedley_nir_wavelength.setSuffix(" nm")
|
||||
hedley_layout.addRow("NIR参考波长:", self.hedley_nir_wavelength)
|
||||
self.hedley_group.setLayout(hedley_layout)
|
||||
self.hedley_group.setVisible(False)
|
||||
layout.addWidget(self.hedley_group)
|
||||
@ -210,17 +224,17 @@ class Step3View(BaseView):
|
||||
|
||||
method = self.method.currentData()
|
||||
if method == "goodman":
|
||||
config["nir_lower"] = self.nir_lower.value()
|
||||
config["nir_upper"] = self.nir_upper.value()
|
||||
config["nir_lower_wavelength"] = self.nir_lower_wavelength.value()
|
||||
config["nir_upper_wavelength"] = self.nir_upper_wavelength.value()
|
||||
config["goodman_A"] = self.goodman_a.value()
|
||||
config["goodman_B"] = self.goodman_b.value()
|
||||
elif method == "kutser":
|
||||
config["oxy_band"] = self.oxy_band.value()
|
||||
config["lower_oxy"] = self.lower_oxy.value()
|
||||
config["upper_oxy"] = self.upper_oxy.value()
|
||||
config["nir_band"] = self.nir_band.value()
|
||||
config["oxy_wavelength"] = self.oxy_wavelength.value()
|
||||
config["lower_wavelength"] = self.lower_wavelength.value()
|
||||
config["upper_wavelength"] = self.upper_wavelength.value()
|
||||
config["nir_wavelength"] = self.nir_wavelength.value()
|
||||
elif method == "hedley":
|
||||
config["hedley_nir_band"] = self.hedley_nir_band.value()
|
||||
config["hedley_nir_wavelength"] = self.hedley_nir_wavelength.value()
|
||||
elif method == "sugar":
|
||||
config["sugar_iter"] = self.sugar_iter.value()
|
||||
config["sugar_sigma"] = self.sugar_sigma.value()
|
||||
|
||||
Reference in New Issue
Block a user