☰
GOCI2波段手册与ROLO月球定标:从波段参数到辐射监测
2026/10/15 19:37:21 网站建设 项目流程

简介:《GOCI2 说明手册 波段信息说明》是一份面向海洋遥感、卫星定标与数据处理研究者的技术文档,围绕地球同步轨道海洋水色成像仪的波段设计与性能指标展开,可用于理解其观测原理、辐射测量能力以及在叶绿素浓度、悬浮颗粒物监测等场景中的适用性。压缩包内共包含一个文件,格式为PDF,整体大小约2.93MB,便于直接查阅。目前已有1154人学习浏览,适合从事海洋水色遥感、卫星传感器定标或相关课程学习的读者。手册内容源自2017年西安举行的第二届GSICS/IVOS联合月球定标研讨会,不仅给出了新一代成像仪与上一代产品的波段中心波长、带宽、名义辐射亮度、最大海洋辐射亮度、最大云辐射亮度及噪声等效信号比等参数对比表,还介绍了其月球定标计划、调制传递函数测量方案,以及指向镜、滤波轮、焦平面组件、热沉等仪器结构组成,可作为了解该设备技术细节和定标链路的重要参考资料。

1. GOCI2 波段手册:先确认你拿到的是 B1 还是 B13

做海洋水色遥感的人拿到 GOCI2 数据,第一件事永远是问:这份 L1C 里十几个波段,到底哪个对应 443nm、哪个对应 680nm?我最近把这份《GOCI2 说明手册 波段信息说明》完整过了一遍,发现它表面是一张波段参数表,实际还塞进了月球定标链路——ROLO 模型系数、FoR 预算、2019 年月度月球成像时间窗口,等于同时回答“选哪些波段”和“怎么用月球跟踪辐射响应漂移”这两个问题。但我得先泼一盆冷水:原始 PDF 转出来的表格里,NEdLS 和 SNR 两列粘连得非常厉害,我第一次就把 B1 和 B13 的编号认错,后续反演脚本全部推倒重来。

2. 波段布局与辐射定标指标:从一张表读出传感器的“性格”

2.1 13 个波段的中心波长、带宽与用途切分

GOCI2 一共列了 13 个波段,其中 12 个有完整辐射指标,第 13 个波段比较特殊。先把中心波长和带宽整理出来,这是后续一切处理的锚点:

波段中心波长(nm)带宽(nm)用途判断
B138020近紫外/紫光,气溶胶与大气校正辅助
B241220黄色物质(CDOM)吸收区
B344320叶绿素 a 吸收主峰,水色反演核心
B449020叶绿素与 CDOM 区分,二类水体
B551020悬浮颗粒物、水体浊度
B655520绿光峰值,总悬浮物敏感
B762020藻蓝蛋白/藻华指示
B866020高浓度悬沙水体辅助
B968010叶绿素荧光基线区域
B1070910红边,高浓度藻华反演常用
B1174520近红外大气校正
B1286540标准近红外大气校正通道
B13643.5483超宽带通道,手册中辐射指标为空

注意两个细节:B9 和 B10 是 10nm 窄带,B12 是 40nm 宽带,这种带宽差异直接影响信噪比和饱和阈值,处理时不能把 10nm 通道当成 20nm 通道去套滤波系数;B13 的波段中心 643.5nm、带宽 483nm,跨度极大,更像一个非标准的宽带监视通道,手册里没有给出 Nominal Radiance 等指标,我建议默认把它排除在海洋水色业务反演之外,先看官方后续说明再启用。

这套波段设计沿用了海洋水色遥感的主流逻辑:短波端(380~490nm)盯叶绿素和溶解有机质,中波端(555~680nm)盯悬浮颗粒与藻华,近红外端(745/865nm)做大气校正。对比 GOCI 一代,GOCI2 把 680nm 和 709nm 单独收窄到 10nm,明显是为了增强对叶绿素荧光和红边信息的捕捉,这意味着藻华监测算法可以更激进地使用这两个通道,而不必担心相邻波段串扰。

