2. 辐射度学基础

辐射亮度这个量,说白了就是描述「一束光到底有多亮」的物理量。但很多工程师在实际处理数据时,往往被它的单位搞晕。我见过不少项目,因为单位换算出错,导致反演结果差了几个数量级。

今天我们就来彻底搞清楚辐射亮度的单位体系。我会结合自己踩过的坑,帮你建立一套「单位直觉」。

2.1 辐射亮度的定义与核心单位

先看定义。辐射亮度(Radiance)是单位投影面积、单位立体角内的辐射通量。公式很简单:

L = d²Φ / (dA · cosθ · dΩ)

其中:

  • Φ — 辐射通量(W)
  • A — 面积(m²)
  • Ω — 立体角(sr)
  • θ — 法线与观测方向的夹角

所以辐射亮度的基本单位就是:W / (sr · m²)。读作「瓦特每球面度每平方米」。

核心记忆点:辐射亮度 = 单位面积上、单位立体角内的功率。你可以把它想象成「一扇窗户上,每平方米玻璃,朝某个方向看过去的亮度」。

2.2 两种主流单位体系

实际工作中,我们主要遇到两套单位体系。我习惯把它们叫做「能量派」和「光子派」。

体系 单位 物理含义 典型应用场景
能量单位 W/(sr·m²) 每秒辐射的能量(焦耳/秒) 热红外、辐射定标、能量平衡
光子单位 photons/(sr·m²·s) 每秒辐射的光子数 可见光/近红外、CCD/CMOS传感器

为什么要分两套?因为探测器的工作原理不同。热红外传感器响应的是能量,而CCD相机响应的是光子数。你想想看,一个光子能量是 hν,波长不同,同样能量对应的光子数就不同。

我的经验:做可见光遥感时,我习惯先把所有数据转成光子数单位再处理。因为传感器噪声模型是基于光子计数的,用能量单位反而容易搞混。

2.3 单位换算实战:从能量到光子数

这是最常遇到的换算场景。公式其实就一行:

L_photon = L_energy / (h · c / λ)

其中:

  • h = 6.626×10⁻³⁴ J·s(普朗克常数)
  • c = 2.998×10⁸ m/s(光速)
  • λ = 波长(单位:米)

简化一下,单个光子的能量 E_photon = hc/λ。把能量除以单光子能量,就得到光子数。

实际计算时,我推荐用这个工程简化公式:

L_photon = L_energy × λ / (h · c)

代入数值:
L_photon = L_energy × λ / (1.986×10⁻²⁵)

其中 λ 单位是米,L_energy 单位是 W/(sr·m²)

我曾经踩过的坑:有一次处理Landsat 8数据,我忘了把波长从纳米换算成米,结果光子数差了10⁹倍。反演出来的地表反射率直接爆表。后来我养成了一个习惯——换算前先写单位量纲检查表。

2.4 常见换算系数速查表

为了方便实战,我整理了几个典型波长的换算系数。记住这些,现场算起来快很多。

波段 中心波长 单光子能量 (J) 换算系数 (photons/s per W)
蓝光 480 nm 4.14×10⁻¹⁹ 2.42×10¹⁸
绿光 560 nm 3.55×10⁻¹⁹ 2.82×10¹⁸
红光 660 nm 3.01×10⁻¹⁹ 3.32×10¹⁸
近红外 860 nm 2.31×10⁻¹⁹ 4.33×10¹⁸
短波红外 1600 nm 1.24×10⁻¹⁹ 8.06×10¹⁸

换算系数怎么用?举个例子:

如果你测得辐射亮度是 10 W/(sr·m²) 的红光(660 nm),那么对应的光子数辐射亮度就是:

10 × 3.32×10¹⁸ = 3.32×10¹⁹ photons/(sr·m²·s)

2.5 辐射亮度单位知识体系

下面这张图,是我自己画的知识结构。它把辐射亮度的单位体系、换算关系和实战要点串在了一起。

辐射亮度单位知识体系 辐射亮度 L = d²Φ/(dA·cosθ·dΩ) 能量单位:W/(sr·m²) 光子单位:photons/(sr·m²·s) 应用:热红外、辐射定标 应用:可见光、CCD/CMOS 换算公式:L_photon = L_energy × λ / (h·c) h=6.626×10⁻³⁴ J·s, c=2.998×10⁸ m/s 实战要点 ① 波长单位统一用米(m) ② 注意量纲检查 ③ 传感器定标文件通常用能量单位 ④ 光子噪声模型用光子数单位 ⑤ 多光谱数据需逐波段换算

2.6 实战中的单位陷阱

说几个我实际遇到过的坑,你遇到了可以少走弯路。

  1. 立体角单位 sr 被忽略 — 有些文献直接写 W/m²,其实是辐射照度,不是辐射亮度。差了一个立体角因子。
  2. 投影面积 vs 实际面积 — 公式里的 dA·cosθ 是投影面积。如果观测角是 60°,面积因子就是 0.5,千万别忘了。
  3. 光谱辐射亮度 vs 波段辐射亮度 — 前者单位是 W/(sr·m²·μm),后者是 W/(sr·m²)。差一个光谱带宽。

我的习惯:每次拿到传感器定标文件,第一件事就是确认辐射亮度的单位。是 W/(sr·m²) 还是 W/(sr·m²·μm)?是能量单位还是光子数单位?这个搞错了,后面全白做。

2.7 快速换算工具函数

最后,分享一个我常用的 Python 函数。现场处理数据时,直接调它就行。

import numpy as np

def radiance_convert(L_energy, wavelength_nm, target_unit='photon'):
    """
    辐射亮度单位换算函数
    
    参数:
        L_energy: 能量辐射亮度 [W/(sr·m²)]
        wavelength_nm: 波长 [nm]
        target_unit: 'photon' 或 'energy'
    
    返回:
        换算后的辐射亮度值
    """
    h = 6.626e-34      # 普朗克常数 J·s
    c = 2.998e8        # 光速 m/s
    lam = wavelength_nm * 1e-9  # 转成米
    
    if target_unit == 'photon':
        # 能量 → 光子数
        E_photon = h * c / lam
        return L_energy / E_photon
    else:
        # 光子数 → 能量
        E_photon = h * c / lam
        return L_energy * E_photon

# 示例:10 W/(sr·m²) 的 660 nm 红光转光子数
result = radiance_convert(10, 660, 'photon')
print(f"光子数辐射亮度: {result:.2e} photons/(sr·m²·s)")
# 输出: 光子数辐射亮度: 3.32e+19 photons/(sr·m²·s)