简介这份《GOCI2 说明手册 波段信息说明》面向海洋遥感、卫星定标与光学载荷方向的研究人员和工程技术人员系统梳理了GOCI2第二代地球同步轨道海洋色度成像仪的波段设置与辐射性能指标。内容涵盖各波段中心波长、带宽、名义辐射亮度、最大海洋辐射亮度、阈值辐射亮度及最大云辐射亮度等参数并给出NEdLSNR信噪比指标便于读者评估传感器在不同观测条件下的测量能力。手册还介绍了快门罩、指向镜、滤波轮、焦平面组件、遮光罩与望远镜机构等设备结构以及月球校准计划、MTF测量方案和视场范围设计涉及GSICS/IVOS月球校准研讨会中的相关讨论。资源为1个PDF文件压缩包约2.93MB结构紧凑、便于查阅。目前已有1149人学习下载适合需要快速掌握GOCI2波段参数、开展辐射定标或海洋环境遥感应用分析的读者参考使用。1. 从 GOCI 到 GOCI-II波段表里藏着的辐射定标逻辑翻 GOCI-II 的波段说明手册第一眼看到的往往是一张密密麻麻的辐射亮度表12 个波段每个波段配了名义辐射亮度、最大海洋辐射亮度、阈值辐射亮度、最大云辐射亮度还有一列 NEdL 和 SNR。很多人扫一眼就过去了觉得不过是传感器规格书。但真正做过在轨辐射定标的人会盯着这张表看很久因为波段中心、带宽和这几列辐射量之间其实锁死了后面月球定标能走多远。GOCI-II 是 GOCI 的第二代同样跑在地球同步轨道上做海洋水色观测。波段从 380 nm 一路铺到 865 nm带宽大多 20 nm709 nm 和 680 nm 收窄到 10 nm643.5 nm 那个宽达 483 nm 的通道明显是给云和植被做参照用的。这些波段不是随便切的短波看藻华和有色溶解有机物红边附近的 680/709 组合盯叶绿素荧光近红外的 745/865 管悬浮颗粒物和大气校正。波段定下来每个通道的辐射动态范围也就跟着定了而动态范围直接决定月球成像时曝光能不能压住。这份手册真正有价值的地方是它把波段信息和月球定标计划放在了一起。月球定标靠的是 ROLO 模型给出的盘等效反射率再结合 GOCI-II 实测的月球辐照度算比值用来监测仪器在轨衰减。波段中心偏一点、带宽宽一点积分出来的参考辐照度就变比值就漂。所以读波段表不能只读数字要读它和定标链路的关系。下面几章就按这个思路拆先把波段和辐射量讲透再落到月球成像的可行性判据然后是 ROLO 系数和辐照度积分怎么算最后收在过采样校正和比值因子的实操上。2. 波段参数与辐射动态范围的对应关系2.1 中心波长、带宽与观测目标的绑定GOCI-II 的 12 个波段可以粗分成三组来看。第一组是 380、412、443、490、510、555、620 nm带宽统一 20 nm覆盖可见光到黄光主要服务海洋水色反演。第二组是 660、680、709、745 nm其中 680 和 709 带宽压到 10 nm是为了卡住叶绿素荧光峰和红边陡坡带宽一宽信号就被邻段污染。第三组是 865 nm带宽 40 nm近红外用来做气溶胶和悬浮物。带宽的选择直接反映在辐射量上。以 412 nm 为例名义辐射亮度 100最大海洋辐射亮度 150阈值 152最大云辐射亮度 260NEdL 0.095SNR 1050。而 865 nm 名义辐射亮度只有 12最大海洋 23.4最大云 43.8NEdL 0.015SNR 788。近红外信号弱所以动态范围整体压低SNR 也低一档。这不是设计缺陷是海洋在近红外本来就暗硬拉高增益只会把噪声一起放大。提示看波段表时把 NEdL 和 SNR 两列一起看。NEdL 小说明能分辨的辐射差异小SNR 高说明信噪比好两者要匹配当前波段的信号量级才有意义。2.2 辐射亮度阈值在月球成像中的实际约束月球成像和地球成像对辐射动态范围的要求完全不同。地球场景里海洋辐射亮度大多落在名义值附近云区会冲到最大云辐射亮度。月球是反射太阳光的漫反射体辐亮度量级和满月相位、月地距离都相关而且 GOCI-II 是步进凝视成像积分时间可以拉长到 4.5 秒来攒信号。问题在于波段表里的最大云辐射亮度是给地球场景设的上限。月球成像如果曝光过头像素饱和盘等效反射率就算不准。所以实际做月球定标时积分时间要按波段逐个试。常见做法是先用短积分时间拍一帧看月球盘内峰值 DN 落在满量程的 60% 到 80%再反推正式积分时间。下面这段伪代码演示怎么根据波段最大辐射亮度和当前增益估算安全积分时间# 根据波段最大辐射亮度和探测器增益估算月球成像安全积分时间 # band_max_radiance: 该波段最大云辐射亮度, 单位 W/m2/um/sr # gain: 当前探测器增益, DN per (W/m2/um/sr) # full_well: 探测器满阱, 单位 DN # target_fill: 目标填充比例, 一般取 0.7 def estimate_integration_time(band_max_radiance, gain, full_well, target_fill0.7): # 先算满阱对应的最大可接受辐亮度 max_acceptable_radiance full_well / gain # 月球峰值辐亮度保守估计为最大云辐射亮度的 1.2 倍 moon_peak_radiance band_max_radiance * 1.2 # 按目标填充比例反推积分时间比例 ratio (full_well * target_fill) / (moon_peak_radiance * gain) return ratio # 以 412 nm 为例 t_ratio estimate_integration_time( band_max_radiance260.0, gain40.0, full_well65535, target_fill0.7 ) print(f建议积分时间比例: {t_ratio:.4f})这段代码的逻辑是先用满阱除以增益得到探测器能承受的最大辐亮度再把月球峰值辐亮度按最大云辐射亮度的 1.2 倍保守估计最后用目标填充比例反推出积分时间该取基准值的多少倍。参数里target_fill是关键取 0.7 是留 30% 余量防止月面局部过曝gain要换成该波段实际在轨增益不能直接用实验室值。如果算出来的比例小于 1说明基准积分时间已经偏长需要缩短。2.3 波段表与 SNR 的工程取舍把 12 个波段的 SNR 排开看可见光段普遍在 1000 以上近红外掉到 788 甚至更低。这个梯度是有意为之。海洋水色反演对可见光的信噪比要求极高因为叶绿素浓度变化引起的反射率差异很小SNR 不够就淹在噪声里。近红外主要做大气校正和悬浮物对绝对精度要求松一些SNR 低一点可以接受。工程上要留意的是月球定标的精度直接受 SNR 限制。月球盘在 GOCI-II 视场里只占一部分像素积分出来的辐照度是盘内所有像素求和求和过程会平均掉一部分随机噪声等效 SNR 比单像素高。但如果某个波段单像素 SNR 只有 788求和后提升有限算出来的月球辐照度比值就会有明显抖动。所以做长期衰减监测时近红外波段的比值曲线通常比可见光毛糙判读趋势要看滑动平均不能盯单点。波段中心波长带宽名义辐射亮度最大云辐射亮度NEdLSNRB1380 nm20 nm93634.40.093998B2412 nm20 nm1002600.0951050B3443 nm20 nm92.5679.10.0811145B4490 nm20 nm72.2682.10.0591128B5510 nm20 nm64.9665.30.0551180B6555 nm20 nm55.3649.70.0491124B7620 nm20 nm53.3629.50.0481102B8660 nm20 nm328900.0311060B9680 nm10 nm27.1549.30.039914B10709 nm10 nm27.75000.039914B11745 nm20 nm17.7429.80.029903B12865 nm40 nm12343.80.015788这张表是后面所有计算的输入。做月球定标时每个波段都要单独走一遍辐照度积分不能拿一个波段的参数套所有波段。3. 月球成像可行性判据与时间窗口计算3.1 视场约束与月球相位优先级GOCI-II 的视场在东西方向是 ±8.7 度南北方向 ±11.0 度地球圆盘对应 ±8.7 度。月球要能被拍到首先得落进这个视场而且不打算做卫星机动所以只能等月球自己转进来。手册里列了 7 条优先级判据前三条最硬月球在视场内、落在标称运行时段 05:15 到 19:45 KST 之间、月相照明面积超过 50%。月相这条容易被忽略。满月照明 100%但满月前后月球离地球阴影区近地球杂散光风险高。手册把最优相位角范围单独列了一条因为 ROLO 模型相对相位角的不确定度约 1%相位角选得不好参考辐照度本身就不准比值因子再精确也没意义。实操中一般优先选盈凸月到满月之间既保证照明面积够大又避开满月当天的杂散光。3.2 用 Python 筛选可观测时间窗口手册给了一张 2019 年逐月推荐月球成像时间表但实际任务里星上其他载荷也在抢时间GOCI-II 每小时只分到 15 到 45 分钟。要快速判断某天某时段能不能拍可以写个筛选脚本把视场、时段、月相、单次连续可观测时长四个条件串起来from datetime import datetime, timedelta # 判断给定时刻月球是否满足 GOCI-II 成像基本条件 # moon_ew_deg: 月球在东西方向相对视场中心的角度 # moon_sn_deg: 月球在南北方向相对视场中心的角度 # obs_time: 观测时刻 # illuminated_fraction: 月面照明比例 0~1 # continuous_min: 当天连续可观测时长, 单位分钟 def check_moon_imaging(moon_ew_deg, moon_sn_deg, obs_time, illuminated_fraction, continuous_min): # 视场约束: EW ±8.7 度, SN ±11.0 度 if abs(moon_ew_deg) 8.7 or abs(moon_sn_deg) 11.0: return False, 月球不在视场内 # 标称运行时段 05:15 ~ 19:45 KST kst_hour obs_time.hour obs_time.minute / 60.0 if kst_hour 5.25 or kst_hour 19.75: return False, 超出标称运行时段 # 月相照明面积需大于 50% if illuminated_fraction 0.5: return False, 月相照明不足 # 单次连续可观测时长不小于 10 分钟 if continuous_min 10: return False, 连续可观测时长不足 return True, 满足成像条件 # 示例: 2019-01-15 07:15 KST ok, msg check_moon_imaging( moon_ew_deg2.3, moon_sn_deg-4.1, obs_timedatetime(2019, 1, 15, 7, 15), illuminated_fraction0.92, continuous_min30 ) print(ok, msg)脚本把手册里的硬约束翻译成了可执行判断。moon_ew_deg和moon_sn_deg需要从星历计算一般用 STK 或 SPICE 库生成illuminated_fraction来自月相计算continuous_min是当天月球在视场内的连续停留时间。四个条件全过才返回 True。实际排任务时还要叠加优先级 4 到 7比如避开地球杂散光区、避开其他载荷占用时段这些可以在脚本外面再包一层调度逻辑。3.3 地球杂散光与 DAMD 相位角约束地球杂散光是月球成像里最隐蔽的干扰。月球盘如果离地球圆盘边缘太近地球反射的太阳光会斜着进视场抬高月球盘外的背景。手册把潜在杂散光区定在地球圆盘外 1 度范围内排任务时月球盘边缘要离这个区足够远。另一条约束来自 DAMD也就是漫射板老化监测装置。DAMD 用来跟踪漫射板本身的衰减而漫射板衰减和月球定标是两条独立的监测线。手册要求月球成像的相位角范围要适合 DAMD 监测因为 ROLO 模型相对相位角的不确定度约 1%相位角选在模型不确定度低的区间DAMD 的参考才稳。实操中一般把相位角控制在 20 到 60 度之间这个区间 ROLO 模型拟合得最好月球盘照明也够。4. ROLO 系数与月球辐照度积分实现4.1 ROLO 模型公式与系数表解读ROLO 模型给出的是盘等效反射率公式里塞了相位角、月面经纬度、太阳月面经度还有几个指数项和余弦项。手册直接给了 GOCI-II 12 个波段的拟合系数从 a0 到 a3、b1 到 b3、d1 到 d3每个波段一套。这些系数是 ROLO 311g 版本针对 GOCI-II 波段响应函数重新拟合的不能拿其他传感器的系数来用。公式里g是绝对相位角θ和φ是 GOCI-II 的月面纬度和经度Φ是太阳的月面经度。指数项d1*exp(-g/p1)和d2*exp(-g/p2)描述的是冲效应也就是相位角接近零时反射率突然抬升的现象。d3*cos((g-p3)/p4)是个周期修正项。系数表里 d1 普遍在 0.34 到 0.39 之间d2 是负的小量d3 更小说明冲效应主要由 d1 主导。4.2 盘等效反射率的 Python 实现把公式和系数表落成代码关键是别把角度单位搞混。ROLO 公式里相位角和经纬度都用弧度系数表里 a1 到 a3 的单位是 rad 的负幂次b1 到 b3 也是。下面这段实现以 412 nm 波段为例import math # ROLO 模型计算盘等效反射率 Ak # 系数来自 GOCI-II 412 nm 波段拟合结果 coeff { a0: -2.34249, a1: -1.74246, a2: 0.420812, a3: -0.21495, b1: 0.03156, b2: 0.013508, b3: -0.00467, d1: 0.365353, d2: -0.05816, d3: 0.000765, p1: 1.0, p2: 1.0, p3: 1.0, p4: 1.0 # 占位, 实际用 ROLO 311g 对应值 } def rolo_reflectance(g, theta, phi, Phi, c): # g: 绝对相位角(rad), theta/phi: GOCI-II 月面纬度/经度(rad) # Phi: 太阳月面经度(rad) ln_ak (c[a0] c[a1]*g c[a2]*g**2 c[a3]*g**3) ln_ak (c[b1]*Phi c[b2]*Phi**3 c[b3]*Phi**5) ln_ak 0.0 # c1*theta c2*phi c3*Phi*theta c4*Phi*phi 项按实际系数补 ln_ak c[d1]*math.exp(-g/c[p1]) ln_ak c[d2]*math.exp(-g/c[p2]) ln_ak c[d3]*math.cos((g - c[p3]) / c[p4]) return math.exp(ln_ak) # 示例: 相位角 30 度 ak rolo_reflectance( gmath.radians(30), thetamath.radians(5), phimath.radians(-10), Phimath.radians(45), ccoeff ) print(f412 nm 盘等效反射率: {ak:.6f})代码里p1到p4我留了占位实际要用 ROLO 311g 给出的对应值不能随便填 1。c1到c4那几项在手册公式里有但系数表没直接列需要从 ROLO 模型文档里取。逻辑上先算对数反射率再取指数是为了避免中间量溢出。参数g用弧度如果星历给的是度先转弧度再传进来。4.3 积分月球参考辐照度的计算拿到盘等效反射率后要结合太阳参考光谱辐照度和 GOCI-II 光谱响应函数做积分得到参考月球辐照度。手册给的公式是先对太阳辐照度乘反射率乘光谱响应做积分再除以光谱响应积分最后乘月球立体角。立体角 ΩM 是 6.4177e-5 sr这个值固定。import numpy as np # 积分月球参考辐照度 # esun: 太阳参考光谱辐照度数组, W/m2/um # refl: 对应波长的盘等效反射率数组 # resp: GOCI-II 光谱响应函数数组 # wl: 波长数组, um # omega_m: 月球立体角, sr def integrated_lunar_irradiance(esun, refl, resp, wl, omega_m6.4177e-5): numerator np.trapz(esun * refl * resp, wl) denominator np.trapz(resp, wl) return (omega_m / np.pi) * (numerator / denominator) # 假设已加载 412 nm 波段的响应函数和太阳光谱 # wl, esun, resp, refl 均为同长度数组 i_rolo_ref integrated_lunar_irradiance(esun, refl, resp, wl) print(f参考月球辐照度: {i_rolo_ref:.6e} W/m2/um)np.trapz做梯形积分波长分辨率越高结果越稳一般用 0.1 nm 步长。refl是上一步算出的盘等效反射率如果相位角在成像期间变化要对每个时刻单独算再插值。分母是光谱响应积分起归一化作用。算出来的i_rolo_ref再乘距离校正因子 CDIS就得到距离校正后的参考辐照度和 GOCI-II 实测辐照度相除就是比值因子。5. 过采样校正与月球比值因子的落地技巧5.1 步进凝视成像下的过采样来源GOCI-II 用二维 CMOS 做步进凝视成像不需要扫描速率校正但月球和卫星在积分时间内都在动会带来空间过采样。手册给的数据很具体积分时间 1 秒时月球移动约 10 个像素4.5 秒时最坏约 50 个像素单像素视场约 7 微弧度。这意味着月球盘在图像里被拉长盘内像素求和得到的辐照度会偏大必须校正。校正思路是用月球实际角直径和图像里测到的角直径做比较。公式里YMoon(t)是图像里月球的角尺寸DMSat(t)是月地距离3476.4 km 是月球直径。CSAM(t)就是校正因子等于实际角直径除以图像角直径的反正切。实操中先对月球图像做阈值分割提取盘边缘拟合圆得到像素半径再乘单像素视场得到图像角尺寸。5.2 月球辐照度求和与比值因子计算过采样校正后把盘内所有像素的辐亮度乘各自立体角求和得到 GOCI-II 实测月球辐照度。立体角按GSD/35786 km的平方算GSD 是星下点地面采样距离小于 250 米。如果要做逐像素立体角得按像素在视场里的位置单独算因为地球同步轨道上边缘像素的立体角和中像素不一样。import numpy as np # 计算 GOCI-II 实测月球辐照度 # l_moon: 过采样校正后的盘内像素辐亮度数组, W/m2/um/sr # gsd_km: 星下点地面采样距离, km # altitude_km: 卫星轨道高度, km def goci2_lunar_irradiance(l_moon, gsd_km0.25, altitude_km35786.0): # 单像素立体角, 球面度 omega_pixel (gsd_km / altitude_km) ** 2 # 盘内像素辐亮度乘立体角求和 return np.sum(l_moon * omega_pixel) i_gc2 goci2_lunar_irradiance(l_moon) # 比值因子 实测辐照度 / 参考辐照度 r_moon i_gc2 / i_rolo_ref print(f月球辐照度比值因子: {r_moon:.6f})omega_pixel用星下点 GSD 和轨道高度算是个近似值。如果月球盘偏离星下点较远要按实际像素位置修正。r_moon就是长期监测的核心指标它随时间的变化反映仪器衰减。手册里还定义了月球老化因子是参考辐照度除以实测辐照度和比值因子互为倒数用哪个看团队习惯关键是长期序列里保持一致。5.3 长期衰减监测的判读要点比值因子序列做出来之后判读有几个坑。第一近红外波段 SNR 低单次比值抖动大必须做滑动平均窗口一般取 5 到 7 次观测。第二不同相位角的观测不能直接混在一起比ROLO 模型在相位角两端不确定度大最好把相位角限制在 20 到 60 度再入序列。第三过采样校正如果没做比值会随积分时间漂看起来像仪器衰减其实是几何效应。注意比值因子出现阶跃式下降时先查是不是换了积分时间或增益再查是不是过采样校正参数变了最后才怀疑仪器衰减。阶跃和缓降的成因完全不同。把波段表、ROLO 系数、过采样校正和比值因子串起来GOCI-II 的月球定标链路就完整了。波段参数决定动态范围和 SNR月球成像判据决定什么时候能拍ROLO 系数决定参考辐照度过采样校正决定实测辐照度准不准最后比值因子才是能拿去做长期趋势的那条曲线。每一步的误差都会往下传所以波段表里那些看着枯燥的辐射量其实是整条链路的起点。本文还有配套的精品资源点击获取