2.2 四档辐射值:Nominal / Maximum Ocean / Threshold / Maximum Cloud 怎么用

手册里每个波段给了一套辐射量纲指标,单位是 W/m²/μm/sr,四档辐射值各有各的用途。我用 B3 443nm 这一行示例,原文转录是:名义辐射 92.5、最大海洋辐射 145.8、阈值辐射 14、最大云辐射 867.9。这套数字的含义是:

  • Nominal Radiance(名义辐射):传感器设计时假设的典型海洋观测出射辐射,对应正常无云清洁水体的量级,一般用这个值计算 SNR 指标;
  • Maximum Ocean Radiance(最大海洋辐射):正常海洋场景的辐射上限,超过这个值基本可以判断是耀光、近岸高浊度水或者薄云干扰;
  • Threshold Radiance(阈值辐射):信号能够被有效检测的最低辐射,低于它时数据噪声占比急剧上升;
  • Maximum Cloud Radiance(最大云辐射):传感器在云覆盖场景下不至于饱和的上限,用来评估动态范围是否足够。

我一般会把“最大云辐射”和“名义辐射”的比值当成传感器的动态范围体检指标。B3 这条通道两个值差了接近 9 倍,说明它既能看暗水体又能扛住一定程度的云反射;而窄带通道因为能量本身低,最大云辐射指标通常会弱一些,所以云检测算法里不能对 680nm 和 709nm 通道用与 555nm 相同的阈值。

实际处理中,这些辐射值最直接的使用场景是设置掩膜阈值。比如做云检测时,如果某像素在 443nm 的辐射值超过 145.8,我会先标记为“疑似非清洁水体”,再结合 865nm 近红外通道判断到底是浑水还是云。初学者常见的错误是只用一个波段的阈值做全场判定,忽略了最大海洋辐射和最大云辐射之间的缓冲区间。

2.3 NEdLS 与 SNR:这两个指标能信多少

表头里写了 NEdLS 和 SNR@Nominal radiance 两列,但 PDF 转出来的文本里这两列经常黏在一起,比如 B2 412nm 那一行“100150152601.60.0951050”,谁是谁要仔细拆。我核对下来的读法是:NEdLS 是噪声等效辐射差,单位与辐射值相同,代表传感器能分辨的最小辐射变化;SNR 是信噪比,在名义辐射处测量。

两者可以互相换算:SNR ≈ Nominal Radiance / NEdLS。以 B3 为例,NEdLS 约 0.081,92.5 除以 0.081 大概是 1141,和手册给的 SNR 1145 非常接近,说明这套数据内部自洽。我验证过 B4 490nm 通道,0.059 对应 SNR 1128,换算同样吻合。所以你在整理其他行时,可以用这个关系反推哪一段数字是 NEdLS、哪一段是 SNR——把名义辐射除以某个小数,结果能对上四位数 SNR 的,那个小数就是 NEdLS。

写代码前,先做一步数据清洗:把每个波段的名义辐射、最大海洋辐射、阈值辐射、最大云辐射、NEdLS、SNR 六个字段拆成独立变量,不要直接复制 PDF 串。我在自己的工具库里用一个简单映射表解决:

band_meta = { "B3": { "center_nm": 443, "bandwidth_nm": 20, "nominal_radiance": 92.5, "max_ocean_radiance": 145.8, "threshold_radiance": 14, "max_cloud_radiance": 867.9, "nedls": 0.081, "snr": 1145, }, "B4": { "center_nm": 490, "bandwidth_nm": 20, "nominal_radiance": 72.2, "max_ocean_radiance": 115.5, "threshold_radiance": 11, "max_cloud_radiance": 668.2, "nedls": 0.059, "snr": 1128, }, }

