|
|
b96555e95c
|
fix(base_view): dispatch_execute 走事件总线优先,父链爬链降级为 fallback
BaseView.dispatch_execute 优先 publish RequestRunSingleStep 事件总线
(v1 pipeline_executor 已订阅),让 v1 GUI(water_quality_gui_v2.py)
也能接收 v2 view 的执行请求。父链爬链保留为 fallback(v2 MainView
直调 run_single_step)。两者都失败时 RuntimeError 错误信息增强为双重失败说明。
Why: v1 GUI 加载 v2 view 时原父链爬链找不到具备 run_single_step 方法
的主窗口容器(v1 MainView 无此方法),触发父级GUI对象 RuntimeError。
事件总线优先 + 父链 fallback 让 v1/v2 双 GUI 都可正常工作。
|
2026-06-22 16:14:21 +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 |
|
|
|
d6c003a211
|
fix: Step7 UI坍塌修复+EventBus打通 + DRY抽离spxy/ks + GridSearchCV→RandomizedSearchCV + smoke test死链修复
|
2026-06-18 11:18:27 +08:00 |
|
|
|
91881d564a
|
fix: 修复 Step8 模型生成路径错误及特征分离未过滤坐标列导致的 0 模型 Bug
- view 层 Step8View.update_work_directory 不再生成 <work_dir>/indices/<basename>_indices.csv,改为生成标准的 <work_dir>/8_Modeling/ 模型存放目录;FileSelectWidget 标签与文件过滤器同步调整为目录语义(输出模型目录 / All Files (*.*)),消除'保存目录被存成 csv 文件'导致的 train_models 跳过判定。
|
2026-06-17 14:15:34 +08:00 |
|
|
|
c2740c2bde
|
fix(step7): 修复 Step7 未默认加载内置水质指数公式表的问题
- init_ui 末尾自动调用 _auto_load_formulas 读取 src/gui/model/waterindex.csv
并填充 formula_list(默认全选),用户进 tab 即可见/可勾选公式。
- 新增 _resolve_formula_csv_path helper:兼容 PyInstaller _MEIPASS /
frozen _internal / 开发环境(__file__ 倒推 3 层到 src/)三种位置。
- get_config 新增 formula_csv_file 字段——之前缺失导致 step7_service
拿到空路径必报 "未提供公式 CSV 路径(formula_csv_file)" 错误,
进而导致下游 step8/9 因为拿不到 features 而生成 0 个模型。
- 新增 4 个 _on_select_* 按钮回调(_auto_load_formulas 后启用);
set_config 同步兼容 formula_csv_file 键。
- 删除未使用的 _resolve_subdir helper(早前从旧 panel 搬过来但新 view 未引用)。
验证:
AST 解析 320 行 OK
helper 解析到 D:\...\src\gui\model\waterindex.csv exists=True
pandas 解析 CSV 63 行(45 ratio + 18 concentration)OK
BaseView 契约方法 init_ui/get_config/set_config/update_work_directory/
_on_run_clicked 全部保留
|
2026-06-17 14:06:15 +08:00 |
|
|
|
b3a6855881
|
fix: 补齐 Step6 缺失的水体与耀斑掩膜自动传导链路
MainView._sync_dependencies 此前未推送以下两条链路,导致用户
每次进入 Step 6 都必须手动选水体/耀斑掩膜文件:
1. step1 → step6 (boundary_path)
Step 1 在 NDWI 模式下输出 water_mask_out.dat → 经 boundary_path
推给 Step 6 的 self.water_mask_file。
注意:Step 6 接收键名是 boundary_path(历史遗留别名),不是
water_mask_path。
2. step2 → step6 (glint_mask_path)
Step 2 输出 severe_glint_area.dat → 经 glint_mask_path 推给
Step 6 的 self.glint_mask_file。
同时精简了 _sync_dependencies 的 docstring(去掉逐条推送关系列表,
改为一行摘要)和若干块内注释。
其它方法 / 字段 / 类结构未改动。
|
2026-06-17 13:41:50 +08:00 |
|
|
|
6a962f5e8f
|
feat(new-arch):主窗口全功能增强(图标系统 + 全链路参数同步 + 服务输出统一解析 + Step12 分类浏览)
1. main_view.py:图标系统 + 全链路参数自动传导
- 新增 _res() 解析项目根的相对路径,PyInstaller 打包后兼容 sys._MEIPASS。
- 新增 QListWidgetItem / QMessageBox 导入,左侧导航列表支持右键菜单 + 错误弹窗。
- ROUTES 12 条全部新增 icon 字段("1.png" 等),侧边栏显示业务图标。
- 新增 step_outputs 缓存机制:每个 step 完成后把 output_path 写入 self.step_outputs。
- 新增 _sync_dependencies() 同步函数 + _safe_set_config() 包装器,
按依赖图把上游产物推给下游 view:
step1 → step6 water_mask_path
step3 → step4 / step6 / step10 deglint_img_path / bsq_path
step4 → step9 sampling_csv_path
step5 → step6 csv_path
step6 → step7 / step8 training_csv_path
step8 → step9 models_dir(父目录)
step9 → step11 prediction_csv_dir / prediction_csv_path(双推)
step10 → step11 geotiff_dir / geotiff_path(双推)
2. services/step1-13:统一输出解析器集成
- 新增 src/new/services/_output_resolver.py,提供 resolve_output_dir /
copy_to_user_path / get_user_output_path / is_user_specified 四个共享工具。
- 每个 service 把原有的私有 _resolve_xxx_dir 改为调用 resolve_output_dir,
强制执行"用户优先"规则(用户指定 output_path 时用其父目录,否则用 work_dir/<subdir>)。
- 用户指定文件名 vs 底层硬编码文件名的"事后劫持"通过 copy_to_user_path 完成
(覆盖 step2、step4、step7、step8 等底层 step 不接受 output_path 关键字的步骤)。
3. views/step12_view.py:恢复 ImageCategoryTree + ImageViewerWidget 高级组件
- 删掉精简版占位 Label,挂回旧版的 ImageCategoryTree(按"模型评估/光谱分析/
统计图表/处理结果/含量分布图"五类自动归类工作目录下的图像文件)。
- 挂回 ImageViewerWidget(滚轮缩放 0.1x-5x + 50ms 防抖 + FastTransformation/
SmoothTransformation 智能切换 + Ctrl+Wheel + 工具栏)。
- 扫描按钮接通 image_tree.scan_directory(),选中节点即时加载到 image_viewer。
- 按钮样式切换为 ModernStylesheet(success/primary)统一视觉。
|
2026-06-17 13:28:58 +08:00 |
|
|
|
9cb3c8ed0d
|
fix(ui):修复 3 项 UI 交互痛点(输出路径不显示 / Step4 预览缺失 / Step5 CSV NaN 报错)
1. base_view.py:update_from_config 路由修复
原默认实现只缓存 work_dir + pipeline,不触发 update_work_directory,
导致所有派生 view 的输出路径自动填入从未执行。
补一行 self.update_work_directory(work_dir) 后,13 个 view 全部受益。
2. step4_view.py:恢复采样点交互式预览
从旧 panel 移植 preview_btn 按钮 + QTimer 2s 心跳(_check_csv_exists)
+ SamplingViewerDialog 弹窗。
用户在执行 Step 4 后点击按钮即可点击散点查看各采样点光谱曲线。
3. step5_view.py:CSV 预览 NaN 崩溃修复
pd.read_csv(csv_path, nrows=n) → pd.read_csv(csv_path, nrows=n).fillna("")。
避免底层 Qt 模型在解析 float64 空值时崩溃(PandasTableModel 路径必填)。
|
2026-06-17 13:28:10 +08:00 |
|
|
|
48668c9e74
|
services/step10-13:终极决战!打通空间插值、可视化出图与报告生成的最后四步独立服务
|
2026-06-17 09:57:13 +08:00 |
|
|
|
6fc0394fe2
|
services/step6-9:打通光谱计算与机器学习预测的核心独立服务
|
2026-06-17 09:34:21 +08:00 |
|
|
|
f8d5ea2eb8
|
services/step2-5:打通前四个预处理步骤的真实后端独立服务
新增 src/new/services/{step2,step3,step4,step5}_service.py 四个独立后端服务:
|
2026-06-17 09:15:22 +08:00 |
|
|
|
3d4462f4e9
|
main_view:ROUTES 12 条全部对齐真实 view(业务名+路径+class),Boot 日志更新
|
2026-06-17 08:58:24 +08:00 |
|
|
|
84f0f6058f
|
views/step2-view13:12 个前端 view 迁移完成(继承 BaseView,纯 UI,service 仍占位)
|
2026-06-17 08:58:17 +08:00 |
|
|
|
61bd8582e5
|
路由壳升级:TaskWorker 三信号 + main_router→main_view 迁移(54/54 smoke 通过)
|
2026-06-16 18:23:38 +08:00 |
|
|
|
e993a184bd
|
views/* + main_router.py:13 step 路由壳(QListWidget+QStackedWidget+TaskWorker 后台执行器)
|
2026-06-16 17:53:35 +08:00 |
|
|
|
2a89fdc62c
|
services/placeholder_service.py:step2-step13 占位服务(execute_placeholder 返回 not_implemented 状态)
|
2026-06-16 17:53:19 +08:00 |
|
|
|
e62f53bf77
|
services/step1_service.py:水域掩膜纯函数服务(execute_step1,零 PyQt/零全局,异常统一转 dict)
|
2026-06-16 17:53:11 +08:00 |
|
|
|
1e0e7d1973
|
端到端新架构骨架:src/new 包入口 + BaseView 接口契约(dispatch_execute 沿父链上溯 run_single_step)
|
2026-06-16 17:53:01 +08:00 |
|