Files
HSI/CLI_README.md

288 lines
7.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 高光谱分析工具包 - 统一命令行接口
## 📖 概述
本工具包提供统一的命令行接口 (`main.py`),支持动态导入和调用所有功能模块,无需手动管理复杂的参数和依赖关系。
## 🚀 快速开始
### 1. 安装依赖
```bash
pip install -r requirements.txt
```
### 2. 查看帮助
```bash
# 查看所有可用命令
python main.py --help
# 查看特定任务的帮助
python main.py dim-reduction --help
python main.py classification --help
```
### 3. 查看可用任务
```bash
python main.py list
```
## 📋 可用任务
### 🔬 数据预处理
- **preprocessing**: 数据预处理(标准化、异常值处理等)
### 📊 降维分析
- **dim-reduction**: 高光谱数据降维PCA、ICA、LDA等
### 🎯 图像分割
- **segmentation**: 阈值分割Otsu、ISODATA等
### ⚡ 边缘检测
- **edge-detection**: 图像边缘检测Canny、Sobel等
### 🔍 异常检测
- **anomaly-detection**: 异常像素检测协方差、单类SVM等
### 🏷️ 分类分析
- **classification**: 监督分类SVM、随机森林等
### 📈 聚类分析
- **clustering**: 无监督聚类K-Means、GMM等
### 🎯 特征选择
- **feature-selection**: 特征选择算法SPA、CARS等
### 🌿 光谱指数
- **spectral-index**: 光谱指数计算NDVI、EVI等
### 📐 形状特征
- **shape-features**: 形状特征分析
### 🎨 颜色分析
- **color-analysis**: 色差计算分析
### 🔧 图像滤波
- **filtering**: 空间/形态学滤波
### 📈 回归分析
- **regression**: 回归模型分析
## 💡 使用示例
### 降维分析
```bash
# PCA降维到3个组件
python main.py dim-reduction --input data.hdr --method pca --n-components 3 --output-dir results
# 批量降维分析
python main.py dim-reduction --input data.hdr --method pca --batch --output-dir results/batch
```
### 图像分割
```bash
# Otsu自动阈值分割
python main.py segmentation --input data.hdr --method otsu --band-index 100 --output-dir results
# 固定阈值分割
python main.py segmentation --input data.hdr --method fixed --threshold 0.5 --band-index 50 --output-dir results
```
### 分类分析
```bash
# SVM分类需要ROI文件
python main.py classification --input data.hdr --roi-file roi.xml --method svm --output-dir results
# 随机森林分类
python main.py classification --input data.hdr --roi-file roi.xml --method rf --output-dir results
```
### 光谱指数计算
```bash
# 计算指定指数
python main.py spectral-index --input data.hdr --indices NDVI EVI ARVI --png --output-dir results
# 计算所有指数
python main.py spectral-index --input data.hdr --batch --png --output-dir results/indices
```
### 异常检测
```bash
# 协方差异常检测
python main.py anomaly-detection --input data.hdr --method covariance --contamination 0.1 --output-dir results
```
### 聚类分析
```bash
# K-Means聚类
python main.py clustering --input data.hdr --method kmeans --n-clusters 5 --output-dir results
# 高斯混合模型聚类
python main.py clustering --input data.hdr --method gmm --n-clusters 3 --output-dir results
```
### 特征选择
```bash
# SPA算法选择特征
python main.py feature-selection --input data.csv --label-column target --method spa --n-features 20 --output-dir results
```
### 数据预处理
```bash
# 标准化处理
python main.py preprocessing --input data.csv --method standard --handle-outliers --output-dir results
```
### 形状特征分析
```bash
# 分析分割结果的形状特征
python main.py shape-features --input segmented.dat --input-type dat --band-index 0 --min-area 50 --output-dir results
```
## 📁 输出文件
每个任务执行后会生成以下文件:
- **`<task>_<prefix>.dat/.hdr`**: 主要结果文件ENVI格式
- **`<task>_summary.json`**: 任务执行摘要
- **`execution_log.json`**: 执行日志
- **`<task>_report.html`**: HTML格式的详细报告
- **可视化文件**: PNG格式的图表和图像
## ⚙️ 通用参数
所有任务都支持以下通用参数:
- `--input, -i`: 输入文件路径(必需)
- `--output-dir, -o`: 输出目录(默认: ./results
- `--output-prefix`: 输出文件前缀(默认: result
## 🔧 高级选项
### 调试模式
```bash
# 启用详细错误信息
python main.py <task> [参数...] --debug
```
### 批量处理
许多任务支持批量处理模式:
```bash
# 批量降维
python main.py dim-reduction --input data.hdr --batch
# 批量分割
python main.py segmentation --input data.hdr --batch
# 批量边缘检测
python main.py edge-detection --input data.hdr --batch
```
### 自定义参数
```bash
# 自定义降维组件数
python main.py dim-reduction --input data.hdr --n-components 10
# 自定义聚类数
python main.py clustering --input data.hdr --n-clusters 8
# 自定义特征数量
python main.py feature-selection --input data.csv --n-features 50
```
## 📊 结果查看
### 命令行摘要
执行完成后会显示彩色的执行摘要,包括:
- 任务名称和执行时间
- 输入参数
- 结果统计信息
- 输出文件列表
### HTML报告
打开生成的 `<task>_report.html` 文件查看详细的执行报告,包含:
- 执行参数
- 结果统计
- 可视化图表
- 文件信息
### JSON摘要
`<task>_summary.json` 包含结构化的结果摘要,可用于进一步处理。
## 🚨 故障排除
### 常见问题
1. **文件不存在错误**
- 检查输入文件路径是否正确
- 确保文件有适当的读取权限
2. **内存不足错误**
- 对于大型高光谱数据,考虑增加系统内存
- 或使用降维预处理减少数据大小
3. **依赖包错误**
- 确保已安装所有必需的依赖包
- 运行 `pip install -r requirements.txt`
4. **参数错误**
- 使用 `--help` 查看正确的参数格式
- 检查参数值是否在有效范围内
### 获取帮助
```bash
# 通用帮助
python main.py --help
# 任务特定帮助
python main.py <task-name> --help
# 查看示例
python examples.py
```
## 🏗️ 架构说明
### 模块化设计
- **`main.py`**: 主入口,参数解析和任务分发
- **`registry.py`**: 模块注册表,管理所有任务信息
- **`validators.py`**: 输入验证和错误检查
- **`output_handler.py`**: 统一输出处理和报告生成
### 动态导入
系统使用 Python 的 `importlib` 实现动态模块导入,确保:
- 只在需要时加载相关模块
- 减少启动时间和内存占用
- 支持模块的独立开发和维护
### 参数验证
内置多层参数验证:
- 文件存在性和格式检查
- 参数范围和类型验证
- 数据维度和大小验证
- 任务特定逻辑验证
## 📝 开发说明
### 添加新任务
1. 在相应模块中实现功能
2.`registry.py` 中添加任务注册信息
3. 创建对应的参数构建器类
4. 更新文档和示例
### 扩展验证
`validators.py` 中添加新的验证逻辑,确保输入数据的正确性。
### 自定义输出
`output_handler.py` 中添加新的输出格式或报告类型。
## 🤝 贡献
欢迎提交问题报告和功能建议!请确保:
- 提供详细的问题描述
- 包含错误信息和环境信息
- 建议新功能时说明使用场景