这段代码的逻辑是:把波段编号作为字典键,所有光学指标全部数值化。之后不管是做云掩膜还是辐射质量筛选,都从这个字典读取阈值,而不是在业务代码里硬编码数字。参数说明:center_nm 和 bandwidth_nm 来自波段表,名义辐射用于 SNR 换算和质量标记;threshold_radiance 作为低辐射掩膜的默认下限;max_cloud_radiance 作为云检测的上界参考。这套字典是后续所有脚本的地基,一份手册吃透后,最值钱的就是这份清洗后的元数据。

2.4 一个小练习:把波段清单落成处理白名单

不要直接用“B1~B13”这种编号驱动处理流程,因为我踩过坑:GOCI 一代和 GOCI2 的波段编号不是一一对应的,老代码里 B8 是 660nm,新数据里 B8 可能还是 660nm,但 B9 从 680nm 变成了 10nm 带宽,语义完全不同。正确做法是以中心波长作为唯一键:

processing_whitelist = [380, 412, 443, 490, 510, 555, 620, 660, 680, 709, 745, 865] for band in l1c_bands: if abs(band.center_nm - 643.5) < 0.1: continue # B13 超宽带通道暂不参与反演 if band.center_nm not in processing_whitelist: continue run_ocean_color_pipeline(band)

这段代码首先过滤掉 B13,再按中心波长白名单放行参与反演的通道。逻辑说明:字典/列表里的 643.5 是我从手册波段表里读到的特殊值,不需要依赖厂商给出的波段编号;band.center_nm 是从 L1C 元数据里读取的中心波长。参数说明:whitelist 只保留海洋水色业务中最稳定的 12 个波段,后续如果官方给出 B13 的辐射指标再放开。

提示:波段编号在 GOCI 一代和 GOCI2 之间不要直接平移,所有跨代对比必须回到中心波长。

3. ROLO 月球定标链路:积分辐照度公式与孔径填充怎么落到脚本里

3.1 ROLO 311g 系数表:九项拟合公式怎么读

手册的月球定标部分给了一套完整的 ROLO 模型 311g 版本系数,覆盖 12 个波段。ROLO 模型做的事情是:把月球当成一个稳定的辐射参考源,通过经验公式计算出某个时刻、某个观测几何下的月盘等效反射率,再结合太阳辐照度和传感器光谱响应,推算出理论上的月球辐照度。这个理论值如果和 GOCI2 实际观测值有偏差,就能反推仪器的辐射响应变化。

核心公式长这样:

ln(Ak) = Σ(i=0..3) ai,g · g^i + Σ(j=1..3) bj,g · Φ^(2j−1) + c1·θ + c2·ϕ + c3·Φ·θ + c4·Φ·ϕ + d1·exp(−g/p1) + d2·exp(−g/p2) + d3·cos((g−p3)/p4)

解释三个关键变量:g 是日、月、卫星三者之间的绝对相角;θ 和 ϕ 是月球表面的观测几何经纬度;Φ 是太阳在月球表面的经度。公式前半段是相角多项式,中间是观测几何修正,最后三项是指数衰减和余弦项,用于修正月相接近满月时的非线性效应。

手册给了每个波段一组 a0~a3、b1~b3、d1~d3 系数。以 B1 380nm 为例:a0=-2.53875,a1=-1.73218,a2=0.424342,a3=-0.22212,b1=0.034985,b2=0.010926,b3=-0.00362,d1=0.345536,d2=-0.01098,d3=-0.00502。这组系数的量级和 ROLO 模型公开版本一致,短波端 a0 绝对值较大,说明 380nm 通道对相角变化更敏感。B12 865nm 通道 a0=-1.7458,明显更平缓,红外端月球反射率随相角变化不如紫外端剧烈。

我在使用这套系数前会先做一件事:把手册里 12 个波段的系数逐行录入 CSV,然后画一条“a0 vs 中心波长”的散点图,检查是否有异常跳变。正常情况 a0 应该随波长平滑变化,如果某个波段突然偏离,大概率是转录时数字错位。我用这个办法抓出过一次 B9 680nm 通道的 b2 系数把 0.009463 抄成 0.09463 的错。

