121 lines
3.3 KiB
Markdown
121 lines
3.3 KiB
Markdown
|
|
# 采样点地图功能使用说明
|
|||
|
|
|
|||
|
|
## 功能概述
|
|||
|
|
|
|||
|
|
本系统新增了采样点地图生成功能,可以在高光谱假彩色影像上标注采样点位置,并添加专业的地图要素。
|
|||
|
|
|
|||
|
|
## 主要功能
|
|||
|
|
|
|||
|
|
### 1. SamplingPointMap 类 (`src/postprocessing/point_map.py`)
|
|||
|
|
|
|||
|
|
**核心功能:**
|
|||
|
|
- 读取高光谱影像并生成假彩色RGB图像
|
|||
|
|
- 读取CSV文件中的采样点坐标(前两列为**纬度、经度**)
|
|||
|
|
- 在影像上标注红色采样点
|
|||
|
|
- 添加**指北针**、**比例尺**和**图例**
|
|||
|
|
- 支持地理坐标转换
|
|||
|
|
|
|||
|
|
### 2. Visualization Reports 集成 (`src/postprocessing/visualization_reports.py`)
|
|||
|
|
|
|||
|
|
**新增方法:**
|
|||
|
|
- `generate_sampling_point_map()`:生成采样点地图
|
|||
|
|
- `generate_all_visualizations()`:生成所有可视化结果
|
|||
|
|
|
|||
|
|
### 3. GUI 集成 (`src/gui/water_quality_gui.py`)
|
|||
|
|
|
|||
|
|
**可视化分析页面新增:**
|
|||
|
|
- 复选框:"生成采样点地图"
|
|||
|
|
- 按钮:"📍 生成采样点地图"
|
|||
|
|
- 按钮:"👁️ 查看采样点地图"
|
|||
|
|
|
|||
|
|
## 使用方法
|
|||
|
|
|
|||
|
|
### 1. 通过GUI使用
|
|||
|
|
|
|||
|
|
1. 打开**可视化分析**页面
|
|||
|
|
2. 勾选"生成采样点地图"
|
|||
|
|
3. 点击"📍 生成采样点地图"按钮
|
|||
|
|
4. 系统会自动:
|
|||
|
|
- 查找高光谱影像文件(.dat, .bsq, .tif等)
|
|||
|
|
- 查找 `4_processed_data` 文件夹中的CSV文件
|
|||
|
|
- 生成带采样点的地图
|
|||
|
|
- 保存至 `9_visualization/sampling_maps/` 目录
|
|||
|
|
|
|||
|
|
### 2. 编程调用
|
|||
|
|
|
|||
|
|
```python
|
|||
|
|
from src.postprocessing.point_map import SamplingPointMap
|
|||
|
|
from src.postprocessing.visualization_reports import WaterQualityVisualization
|
|||
|
|
|
|||
|
|
# 方法1:直接使用SamplingPointMap
|
|||
|
|
map_generator = SamplingPointMap(output_dir="./point_maps")
|
|||
|
|
map_path = map_generator.create_sampling_point_map(
|
|||
|
|
hyperspectral_path="path/to/hyperspectral.dat",
|
|||
|
|
csv_path="path/to/sampling_points.csv",
|
|||
|
|
point_color='red',
|
|||
|
|
point_size=100,
|
|||
|
|
show_north_arrow=True,
|
|||
|
|
show_scale_bar=True,
|
|||
|
|
show_legend=True
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
# 方法2:通过VisualizationReports
|
|||
|
|
viz = WaterQualityVisualization(output_dir="./9_visualization")
|
|||
|
|
map_path = viz.generate_sampling_point_map(
|
|||
|
|
hyperspectral_path="path/to/hyperspectral.dat",
|
|||
|
|
csv_path="path/to/sampling_points.csv"
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
# 方法3:生成所有可视化
|
|||
|
|
results = viz.generate_all_visualizations(work_dir="./work_dir")
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## CSV文件格式要求
|
|||
|
|
|
|||
|
|
CSV文件必须满足以下格式:
|
|||
|
|
- **前两列**分别为**纬度**和**经度**
|
|||
|
|
- 使用**逗号分隔**
|
|||
|
|
- 必须包含有效的数值
|
|||
|
|
|
|||
|
|
**示例:**
|
|||
|
|
```csv
|
|||
|
|
latitude,longitude,parameter1,parameter2
|
|||
|
|
31.2345,121.4567,25.5,3.2
|
|||
|
|
31.2350,121.4570,26.1,3.5
|
|||
|
|
31.2360,121.4580,24.8,2.9
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 输出目录结构
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
work_dir/
|
|||
|
|
├── 1_water_mask/
|
|||
|
|
│ └── hsi_preview.png # 高光谱预览图
|
|||
|
|
├── 4_processed_data/
|
|||
|
|
│ └── processed_data.csv # 处理后的数据
|
|||
|
|
├── 9_visualization/
|
|||
|
|
│ ├── glint_deglint_previews/ # 掩膜和耀斑缩略图
|
|||
|
|
│ └── sampling_maps/ # 采样点地图
|
|||
|
|
│ └── hyperspectral_sampling_map.png
|
|||
|
|
└── ...
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 地图要素
|
|||
|
|
|
|||
|
|
- **红色圆点**:采样点位置
|
|||
|
|
- **指北针**:指示北方
|
|||
|
|
- **比例尺**:显示实际距离
|
|||
|
|
- **图例**:说明采样点数量
|
|||
|
|
- **标题**:清晰的地图标题
|
|||
|
|
|
|||
|
|
## 依赖库
|
|||
|
|
|
|||
|
|
- GDAL (地理坐标转换)
|
|||
|
|
- matplotlib (绘图)
|
|||
|
|
- pandas (CSV处理)
|
|||
|
|
- numpy (数值计算)
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
**注意**:确保工作目录中包含高光谱影像文件和处理后的CSV文件。
|