增加坡度计算
This commit is contained in:
451
GUI/软件使用说明.md
Normal file
451
GUI/软件使用说明.md
Normal file
@ -0,0 +1,451 @@
|
||||
# BRDF校正工具 - 使用说明文档
|
||||
|
||||
## 一、软件概述
|
||||
|
||||
BRDF校正工具是一款用于高光谱图像双向反射分布函数(BRDF)校正的统一GUI应用程序,支持两种场景:
|
||||
|
||||
1. **陆地植被BRDF校正**(FlexBRDF算法)
|
||||
- 适用于陆地植被和地表的BRDF、地形和镜面反射校正
|
||||
- 支持AVIRIS、AVIRIS-NG等机载高光谱数据
|
||||
|
||||
2. **水体BRDF校正**(Ocean BRDF Correction)
|
||||
- 专用于水体和海洋的BRDF校正
|
||||
- 支持多种BRDF模型和不确定性估算
|
||||
|
||||
---
|
||||
|
||||
## 二、快速开始
|
||||
|
||||
### 2.1 启动软件
|
||||
|
||||
```bash
|
||||
python brdf_gui.py
|
||||
```
|
||||
|
||||
启动后将显示主界面,选择需要使用的模块:
|
||||
- 点击"进入陆地模块"打开陆地植被BRDF校正
|
||||
- 点击"进入水体模块"打开水体BRDF校正
|
||||
|
||||
---
|
||||
|
||||
## 三、陆地植被BRDF校正模块(FlexBRDF)
|
||||
|
||||
### 3.1 界面布局
|
||||
|
||||
模块界面分为左右两部分:
|
||||
- **左侧**:配置选项卡(文件与波段映射、校正参数、输出设置)
|
||||
- **右侧**:执行日志和进度显示
|
||||
|
||||
### 3.2 文件与波段映射页
|
||||
|
||||
#### 3.2.1 文件夹设置
|
||||
|
||||
| 参数 | 说明 | 默认值 |
|
||||
|------|------|--------|
|
||||
| 输入文件夹 | 反射率文件所在目录(ENVI格式) | 空 |
|
||||
| 辅助文件夹 | 观测几何数据目录 | 空 |
|
||||
| CPU核心数 | 并行处理使用的CPU核心数 | 1 |
|
||||
|
||||
**操作步骤**:
|
||||
1. 点击"浏览..."按钮选择输入文件夹和辅助文件夹
|
||||
2. 点击"自动匹配文件"按钮,软件会自动匹配反射率文件(`_rfl`后缀)和观测几何文件(`_obs`后缀)
|
||||
3. 匹配成功的文件对将显示在列表中
|
||||
|
||||
#### 3.2.2 文件匹配规则
|
||||
|
||||
- 反射率文件命名格式:`{prefix}_rfl{ext}`
|
||||
- 观测几何文件命名格式:`{prefix}_obs{ext}`
|
||||
- 软件根据`{prefix}`部分自动匹配对应文件对
|
||||
|
||||
#### 3.2.3 手动添加文件对
|
||||
|
||||
如需手动指定文件对:
|
||||
1. 在"手动添加文件对"区域,分别选择反射率文件和观测几何文件
|
||||
2. 点击"添加文件对"按钮
|
||||
|
||||
#### 3.2.4 波段映射设置
|
||||
|
||||
每个输入文件需要映射以下观测几何参数到辅助文件的波段:
|
||||
|
||||
| 参数名称 | 说明 | 默认波段 |
|
||||
|----------|------|----------|
|
||||
| path_length | 路径长度 | 0 |
|
||||
| sensor_zn | 传感器天顶角 | 1 |
|
||||
| sensor_az | 传感器方位角 | 2 |
|
||||
| solar_zn | 太阳天顶角 | 3 |
|
||||
| solar_az | 太阳方位角 | 4 |
|
||||
| phase | 相位角 | 5 |
|
||||
| slope | 坡度 | 6 |
|
||||
| aspect | 坡向 | 7 |
|
||||
| cosine_i | 入射角余弦 | 8 |
|
||||
|
||||
**设置方法**:
|
||||
1. 在文件列表中选择一个文件
|
||||
2. 在右侧波段映射表格中设置各参数对应的波段索引(从0开始)
|
||||
3. 点击"应用当前映射"保存设置
|
||||
|
||||
### 3.3 校正参数页
|
||||
|
||||
#### 3.3.1 选择校正类型
|
||||
|
||||
勾选需要执行的校正类型(可单选或多选):
|
||||
|
||||
| 校正类型 | 说明 |
|
||||
|----------|------|
|
||||
| Topo (地形校正) | 消除地形起伏对反射率的影响 |
|
||||
| BRDF (双向反射分布函数) | 校正各向异性反射效应 |
|
||||
| Glint (耀斑校正) | 消除水体或湿润表面的镜面反射 |
|
||||
|
||||
#### 3.3.2 地形校正参数(Topo Correction)
|
||||
|
||||
| 参数 | 选项 | 默认值 | 说明 |
|
||||
|------|------|--------|------|
|
||||
| 类型 (type) | mod_minneart, scs+c, cosine, c, scs | mod_minneart | 地形校正算法类型 |
|
||||
| 拟合类型 (c_fit_type) | nnls, ols, wls | nnls | 系数拟合方法 |
|
||||
|
||||
**掩膜条件设置**:
|
||||
- **计算掩膜 (calc_mask)**:定义参与计算校正因子的像素条件
|
||||
- **应用掩膜 (apply_mask)**:定义应用校正的像素条件
|
||||
|
||||
掩膜条件类型详见[第5章 掩膜条件说明](#五掩膜条件说明)。
|
||||
|
||||
#### 3.3.3 BRDF校正参数(BRDF Correction)
|
||||
|
||||
| 参数 | 选项/范围 | 默认值 | 说明 |
|
||||
|------|-----------|--------|------|
|
||||
| 算法类型 (type) | flex, universal | flex | BRDF算法类型 |
|
||||
| 启用分组 (grouped) | 勾选/取消 | 勾选 | 是否按NDVI分组计算 |
|
||||
| 几何核 (geometric) | li_sparse, li_dense, li_sparse_r, li_dense_r, roujean | li_sparse | 几何光学核函数 |
|
||||
| 体积核 (volume) | ross_thin, ross_thick, hotspot, roujean | ross_thick | 体积散射核函数 |
|
||||
| b/r 比率 | 0.1 - 10.0 | 2.5 | 树冠宽度/高度比 |
|
||||
| h/b 比率 | 0.1 - 5.0 | 2.0 | 树高/树冠宽度比 |
|
||||
| 采样比例 (sample_perc) | 0.01 - 1.0 | 0.1 | 用于拟合的采样比例 |
|
||||
| 插值方法 (interp_kind) | linear, nearest, cubic | linear | 插值方法 |
|
||||
| 分箱类型 (bin_type) | dynamic, fixed | dynamic | NDVI分箱类型 |
|
||||
| 分箱数量 (num_bins) | 1 - 100 | 18 | NDVI分箱数量 |
|
||||
| NDVI最小值 (ndvi_bin_min) | 0.0 - 1.0 | 0.05 | 分箱NDVI下限 |
|
||||
| NDVI最大值 (ndvi_bin_max) | 0.0 - 1.0 | 1.0 | 分箱NDVI上限 |
|
||||
| NDVI百分比最小值 (ndvi_perc_min) | 0 - 100 | 10 | 有效样本百分比下限 |
|
||||
| NDVI百分比最大值 (ndvi_perc_max) | 0 - 100 | 95 | 有效样本百分比上限 |
|
||||
| 太阳天顶角类型 (solar_zn_type) | scene, fixed, mean, custom | scene | 太阳天顶角计算方法 |
|
||||
|
||||
**核函数组合推荐**:
|
||||
- 植被覆盖区:`li_sparse` + `ross_thick`
|
||||
- 稀疏植被区:`roujean` + `roujean`
|
||||
- 浓密植被区:`li_dense` + `ross_thick`
|
||||
|
||||
#### 3.3.4 耀斑校正参数(Glint Correction)
|
||||
|
||||
| 参数 | 选项 | 默认值 | 说明 |
|
||||
|------|------|--------|------|
|
||||
| 类型 (type) | mod_minneart, scs+c, cosine, c, scs, nir, mask | nir | 耀斑校正方法 |
|
||||
| 拟合类型 (c_fit_type) | nnls, ols, wls | nnls | 系数拟合方法 |
|
||||
|
||||
**掩膜条件设置**:
|
||||
- **计算掩膜 (calc_mask)**:定义参与计算耀斑因子的像素
|
||||
- **应用掩膜 (apply_mask)**:定义应用耀斑校正的像素
|
||||
|
||||
### 3.4 输出设置页
|
||||
|
||||
| 参数 | 说明 | 默认值 |
|
||||
|------|------|--------|
|
||||
| 输出目录 | 校正结果保存路径 | 空 |
|
||||
| 后缀 (Suffix) | 输出文件名后缀 | topo_brdf_glint |
|
||||
| 输出系数 (coeffs) | 输出校正系数文件 | 不勾选 |
|
||||
| 输出图像 (image) | 输出校正后图像 | 勾选 |
|
||||
| 输出掩膜 (masks) | 输出使用的掩膜 | 不勾选 |
|
||||
|
||||
**输出文件名格式**:
|
||||
```
|
||||
{原文件名}_{后缀}.dat
|
||||
```
|
||||
|
||||
### 3.5 操作按钮
|
||||
|
||||
| 按钮 | 功能 |
|
||||
|------|------|
|
||||
| 加载 JSON 配置 | 从JSON文件加载之前保存的配置 |
|
||||
| 保存 JSON 配置 | 将当前配置保存为JSON文件 |
|
||||
| 生成配置并运行 | 生成配置并启动BRDF校正处理 |
|
||||
|
||||
---
|
||||
|
||||
## 四、水体BRDF校正模块(Ocean BRDF)
|
||||
|
||||
### 4.1 输入文件设置
|
||||
|
||||
| 参数 | 文件格式 | 说明 |
|
||||
|------|----------|------|
|
||||
| 高光谱文件 | ENVI (.dat, .bsq, .bip, .bil, .hdr) | 高光谱遥感影像 |
|
||||
| 角度文件 | ENVI (.dat, .bsq, .bip, .bil, .hdr) | 观测几何角度数据 |
|
||||
| 水体掩膜 | GeoTIFF (.tif, .tiff) | 水体区域掩膜 |
|
||||
|
||||
### 4.2 BRDF模型参数
|
||||
|
||||
| 参数 | 选项 | 默认值 | 说明 |
|
||||
|------|------|--------|------|
|
||||
| BRDF模型 | L11, M02, M02SeaDAS, O25 | L11 | BRDF校正模型 |
|
||||
| 处理块大小 | 1024 - 16384 | 4096 | 光谱维分块大小 |
|
||||
| 空间块大小 | 256 - 2048 | 512 | 空间维分块大小 |
|
||||
| 计算不确定性 | 勾选/取消 | 取消 | 是否计算BRDF不确定度 |
|
||||
|
||||
**BRDF模型说明**:
|
||||
- **L11**:Lee et al. (2011) 模型,适用于开阔大洋
|
||||
- **M02**:Morel et al. (2002) 模型,经典水体BRDF模型
|
||||
- **M02SeaDAS**:SeaDAS实现的M02模型
|
||||
- **O25**:最新优化模型
|
||||
|
||||
### 4.3 输出变量选择
|
||||
|
||||
支持多选(按住Ctrl键选择多个):
|
||||
|
||||
| 变量 | 说明 |
|
||||
|------|------|
|
||||
| Rw_brdf | BRDF校正后的水体反射率 |
|
||||
| rho_ex_w | 水体反射率 (nrrs * π) |
|
||||
| nrrs | 归一化遥感反射率 |
|
||||
| C_brdf | BRDF校正因子 |
|
||||
| brdf_unc | BRDF不确定度(需勾选计算不确定性) |
|
||||
| nrrs_unc | nrrs不确定度(需勾选计算不确定性) |
|
||||
|
||||
**默认选中**:Rw_brdf, nrrs, C_brdf
|
||||
|
||||
### 4.4 输出设置
|
||||
|
||||
| 参数 | 选项 | 默认值 |
|
||||
|------|------|--------|
|
||||
| 输出路径 | 文件前缀路径 | 空 |
|
||||
| 输出格式 | ENVI | ENVI |
|
||||
|
||||
### 4.5 运行
|
||||
|
||||
点击"运行水体BRDF校正"按钮开始处理。
|
||||
|
||||
---
|
||||
|
||||
## 五、掩膜条件说明
|
||||
|
||||
掩膜用于定义参与计算或应用校正的像素范围。所有掩膜条件取交集(同时满足)。
|
||||
|
||||
### 5.1 支持的掩膜类型
|
||||
|
||||
| 类型 | 说明 | 参数 |
|
||||
|------|------|------|
|
||||
| **ndi** | 归一化差值指数 | band_1, band_2, min, max |
|
||||
| **ancillary** | 辅助数据掩膜 | name, min, max |
|
||||
| **neon_edge** | NEON数据边缘掩膜 | radius |
|
||||
| **kernel_finite** | 核函数有限性掩膜 | 无参数 |
|
||||
| **water** | 水体掩膜 | band_1, band_2, threshold |
|
||||
| **external** | 外部掩膜文件 | file_path, class |
|
||||
| **band** | 单波段阈值 | band, min, max |
|
||||
|
||||
### 5.2 各类型详细参数
|
||||
|
||||
#### ndi(归一化差值指数)
|
||||
|
||||
```
|
||||
ndi = (band_1 - band_2) / (band_1 + band_2)
|
||||
保留范围: [min, max] 内的像素
|
||||
```
|
||||
|
||||
| 参数 | 类型 | 默认值 | 说明 |
|
||||
|------|------|--------|------|
|
||||
| band_1 | 整数 | 550 | 第一个波段波长(nm) |
|
||||
| band_2 | 整数 | 2150 | 第二个波段波长(nm) |
|
||||
| min | 浮点数 | -1.0 | NDI最小值 |
|
||||
| max | 浮点数 | 0.0 | NDI最大值 |
|
||||
|
||||
**典型应用**:
|
||||
- NDVI植被掩膜:band_1=850, band_2=680, min=0.2, max=1.0
|
||||
- NDWI水体掩膜:band_1=860, band_2=1240, min=-1.0, max=0.0
|
||||
|
||||
#### ancillary(辅助数据掩膜)
|
||||
|
||||
基于观测几何参数创建掩膜。
|
||||
|
||||
| 参数 | 类型 | 默认值 | 可选值 |
|
||||
|------|------|--------|--------|
|
||||
| name | 字符串 | slope | slope, aspect, cosine_i, sensor_zn, sensor_az, solar_zn, solar_az, phase, path_length, utc_time |
|
||||
| min | 浮点数 | 0.0 | - |
|
||||
| max | 浮点数 | 1.0 | - |
|
||||
|
||||
**典型应用**:
|
||||
- 坡度掩膜:只处理坡度小于30度的区域
|
||||
- name=slope, min=0, max=30
|
||||
- 太阳天顶角掩膜:排除大太阳天顶角
|
||||
- name=solar_zn, min=0, max=60
|
||||
|
||||
#### neon_edge(NEON边缘掩膜)
|
||||
|
||||
用于消除NEON高光谱数据图像边缘的噪声区域。
|
||||
|
||||
| 参数 | 类型 | 默认值 | 说明 |
|
||||
|------|------|--------|------|
|
||||
| radius | 整数 | 1 | 边缘裁剪像素数 |
|
||||
|
||||
#### kernel_finite(核函数有限性掩膜)
|
||||
|
||||
自动排除会导致核函数计算溢出或不稳定的像素。无需参数。
|
||||
|
||||
#### water(水体掩膜)
|
||||
|
||||
使用特定波段组合识别水体。
|
||||
|
||||
| 参数 | 类型 | 默认值 | 说明 |
|
||||
|------|------|--------|------|
|
||||
| band_1 | 整数 | 550 | 第一个波段波长(nm) |
|
||||
| band_2 | 整数 | 850 | 第二个波段波长(nm) |
|
||||
| threshold | 浮点数 | 0.0 | 水体识别阈值 |
|
||||
|
||||
#### external(外部掩膜文件)
|
||||
|
||||
使用外部分类或掩膜文件。
|
||||
|
||||
| 参数 | 类型 | 默认值 | 说明 |
|
||||
|------|------|--------|------|
|
||||
| file_path | 字符串 | 空 | 外部掩膜文件路径 |
|
||||
| class | 整数 | 1 | 要保留的类别值 |
|
||||
|
||||
#### band(单波段阈值)
|
||||
|
||||
基于单个波段的值创建掩膜。
|
||||
|
||||
| 参数 | 类型 | 默认值 | 说明 |
|
||||
|------|------|--------|------|
|
||||
| band | 整数 | 650 | 波段波长(nm) |
|
||||
| min | 浮点数 | 0.0 | 最小值 |
|
||||
| max | 浮点数 | 1.0 | 最大值 |
|
||||
|
||||
### 5.3 掩膜条件设置步骤
|
||||
|
||||
1. 在校正参数页找到掩膜设置区域
|
||||
2. 点击"+ 添加条件"按钮
|
||||
3. 选择掩膜类型
|
||||
4. 设置对应参数值
|
||||
5. 可添加多个条件(取交集)
|
||||
6. 点击"删除"按钮移除不需要的条件
|
||||
|
||||
---
|
||||
|
||||
## 六、配置文件的保存与加载
|
||||
|
||||
### 6.1 保存配置
|
||||
|
||||
1. 完成所有参数设置
|
||||
2. 点击"保存 JSON 配置"按钮
|
||||
3. 选择保存路径和文件名
|
||||
4. 配置将以JSON格式保存,包含:
|
||||
- 输入文件列表
|
||||
- 波段映射关系
|
||||
- 校正参数设置
|
||||
- 掩膜条件
|
||||
- 输出设置
|
||||
|
||||
### 6.2 加载配置
|
||||
|
||||
1. 点击"加载 JSON 配置"按钮
|
||||
2. 选择之前保存的JSON配置文件
|
||||
3. 软件将自动恢复所有设置
|
||||
|
||||
**注意**:
|
||||
- 加载配置后会自动匹配文件对,请确保输入文件和辅助文件路径仍然有效
|
||||
- 如果文件路径已改变,需要重新手动设置文件夹路径
|
||||
|
||||
---
|
||||
|
||||
## 七、典型工作流程
|
||||
|
||||
### 7.1 陆地植被BRDF校正流程
|
||||
|
||||
1. **启动软件** → 选择"陆地植被BRDF校正"
|
||||
2. **设置文件夹** → 选择输入文件夹和辅助文件夹
|
||||
3. **匹配文件** → 点击"自动匹配文件"
|
||||
4. **检查映射** → 确认波段映射设置正确
|
||||
5. **选择校正** → 勾选需要的校正类型(Topo/BRDF/Glint)
|
||||
6. **设置参数** → 根据数据特点调整校正参数
|
||||
7. **设置掩膜** → 添加合适的掩膜条件(如NDVI>0.2)
|
||||
8. **设置输出** → 指定输出目录和后缀
|
||||
9. **保存配置** → (可选)保存当前配置
|
||||
10. **运行** → 点击"生成配置并运行"
|
||||
|
||||
### 7.2 水体BRDF校正流程
|
||||
|
||||
1. **启动软件** → 选择"水体BRDF校正"
|
||||
2. **选择文件** → 依次选择高光谱文件、角度文件、水体掩膜
|
||||
3. **选择模型** → 选择适合的BRDF模型(通常用L11)
|
||||
4. **选择变量** → 勾选需要的输出变量
|
||||
5. **调整参数** → (可选)调整块大小以优化性能
|
||||
6. **设置输出** → 指定输出文件前缀路径
|
||||
7. **运行** → 点击"运行水体BRDF校正"
|
||||
|
||||
---
|
||||
|
||||
## 八、常见问题与解决方案
|
||||
|
||||
### 8.1 文件匹配问题
|
||||
|
||||
**问题**:自动匹配找不到文件对
|
||||
|
||||
**解决**:
|
||||
- 检查文件命名是否符合 `{prefix}_rfl` 和 `{prefix}_obs` 格式
|
||||
- 确保输入文件夹和辅助文件夹路径正确
|
||||
- 使用手动添加功能指定文件对
|
||||
|
||||
### 8.2 波段映射问题
|
||||
|
||||
**问题**:提示波段索引超出范围
|
||||
|
||||
**解决**:
|
||||
- 检查辅助文件的实际波段数
|
||||
- 确认波段索引从0开始计数
|
||||
- 验证辅助文件格式正确
|
||||
|
||||
### 8.3 内存不足问题
|
||||
|
||||
**问题**:处理大文件时内存溢出
|
||||
|
||||
**解决**:
|
||||
- 减少CPU核心数设置
|
||||
- 对于水体模块,减小处理块大小(chunk_size)
|
||||
- 分块处理(FlexBRDF会自动分块)
|
||||
|
||||
### 8.4 掩膜问题
|
||||
|
||||
**问题**:校正后结果为空或过少
|
||||
|
||||
**解决**:
|
||||
- 检查掩膜条件是否过于严格
|
||||
- 验证NDVI或波段阈值设置是否合理
|
||||
- 查看掩膜类型是否与数据匹配
|
||||
|
||||
---
|
||||
|
||||
## 九、技术参数参考
|
||||
|
||||
### 9.1 支持的文件格式
|
||||
|
||||
| 类型 | 格式 |
|
||||
|------|------|
|
||||
| 输入反射率 | ENVI标准格式 (.dat + .hdr) |
|
||||
| 观测几何 | ENVI标准格式 (.dat + .hdr) |
|
||||
| 水体掩膜 | GeoTIFF (.tif) |
|
||||
| 输出结果 | ENVI标准格式 |
|
||||
| 配置文件 | JSON (.json) |
|
||||
|
||||
### 9.2 系统要求
|
||||
|
||||
- **操作系统**:Windows 10/11, Linux, macOS
|
||||
- **Python版本**:3.8+
|
||||
- **内存**:建议8GB以上(处理大图像需要更多)
|
||||
- **依赖库**:PyQt5, numpy, scipy等(详见requirements.txt)
|
||||
|
||||
---
|
||||
|
||||
## 十、联系与支持
|
||||
|
||||
如有问题或建议,请查看项目文档或联系开发团队。
|
||||
|
||||
---
|
||||
|
||||
*文档版本:v1.0*
|
||||
*最后更新:2026年4月*
|
||||
Reference in New Issue
Block a user