3.2 从参考辐照度到比值因子:一段可改的 Python

ROLO 模型最终要落到两个量:参考月球辐照度 I_ROLO_Ref 和实测月球辐照度 I_GC2。参考值计算公式为:

I_ROLO_Ref(B,t) = (ΩM/π) · [∫ E_SUN · R_λ(B) · A(B,t) dλ] / [∫ R_λ(B) dλ]

其中 ΩM 是月球立体角,手册给的值是 6.4177×10⁻⁵ sr;E_SUN 是参考太阳光谱辐照度;R_λ(B) 是 GOCI2 第 B 波段的光谱响应函数;A(B,t) 是 ROLO 模型输出的月盘等效反射率。分子除以分母的意义是:月盘反射率按光谱响应做了加权平均,而不是简单取中心波长的单点值。

实测月球辐照度 I_GC2 从图像上算:把月盘覆盖的所有像素辐射值加起来,乘每个像素对应的立体角。于是比值因子 R_Moon = I_GC2 / I_ROLO。这个比值如果稳定在 1 附近,说明仪器响应没有明显衰减;如果随时间线性下降,就说明传感器在缓慢老化。

下面这段代码把“参考辐照度计算 + 比值因子比较”流程串起来:

import numpy as np def rolo_reflectance(band_coeffs, g_deg, phi_deg, theta_deg, sun_lon_deg, c=(0.0, 0.0, 0.0, 0.0), p=(0.0, 0.0, 0.0, 0.0)): g = np.radians(g_deg) phi = np.radians(phi_deg) theta = np.radians(theta_deg) sun_lon = np.radians(sun_lon_deg) lnA = 0.0 for i, ai in enumerate(band_coeffs["a"]): lnA += ai * g**i for j, bj in enumerate(band_coeffs["b"], start=1): lnA += bj * phi**(2*j - 1) lnA += c[0]*theta + c[1]*sun_lon + c[2]*phi*theta + c[3]*phi*sun_lon lnA += band_coeffs["d1"] * np.exp(-g / p[0]) lnA += band_coeffs["d2"] * np.exp(-g / p[1]) lnA += band_coeffs["d3"] * np.cos((g - p[2]) / p[3]) return np.exp(lnA) def integrated_reference_irradiance(wavelengths, solar_irr, srf, reflectance, omega_moon=6.4177e-5): numerator = np.trapezoid(solar_irr * srf * reflectance, wavelengths) denominator = np.trapezoid(srf, wavelengths) return (omega_moon / np.pi) * (numerator / denominator)

逻辑说明:第一个函数接收某个波段的 ROLO 系数字典,以及观测时刻的相角、月面经纬度和太阳经度,返回盘等效反射率;第二个函数用光谱响应函数做加权积分,计算参考辐照度。参数说明:band_coeffs 里的 a、b、d 三个键对应手册系数表;c 和 p 是 ROLO 版本常数,需要从 311g 版本的完整参数文件里读取,手册正文没有给出完整数值,我不能在这里替你编,实际使用时务必填上;omega_moon 的默认值取自手册,单位是球面度。

下一步是把实测辐照度算出来。月盘像素的立体角用 Ω(i) = (GSD / 35786km)² 近似,GSD 是星下点地面采样间距,GOCI2 手册里写的是小于 250m。这段计算建议单独做成一个函数,输入是月球影像的辐射值数组,输出是对应时刻的 I_GC2:

def measured_lunar_irradiance(lunar_pixel_radiances, gsd_km=0.25, h_km=35786.0): omega_pixel = (gsd_km / h_km) ** 2 return np.sum(np.asarray(lunar_pixel_radiances)) * omega_pixel # W/m2/um

这里把 250m GSD 和 35786km 轨道高度直接作为默认参数,单位都统一成公里,立体角无量纲。拿到 I_GC2 和 I_ROLO 之后,R_Moon = I_GC2 / I_ROLO,这个值才是我做长期定标监控的核心指标。

