|
|
34ed062c77
|
1.2.1
|
2026-07-01 17:35:57 +08:00 |
|
|
|
385e5915af
|
格式统一
|
2026-07-01 17:33:52 +08:00 |
|
|
|
1824d62d10
|
格式统一
|
2026-07-01 15:12:25 +08:00 |
|
|
|
1611001a72
|
格式统一
|
2026-07-01 13:19:46 +08:00 |
|
|
|
8de73db80e
|
格式统一
|
2026-07-01 11:32:32 +08:00 |
|
|
|
a3c20d3e49
|
格式统一
|
2026-07-01 09:57:27 +08:00 |
|
|
|
c793ea2204
|
格式统一
|
2026-06-30 14:12:12 +08:00 |
|
|
|
9e433395f4
|
feat: 波长偏移修正 + 项目架构文档
- BandMathCalculator 支持 wavelength_offset 参数,公式波长统一加减偏移后匹配传感器波段
- WaterQualityIndexCalculator 全链传递偏移量 (band_math → calculate_one → calculate_many)
- WaterIndexCsvProcessor / Step7Handler / DataPreparationStep 传播偏移参数
- Step7/Step10 面板新增 QDoubleSpinBox 波长偏移控件 (±200nm, 默认0)
- 偏移控件去除单位后缀,避免编辑时需手动移动光标
- 新增 ARCHITECTURE.md 完整项目架构文档
|
2026-06-30 13:13:38 +08:00 |
|
|
|
8ff5b08190
|
imput导入修正,去除掉废弃内容
|
2026-06-30 11:32:40 +08:00 |
|
|
|
f05916bc3a
|
步骤四的采样点和对应的光谱图像展示修正
|
2026-06-30 10:45:20 +08:00 |
|
|
|
73cb019a4a
|
refactor: 重构所有面板 update_from_config 为文件系统扫描模式
=== 核心变更 ===
- _step_path_resolver 新增 scan_work_dir_for_input() 统一文件扫描工具
- 基于 _SCAN_TABLE 映射表,按 output_type 自动扫描 work_dir 子目录
- 支持扩展名匹配(.dat/.tif/.bsq/.csv 等)和文件名关键词匹配
- 按 mtime 排序,返回最新匹配文件
=== 各面板重构 ===
- step2/3/4/6: 废弃 main_window.stepX_panel 跨面板读取
统一改为 scan_work_dir_for_input(work_dir, 'water_mask/glint_mask/deglint_image')
- step6: 移除对 step1/2/3/5 panel 的4处跨面板依赖
- step8: 替换 _resolve_training_csv_from_workdir 为 scan_work_dir_for_input
优先级:training_spectra_indices -> training_spectra
- step9: 替换 _resolve_latest_wqi_test_csv 为 scan_work_dir_for_input
废弃 factory.get_panel('step4_sampling') 和 get_panel('step8_ml_train')
- step10: 替换3层回退链为 scan_work_dir_for_input('sampling_points')
- step11: 替换 factory.get_panel('step9')/('step1') 为文件扫描
=== 删除的冗余方法 ===
- step8._resolve_training_csv_from_workdir (~55行)
- step9._resolve_latest_wqi_test_csv (~56行)
=== 数据流原则 ===
1. pipeline context 为第一顺位(执行时内存状态)
2. 文件系统扫描为回退(仅信任硬盘上真实存在的文件)
3. 彻底禁止面板间 UI 控件互相读取
|
2026-06-30 09:53:23 +08:00 |
|
|
|
1bdd623fe7
|
style: Step4 图表中文排版升级,对齐Step12风格
- 添加 matplotlib rcParams 中文字体配置(Microsoft YaHei / SimHei)
- 散点图标题→'采样点空间分布',坐标轴→'经度/X'、'纬度/Y'
- 光谱图标题→'采样点 ID: X 光谱曲线',坐标轴→'波长/特征'、'反射率'
- 悬停提示框中文化:ID + 经度 + 纬度
- 标题字号统一为 fontsize=14 fontweight='bold' pad=12
- 轴标签字号统一为 fontsize=11
|
2026-06-30 09:45:50 +08:00 |
|
|
|
48d17ef0ca
|
fix: 全局UX修复与Step4交互可视化重构
=== 自动填入过于激进(幽灵路径级联)===
- 所有面板 update_from_config 移除 os.makedirs(),目录创建留给 pipeline 执行
- 输出路径仅 widget 为空时填入默认值,不覆盖用户已选
- 输入路径从上游读取后添加 os.path.exists() 检查,阻断幽灵路径级联
- panel_factory._replay_live_panel_inputs 广播前校验文件确实存在
- step10 update_from_config 添加 os.path.isfile() 存在性检查
- 清理 step8/9/11 中冗余局部 import os(修复 UnboundLocalError)
=== 输出目录缺失 ===
- step7 新增 output_file FileSelectWidget,默认路径 7_Water_Quality_Indices/
- step9 output_file 从文件模式改为目录模式 (Directories)
=== 空目录自动创建 ===
- step12 _setup_prediction_output_dirs 移除 mkdir() 调用,改为只读日志
=== 过期依赖与缺失 import ===
- panel_registry Step10 依赖 bsq_file→sampling_csv_file(匹配 CSV 模式重构)
- step7 添加缺失的 import pandas as pd(修复 NameError)
=== 导航与 UI 一致性 ===
- water_quality_gui_v2 新增 _select_first_nav_item(),启动时默认选中第一项
- step1 输出卡片对齐 step8 风格
- step8 补充缺失的样式表和统一边距
=== Step4 交互式光谱探针重构 ===
- 左右分栏 QSplitter 布局:左侧控制区 + 右侧 Matplotlib 视图
- 1x2 子图:ax1 散点图 + ax2 光谱曲线
- Hover 悬停 Annotation 显示坐标,Click 点击高亮+绘制光谱
- NavigationToolbar2QT 工具栏(保存/缩放/平移)
- 自动检测坐标列和波段列,完善异常处理
|
2026-06-30 09:38:27 +08:00 |
|
|
|
e337f01312
|
全局修正
|
2026-06-29 16:16:55 +08:00 |
|
|
|
2788fb3fe1
|
全局弹窗修正
|
2026-06-29 15:21:30 +08:00 |
|
|
|
61e06dd789
|
步骤十三页面修改
|
2026-06-29 15:15:09 +08:00 |
|
|
|
e121b02e34
|
Step8/9 UX: feature_start 改 QComboBox + 多源 CSV 优先回退
|
2026-06-29 14:40:39 +08:00 |
|
|
|
b82efc1e52
|
步骤十二页面修改
|
2026-06-29 14:31:31 +08:00 |
|
|
|
c6c0b8fdf5
|
步骤十一页面修改
|
2026-06-29 11:11:32 +08:00 |
|
|
|
ef24398df9
|
步骤十页面修改
|
2026-06-29 10:16:12 +08:00 |
|
|
|
14ea72a4e7
|
步骤九页面修改
|
2026-06-26 17:13:14 +08:00 |
|
|
|
23f391eedf
|
步骤八页面修改
|
2026-06-26 16:59:24 +08:00 |
|
|
|
9ab916a61c
|
步骤七页面修改
|
2026-06-26 16:43:28 +08:00 |
|
|
|
abbe218608
|
步骤六页面修改
|
2026-06-26 13:56:57 +08:00 |
|
|
|
5fb2db4a07
|
步骤五页面修改
|
2026-06-26 13:54:09 +08:00 |
|
|
|
7293ddd5ee
|
步骤四页面修改
|
2026-06-26 13:51:10 +08:00 |
|
|
|
6e4f0f5527
|
步骤二页面修改
|
2026-06-26 13:24:56 +08:00 |
|
|
|
e54c2b8fe6
|
步骤一页面修改
|
2026-06-26 13:07:22 +08:00 |
|
|
|
f63e6bce05
|
整体框架修改
|
2026-06-26 09:47:52 +08:00 |
|
|
|
ea5d80041d
|
整体框架修改
|
2026-06-26 09:45:11 +08:00 |
|
|
|
bcd1ce371e
|
页面4样式修改
|
2026-06-26 09:45:00 +08:00 |
|
|
|
429ed3c1c1
|
测试修改
|
2026-06-25 18:11:50 +08:00 |
|
|
|
d327c6c267
|
fix(report_word): Minimax v2 接口兼容 + 缓存防毒化自愈
|
2026-06-25 16:45:50 +08:00 |
|
|
|
43f50ec07b
|
测试修改
|
2026-06-25 15:50:02 +08:00 |
|
|
|
67aaaaa6b2
|
refactor(step10): 拆分 WaterIndexCsvProcessor 到独立子模块 + smoke test
|
2026-06-24 12:52:56 +08:00 |
|
|
|
6a1014afcc
|
refactor(step10_new_arch): 同步新架构 view + service 到散点 CSV 模式
|
2026-06-24 12:44:01 +08:00 |
|
|
|
08a9a0337d
|
refactor(step10_panel): 切换到散点 CSV 模式 UI + Worker
|
2026-06-24 11:43:44 +08:00 |
|
|
|
b0ace0bde8
|
feat(step10): 新增 WaterIndexCsvProcessor 散点处理入口
|
2026-06-24 11:39:52 +08:00 |
|
|
|
c5a82ec342
|
refactor(gui/sidebar): 重组导航为四模块 + 扁平无框蓝色高亮主题 + 中括号移除
数据层(panel_registry.py):13 个 step 从「阶段一/二/三/四」重组为四个模块
模块一 影像预处理(step 1-3)
模块二 特征工程与数据(step 4-7)
模块三 模型训练与反演(step 8-10)
模块四 制图与成果汇编(step 11-13)
step_id 顺序、tab_index、面板绑定、Tab 路由全部保持零变化
文本层(water_quality_gui.py / v2):移除 └─ 字符前缀
样式层(styles.py:get_sidebar_stylesheet):扁平无框 + 蓝色高亮主题
- 容器 QListWidget 无框化(border: none / outline: none / 透明背景)
- 步骤项 padding 8px 6px + margin 2px 8px + border-radius 4px
- hover 极浅蓝灰 #F0F4F8;selected 饱和蓝 #0078D4 + 白字 #FFFFFF
- 分类头(stage_header):!enabled 选择器锁定 → 蓝色 #0078D4 + 加粗 + 上下间距
Python 代码侧:stage_item.setForeground 硬编码 #0078D4、stage_font.setBold(True)
作为 QSS 失效兜底 + 代码意图自解释
末尾迭代:四个模块名移除 [ ] 中括号(极简风)
|
2026-06-23 16:50:30 +08:00 |
|
|
|
948d1d8acd
|
测试修改
|
2026-06-23 16:12:58 +08:00 |
|
|
|
e907e73810
|
测试修改
|
2026-06-23 15:26:55 +08:00 |
|
|
|
b8d263e494
|
测试修改
|
2026-06-23 14:39:54 +08:00 |
|
|
|
c4aa246c95
|
fix(viz_reports): plot_scatter_true_vs_pred 指标文本框移到图例下方
|
2026-06-23 08:41:40 +08:00 |
|
|
|
5a5109b1a6
|
fix(viz_reports): plot_scatter_true_vs_pred NaN 容错 + subplots_adjust 替换 tight_layout
|
2026-06-22 17:48:03 +08:00 |
|
|
|
e8820a73c1
|
fix(viz_reports): plot_spectrum_by_parameter legend 移出画布防止遮挡
|
2026-06-22 17:16:10 +08:00 |
|
|
|
76d697ce3f
|
fix(viz_thread): generate_all_selected 读 self.extra 注入路径(v1 GUI 实际副本)
|
2026-06-22 17:15:59 +08:00 |
|
|
|
56d8a292be
|
fix(wavelength_prefix): viz_thread.py 同步 _viz_infer_wavelength_start_column 修改
src/gui/core/viz_thread.py 的 _viz_infer_wavelength_start_column 是
step12_viz_panel.py 副本(无跨文件引用),两处独立维护必须同步。
同步前缀兼容与 DEBUG 日志逻辑。
Why: 同一函数双份副本不一致会导致 worker 子线程路径与 panel 主线程
路径在相同列名格式下表现差异。同步保证行为一致。
|
2026-06-22 16:37:57 +08:00 |
|
|
|
e9c4535bb0
|
fix(wavelength_prefix): _viz_infer_wavelength_start_column 加 nm/wavelength/wl/λ 前缀兼容
src/gui/panels/step12_viz_panel.py _viz_infer_wavelength_start_column:
原逻辑只匹配 200.0<=v<=3000.0 的纯数字列名。新增正则剥前缀 _PREFIX_RE =
^(?:nm|wavelength|wl|λ|wave_len)[_\s-]* (不区分大小写),剥后再试 float。
覆盖 nm_700、wavelength_800.0、WL 900、λ_650 等命名风格。
兜底返回 0 时打印 df.columns.tolist() 便于下次失败时一眼定位列名。
Why: 训练光谱 CSV 可能因不同 step 输出格式差异,前缀化列名常见。
viz_thread.py 同步修改(同函数独立副本)。
|
2026-06-22 16:37:29 +08:00 |
|
|
|
561c59fbd4
|
fix(scatter_legend): 基础版散点图 legend 移出画布防止遮挡
src/postprocessing/visualization_reports.py plot_scatter_true_vs_pred:
ax.legend 加 bbox_to_anchor=(1.02, 1) + borderaxespad=0,将图例移到画布右侧外部。
已有 plt.tight_layout() 与 plt.savefig(..., bbox_inches='tight') 自动处理裁剪。
Why: loc='upper left' 时图例位于散点区左上角,训练/测试点集中时易被遮挡。
仅改基础版(plot_scatter_true_vs_pred),增强版 sctter_batch.py 是 gridspec 4x4
子图布局,硬套 bbox_to_anchor 会破坏右侧 ax_hist_y 子图,保留原样。
|
2026-06-22 16:37:11 +08:00 |
|
|
|
26f93bd233
|
fix(step12_viz): scatter 模型目录改读 self.extra + 主线程 step8 预取注入
worker generate_all_selected.gen_scatter 块改读 self.extra['models_dir'],
fallback 到 wp / 8_Supervised_Model_Training(替换旧版 7_Supervised_Model_Training)。
主线程 generate_all_visualizations 通过 panel_factory.get_panel('step8_ml_train')
预取 step8 panel.output_path,注入 extra 字典 models_dir 键。
Why: 子线程内 self.window() 无意义(VisualizationWorkerThread 是 QThread 子类
且无 parent 传参),必须主线程预取 + worker 读 extra 字典。与同文件既有
scatter 任务(line 208-209)和 step11 风格统一。
|
2026-06-22 16:14:59 +08:00 |
|