DXC 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
2026-05-11 17:38:29 +08:00
2026-04-08 15:25:08 +08:00
2026-04-08 15:25:08 +08:00
2026-04-08 15:25:08 +08:00
2026-04-08 15:25:08 +08:00
2026-04-08 15:25:08 +08:00
2026-04-08 15:25:08 +08:00
2026-06-12 16:48:20 +08:00

水质参数反演分析系统 (Water Quality Inversion Analysis System)

Python Version License: MIT Build Status

基于遥感影像处理和机器学习技术的水质监测专业软件系统,集成了完整的水域识别、耀斑处理、光谱提取、模型训练和预测分析流程。

🚀 主要特性

  • 多算法耀斑去除 - 支持Goodman、Kutser、Hedley、SUGAR等多种去耀斑算法
  • 智能水域识别 - 基于NDWI阈值分割和Shapefile掩膜的自动水域提取
  • 机器学习建模 - 支持多种机器学习算法随机森林、XGBoost、神经网络等
  • 非经验统计回归 - 基于物理原理的叶绿素a、总氮、总磷等参数反演
  • 高精度空间插值 - 距离扩散插值生成平滑的水质分布图
  • 可视化分析 - 丰富的图表展示和空间分布可视化
  • 用户友好界面 - 基于PyQt5的图形化操作界面

📋 系统要求

硬件要求

  • 处理器: Intel Core i5 或同等性能以上
  • 内存: 8GB RAM推荐16GB
  • 存储: 至少10GB可用空间
  • 显卡: 支持OpenGL 3.0以上

软件要求

  • 操作系统: Windows 10/11, Linux, macOS
  • Python版本: 3.8+
  • 必要依赖: GDAL, NumPy, Pandas, Scikit-learn, PyQt5等

🛠️ 安装

方式1从源码安装

# 克隆仓库
git clone https://github.com/waterquality/water-quality-inversion.git
cd water-quality-inversion

# 创建虚拟环境
python -m venv venv
source venv/bin/activate  # Linux/macOS
# 或
venv\Scripts\activate     # Windows

# 安装依赖
pip install -r requirements.txt

# 安装包
pip install -e .

方式2使用pip安装

pip install water-quality-inversion

🎯 快速开始

图形界面模式

water-quality-gui

命令行模式

water-quality-pipeline --config config.yaml

Python API

from water_quality_inversion import WaterQualityInversionPipeline

# 创建流水线实例
pipeline = WaterQualityInversionPipeline()

# 运行完整分析流程
pipeline.run()

📖 使用指南

基本工作流程

  1. 步骤1: 水域掩膜生成

    • 支持Shapefile文件或NDWI自动提取
    • 生成水域范围的栅格掩膜
  2. 步骤2: 耀斑区域检测

    • 支持Otsu、Z-score、百分位数等多种检测方法
    • 生成耀斑区域掩膜
  3. 步骤3: 耀斑去除

    • Goodman、Kutser、Hedley、SUGAR四种算法
    • 支持多种插值修复方法
  4. 步骤4: 数据预处理

    • CSV数据清洗和异常值检测
    • 数据标准化和特征工程
  5. 步骤5: 光谱提取

    • 基于采样点的光谱特征提取
    • 支持多种采样半径和统计计算
  6. 步骤5.5: 水质指数计算

    • 基于光谱特征计算水质指数
    • 支持自定义公式和18种水质参数
  7. 步骤6: 机器学习建模

    • 支持18种机器学习算法
    • 11种光谱预处理方法
    • 3种数据划分策略
  8. 步骤6.5: 非经验统计回归

    • 6种水质参数的非经验模型
    • 基于物理原理的参数反演
  9. 步骤6.75: 自定义回归分析

    • 完全自定义的回归分析
    • 探索性数据分析工具
  10. 步骤7: 采样点生成

    • 规则网格采样点生成
    • 智能边界处理
  11. 步骤8/8.5/8.75: 参数预测

    • 机器学习预测
    • 非经验模型预测
    • 自定义回归预测
  12. 步骤9: 分布图生成

    • 空间插值和栅格化
    • 多格式输出GeoTIFF, PNG, PDF

🏗️ 项目结构

water-quality-inversion/
├── src/                    # 源代码目录
│   ├── core/              # 核心算法模块
│   │   ├── glint_removal/ # 耀斑去除算法
│   │   ├── modeling/      # 建模算法
│   │   └── prediction/    # 预测算法
│   ├── preprocessing/     # 数据预处理模块
│   ├── postprocessing/    # 后处理模块
│   ├── visualization/     # 可视化模块
│   ├── utils/            # 工具函数
│   └── gui/               # GUI界面
├── data/                  # 数据目录
│   ├── input/            # 输入数据
│   ├── output/           # 输出结果
│   └── models/           # 模型文件
├── docs/                  # 文档目录
├── scripts/               # 构建和部署脚本
├── tests/                 # 测试目录
├── requirements.txt       # 依赖文件
├── setup.py              # 安装配置
├── pyproject.toml        # 项目配置
└── README.md             # 项目说明

🤝 贡献

欢迎贡献代码!请查看 CONTRIBUTING.md 了解详细信息。

开发环境设置

# 安装开发依赖
pip install -e ".[dev]"

# 运行测试
pytest

# 代码格式化
black src/
isort src/

# 类型检查
mypy src/

📄 许可证

本项目基于 MIT 许可证开源 - 查看 LICENSE 文件了解详情。

📚 引用

如果您在研究中使用了本系统,请引用:

@software{water_quality_inversion,
  title = {Water Quality Inversion Analysis System},
  author = {Water Quality Research Team},
  url = {https://github.com/waterquality/water-quality-inversion},
  version = {1.0.0},
  year = {2025}
}

📞 联系我们

🙏 致谢

感谢所有为本项目做出贡献的开发者们!


水质参数反演分析系统 - 让水质监测更智能、更精准!

Description
水质参数反演分析系统是一款基于遥感影像处理和机器学习技术的水质监测专业软件,集成了完整的水域识别、耀斑处理、光谱提取、模型训练和预测分析流程。
Readme 142 MiB
Languages
Python 100%