216 lines
5.9 KiB
Markdown
216 lines
5.9 KiB
Markdown
# 水质参数反演分析系统 (Water Quality Inversion Analysis System)
|
||
|
||
[](https://www.python.org/downloads/)
|
||
[](https://opensource.org/licenses/MIT)
|
||
[]()
|
||
|
||
基于遥感影像处理和机器学习技术的水质监测专业软件系统,集成了完整的水域识别、耀斑处理、光谱提取、模型训练和预测分析流程。
|
||
|
||
## 🚀 主要特性
|
||
|
||
- **多算法耀斑去除** - 支持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:从源码安装
|
||
|
||
```bash
|
||
# 克隆仓库
|
||
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安装
|
||
|
||
```bash
|
||
pip install water-quality-inversion
|
||
```
|
||
|
||
## 🎯 快速开始
|
||
|
||
### 图形界面模式
|
||
```bash
|
||
water-quality-gui
|
||
```
|
||
|
||
### 命令行模式
|
||
```bash
|
||
water-quality-pipeline --config config.yaml
|
||
```
|
||
|
||
### Python API
|
||
```python
|
||
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](CONTRIBUTING.md) 了解详细信息。
|
||
|
||
### 开发环境设置
|
||
|
||
```bash
|
||
# 安装开发依赖
|
||
pip install -e ".[dev]"
|
||
|
||
# 运行测试
|
||
pytest
|
||
|
||
# 代码格式化
|
||
black src/
|
||
isort src/
|
||
|
||
# 类型检查
|
||
mypy src/
|
||
```
|
||
|
||
## 📄 许可证
|
||
|
||
本项目基于 MIT 许可证开源 - 查看 [LICENSE](LICENSE) 文件了解详情。
|
||
|
||
## 📚 引用
|
||
|
||
如果您在研究中使用了本系统,请引用:
|
||
|
||
```bibtex
|
||
@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}
|
||
}
|
||
```
|
||
|
||
## 📞 联系我们
|
||
|
||
- **项目主页**: https://github.com/waterquality/water-quality-inversion
|
||
- **问题反馈**: https://github.com/waterquality/water-quality-inversion/issues
|
||
- **邮箱**: support@waterquality.com
|
||
|
||
## 🙏 致谢
|
||
|
||
感谢所有为本项目做出贡献的开发者们!
|
||
|
||
---
|
||
|
||
**水质参数反演分析系统** - 让水质监测更智能、更精准!
|