1. 从模型参数开始认识PROSAIL为什么大家都在谈它我最早接触PROSAIL模型是在做LAI反演的时候。当时拿到一组Sentinel-2影像老板要求反演叶面积指数组里师兄直接甩给我一句“用PROSAIL建查找表别再试那些经验回归了。”我那时候连PROSAIL全称都拼不对更别提那几个麻烦的参数了。后来啃了好几周的文献又跑坏了几台电脑才算把这块硬骨头啃下来。PROSAIL这个名字实际上是由两个模型拼起来的PROSPECT加4SAIL。前者管叶片后者管冠层。它的价值在于可以从植物的物理机理角度解释遥感传感器看到的反射率信号是怎么来的。也就是说你给它一组描述叶片生化组分、冠层结构、土壤背景和观测几何的参数它就能在任意波谱区间模拟出冠层反射率。这个能力太有用了尤其是在你没有大量地面实测数据的情况下它可以直接作为反演器或训练样本生成器帮你从遥感影像里反演出LAI、叶绿素含量等关键参数。可以说凡是搞植被遥感的迟早要跟PROSAIL打交道。无论是你用SNAP里的生物物理处理器还是自己写LUT查找表又或是用机器学习做反演PROSAIL都在背后撑着。这篇博文我不会讲太多教科书公式而是从参数的角度把它说透哪些参数能随便动哪些参数动了会影响反演结果怎么标定这些参数以及实际跑起来会遇到什么坑。2. PROSAIL模型的参数体系全景拆解2.1 叶片尺度PROSPECT模型带你搞定叶片光学特性PROSPECT模型的逻辑很简单它把整片叶子看成一组叠加的薄层用辐射传输理论计算叶片在400-2500 nm范围内的反射率和透射率。它有几个核心参数我列成一张表方便大家对照参数名含义典型取值范围单位N叶片结构参数1.2 ~ 2.5无Cab叶绿素含量20 ~ 80μg/cm²Car类胡萝卜素含量5 ~ 20μg/cm²Cbrown褐色素含量0 ~ 1相对单位Cw等效水厚度0.005 ~ 0.05cmCm干物质含量0.002 ~ 0.02g/cm²N是描述叶片内部结构松紧程度的参数叶片越厚越致密N越大。很多初学者最容易忽略它但它对反射率的影响一点都不小。Cab和Car是光合色素直接决定可见光波段的吸收特征。Cw和Cm则影响短波红外波段的信号。做LAI反演时一般会固定这些叶片参数但在做叶绿素反演时Cab就是你要反演的主角其他参数则尽量通过先验知识固定。PROSPECT的输出是叶片尺度的反射率和透射率它还不包含冠层结构信息。想要得到冠层反射率还得把叶片放进SAIL模型里“摆一摆”。2.2 冠层尺度4SAIL模型如何把叶片信号变成冠层信号4SAILScattering by Arbitrarily Inclined Leaves模型把冠层当作一个水平均匀的介质叶片在其中按一定倾角分布。它的核心输出是冠层反射率关键参数可以分为三组第一组是冠层结构参数包括LAI和LIDF叶倾角分布函数。LAI不用多说就是单位地表面积上叶片总面积与地表面积之比。LIDF描述叶片朝向的统计规律一般用平均叶倾角ALA加一个分布类型来表征常见的有球面分布、平面分布、垂直分布等。很多人在实际操作中会把LIDF固定成球面分布因为省事但如果你的作物是玉米、小麦这样的直立叶型这个假设就会带来不小的反演误差。第二组是土壤背景参数包括soil reflectance土壤反射率和psoil土壤亮度因子。土壤亮暗对冠层反射率影响非常大尤其是在LAI比较小的时候。你站在传感器视角看叶片稀稀拉拉传感器看到的地面信号占比高土壤背景就能直接影响反射率。很多LUT里都会单独对土壤光谱做几个典型亮度档然后用psoil在亮和暗之间插值。第三组是观测几何参数包括太阳天顶角tts、观测天顶角tto、相对方位角psi和天空光比例skyl。这四个参数一般不参与反演而是由影像数据的成像几何直接提供。但你需要注意入射角度变化会引起冠层反射率显著变化尤其是热点方向的信号变化非常剧烈所以观测几何的精度直接决定了查找表的可靠性。2.3 参数之间的逻辑关系别把PROSPECT和SAIL割裂开把PROSPECT和4SAIL串起来看整套PROSAIL模型的运转流程是这样的PROSPECT先由叶片参数算出叶片的反射率和透射率然后把这两个值作为4SAIL的输入再结合LAI、LIDF、土壤反射率、观测几何最终输出冠层反射率。这个流程里有一个很值得注意的点植物叶片的反射和透射特性会直接影响冠层模型对光线的散射计算。这意味着你没有把PROSPECT参数设准后面冠层水平的一切计算都会跟着偏。很多人在反演LAI时觉得“反正LAI才是目标叶片参数随便给”结果发现反演出的LAI异常高或异常低根源就在叶片参数没校准。3. 哪些参数在决定你的反演成败敏感性分析视角3.1 不要凭感觉调参先做一遍全局敏感性分析我在刚入门的时候犯过一个大错误拿到PROSAIL模型后凭直觉把每个参数都设成一个“看起来没问题”的值然后就直接开始跑LUT。结果反演效果很差在做验证时发现RMSE高得离谱。后来我才意识到参数对输出反射率的贡献是不均等的。有的参数你动一点点反射率就翻天覆地有的参数你改到边界模型输出几乎纹丝不动。这时候就需要做敏感性分析搞清楚在整个反演系统中哪些参数必须精确设置哪些参数可以粗略估计甚至固定。常用做法是Morris筛选法或Sobol方差分解。把参数范围设置好跑几千次模拟统计每个参数对目标波段反射率的贡献占比。对PROSAIL而言结论基本是参数对红光波段影响对近红外波段影响对短波红外影响LAI中高中Cab高低低N中中中Cw低低高Cm低低中土壤反射率高低LAI时中低LAI时中观测几何高中中这个表是我的经验总结不同波段范围会有细微差异但大方向和文献报道一致。做LAI反演时红光和近红外是最常用的波段组合因为LAI在这两个波段的反射率响应最强且方向相反植被指数如NDVI就是这么来的。而LAI、Cab、N、土壤背景这四项参数对这两个波段的影响权重最大所以你需要把注意力重点放在这几个参数上。3.2 参数耦合LAI和Cab为什么会纠缠不清如果说参数敏感性告诉你哪个参数重要那么参数耦合问题则是告诉你为什么有些时候参数明明敏感反演结果却依然糟糕。LAI和Cab就存在明显的耦合效应。当植被茂密时传感器看到的基本是冠层上层叶片红光被大量吸收近红外被大量散射。这时候如果LAI高且Cab高与LAI低且Cab也不高在红光和近红外波段组合上可能给出非常接近的反射率信号。这种“一个参数取值变化可以由另一个参数补偿”的情况就是遥感反演里常说的病态反演。解决耦合问题的思路大概有两条。一条是利用多角度或高光谱信息给反演增加约束维度另一条是固定或强约束其中一个参数。我做LAI反演时会尽量用实测的叶片叶绿素值把Cab固定在一个合理区间减少自由参数数量。这看起来是“退而求其次”实际上非常有效。3.3 从模型参数到反演参数的转换你该关注哪几个把上面的分析总结一下在任何一次PROSAIL反演实践里参数实际可以分成三个类别一类是“必须反演的参数”通常是LAI、Cab、LIDF这类应用目标。第二类是“对结果影响大但目标参数不关心的参数”比如土壤背景、N、Cw等这些参数需要仔细给定或单独标定。第三类是“观测给定参数”比如太阳高度角、观测天顶角、相对方位角、skyl比例这些不该你拍脑袋定而应该根据实际影像的几何信息查出来。我自己设计反演方案时首先先把第三类参数严格从影像元数据里取出来然后对第二类参数做一次局部标定或敏感性忽略最后再设计第一类参数的自由范围。这套流程跑下来效率和稳定性都比“所有参数全部自由浮动”要好得多。4. 参数校准实操LAI反演前必须完成的四步准备4.1 第一步校准模型参数取值范围建立“真实感”查找表我见过不少新手一上来就按文献里的经典范围直接生成查找表。文献范围不是你场景范围这一点容易吃亏。比如冬小麦封垄期LAI可以达到6-7但半干旱地区稀疏草地的LAI可能只有0.5-1.5。你如果拿着一个LAI范围设定为0-15的查找表去做稀疏草地反演会浪费大量模拟样本在那些根本不属于你的场景区间同时稀疏场景的样本密度不足反演精度反而受影响。我现在的操作习惯是先根据地物类型和物候期把LAI、Cab、Cw、Cm等参数的上限和下限框定在一个实际可能出现的范围内然后按均匀分布或拉丁超立方采样生成样本。这样查找表大小可以控制在十万量级计算效率和反演精度都能兼顾。4.2 第二步利用实测数据做叶片参数与土壤参数的本地化校准这里正好说一下热词里提到的“模型参数校准”问题。很多情况下模型默认参数值来自文献或传感器产品官方说明但你的研究区情况可能跟文献差别非常大。最典型的例子是土壤反射率不同地区土壤类型差异明显同一套土壤光谱直接迁移过去结果自然不靠谱。我的做法是在反演前先做一次校准采样在样地内测量若干条叶片光谱和土壤光谱对比PROSAIL模拟的光谱与实测光谱的差异。然后通过调整N、Cab、Cw、Cm等参数让模拟光谱在主要波段上与实测叶片光谱吻合。这个步骤不需要特别复杂的工具用简单的优化算法或人工迭代就能做到。土壤参数的校准也类似把实测土壤光谱作为土壤反射率输入或者用psoil参数匹配到最接近的亮度档。校准完成后再去生成查找表反演精度会有质的提升。4.3 第三步把观测几何参数从影像里精确提取出来很多人做LUT时习惯把太阳天顶角、观测天顶角、相对方位角设为固定值比如都在45度左右然后一下跑完整个影像的反演。但一张大范围的影像不同像元的成像角度是有差异的特别是幅宽较大的传感器比如MODIS或者国产的宽幅相机这个差异会造成明显的反射率空间变化。我的习惯是分块处理先把影像分成若干块每块用块中心的观测几何生成一个查找表或一组神经网络模型然后分块并行反演。这样做虽然复杂了一点但能显著减小观测几何误差带来的反演系统误差。对于Sentinel-2这样的窄幅影像这个处理可以简化但也不能直接忽略。4.4 第四步用代价函数把反射率变成LAI选择匹配度最高的组合查找表建好之后反演本身就是一个匹配问题。对影像中每个像元把它的实测反射率向量和查找表里每一条模拟反射率向量做比较选出最接近的那条记录对应记录的LAI就是反演结果。常用的代价函数是RMSE或加权RMSE。权重可以根据波段信噪比来设定信噪比高的波段给更高权重。比如Sentinel-2的短波红外波段噪声比可见光波段大可以适当降低权重。这里有一个容易踩的坑不要把所有波段都一股脑丢进代价函数。波段太多、参数自由度不够时代价函数会变得不够敏感反演结果反而被噪声主导。5. 避坑指南PROSAIL参数使用中的常见误区5.1 参数范围设置过宽导致查找表样本“空转”参数范围过宽的直接后果是查找表里大量样本组合在实际场景中根本不会出现。比如Cab设置到100以上或者Cm设置到0.1这在一般健康植被里几乎不可能出现。而这些极端组合会占据样本空间使得真实区间内的样本密度下降。我建议用分层采样替代纯随机采样。比如先确定LAI的分布重心再按不同LAI区间分配样本数量让低LAI和高LAI区间都有足够样本。查找表生成后最好做一次分布直方图检查看看真实值区间是否被充分覆盖。5.2 忽略LIDF默认球面分布吃大亏LIDF对冠层反射率的影响比我预想的大得多。相同LAI下喜光作物如玉米的直立叶型与大豆的水平叶型其冠层反射率差得不是一星半点。固定用球面分布做反演结果就是LAI被系统性地偏高或偏低。如果不是特别了解研究区的叶倾角分布我建议把ALA作为一个自由参数放进查找表。比如设置5度、30度、55度、75度几个典型档位让代价函数自己去选。这样虽然会增大一点样本量但能明显提升反演结果的稳健性。5.3 波段设置和传感器波段不匹配错位一步结果全错PROSAIL模型输出的是连续的波谱曲线而实际遥感影像只有几个离散波段。你需要对模拟的光谱曲线做重采样让它和传感器的光谱响应函数对齐。如果直接把模型在某个单波长的反射率当成某个宽波段的反射率来用误差在小波段还勉强可以接受但在宽波段传感器上就会造成明显偏差。我的做法是去下载目标传感器的光谱响应函数文件对模型模拟的连续光谱进行卷积重采样这样得到的模拟波段反射率才和影像数据在同一个定义下后续反演结果才有意义。5.4 只用一个时相影像做反演忽略物候变化的影响农作物的LAI随物候剧烈变化但你用于校准叶片参数的光谱如果来自花期然后把这个参数用于全生育期的反演误差会很大。特别是叶片含水量Cm和叶绿素Cab在生长季内变化很大。如果时间跨度大我通常会把物候期分成几个阶段每阶段分别采样校准参数再生成对应的查找表。这个过程虽然工作量翻倍但反演结果曲线会平滑可靠得多。6. 几个实操中的感悟最后说一点个人经验。PROSAIL模型的参数设置不是一锤子买卖。每次换一个研究区、换一个传感器、换一个季相都要重新评估参数范围是否合理。我见过有些人把一套模型参数用了五六年研究区早就换成另一个省份了参数还保持原样这种情况下的反演结果说句不好听的只是自圆其说的数字游戏。我自己的习惯是每次做反演前一定先做两件事一是拿样地实测光谱和模拟光谱比一比二是做一个简化版的敏感性测试看看当前波段组合对目标参数有多敏感。这两步做好了后面所有环节都会很顺反演结果也硬气得多。PROSAIL参数的魅力就在于它既是模型的灵魂又是反演误差的主要来源。你把参数理解透了LAI反演这个事儿的主动权就握在自己手里了。
阅读完成 · 觉得有帮助?