Files
BRDF/GUI/软件使用说明.md
2026-04-22 09:27:59 +08:00

14 KiB
Raw Blame History

BRDF校正工具 - 使用说明文档

一、软件概述

BRDF校正工具是一款用于高光谱图像双向反射分布函数BRDF校正的统一GUI应用程序支持两种场景

  1. 陆地植被BRDF校正FlexBRDF算法

    • 适用于陆地植被和地表的BRDF、地形和镜面反射校正
    • 支持AVIRIS、AVIRIS-NG等机载高光谱数据
  2. 水体BRDF校正Ocean BRDF Correction

    • 专用于水体和海洋的BRDF校正
    • 支持多种BRDF模型和不确定性估算

二、快速开始

2.1 启动软件

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模型说明

  • L11Lee et al. (2011) 模型,适用于开阔大洋
  • M02Morel et al. (2002) 模型经典水体BRDF模型
  • M02SeaDASSeaDAS实现的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_edgeNEON边缘掩膜

用于消除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月