做光学测量这几年,我越来越发现“光谱”这玩意儿,确实是个越挖越深的东西。很多人一开始只知道光谱是一个曲线,但真正要用起来,会发现有三个维度必须看清楚:一是光谱分布(曲线长什么样),二是光谱辐射通量密度(每个波长上到底带着多少功率),三是在自然光场景下绕不开的——不同时间段光谱会怎么漂移。这篇就借我做过的一次自然光实测项目,把这三件事串起来讲透。
这篇内容适合谁看呢?如果你在做植物补光设计、光伏电站评估、摄影灯光匹配,或者单纯想搞明白为什么早晨的光和正午的光颜色不一样,那这篇正好。我会把光谱辐射通量密度的定义、计算、仪器选型、实测步骤、数据处理,以及一天中不同时间段光谱变化的规律,全部用大白话配实操记录讲清楚。保证不是教科书式的概念罗列,而是能直接拿去用的那种。
1. 项目设计:为什么要把“光谱”拆成三个维度
先说清楚我为什么要把这件事拆成“分布”“密度”“时间”三个词来聊。很多人测光,拿个照度计测个lux数就觉得完事了,但lux只是人眼感知的亮度,根本没法告诉你这束光里红蓝光的比例是多少、紫外段有没有成分、光子数量够不够。要想把光“看透”,必须从光谱入手。
1.1 光谱分布:一支笔画出光源的“指纹”
光谱分布,准确叫法是相对光谱功率分布(Relative Spectral Power Distribution, RSPD),描述的是光源在每一个波长上所辐射的能量相对大小。你可以把横轴当成波长(纳米),纵轴当成相对强度,连成一条曲线,这条曲线就是光源的“指纹”。
不同光源的指纹差异极大。白炽灯是连续光谱,从红到紫一条平滑上升的曲线;荧光灯在连续背景上叠了好几根尖峰,那是汞蒸气放电的特征线;LED则是中间凸起一个峰,光谱半宽只有几十纳米。所以做照明、做显示、做农业光环境,第一步永远是测光谱分布,先看形状对不对,再谈具体数值够不够。
实操中我最常被问到的一个问题是:用分光辐射计测出来的相对强度能不能直接拿来比较?答案是不能。相对光谱曲线只反映形状,它把所有波长按峰值做了归一化,数值在0到1之间,可以看趋势,但没法回答“这个波段的能量绝对值是多少”。所以还需要第二维——光谱辐射通量密度。
1.2 光谱辐射通量密度:从“形状”到“数量”
光谱辐射通量密度的专业定义是:单位面积上、单位波长间隔内的辐射功率。它的符号是E(λ),单位是W·m⁻²·nm⁻¹。读起来绕,但其实特别好理解——你把光谱曲线想象成一条公路,横轴是位置(波长),曲线高度就是这条路上每米堆的货量。光谱辐射通量密度就是告诉你,在某个具体波长那个“点”上,单位时间和单位面积内通过了多少能量。
这里就引出一个关键区别:相对光谱分布只告诉你比例,光谱辐射通量密度告诉你绝对值。比如两个光源的相对光谱曲线形状完全一样,但一个功率高一个功率低,那它们的实际辐射通量密度就差了好几倍。在光伏、植物光照、光化学这些对能量敏感的领域,只看相对曲线是要误事的。
从光谱辐射通量密度出发,还能积分出很多有用的量。对整个波长范围积分,得到的就是总辐照度,单位W/m²;如果只对400到700nm积分,就是光合有效辐射(PAR)的能量通量;对280到400nm积分,就是紫外辐照度。这些量都是植物补光、材料老化测试里的硬指标。
1.3 时间维度:太阳光谱不是一个固定值
第三个维度是时间。太阳常数为1361W/m²,听起来像是个稳定值,但那是大气层外的数据。阳光穿过大气层到达地面,要经历吸收、散射、反射一系列“加工”,而大气的加工能力与太阳高度角直接相关。太阳高度角低时,光穿过大气的路径更长,被散射和吸收得也更厉害。
这也是为什么晴天正午和傍晚肉眼看到的阳光颜色明显不一样——正午偏白偏蓝,傍晚偏红偏黄。光是颜色变化就够影响摄影摄像了,更别说光伏发电、温室大棚这类对光谱敏感的行业,不同时间段的光谱差异能直接影响系统效率和作物生长。所以要做自然光相关的项目,测量一天中不同时间段的光谱分布变化,几乎是个必修课。
2. 测量方案与硬件选型:设备怎么选才不踩坑
光靠脑袋想没用,得动手测。先讲我当时是怎么选设备和搭方案的,这部分内容对准备自己搭光谱测量系统的朋友特别有用。
2.1 光谱仪选型:分辨率、量程与动态范围怎么权衡
光谱仪是核心设备。市面上的光谱仪从几百到几十万都有,关键看三个参数:波段范围、分辨率、动态范围。
- 波段范围:测太阳光,波长覆盖最好从300nm到1100nm起步,因为自然光里既包含紫外(280-400nm),也包含近红外(750-1100nm)。如果只测可见光(400-700nm),那很多场景就不够用。
- 分辨率:取决于光栅刻线和狭缝宽度。测连续光谱的太阳光,分辨率2-5nm完全够用;但如果你还想顺手测测汞灯的发射线,那就需要1nm左右了。分辨率越高,往往灵敏度越低,采集时间越长,要平衡。
- 动态范围和灵敏度:太阳光很强,但一早一晚光强差了一个数量级以上,如果仪器动态范围不够,中午可能饱和,傍晚可能信噪比很低。我的做法是优先选带多档增益或者可调积分时间的型号,比如海洋光学的USB系列,或者国产复享的PG2000系列,这类光谱仪在实验室比较常见,价格也可以接受。
提示:如果只是入门,不必一上来就买十几万的科研级设备。一台研究用便携光谱仪加余弦校正器,配合标准灯光源做标定,已经能完成80%的自然光测量任务。
2.2 余弦校正器:这个“小帽子”千万别省
直接拿光纤头对着太阳测,测出来的结果基本没法用。因为光纤的接受角很小,而且对不同入射角的光响应不一致,稍微歪一点,数值就天差地别。解决的办法是加余弦校正器(cosine corrector)。
余弦校正器通常是一个漫透射材料做的圆盘,罩在光纤端面前。它的作用是让探头对各个方向入射的光按余弦响应积分,也就是把探头等效成一个理想的“平面感光元”。这样你把它水平一放,测到的就是单位水平面积接受到的辐照度,正好对应光谱辐射通量密度的定义。
实测经验:装余弦校正器时要注意清洁,表面沾灰或者有指纹,误差能到5%到10%。还有,探头要绝对水平,用一个水平泡是最省事的做法。别小看这个细节,我见过不止一个人因为探头倾斜,测出来的正午辐照度比标准值低了一百多W/m²。
2.3 标定与暗电流:想让数据靠谱,这两个步骤不能跳
光谱仪输出的原始数据是探测器上的数字信号(DN值),这个值跟真实辐射通量之间不是线性对应那么简单。探测器在不同波段的量子效率不一样,光栅衍射效率也有差异,所以必须做辐射标定,把DN值转换成W·m⁻²·nm⁻¹。
标定的做法一般是用一盏可溯源的卤钨灯光源(比如NIST或中国计量院溯源的FEL灯),把灯放到固定距离,点亮后采集光谱,然后用标准灯证书上给出的光谱辐照度值反推出一条校准因子曲线。每家光谱仪厂商都有对应的校准流程,有些还能把校准系数直接存在仪器里,操作起来很方便。
暗电流则是另一个隐形杀手。探测器即使没光入射,也会有电子热运动产生的输出信号,这就是暗电流。它跟积分时间和环境温度强相关。测量时必须先盖上探头盖采一帧暗噪声,然后每次正式测量都扣除掉暗电流。很多新手拿到数据,白天测出来的光谱在长波段翘得老高,十有八九就是没扣暗电流。
3. 实操实录:架好设备测一整天太阳光谱
设备讲完了,下面进入正题——我当时完整测了一整天的太阳光谱变化,从早上日出到傍晚日落,把整个过程和数据整理出来,你可以直接照着复现。
3.1 测试条件与时间点规划
测试地点选在城郊一片空旷的平地上,周围没有高楼遮挡,地面是水泥地,避免草地反光光谱的影响。时间选在五六月份,天气晴朗,无云,能见度不错。为了覆盖不同太阳高度角,我定了7个采集时间点:
| 时间 | 太阳高度角(约) | 大气质量AM | 观察目的 |
|---|---|---|---|
| 06:40 | 8° | ≈6.0 | 日出后光线极斜,观察红光主导效应 |
| 08:00 | 25° | ≈2.3 | 低角度工况,早间光谱 |
| 09:30 | 40° | ≈1.6 | 接近AM1.5工况 |
| 12:00 | 78° | ≈1.0 | 正午高角度,光线路径最短 |
| 14:30 | 60° | ≈1.2 | 午后,对称检验 |
| 16:30 | 35° | ≈1.8 | 斜射光逐步增强 |
| 18:20 | 10° | ≈5.7 | 日落前,光谱明显变红 |
太阳高度角可以用经纬度和时间算,手机App也能估,比如SunCalc这类工具。AM值就按简化公式AM=1/cos(天顶角)估算,正午大体接近1,早晚数值变大,这个数值直接决定了光谱被大气“加工”的程度。
实测注意事项:早晨和傍晚光线变化快,太阳高度角可能几分钟就差好几度,所以每个时间点最好连续采3条光谱取平均,并且记录当时的光照状态(比如有没有薄云飘过)。正午前后虽然光强高,但太阳位置变化引起的光谱漂移反而慢,可以稍微放松一点。
3.2 数据采集流程:从积分时间设定到文件保存
我的采集流程分四步,每一步都有讲究。
第一步,预热与暗电流采集。提前半小时打开光谱仪,让它稳定。然后盖上余弦校正器的遮光盖,在当前环境温度下采一帧暗光谱,保存下来备用。如果白天温度变化大,每个整点最好重新采一次暗电流。
第二步,确定积分时间。光谱仪有自动积分时间模式,但我更习惯手动调。原则是让峰值信号的强度在不饱和的前提下尽量高,一般占到满量程的80%到90%为佳。中午的时候我用的积分时间约1毫秒,到傍晚可能要加到50毫秒以上,相当于差了50倍。
第三步,正式采集。探头水平放置,一键采样,每组测3条,取平均。这里有个小技巧:如果光谱仪支持平均扫描次数,把它设成5-10次,能明显提高信噪比,尤其是早晚光线弱的时候。
第四步,保存数据。光谱仪软件一般能导出CSV或TXT,里面通常包含波长和辐照度两列。我的习惯是保存一份原始DN值文件和一份标定后的辐照度文件,免得后面数据处理时还要重新倒回去查。
3.3 数据处理与作图:Python三步搞定归一化和光谱曲线
数据导出来只是第一步,真正要看出规律,必须处理成图。我习惯用Python的pandas和matplotlib,简单又表达清楚,Excel也能做,但Python处理大批量数据快得多。
先把早上、中午、傍晚三组数据拉出来,看原始光谱辐照度曲线:
import pandas as pd import matplotlib.pyplot as plt df_morning = pd.read_csv('morning_08_00.csv', skiprows=2) df_noon = pd.read_csv('noon_12_00.csv', skiprows=2) df_evening = pd.read_csv('evening_18_20.csv', skiprows=2) plt.figure(figsize=(10, 6)) plt.plot(df_morning['wavelength'], df_morning['irradiance'], label='08:00') plt.plot(df_noon['wavelength'], df_noon['irradiance'], label='12:00') plt.plot(df_evening['wavelength'], df_evening['irradiance'], label='18:20') plt.xlabel('Wavelength (nm)') plt.ylabel('Spectral irradiance (W/m^2/nm)') plt.legend() plt.grid(alpha=0.3) plt.show()跑完这张图,你会明显看到中午的峰值比早晚高一个数量级。但要注意,早上和傍晚的曲线因为总能量低,细节被压扁了,看不出形状变化。这个时候需要归一化,把每条曲线除以自己的最大峰值,只看形状差异:
df_morning['norm'] = df_morning['irradiance'] / df_morning['irradiance'].max() df_noon['norm'] = df_noon['irradiance'] / df_noon['irradiance'].max() df_evening['norm'] = df_evening['irradiance'] / df_evening['irradiance'].max() plt.figure(figsize=(10, 6)) plt.plot(df_morning['wavelength'], df_morning['norm'], label='08:00') plt.plot(df_noon['wavelength'], df_noon['norm'], label='12:00') plt.plot(df_evening['wavelength'], df_evening['norm'], label='18:20') plt.xlabel('Wavelength (nm)') plt.ylabel('Normalized spectral intensity') plt.legend() plt.grid(alpha=0.3) plt.show()归一化之后,形状差异就非常直观了:中午的曲线在400-500nm蓝紫段明显更高,傍晚的曲线在600nm以上红波段相对更突出,早晨的光谱则介于两者之间但偏红明显。这就是前面说的大气散射对太阳光谱“加工”的证据。
如果需要更严格地量化光谱变化,还可以做波段积分。比如把400-500nm积分值除以600-700nm积分值,得到蓝红比,这个比值随太阳高度角的变化就会一目了然。
4. 实测结果解读:不同时间段光谱变化的规律与原因
数据拿到了,图也画出来了,接下来是最有意思的部分——解读这些光谱曲线背后的物理机制。我发现只要理解了大气对光的“选择性加工”,一天中光谱怎么变就完全在掌握之中了。
4.1 为什么早晚的光线明显偏红
早晨和傍晚的光谱偏红,最根本的物理原因是瑞利散射。瑞利散射的强度与波长的四次方成反比,波长越短散射越严重。当太阳在低空时,阳光穿过大气的路径暴涨,蓝紫光在途中被散射掉很大一部分,剩下的透射光自然就偏红。
这个现象其实每天都在上演。你看到傍晚的天空是红色的,原因就是大气把太阳光里的蓝绿光散射到四面八方,剩下波长较长的红光、橙光沿着几乎没有衰减的路径传到你眼睛里。测出来的光谱曲线在500nm以下明显塌陷,就是最直接的证据。
另外,大气中的臭氧在紫外到蓝光区域有一个吸收带,水汽和二氧化碳在红外区域也有吸收,这些都会进一步塑造早晚的光谱形状。所以从实际测量数据看,早晨和傍晚在400到450nm的辐照度可能只有正午的十分之一,而700nm附近的降幅就小得多。
4.2 正午光谱为什么最接近理想太阳光
正午太阳高度角最大,光穿越大气层的路径最短,大气对光谱的“加工”最少。这时候测到的曲线形状最接近标准的AM1.5G太阳光谱——这是光伏行业通用的参考光谱,总辐照度约定为1000W/m²,也是太阳能电池效率标定的基准。
我实测的正午数据跟AM1.5G标准谱对照过,形状拟合得很不错,主要差异集中在900nm之后的近红外段,那是水汽吸收带的影响,跟当天湿度有关。从色温角度看,正午自然光的色温能到5000K到5500K,比早晚的3000来K显著“白”很多。这也是为什么摄影圈有“黄金时刻”的说法——早晚的阳光自带暖色调,拍人像肤色好看,加了滤镜加不出来的那种氛围。
4.3 从数据中提取量化指标:蓝红比、色温与辐照度
为了让光谱变化从“看着像”变成“有数可依”,我建议每次测量后都算三个量化指标:
| 时间 | 总辐照度(W/m²) | 蓝红比(400-500/600-700) | 相关色温(K) |
|---|---|---|---|
| 06:40 | 约60 | 0.42 | 约2800 |
| 08:00 | 约180 | 0.58 | 约3700 |
| 09:30 | 约420 | 0.76 | 约4500 |
| 12:00 | 约850 | 0.95 | 约5200 |
| 14:30 | 约760 | 0.84 | 约4800 |
| 16:30 | 约420 | 0.68 | 约4000 |
| 18:20 | 约90 | 0.45 | 约3000 |
注意:以上数值受纬度、季节、天气、空气质量影响很大,这里只是我当时实测的一次记录,用来展示变化趋势。真正做项目,不能直接套表格里的数。
蓝红比能从光谱层面反映光线质量的昼夜变化;相关色温可以用光谱仪软件直接读,或者用色度计算法从光谱数据反推;总辐照度则是把整个波长范围积分得到。三个指标配合起来,自然光环境就能被描述得明明白白。
4.4 这些光谱变化在实际行业里的影响
说清楚物理规律后,聊聊它对实际业务的影响。光伏发电是最直观的受害者——太阳能电池的光谱响应并不平坦,晶硅电池在可见光到近红外响应好,而薄膜电池在短波段响应更佳。早晨和傍晚光谱红移,对晶硅组件而言效率相对有利,但总辐照度太低了,影响被弱化;真正有影响的是阴天和雨天的光谱红移,会让光伏系统的输出与预期偏差变大。
植物补光行业同样受光谱变化影响。植物光合作用主要利用红光和蓝光两个波段,然而自然光在不同时间段的红蓝比例不同。这直接启发了一些温室大棚的设计思路:早晨和傍晚自然光偏红,可以适当补充蓝光来平衡光质,让作物在全天都能获得合适的光配方。这是我做过的一个真实项目的核心思路,也是“同一束阳光在不同时间不能一视同仁”的典型应用。
5. 常见问题与排查技巧实录
做光谱实测踩过的坑不少,这里整理一些高频问题和对应的排查方法,按我的经验排序。
5.1 数据抖动厉害,曲线毛刺多,怎么办
问题是信噪比不足。优先加长积分时间,让信号尽量占满动态范围;如果信号已经饱和就只能缩短。另外把平均采集次数调大,比如从单次扫描改成10次平均,毛刺会明显减小。还有一个经常被忽略的因素是电源:光谱仪如果用开关电源供电,容易引入工频干扰,最好用电池或者线性电源,实测干净不少。
5.2 中午的光谱在400到450nm波段反而不高,是不是仪器坏了
不一定是坏了。正午太阳光经过大气路径虽然短,但臭氧层在紫外到蓝紫波段有较强吸收,所以光谱在400nm附近有一个下降是正常的。对照AM1.5G标准光谱你就能看到,它本身在420nm附近就不是峰值,而是随着波长向蓝端走逐渐下降。想确认仪器有没有问题,可以做一次标准灯光谱作为参照。
5.3 探头朝不同方向测,数据差很多,正常吗
正常,因为你测的是不同方向上的辐射来源。漫射光成分里,一部分来自天空散射,一部分来自地面反射。如果你关心的是太阳直射贡献,就要对着太阳方向遮住漫射光;如果你关心的是水平面接收到的总辐照度,就必须水平放置探头,用余弦校正器。我在做植物光照数据采集时,通常同时采一组水平总辐照度和一组垂直太阳方向的直射光谱,两个数据分开处理。
5.4 多云天气测出来的光谱能说明什么
多云天的光谱分布跟晴天完全不同,云层会把阳光散射掉很大一部分,而且散射对短波更明显,导致阴天的光谱蓝紫段比例反而比晴天傍晚高。所以测阴天光谱时,一定要避开降雨前后湿度极大、云层极厚的时刻,否则红外吸收带的干扰会很严重。要对比不同时间段光谱变化,尽量选一个稳定晴天,才有助于保证数据的可比性。
5.5 常见问题速查表
| 现象 | 可能原因 | 排查与对策 |
|---|---|---|
| 长波段曲线尾部翘起 | 未扣暗电流,或探头受热红外影响 | 重新采集暗噪声扣除 |
| 峰值处出现平顶 | 信号饱和 | 降低积分时间或加衰减片 |
| 400nm以下噪声很大 | 紫外信号弱、杂散光干扰 | 增加平均次数,检查光纤和探头是否清洁 |
| 早晨和傍晚数据忽高忽低 | 角度变化快,条件不稳定 | 连续多次测量取平均,记录每分钟高度角 |
| 与标准光谱对比整体偏低 | 余弦校正器倾斜或标定过期 | 检查水平泡,重新标定 |
另外还有一个很实操的建议:建立自己的“环境日志”。每次测量记录湿度、能见度、空气质量指数、云量,这些参数都会影响光谱,记录下来后期排查问题会省力很多。
最后再分享一个小技巧
把一整天的光谱数据整理成图后,我发现一个特别好用的展示方式:把每个时间点的光谱曲线堆叠成一张“光谱随时间变化热力图”,横轴是波长,纵轴是时间,颜色代表辐照度高低。这样一张图,能一眼看出蓝光在正午最强、傍晚红移、总辐照度先升后降的全过程,客户和项目汇报时非常好用——比给十条曲线好理解得多。
实现也不复杂,把整天的光谱数据读进一个二维数组,用Python的pcolormesh或者imshow画一下,5分钟就能生成。有这个图打底,你对自然光的理解会从“会测”提升到“懂它怎么变”。光谱这件事,测一次不难,难的是用对方法、看懂规律,希望这篇能让你少走几段弯路。