|
|
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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
5b2f5a8160
|
fix(panel_registry): dependencies 控件名对账 (step2-11, 13处断链)
|
2026-06-18 15:39:12 +08:00 |
|
|
|
b2435d66c3
|
fix: 终极状态回滚 + 三个 panel 短路径导包修复
- water_quality_gui_v2.py:回滚机制由 panel_registry.get_tab_index 改为基于 PANEL_REGISTRY[current_tab_idx]['step_id'] 的索引反查,消除不存在的 get_tab_index 导致回滚期间二次崩溃并被静默吞噬的幽灵跳步根因
|
2026-06-18 14:55:14 +08:00 |
|
|
|
e5bb9c5cd9
|
fix: 懒加载导航容错 + 状态回滚机制 + Step 11 NameError 修复
导航容错(v2._on_step_list_changed)
- try-except 包裹懒加载 + setCurrentIndex,避免导航崩溃导致左右脱节
- 新增状态回滚机制:右侧切换失败时强制将左侧导航栏选中项退回当前显示 tab_index 对应的 step,消除"幽灵跳转/假死"(blockSignals 防 setCurrentRow 二次触发回调)
Step 11 NameError
- step11_map_panel 顶部补 import get_step_output_path,消除 update_from_config 中 NameError
|
2026-06-18 13:59:30 +08:00 |
|
|
|
f93dbeb848
|
fix: Step 7 路由 + 发送端字符串对齐(消除 KeyError)+ 配套防御性补强
核心修复
- panel_registry: step7_index class_ref 换绑 Step7View(最小侵入式对位,保持 step_id 保护全项目 18 处下游引用)
- step7_view._on_run_single_clicked: 'step7' → 'step7_index'(wrapped_config key + step_name 同步对齐,消除 PipelineScheduler 抛 KeyError "未注册的步骤: 'step7'")
配套防御性补强
- pipeline_executor.run_single_step_handler: 后台 is_running 时改 QMessageBox 警告 + LogMessage,防多次点击死锁
- worker_thread.run_single_step: 兼容嵌套/扁平 config 格式,嵌套子 dict 为空时回退扁平读取
- 公式 ListWidget layout 修复:setUniformItemSizes + stretch=1 + update(),消除 step7_view 加载后坍塌/不刷新
|
2026-06-18 13:59:20 +08:00 |
|
|
|
f61a3dfb1d
|
feat: 懒加载面板Catch-up状态回放 + 上一步/下一步向导导航按钮
|
2026-06-18 11:18:37 +08:00 |
|
|
|
3f217e95b0
|
fix: 修复下游面板自动填充断裂的三处根因 + 清理过时 pipeline→panel 映射
|
2026-06-18 10:28:14 +08:00 |
|
|
|
2261b4b30e
|
feat: Step1~Step14 面板单步按钮 EventBus 解耦 + Handler 补全(Step8~Step14)+ 旧上帝类删除
- 9 个面板(step1~step6/step8_ml_train/step8_qaa/step9_ml_predict/step10)单步执行按钮从 parent 链上溯改为 global_event_bus.publish('RequestRunSingleStep')
- PipelineExecutor 新增 _on_request_run_single_step 订阅
- 新增 Handler: step8_ml_train / step9_ml_predict / step10_qaa_inversion / step11_concentration / step12_kriging / step13_visualization / step14_report
- 删除旧 water_quality_inversion_pipeline_GUI.py(上帝类已肢解完毕)
|
2026-06-18 09:19:51 +08:00 |
|
|
|
2d45610aa6
|
fix: 导航状态锁防抖 + 运行按钮中间槽函数(修复乱跳与无响应双 Bug)
Bug1 导航乱跳:_on_step_list_changed 先调 get_panel 触发懒加载再 setCurrentIndex,避免 removeTab/insertTab 索引偏移导致跳页错乱。_on_tab_changed 加 _is_syncing 守卫斩断乒乓效应。Bug2 按钮无响应:新增 _on_run_all_clicked 中间槽函数替代直接连接,内含 print 探针 + try/except 兜底。
|
2026-06-18 09:01:25 +08:00 |
|
|
|
f1cc339d4a
|
feat: Step2~Step7 Handler 批量生成 + WorkerThread 接入新调度器
- 新增 6 个 Handler:Step2GlintDetection / Step3GlintRemoval / Step4Sampling / Step5ProcessCsv / Step6ExtractSpectra / Step7CalcIndices
- 新增 register_handlers.py:register_all_handlers() 一键注册 Step1~Step7
- 更新 __init__.py:导出全部 7 个 Handler
- 重构 worker_thread.py:移除旧 WaterQualityInversionPipeline 导入,改用 PipelineScheduler + register_all_handlers
- run_single_step 改为 scheduler.run_step() 调用,保留外部模型透传逻辑
|
2026-06-17 18:02:31 +08:00 |
|
|
|
f6455b71ba
|
fix: PanelFactory 信号风暴修复 + 后端上帝类肢解(BaseStepHandler/调度器/Step1打样)
|
2026-06-17 17:48:40 +08:00 |
|
|
|
39e8c29913
|
refactor: 实现第二批 Manager(LogManager/ConfigManager/DialogService/TrainingModeManager)
- log_manager.py: 日志区+进度条+清空按钮封装,内部订阅 LogMessage/ProgressUpdate
- config_manager.py: 配置读写(new/load/save/get_current_config),懒加载安全(未加载面板返回 {})
- dialog_service.py: 纯展示弹窗封装(Pipeline状态/关于/AI设置)
- training_mode_manager.py: 训练模式切换,发布 TrainingModeChanged 事件
- water_quality_gui_v2.py: 725→605 行,菜单回调全部委托给 Manager,移除 _create_log_panel/_create_progress_panel/_on_log_message/_on_progress_update
|
2026-06-17 17:35:27 +08:00 |
|
|
|
19c86e6e44
|
refactor: 实现纯壳主窗口 + 第一批 Manager(PanelFactory/PipelineExecutor/WorkspaceInitializer)
- water_quality_gui_v2.py: 纯壳主窗口(725行),依赖注入链 + EventBus 驱动,7个菜单连线
- panel_factory.py: PanelFactory 懒加载工厂(占位页替换 + 邻接预加载)
- pipeline_executor.py: PipelineExecutor 核心调度(接管 run_full_pipeline/run_single_step/stop_pipeline)
- workspace_initializer.py: WorkspaceInitializer 环境初始化(接管 init_workspace/set_work_directory/auto_populate_all)
|
2026-06-17 17:18:15 +08:00 |
|
|
|
bb5c2a50f8
|
refactor: 引入 EventBus 事件总线,实现各步骤面板间的去中心化自动参数传导,完成最终解耦
|
2026-06-17 16:27:26 +08:00 |
|
|
|
a58744cfbb
|
refactor: 建立动态面板注册表,消除硬编码,实现步骤界面的数据驱动渲染与依赖路由
|
2026-06-17 16:02:17 +08:00 |
|
|
|
1949711cda
|
refactor: 提取 WorkspaceManager,将文件扫描与路径业务逻辑从主 GUI 解耦
|
2026-06-17 15:35:02 +08:00 |
|
|
|
191a4b681d
|
refactor: 移除主界面重复代码,复用现有组件并彻底抽离图像控件
|
2026-06-17 15:16:19 +08:00 |
|
|
|
bd4263d2ca
|
旧 GUI 张冠李戴修复:step6/step8 ML 训练 CSV 强制读 Step 6 特征结果 + step3 默认算法切到 goodman
|
2026-06-16 17:53:55 +08:00 |
|
|
|
5084f7d049
|
Step10 Kriging 输出路径强制 14_visualization + Step11 掩膜自动填入
|
2026-06-16 14:12:10 +08:00 |
|
|
|
0238aa66ab
|
路径归一化:统一 14 个子目录 helper 接口 + 修复 getattr 张冠李戴
新增 _step_path_resolver.py(STEP_DATA_SOURCE 映射表 + _FALLBACK_DIR_TABLE 40+ keys + resolve_subdir / get_step_output_path / resolve_step_widget 三层 API),与 pipeline.get_step_output_dir 互为表里、互不依赖。
pipeline 新增 get_step_output_dir(step_name) 唯一权威接口(class-level _STEP_OUTPUT_DIR_MAP 延迟构造 + 未知 key 回退 work_dir + 调试日志)。
全量重构 src/gui/panels/step*.py(17 个文件)
* 消除全部 os.path.join(wp, "X_subdir") 硬编码(14 个预定义子目录)
* 8 处 getattr(main_window.stepXX_panel, ...) 张冠李戴死代码全部修复(错位属性名 → 通过 STEP_DATA_SOURCE 映射到正确的 main_window 长名属性)
* 删除 step12_viz_panel.py 中 self.step11_ml_panel / step11_panel / step12_panel 死代码块
* 提示文字/标签字典/日志保留原文,仅替换实际路径计算
Smoke test:39 fallback key + 14 路径映射 + 14 step 数字 key + 17/17 panel AST 解析 + 17/17 import 全部就位。
|
2026-06-16 12:54:18 +08:00 |
|
|
|
d41262aa18
|
Step5 输出文件名统一为 processed_data.csv(修复 GUI/算法断链)
实际落盘(data_preparation_step.py:32、runner.py:101)一直为 processed_data.csv,但 GUI 三处残留旧名 cleaned_sampling_data.csv:注册表 step_default_outputs['step5_clean']、面板占位符、默认输出路径生成。本次统一替换,与 PipelineRunner/算法真实产物对齐。
|
2026-06-15 17:32:07 +08:00 |
|
|
|
60a9d7d922
|
Step3 插值算法 OOM 修复 + 多进程加速 + 全链路累积改动(14 文件)
|
2026-06-15 16:49:17 +08:00 |
|
|
|
82e0b92af6
|
Mega-1.1 全链路路径归一化收尾(18 文件)
|
2026-06-15 15:20:50 +08:00 |
|
|
|
a9e77d2ad0
|
添加公式方法
|
2026-06-15 14:55:32 +08:00 |
|
|
|
f73a7d8999
|
添加公式方法
|
2026-06-12 16:48:20 +08:00 |
|
|
|
be47b70594
|
Step4 心跳刷新 + Step10 输出目录更名与智能寻址优化
|
2026-06-12 10:27:47 +08:00 |
|
|
|
4c9ca2aa03
|
全链路路径对齐:注册表重写为字符串格式,10_sampling→4_sampling,water_quality_indices→training_spectra_indices
|
2026-06-12 09:59:35 +08:00 |
|
|
|
89bdcbc27a
|
Step7 面板:移除输出模式选择 UI,output_mode 硬编码锁定为 0(全量输出)
|
2026-06-12 09:27:16 +08:00 |
|
|
|
04669bdee8
|
Step7 面板:单选框蓝底实心样式美化,清理死代码(np/Tuple 导入、_get_coord_cols),run_step 路由化
|
2026-06-12 09:24:16 +08:00 |
|
|
|
e59703f163
|
结构修改,后端文件跟前端内容进行适配
|
2026-06-11 17:44:24 +08:00 |
|
|
|
3584c07b67
|
对齐 GUI 面板 ID 与 pipeline 方法路由
|
2026-06-11 15:35:47 +08:00 |
|
|
|
1ad4c54b80
|
Fix step4_panel variable name inconsistency causing AttributeError
|
2026-06-11 15:14:26 +08:00 |
|
|
|
5d75d3371b
|
Step5: 强制锁死GUI路由字典,替换全部旧step_id为新命名
|
2026-06-11 15:09:35 +08:00 |
|
|
|
d3262ae80d
|
Rename pipeline method names to match step numbers (Step4)
|
2026-06-11 14:58:39 +08:00 |
|
|
|
7c7a31ce00
|
Fix panel internal titles and step calls (Step3)
|
2026-06-11 14:56:33 +08:00 |
|
|
|
604886abb3
|
fix(gui): 同步侧边栏/选项卡文本与路由映射,删除回归预测 tab
|
2026-06-11 11:24:28 +08:00 |
|
|
|
3c4d4081a4
|
refactor(gui): 重命名面板序号 step4-11,采样点布设移至 step4,ML 建模移至 step9
|
2026-06-11 11:13:16 +08:00 |
|
|
|
184f5fe9f4
|
fix(step14): 批量渲染文件名唯一性 + Colorbar 样式 + 2σ拉伸
|
2026-06-11 10:29:32 +08:00 |
|
|
|
0493ba7916
|
fix(map): GeoTIFF 可视化全链路修复
|
2026-06-10 17:13:51 +08:00 |
|
|
|
2671c0837a
|
feat(step8): 新增 Step8 水色指数反演 GUI 面板 step8_waterindex_panel
|
2026-06-10 17:13:37 +08:00 |
|
|
|
04a321d225
|
fix(step14): 修正流水线方法名 step9_generate_distribution_map → step14_distribution_map
|
2026-06-10 09:46:14 +08:00 |
|
|
|
fa9c940074
|
feat(visualization+report): 接入 Step9 浓度反演数据至可视化面板与报告生成器
|
2026-06-10 09:41:39 +08:00 |
|
|
|
c3cc2ef77e
|
feat(step9): 新增浓度反演模块及 GUI 面板
|
2026-06-09 17:55:25 +08:00 |
|
|
|
6d49e80c7e
|
fix(gui): step8_panel改用DataPreparationStep计算水质指数,统一pipeline与面板独立运行路径
|
2026-06-09 13:38:28 +08:00 |
|