Commit Graph

82 Commits

Author SHA1 Message Date
DXC
04a321d225 fix(step14): 修正流水线方法名 step9_generate_distribution_map → step14_distribution_map 2026-06-10 09:46:14 +08:00
DXC
fa9c940074 feat(visualization+report): 接入 Step9 浓度反演数据至可视化面板与报告生成器 2026-06-10 09:41:39 +08:00
DXC
c3cc2ef77e feat(step9): 新增浓度反演模块及 GUI 面板 2026-06-09 17:55:25 +08:00
dxc
4ca90b0e79 fix: get_spectral.py CSV列索引错误 - 跳过测量点ID列正确读取纬度(41.66°)和经度(124.22°)
input.csv列顺序: 时间,测量点,纬度,经度,水质参数...
原代码错误地将测量点ID(col0)当作纬度,纬度(col1)当作经度
修复后: lat=col1(纬度), lon=col2(经度)
修复前导致所有14815个采样点坐标转换后超出影像范围,光谱提取为0
修复后: 14815个采样点全部成功提取有效光谱(314~717)
2026-06-09 15:02:28 +08:00
dxc
6d49e80c7e fix(gui): step8_panel改用DataPreparationStep计算水质指数,统一pipeline与面板独立运行路径 2026-06-09 13:38:28 +08:00
dxc
9ebe4fe4d3 fix(gui): step8_panel增加Formula_Type/Coefficient UI支持,get_config输出formula_coefficients 2026-06-09 13:31:50 +08:00
dxc
41c6a64628 fix(gui): step9_panel增加pipeline.indices_path读取,解决step8产出断链问题 2026-06-09 13:31:12 +08:00
dxc
2872788cc3 fix(pipeline): 移除STEP_MAP中step8→step11_ml的错误映射,避免resolve_step_id('step8')返回step11_ml 2026-06-09 13:30:52 +08:00
dxc
90ba5a5fe2 fix(pipeline): 移除未使用的WaterQualityIndexCalculator导入和实例化 2026-06-09 13:30:36 +08:00
DXC
c9b9eded84 fix(gui): step8_panel QBrush崩溃修复 + step9_panel step5→step8_panel 回填链路对齐 2026-06-09 13:23:17 +08:00
DXC
47cbb4a013 refactor(pipeline): step8 输出文件命名统一为 training_spectra_indices.csv,produces 增加 trad_indices_dir 2026-06-09 13:18:15 +08:00
DXC
593719e7d0 fix(gui): step8 QBrush崩溃修复 + step9 自动探测 Traditional_Indices 目录回填 2026-06-09 13:13:01 +08:00
DXC
bf2496badc feat(data): waterindex.csv 新增 19 条 concentration 类型经验浓度公式 2026-06-09 11:45:20 +08:00
DXC
28394f2eda feat(gui): 全流程面板合并 + 一键式运行 GUI 入口集成 2026-06-09 11:30:42 +08:00
DXC
aefc9d5aac feat(pipeline): 一键式运行 - 调度引擎核心 + 预检/免检系统 + 线程桥接 2026-06-09 11:29:11 +08:00
DXC
624a5bdcd4 refactor(water_index): 用 waterindex.csv 驱动公式计算,移除 45 个硬编码方法 2026-06-09 11:24:15 +08:00
DXC
371e7a2745 fix(PipelineRunner): 接力棒断链修复 + 依赖级联自动唤醒引擎 2026-06-09 09:07:59 +08:00
DXC
d22414bf7d feat(sampling): add adaptive sampling toggle + interactive sampling point viewer 2026-06-08 15:39:43 +08:00
DXC
e57fdb4f75 feat(report): 支持 Minimax AI 后端 + 统一 AI 配置对话框,修复 figure_counter 返回值断链 Bug 2026-06-08 14:58:16 +08:00
DXC
d5dd2ba1da chore: 移除 frontend/ 和图标资源目录;彻底清理遗留脚手架 2026-06-08 12:13:37 +08:00
DXC
1cbd38a8e0 chore: 从索引移除运行时产物、个人配置、旧脚手架;完善 .gitignore 2026-06-08 12:12:11 +08:00
DXC
e3debbcb15 fix(step8): 修复外部模型字典透传断链 + 规范化 loaded_model_data 防 Ridge subscriptable 崩溃 2026-06-08 11:36:36 +08:00
DXC
2b76d7908f feat(step8): 外部模型从单文件升级为母文件夹多模型字典扫描 2026-06-08 09:56:02 +08:00
DXC
4efe5b871e feat(gui): 一键运行智能预检
4 段预检彻底解决切换 PipelineRunner 后报 TypeError/静默跳过等问题, 并升级一键运行 UX:

- 预检 1: work_path + log + scan + auto_populate(无需弹窗, 静默回填)

- 预检 2: step3 波段越界 60s 倒计时弹窗(BandConfirmDialog) + gdal 主线程同步读 RasterCount, 越界时 SpinBox 回写 UI

- 预检 3: img_path 硬校验(warning + 跳 step1 + return)

- 预检 4: csv_path 软提示(information + 不 return, 让用户在 QMessageBox.question 二次确认时自己决定是否跳过训练)