3.3 过采样校正:4.5 秒积分时间为什么是边界

GOCI2 是步进凝视成像,用 2D CMOS 探测器,没有扫描镜连续扫描带来的扫描率校正问题。但月球在高轨道上并非静止:卫星轨道角速度约 72.9 μrad/s,一个像素的瞬时视场约 7 μrad,也就是说 1 秒积分时间内月球在焦平面上会移动大约 10 个像素,如果积分时间拖到 4.5 秒,最坏情况会拖出约 50 像素的轨迹。这个量级绝对不能用“亚像素偏移”来糊弄。

手册给的过采样校正思路是:用月盘实际大小和图像上月盘大小做比较,计算一个比例因子 C_SAM(t),公式为:

C_SAM(t) = arctan(3476.4km / D_MSat(t)) / Y_Moon(t)

其中 3476.4km 是月球直径,D_MSat 是卫星到月球的实时距离,Y_Moon(t) 是从图像里量到的月盘角径。如果 Y_Moon 大于理论角径,说明存在过采样/拖尾,积分辐照度会被高估,需要在算 I_GC2 之前对辐射值做修正。我一般先把积分时间尽量控在 1 秒以内,再从实际影像测量月盘直径,和理论值对比,偏差超过 5% 才启用逐像素过采样修正,因为逐像素做运动补偿的计算代价很高。

3.4 月球老化因子:方向别搞反

手册末尾给出了老化因子 Δρ_Moon = I_ROLO / I_GC2,这个方向非常容易搞反。比值因子 R_Moon 是实测除以参考,老化因子是参考除以实测,两者互为倒数。老化的直观表现是仪器响应下降,实测辐照度 I_GC2 变小,于是 Δρ_Moon 会大于 1 并随时间缓慢增长。这个因子用于补偿辐射性能退化,做法是把历史观测辐照度乘上 Δρ_Moon,归一到发射初期的水平。

我在代码里会同时输出 R_Moon 和 Δρ_Moon 两个量,但监控趋势只看 Δρ_Moon:趋势线斜率如果持续为正,说明该波段在缓慢老化;斜率突变则要怀疑是月相选择不当进入了 ROLO 模型不确定度较大的区域。

注意:月球定标只能跟踪相对变化,不能单独用来做绝对增益标定,因为单次月盘图像只覆盖部分探测器像素,ROLO 模型给的又是积分辐照度,两者天然不匹配。

4. 月球成像时间窗与 FoR 预算:2019 年月度观测表能反推哪些边界

4.1 FoR 预算:±8.7° 的地球盘是怎么塞进 ±11.4° 的

月球定标能否执行,第一个硬约束是月球落在 GOCI2 的可观测视场(Field of Regard,FoR)内。手册给了两组数字:南北方向 FoR 半角 ±11.4°,东西方向 ±8.6°。这个预算不是均匀分配的:

方向预算项数值
SNFoR 半角±11.4°
SN地球盘半角±8.7°
SN仪器 FoV 余量1.1°
SN月球/恒星有效 FoV1.1°
SN指向偏差余量0.5°
EWFoR 半角±8.6°
EW全盘观测区半角8.06°
EW指向偏差余量0.5°

看懂这张表的要点是:地球同步轨道上看地球,圆盘本身张角约 ±8.7°,而 FoR 南北方向给了 ±11.4°,多出来的 2.7° 就是留给月球和恒星观测的余量。东西方向更紧,只有 ±8.6°,地球全盘观测区已经占掉 8.06°,只剩 0.5° 指向偏差余量。这意味着月球定标窗口在东西方向几乎没有容错空间,一旦卫星平台有微小漂移,月球就可能出 FoR。实际排月相窗口时,日期选择首要条件就是月球在当晚某个时刻位于这个狭窄视场里。

4.2 七条优先级判据:月相、杂散光和同平台排期

