ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Penman-Monteith简化公式怎么选?从数据缺失到本地化校准的完整指南

Penman-Monteith简化公式怎么选?从数据缺失到本地化校准的完整指南 做灌溉设计和水资源量评估的同行对Penman-Monteith公式应该都不陌生。FAO-56把它定为计算参考作物蒸散量ET₀的标准方法灌区规划、灌溉制度设计、作物需水预测底层几乎都跑的是这一套。但我在实际项目里跑了这么多年发现完整版PM公式被完整使用的次数其实不多。不是它的精度有问题而是它太挑数据——最高温、最低温、湿度、风速、辐射五项气象输入缺一不可。很多基层站点常年只有温度记录碰上设备故障连辐射数据也得靠估。这种时候简化的Penman-Monteith公式变体不是备选而是唯一能落地的方案。这篇文章就把我这些年用过的几种简化变体、选型逻辑和校准方法一次性说清楚。1. 完整版PM公式的算不动困境卡人的不是数学是数据1.1 完整公式到底要什么FAO-56推荐的完整版公式长这样ET₀ [0.408·Δ·(Rₙ − G) γ·(900/(T273))·u₂·(eₛ − eₐ)] / [Δ γ·(1 0.34·u₂)]分子第一项是辐射项由净辐射Rₙ和土壤热通量G决定第二项是空气动力学项跟2米高处风速u₂、饱和水汽压与实际水汽压的差值(eₛ − eₐ)直接挂钩。分母里的Δ是饱和水汽压曲线斜率γ是湿度计常数二者都要用气温和气压来计算。光看公式函数关系并不复杂。真正的门槛在输入数据净辐射Rₙ要么直接测要么用日照时数配合经验公式反算饱和水汽压差要有湿度观测风速要有风杯或超声风速计。这些设备要在一个站点同时工作、持续运行实际维护成本非常高。我见过不少项目前期方案写得漂漂亮亮说要用FAO-56标准方法结果数据一收集湿度序列缺了三个月风速计坏了大半年没人修最后只能换公式。1.2 基层站点手里到底有什么数据选公式的第一步不是看哪个精度最高而是先列一张数据清单。以我接触过的县级农业气象站和灌区自建站为例标配逐日最高温、最低温、降水量常见相对湿度但中断率高少数风速、日照时数极少数直接辐射观测这个数据现状决定了纯温度驱动的简化变体在基层最有实用价值。倒不是说辐射型的变体不好而是在很多项目里你连辐射数据都是估出来的再用估出来的数据去跑一个看起来更精细的公式误差并不会变小反而会叠加上一层辐射估算的不确定性。简化公式解决的是数据不足时还能不能算的问题不是让你去跟完整版公式比谁更完美。2. 主流简化变体是怎么从PM根式里省出来的2.1 Hargreaves-Samani只用温度的极限方案Hargreaves-Samani公式1985是目前数据需求最少的变体ET₀ 0.0023·(T平均 17.8)·(T最高 − T最低)^0.5·Rₐ输入只需要日均温、日较差和Rₐ天文辐射等效水深mm/day。Rₐ不用观测用纬度和日序数按太阳几何关系就能算出来。它相当于把PM公式里的湿度项、风速项全部压进了温度日较差里——逻辑是日较差大的天气通常云量少、辐射强、湿度低蒸散能力自然高。这个代理关系在大多数中纬度地区是成立的但在极端湿润或者强风条件下会失真。天文辐射的计算要用到日地距离修正、太阳赤纬和日落时角手算容易错我一般直接用脚本批量算。下面这段Python代码可以逐日算Rₐ输入纬度和日序数就能输出等效水深import math def ra_mm(lat_deg, doy): lat math.radians(lat_deg) dr 1 0.033 * math.cos(2 * math.pi * doy / 365) decl 0.409 * math.sin(2 * math.pi * doy / 365 - 1.39) ws math.acos(-math.tan(lat) * math.tan(decl)) gsc 0.0820 ra (24 * 60 / math.pi) * gsc * dr * ( ws * math.sin(lat) * math.sin(decl) math.cos(lat) * math.cos(decl) * math.sin(ws) ) return ra / 2.45 # MJ/m2/day 转成 mm/day print(ra_mm(31.5, 150))这段代码在北纬31.5度、第150天5月底的输出约为16.7 mm/day。有了Rₐ再配上温度数据Hargreaves-Samani的整个计算过程一张电子表格就能完成这也是它在基层站里流传最广的原因。2.2 Priestley-Taylor只保留辐射项的能量平衡方案Priestley-Taylor公式1972走了另一条路干脆把PM公式里的空气动力学项整个砍掉只保留辐射项再乘一个经验系数αET₀ α·[Δ / (Δ γ)]·[(Rₙ − G) / λ]α通常取1.26λ是水的汽化潜热约2.45 MJ/kg(Rₙ − G)/λ把净辐射能量换算成等效水深。这个公式的理论前提是大范围湿润下垫面、平流很弱——也就是说空气从别处带来的热量可以忽略蒸散主要由当地辐射驱动。在这种条件下1.26这个系数把平衡蒸散修正为潜在蒸散效果相当好。但这个前提恰恰是它的命门。一旦到了干旱、半干旱区或者有强风把干热空气从上游吹过来空气动力学项就不能忽略了α1.26会明显低估实际蒸散。我在内陆干旱区用过Priestley-Taylor算ET₀6、7月份的日值比完整版PM低15%到25%完全没法直接用于灌溉决策。2.3 Makkink与Turc以辐射为主的折中方案Makkink1957和Turc1961是另外两个常用的辐射型变体。Makkink形式很简洁ET₀ 0.61·[Δ / (Δ γ)]·(Rₛ / λ) − 0.12注意它用的是太阳总辐射Rₛ不是净辐射Rₙ而且是日尺度系数不要和Priestley-Taylor混淆。Turc公式分湿度条件RH ≥ 50%: ET₀ 0.013·[T / (T 15)]·(Rₛ 50) RH 50%: ET₀ 0.013·[T / (T 15)]·(Rₛ 50)·[1 (50 − RH)/70]这里的Rₛ在原始文献里用的是cal/cm²/day很多人直接拿MJ/m²/day往里代结果差了将近24倍——这是Turc被误用最多的地方。后面我会专门讲这个坑。这四种变体基本覆盖了数据从少到多的梯度Hargreaves-Samani只吃温度Priestley-Taylor要温度和净辐射Makkink和Turc要温度加太阳辐射。它们本质上都是对PM公式不同项做取舍后的近似没有哪个绝对最好只有数据和气候条件匹配不匹配的问题。四种变体的关键区别我整理成了一张表变体输入需求核心假设典型适用区最容易翻车的地方Hargreaves-Samani温度纬度日较差代理辐射/湿度/风速中纬度大陆性气候强风、极端湿润区Priestley-Taylor温度净辐射无平流、湿润下垫面湿润区、水体蒸发干旱区、大风期Makkink温度太阳辐射辐射为主要驱动草地、潮湿地区辐射数据质量差时Turc温度太阳辐射湿度辐射温度拟合温带湿润区辐射单位换算错3. 选型不是看精度排名而是看数据清单和气候类型3.1 数据清单是第一约束我在项目里给同事的建议流程很固定先盘数据再定公式。如果有完整的五项气象数据用完整版PM没问题如果缺湿度或风速就先用Hargreaves-Samani顶着如果有辐射观测但缺湿度可以考虑Makkink或Priestley-Taylor如果只有温度和日照时数Turc也值得一试。这里有个反直觉的点数据少的时候不建议用补数据的方式强行上复杂公式。比如用经验公式从温度反推辐射、再反推净辐射再拿去跑Priestley-Taylor中间每一步都引入误差最终的均方根误差未必比直接用Hargreaves-Samani小。简化的意义是砍掉数据依赖而不是增加理论环节。3.2 气候类型决定误差方向选公式还要看气候类型。湿润地区云量大、辐射波动小Priestley-Taylor的1.26系数通常表现不错干旱半干旱地区平流明显Priestley-Taylor系统性偏低Hargreaves-Samani经过本地校准后往往比Priestley-Taylor更稳沿海和高湿地区Hargreaves-Samani因为缺湿度项经常高估蒸散。风速是另一个容易被忽略的变量。同样的辐射条件下风速从1 m/s涨到4 m/s完整版PM算出的ET₀能差出20%以上。凡是空气动力学项被砍掉的变体在风大的年份误差都会被放大。如果你所在地区风速有明显的年际波动用这类公式时必须特别注意校准年份的选择。3.3 时间尺度也要匹配简化公式的系数大多是从日尺度数据里拟合出来的。如果项目要求的是旬尺度、月尺度或者生长季总量直接用日尺度系数累加通常没问题但如果要求小时尺度——比如做实时灌溉决策——这些日尺度变体基本都不适用必须回到完整版PM或者专门的辐射-气动联合公式。反过来如果你只需要月总量一个经过校准的Hargreaves-Samani在干旱半干旱区往往够用了不需要上更复杂的模型。4. 本地化校准从文献系数到本地系数的关键一跃4.1 为什么文献系数必须打折扣所有简化变体里的经验系数——Hargreaves的0.0023、Priestley-Taylor的1.26、Makkink的0.61——都不是物理常数而是从特定地区、特定时段的数据里拟合出来的统计值。把它们当常数用等于默认你的站点和原作者当年的观测环境一模一样。这显然不现实。我习惯把这些系数叫文献系数意思是它们只提供一个合理的起点落地前必须用本地资料做一次校准。校准的本质是找到一组让简化公式输出尽量接近本地真实ET₀的参数。这里真实ET₀通常用完整版FAO-56在资料齐全站点上的计算结果来代表或者退一步用实测水面蒸发、蒸渗仪数据。4.2 校准操作流程具体做法分五步找一段资料齐全的时段至少一整年最好跨3年用完整版PM逐日算出ET₀作为参照序列。用简化公式算出同期ET₀序列初始系数先用文献值。做最小二乘回归拟合ET₀_PM a·ET₀_simple b得到斜率a和截距b。如果截距b接近0说明误差以比例误差为主直接把经验系数乘以a如果b明显不为0建议保留线性修正形式。用另一段独立年份的数据验证对比校准前后的均方根误差RMSE和决定系数R²。这里有个操作细节校准和验证必须用不同年份的数据否则你只是在做拟合优度表演不是真正评估模型的泛化能力。我一般用前两年做校准第三年做验证。最少也要做到一半数据校准、一半数据验证。4.3 一个Hargreaves系数校准实例某半干旱灌区站点只有逐日温度资料附近30公里有一个完整气象站。我取完整站3年资料先用FAO-56算出逐日ET₀再用Hargreaves-Samani按文献系数0.0023计算。结果发现Hargreaves-Samani整体偏低回归拟合得到ET₀_PM 1.18·ET₀_HS 0.1校准前RMSE约0.9 mm/day校准后RMSE降到0.5 mm/day左右。把0.0023乘以1.18本地系数约0.0027。这个结果很典型干旱半干旱区风速大、湿度低日较差对蒸散的代理能力偏弱文献系数0.0023系统性低估。校准后的0.0027并没有物理意义它只是把缺失的风速和湿度影响按平均值折进了公式里。这也是我反复强调的原因——换一个地区这个系数可能要重做。5. 实战案例半干旱灌区从缺测数据到公式替换的完整过程5.1 项目背景和数据现状某灌区要做灌溉需水预测面积10多万亩主要作物是玉米和冬小麦。气象数据现状是灌区管理站自建站只有逐日最高温、最低温和降水记录湿度探头坏了大半年风速、辐射资料全缺。灌区紧邻一个国家级气象站资料比较全但中间隔了一条山脉气候有差异直接搬用完整站的数据做逐日ET₀不太合适。我的处理思路是用完整站数据做标尺在灌区本地站上校准一个温度型的简化变体然后用校准后的公式逐日滚动计算灌区ET₀。这样既尊重了本地温度数据又借用了完整站的辐射、湿度、风速信息。5.2 对比测试与公式替换先取完整站3年逐日数据算FAO-56 ET₀。同时按灌区站的温度记录算同期的Hargreaves-Samani值。两者逐日对比后回归得到本地系数0.0028截距0.08R²约0.85。我又用第4年数据验证校准后的RMSE约0.55 mm/day相对误差在春玉米需水高峰期间约8%左右。对灌溉制度设计这种应用场景逐日误差0.5~0.6 mm/day完全在可接受范围内——毕竟田间灌溉本身就有灌水定额和轮灌周期的调节余量。相比之下如果直接拿完整站数据硬顶或者干脆用文献系数误差反而更大。这个项目最后就是用这个校准过的Hargreaves-Samani变体把灌区逐日ET₀跑了下来按旬汇总后生成灌溉预报。5.3 误差分析与可推广性事后我把逐月平均误差拉出来看发现两个规律一是冬春季误差小夏秋季误差大因为夏季大风日多温度代理风速的能力下降二是连续阴雨天误差明显偏大因为那种天气下辐射骤降温度日较差代理辐射的效果很差。这两个规律意味着如果你做的是灌溉高峰期的高精度预报光靠温度型变体不够还得叠加短期天气预报或者卫星辐射产品做修正。这个案例也说明一个道理简化公式的可推广性不在于公式本身而在于校准所依托的参照站和灌区气候的相似程度。参照站和本地气候差异越大校准结果的可靠性就越差。6. 我在简化PM变体上踩过的坑和留下的经验6.1 辐射单位的坑Turc的24倍偏差第一次用Turc公式时我直接把气象站给的MJ/m²/day太阳辐射代进了Rₛ算出来的ET₀比预期小一个数量级。后来翻原始文献才发现Turc当年用的是cal/cm²/day和SI单位差了约23.88倍。很多教材直接抄公式、不写单位这个坑特别容易踩。任何辐射型公式到手第一件事是核对Rₛ和Rₙ的单位以及公式里面隐含的换算系数。6.2 净辐射和总辐射不要混用Priestley-Taylor要求的是净辐射RₙMakkink要求的是太阳总辐射Rₛ。有人图省事拿Rₛ直接代进Priestley-Taylor结果ET₀凭空高一截。在中纬度地区Rₙ大概只有Rₛ的60%~70%混用等于把蒸散量放大了三四成。6.3 日尺度系数不要硬搬到月尺度同样一套简化公式用日值累加和用月均值直接算结果可能差10%以上。原因在于Δ、饱和水汽压差这类变量对温度的响应是非线性的用月均温算出来的代理变量不等于日均值算出来再取平均。所以我一般先逐日算再按需求聚合到旬、月不直接拿月均温和月较差套公式。6.4 简化公式不等于免责公式最后说句掏心窝的话。简化PM变体的价值是在资料不足时维持一个可用的估算能力而不是让你省掉观测投入。如果一个地区是长期项目、数据会逐步完善我建议随着站点升级定期把简化公式的计算结果和完整版PM做一次对比动态修正系数。我见过一些项目系数校准一次就五年不动站点设备早就升级了还在用旧系数精度白白损失。最后再补一句我自己的体会。简化的Penman-Monteith公式变体不是用来替代观测的而是在资料不全时维持工程判断力的工具。数据会越来越全但这类公式在基层项目里不会消失——只要还有站点只有一支温度计它就有存在的价值。把数据清单盘清楚、把气候类型吃透、把本地校准做到位它们给灌区算水、给项目做评估完全够用。
返回列表