新增 src/gui/dialogs.py: BandConfirmDialog(QDialog 子类, 60s 倒计时)
2026-06-04 10:38:46 +08:00
DXC
2139715829 fix(runner): step5 严格依赖 step4 产物 + 拒绝静默跳过
- step5.requires 加入 processed_csv_path(step4 产物) 并显式 parameter_map 到 csv_path 形参;step5.skip_when_missing=False 配合 Facade **kwargs 兜底

- parameter_map 双向映射规避 L2 顺序注入冲突: processed_csv_path→csv_path(主), csv_path→_raw_csv_ignored(占位, 落 **kwargs)

- PipelineRunner.run() skip_when_missing 块新增 _notify 通知, 让 GUI 知道具体缺了什么(拒绝静默跳过)
2026-06-04 10:38:33 +08:00
DXC
64aa5b8f40 fix(runner): 14 Facade kwargs 兜底 + 4 spec parameter_map 修正 + step6_75 路由切到 indices
- 14 个 stepX_... Facade 形参表末尾加 **kwargs,杜绝 Runner 注入未声明 key 时的 TypeError(典型:step3 收到 glint_mask_path)

- runner._invoke user_overrides 合并加 v is not None and v != '' 过滤,避免 GUI 面板空值覆盖 ctx 中已写入的有效路径

- PIPELINE_STEPS 加 4 个 parameter_map 修正 ctx 字段名→形参名错位:step6_5/6_75: training_csv_path→csv_path;step8_5: models_dir→non_empirical_models_dir;step8_75: models_dir→custom_regression_dir

- step6_75 路由从 training_csv_path 切到 indices_path(requires + parameter_map 同步);配合 skip_when_missing,未跑 step5_5 时自动 skip

- worker_thread.py: mode='full' 切到 PipelineRunner + PipelineContext 调度
2026-06-04 09:15:04 +08:00
DXC
343e316799 refactor(pipeline): 路径直接传输 — 统一 ctx 字段名/panel key/step 形参名 2026-06-03 17:29:41 +08:00
DXC
517bb28611 snapshot: 路线 B 重构前原状(pipeline 包首次入 git) 2026-06-03 16:31:45 +08:00
DXC
60a2a15188 feat(auth): 授权弹窗添加公司联系信息,删除旧提示语 2026-05-12 11:57:10 +08:00
DXC
170d347e21 内容部分修改 2026-05-11 17:38:29 +08:00
DXC
bf4237b160 feat: keygen_gui 增加永久授权选项 2026-05-11 09:53:02 +08:00
DXC
cf387c40ab feat: 新增离线一机一码授权系统 2026-05-11 09:48:07 +08:00
DXC
94ed2f1f8d fix(step5_5): 重构路径获取逻辑,使用 model/ 目录;增加编码兼容性、滚动区防塌陷、公式列表可见性优化 2026-05-11 08:28:09 +08:00
DXC
2c52ca19c5 refactor(step5_5): 公式内置化,界面精简 2026-05-10 18:38:45 +08:00
DXC
2a4a7ec7be refactor(packaging): PyInstaller资源路径统一适配get_resource_path 2026-05-10 18:02:59 +08:00
DXC
5a55be286f refactor(gui): 专题图UI美化/目录寻路/掩膜继承/隐藏冗余回归步骤 2026-05-10 17:02:58 +08:00
DXC
9ba39a7bff fix(step7): 消除UnboundLocalError — 将Path/os导入上移至函数第一行,避免与后续局部赋值冲突 2026-05-10 16:45:07 +08:00
DXC
d15a7a1e2b fix(step7): 去除耀斑路径智能回溯 — .dat占位符自动拦截改为glob搜索3_deglint真实.bsq产物 2026-05-10 16:34:04 +08:00
DXC
6d4d802ffe fix(step5/step5.5): 掩膜.shp智能替身为.dat、band_math.eval注入np.nan/np.inf命名空间 2026-05-10 16:20:51 +08:00
DXC
abac272b31 fix(step3/step7): 路径断层闭环 — _safe_rename换用os.rename、generate_sampling_points入口强制.bsq后缀校验 2026-05-10 16:04:26 +08:00
DXC
95d30d8d81 修复训练摘要报告无法识别 .joblib 模型的 Bug 2026-05-10 15:45:56 +08:00
DXC
375fea77b9 修复后处理模块导包路径断层 2026-05-10 15:24:50 +08:00
DXC
8c7c995985 修复步骤3去耀斑路径断层 + UI默认路径标准化 2026-05-10 15:11:01 +08:00
DXC
f96c55f361 refactor(step6): 步骤6机器学习建模UI汉化 + 默认全不选 + 底层反向映射清洗 2026-05-10 14:58:57 +08:00
DXC
14278739bf refactor(step4): 剥离 Steps 层 - step4~step9 业务逻辑下沉到独立模块 2026-05-09 17:55:58 +08:00
DXC
d0eb458392 refactor(step4): 剥离 Steps 层 - step1~step3 业务逻辑下沉到独立模块 2026-05-09 17:30:49 +08:00
DXC
605ec86108 修改命名 2026-05-09 17:25:40 +08:00
DXC
dcbcc043e4 refactor: 渐进式模块化重构 — 剥离可视化层、工具层、算法层到独立模块 2026-05-09 17:18:34 +08:00
DXC
b2b90050dc 修改命名 2026-05-09 16:32:55 +08:00
DXC
9d39e61161 fix: 自动格式转换 .shp→.dat 水域掩膜,解决插值函数报错 2026-05-09 14:35:58 +08:00