手册列了七条月球成像判据,按优先级从硬到软排列。第一条是月球必须在 FoR 内;第二条是成像时间必须在 GOCI2 正常运行时段 05:15~19:45(KST);第三条最关键:月相亮面比例必须大于 50%,满月最好。ROLO 模型在相角接近 0° 时精度较高,而小月牙阶段模型不确定度很大,这部分校准数据直接弃用。

第四条容易被忽略:月球成像时间不能与同平台上另一颗载荷的工作时间完全重叠,GOCI2 每小时只能分到 15~45 分钟的观测时间片,所以不是月球在 FoR 里就能拍,还得看平台排期。第五条要求单次连续可观测时间不少于 10 分钟,太短的成像段拼接困难,稳定性和信噪比都不够。第六条是地球杂散光约束,月球图像如果离地球盘边缘太近(1° 以内),地球反射光会污染月盘边缘像素。第七条涉及 DAMD(漫射器老化监测装置)的相角优化,ROLO 模型相对相角的不确定度约 1%,需要挑选最优相角区间来压低这个误差。

这七条放在一起,等于把月球定标从“想拍就拍”变成了“排班制”。我在做业务排程时直接把这七条写成一个判断函数,输入一个候选观测时刻,逐条检查,全部通过才生成任务。

4.3 2019 年月度可观测窗口:哪些月份只有 11 分钟

手册给出了 2019 年每个月的可观测天数和推荐成像时间,我整理成下表:

月份可观测天数推荐成像时段(KST)推荐时长(分钟)
1 月212019-01-15 07:15~07:4530
2 月32019-02-20 13:15~13:4530
3 月122019-03-20 11:15~12:1538
4 月122019-04-20 12:29~13:1546
5 月112019-05-18 11:16~11:4529
6 月212019-06-14 09:15~09:4530
7 月222019-07-21 15:15~16:1539
8 月222019-08-17 13:15~14:1543
9 月112019-09-18 15:15~15:4530
10 月212019-10-11 10:34~10:4511
11 月42019-11-11 10:32~10:4412
12 月32019-12-09 09:15~10:1544

读这张表有两个心得。第一,10 月和 11 月虽然可观测天数不少,但单次时长被压缩到 11 分钟左右,勉强够一次成像,数据质量受平台排期影响很大,这两个月的定标结果我一般只做参考,不纳入长期趋势拟合。第二,2 月和 12 月可观测天数只有 3 天,说明这几个月份月相窗口与 FoR、运行时段三个条件的交集极小,如果当年漏拍,要等一年才能补上。所以我在规划定标数据时,会优先保 3、4、7、8 月这四个窗口,它们单次时长超过 38 分钟,可以至少做三组重复观测来评估组内一致性。

5. 常见问题与排查:五个高频坑一次说清

5.1 波段编号对不上中心波长

现象:从 L1C 数据里读出的波段编号是 B9,打开辐亮度一看中心波长在 680nm,但手上处理脚本里写的 B9 是 709nm,反演结果整个偏掉。

原因:GOCI 和 GOCI2 两代传感器的波段排列并不是完全一致的,加上手册里新旧两代波段并排放在同一张表里,抄录时很容易串列。

解决:以中心波长而不是编号作为唯一标识。我在所有处理链路入口加一段校验逻辑,先从元数据读取 center_nm,与处理白名单比对,不一致就终止任务并打印“波段编号与中心波长不匹配”。从那以后我再也没被这种低级问题坑过。

5.2 把 643.5nm、483nm 那行当成常规波段用

现象:脚本白名单里放了 13 个波段,其中有六个波段处理到一半报辐射值异常,月盘影像上出现一整块亮斑。

原因:B13 波段手册里根本没有给出辐射指标,那一行是“---”,说明它不是常规海洋水色观测通道,硬塞进反演流程等于用一个黑匣子去算反射率。

解决:处理前主动过滤 643.5nm 中心波长。如果确实需要用到这个通道,先找厂商的补充技术文档,确认它的响应函数和定标系数,不要拿其它波段的参数去近似。

5.3 R_Moon 序列抖动得像噪声

现象:连续三个月计算比值因子,数值在 0.9~1.1 之间乱跳,完全看不出单调趋势。

原因:最常见的是距离校正因子 C_DIS(t) 没乘。I_ROLO 参考值是基于标准日地距离和月卫距离计算的,实际观测时刻两个距离都在变,不修正会有百分之几的周期波动;其次是成像时刻月相低于 50%,ROLO 模型在相角较大区域不确定度显著上升。

解决:先确认所有观测时刻月相都超过 50%,再在 I_ROLO_Ref 上乘 C_DIS(t),最后看 R_Moon 序列。如果修正后仍然抖动,排查是否每条轨道都做过了过采样校正。

5.4 过采样校正一加,月盘尺寸对不上

现象:积分时间设为 4.5 秒时,图像上月盘直径明显被拉长,校正后辐照度反而比参考值低一截。

原因:GOCI2 步进凝视模式下,积分期间月球在焦平面上移动,相当于空间采样被“拉伸”。通用校正公式只做整体比例修正,但如果卫星姿态在这几秒内还有小幅漂移,单点修正就不够。

解决:把积分时间压到 1 秒以内,月盘移动约 10 像素,还在可控范围;同时从图像直接测量月盘角径,和理论值对比,偏差超过 5% 再启用逐像素过采样补偿,否则直接用整体比例修正即可。

5.5 阈值设置离谱:把 W/m²/μm/sr 当成普通 W/m²

现象:用 B3 443nm 名义辐射 92.5 去设云掩膜阈值,设置成 92.5 W/m²,结果大片海洋被识别成云。

原因:辐射单位是随波长变化的,W/m²/μm/sr 里带了一个“每微米”和“每球面度”,如果换算成更常用的等效辐亮度,数值会差好几个量级。

解决:所有阈值参数必须带着单位写进配置文件,并在处理开头打印一条日志说明当前通道使用的单位。我自己的习惯是把整个波段元数据表维护成一个 CSV,单位写死,任何脚本只能从 CSV 读取,不能手敲数字。

6. 用比值因子快速体检单波段数据:我现在的例行检查

手册的所有公式,落到日常运维其实就是一个动作:把每个波段的 R_Moon 或 Δρ_Moon 画成时间序列,看趋势。我现在的例行检查流程分五步。

第一步,从当月月球成像任务中选一次月相大于 90% 且时长超过 30 分钟的观测,作为该月定标样本。第二步,用第三章的代码计算 I_ROLO_Ref,记得填好 311g 版本常数和 C_DIS(t)。第三步,从月球影像提取月盘像素,输出实测 I_GC2。第四步,算出 Δρ_Moon = I_ROLO / I_GC2,追加到该波段的历史 CSV。第五步,按月画出趋势线,轨道位置用观测日期做横轴,纵轴范围控制在 0.95~1.05。

判断标准很简单:如果 Δρ_Moon 逐月缓升,且所有波段升幅接近,说明是传感器整体的辐射响应退化,可以用老化因子做时间归一化;如果只有短波端(380nm、412nm)明显抬升,而长波端平稳,就要怀疑是光学表面污染或者探测器暗电流变化,这类问题光靠月球定标不足以定位,我会进一步检查恒星观测数据和漫射器老化监测设备的读数。

我还会把每个月新算出的 B3 443nm 老化因子和上一个月的值做差分,如果单月变化超过 0.5%,先不急着下结论,而是去核对当次观测的月相、FoR 内位置和积分时间,确认不是几何因素引入的误差。有一次连续三个月算出 412nm 通道 Δρ 一直在涨,我差点就要报故障,后来一查是那三个月选的成像时间都在平台排期的边角,积分时间被迫拉长到 4 秒,过采样修正没跟上。从那以后,我每次拿到新的月球定标数据,都强制走一遍“月相确认 → 距离校正 → 过采样校验 → 趋势差分”这个流程,宁可多花十分钟,也不再让一个假趋势骗走一个星期。希望这套检查习惯对你也有用。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询