基于光照度的农田蒸散量估算方法研究
2021-05-19苏宝峰张旭东米志文杜鹤娟
苏宝峰 张旭东 米志文 杜鹤娟
(1.西北农林科技大学机械与电子工程学院, 陕西杨凌 712100; 2.农业农村部农业物联网重点实验室, 陕西杨凌 712100;3.西藏民族大学信息工程学院, 咸阳 712089)
0 引言
蒸散量(ET)的精确估算对了解作物需水、指导灌溉起到关键作用,对揭示区域性农业气候特征和生态环境差异也具有重要作用[1-7]。
目前,在蒸散量估算研究中,既要降低对辐射数据的依赖,又要提高蒸散量的估算精度[8-12]。例如基于温度的哈格里夫斯(Hargreaves-Samani, H-S)模型,其主要数据为空气温度,但在实际应用中常需地域校准或引进辐射数据[13-14]。贾悦等[15]将辐射因子引入H-S模型中,提高了模型的稳定性。ZAHRA等[16]将基于温度法的简化模型和基于辐射法的简化模型进行对比,解释了不同类型模型的适应性问题。然而,测量太阳辐射的辐射计成本很高[17-18],全球的辐射监测站点远少于气象监测站点[19-23],无法在农业实际应用中大范围安装和布署。
光照度反映太阳辐射中可见光波段的光强度,光照度传感器用于测量光照的明暗程度,虽然无法直接测量不可见光波段的光强度,但在太阳辐射的全波段中可见光与不可见光波段的能量比例较稳定,因此通过光照度表述太阳的辐射作用,从而进行蒸散量的估算尚有待探索。
机器学习回归算法是影响蒸散量估算精度的一个重要因素。现阶段,多采用单元机器学习回归算法[24-26]。冯禹等[27]构建了基于遗传算法优化的误差反向传播神经网络(Back propagation neural network,BPNN)蒸散量预测模型,改善了局部最优解现象,但尚未表明单一模型的稳定性。HOSSEIN等[28]利用自适应神经模糊系统(Adaptive network-based fuzzy inference system,ANFIS)精准拟合非线性关系的特性,将其用于ET与气象数据的非线性拟合,其模拟精度高于常规的公式法。WALLS等[29]以波文比仪器的观测值作为数据源,采用人工神经网络(Artificial neural network, ANN)预测蒸散量,有效地预测了逐时级的蒸散量。
集成算法可解决单元机器学习模型性能精度低、泛化性能差的问题。SUN等[30]采用融合了BPNN、广义回归神经网络(Generalized regression neural network,GRNN)、极限学习机(Extreme learning machine,ELM)和SVR的集成学习算法,进行PM2.5逐时预测,提高了模型的预测精度。集成算法在短期光伏发电预测、生物质热解等领域也表现出稳定、高效的模型性能[31-32]。因此,有必要研究集成学习算法在蒸散量估算中的适用性。
本文将涡度相关系统观测的实际蒸散量作为被预测量,采用光照度代替太阳辐射,提出晴朗指数,构建融合极端梯度提升模型(XGBoost)、分布式梯度提升框架(LightGBM)、支持向量回归(SVR)、随机森林回归(RFR)的多元集成实际蒸散量(ETa)估算模型,并与XGBoost、LightGBM、SVM、RFR算法进行比较,为简化蒸散量估算以及在农业实际中应用和推广蒸散量提供科学依据。
1 材料和方法
1.1 试验区概况
试验区位于陕西省中国旱区节水农业研究院的玉米种植试验田(34°17′58.47″N,108°4′2.93″E,海拔525 m),年均蒸发量1 500 mm。试验期间田间种植夏玉米,试验区地形开阔,附近多为农田,涡度相关系统位于农田中央。
1.2 数据获取和处理
1.2.1气象数据和蒸散量数据获取
在夏玉米轮作旱田安装涡度相关系统(Open path eddy covariance,OPEC)。图1为涡度相关系统和光照度记录仪。该系统主要组成部分为:CAST3A型三维超声风速仪、LI75600A型开路CO2/H2O分析仪、CR1000型数据采集器、HMP-60型空气温湿度探头、LI200SZ型辐射量表和HFP01SC型热通量板等[8]。
涡度相关系统获取空气温度、空气湿度、净辐射和实际蒸散量数据;光照度记录仪安装在固定辐射传感器的横臂上,型号为MAX44009,量程为0~200 000 lx,用于记录与涡度相关系统对应采集时间的光照度。两个设备的数据同时采集和记录,数据每30 min同步记录1次。记录2019年6月22日—9月22日共计3 648组数据。
1.2.2晴朗指数
在蒸散量数据集中提出晴朗指数描述不同天气类型下逐时蒸散量分布特征。影响蒸散量的主要气象因子有太阳辐射和空气温度[33]。目前蒸散量的估算研究直接用气象数据作为数据源,在进行蒸散量逐时估算研究中,作为同一天的气象数据时存在当日太阳辐射分布差异较大导致蒸散量的分布差异较大。不同天气类型条件下蒸散量的变化趋势具有很明显的特征差异。而模型的输入特征中并无对天气类型的描述,减弱了模型的估算效果。为此提出基于光照度数据的晴朗指数。将每日的光照度均值作为当日的晴朗指数,其计算公式为
式中n——当日光照度数据点个数
S——晴朗指数
Xi——第i个数据点光照度,lx
1.3 蒸散量估算算法
在蒸散量的估算研究中,核心问题在于准确描述气象因子与蒸散量之间的非线性关系。集成算法是最近发展起来的,可解决单元模型性能精度低、稳定性差的问题。然而,蒸散量估算多通过XGBoost、LightGBM、SVM回归、RFR回归等单元回归算法实现,还未采用多种单元模型组合的集成算法。为此本研究基于以上4种单元模型构建集成学习算法,探索集成算法在蒸散量估算问题中的模型性能。
1.3.1单元模型
XGBoost是一种梯度增强回归树的改进算法。与LightGBM算法相比,XGBoost采用Pre-sorting算法[34],能够根据数据特征准确找到分裂点,提高模型的精度,在数据挖掘比赛中使用广泛。LightGBM算法是一种新的梯度提升框架。对比XGBoost算法,LightGBM采用Leaf-Wise生长策略,提高了模型的训练效率,同时,增加了最大深度限制,在保证高效率的同时防止过拟合问题的出现。RFR是决策树算法之一,主要用来解决回归问题,RFR在决策树的训练过程中引入了随机数据选取和随机特征选择,使得模型更具有鲁棒性。SVR是支持向量机(Support vector machine,SVM)中的一个重要的应用分支。其通过引入惩罚因子提高了模型的泛化性能。同时,引入的多种核函数可以灵活地解决各种非线性回归问题。
1.3.2集成算法
集成算法是目前机器学习领域研究中的热门方向。集成学习通过组合多种弱学习器得到一个预测效果比较好的强学习器。在数据不充分时,集成学习采用bootstrap进行数据抽样,得到多个数据集,分别进行训练后再组合。在弱学习器的选择中集成学习遵循“好而不同”的原则,即弱学习器间拥有各自的优点。如图2所示,集成算法的主要思想是训练模型来学习使用底层学习器的预测结果,其中基础学习器在所有数据集上生成预测结果,次学习器会基于基础学习器的预测结果进行再训练进而提高模型的精度。
蒸散量估算的集成算法的训练过程如下:首先在数据处理阶段将空气温度、空气湿度、饱和水汽压差和光照度作为特征向量,实测蒸散量作为目标量建立训练集和测试集。如图3所示,训练集经过三折交叉验证产生3组训练样本集,分别将其中的2组用于基础学习器训练,1组作为验证集进行预测。这样对于每一个基础学习器均可得到3组预测结果和3个模型,将3组预测结果进行合并记为A1。同时,将测试集分别代入3个模型进行预测,将3组预测结果进行加权平均和整合记为B1。对于XGBoost、LightGBM、RFR以及SVR 4种基础学习器会产生对应的A1、A2、A3、A4和B1、B2、B3、B4 4对数据集。其中,A1~A4分别包含了4个基础学习器的模型特征,将A1~A4合并作为次学习器的训练集,B1~B4合并作为次学习器的测试集。次学习器将每个基础学习器的预测结果作为特征进行学习训练,即给基础学习器的预测结果赋予权重,来使最后的蒸散量估算更为准确。
1.3.3模型的超参数寻优算法
在通过机器学习算法建立气象因子与蒸散量的非线性关系中,模型超参数的最优选择直接决定了算法的性能。随机搜索和网格搜索是常用的两种超参数优化方法。随机搜索能快速地缩小超参数的范围,而网格搜索较随机搜索能更精确确定超参数的数值。本研究中,首先采用随机搜索快速确定超参数的大致范围,再通过网格寻优精确确定超参数的最优组合。同时通过交叉验证提高模型的泛化性能。XGBoost、LightGBM、SVR、RFR 4种模型的主要超参数如表1所示。
表1 单元模型超参数Tab.1 Element model hyperparameters
1.4 精度验证
通过均方根误差(RMSE)和决定系数(R2)验证数据的可靠性,分别分析不同蒸散量模型和晴朗指数校正的结果。RMSE越小,R2越接近1,说明模型的精度越高,预测性能好。
2 结果与分析
涡度相关系统记录的原始通量数据经过Eddypro软件处理,得到实际蒸散量数据作为数据集的被预测量。涡度相关系统采集的空气温度、空气湿度、太阳辐射以及光照度记录仪采集的光照度数据和引入的晴朗指数作为预测量。其中,太阳辐射和光照度用来描述太阳光照强弱,作为预测量输入XGBoost、LightGBM、RFR、SVR 4种单元模型和集成模型,用于验证光照度代替太阳辐射估算蒸散量的可行性。本文首先通过相关性分析以及回归建模验证光照度代替太阳辐射的可行性,其次基于光照度采用集成算法建立实际蒸散量估算模型,最后,在基于光照度的气象数据中引入晴朗指数,分析晴朗指数在蒸散估算中的作用。
2.1 光照度与太阳辐射相关性分析
在进行光照度与太阳辐射以及空气温度与太阳辐射的相关性分析中,同时采用Pearson相关系数和Spearman相关系数。Pearson相关系数受限于数据的分布情况,而Spearman相关系数是一种与分布无关的检验方法。同时采用以上两种检验方法更能反映实际的相关情况。光照度与太阳辐射在Pearson和Spearman相关性分析中,相关系数分别为0.967 7、0.891 4,表明光照度与太阳辐射的相关性极高。空气温度与太阳辐射的相关性较低,但也有一定的相关性特征,相关系数分别为0.627 1、0.579 6。以上分析表明了通过光照度、空气温度代替太阳辐射的可行性。采用了线性回归、回归树、支持向量机以及高斯回归建立光照度预测太阳净辐射的模型,结果如表2所示,通过4种回归算法建立光照度、空气温度与太阳辐射回归模型的R2均为0.94,初步验证了通过机器学习算法太阳辐射可被光照度替代。
表2 太阳辐射回归模型Tab.2 Solar radiation regression model
2.2 基于光照度的蒸散量估算
首先,建立空气温度、空气湿度、饱和水汽压差、光照度与蒸散量之间的非线性关系。随机选取数据集中的80%作为训练集,20%作为测试集。通过网格搜索和随机搜索组合的超参数寻优方法,确定各个单元模型的超参数。训练集共2 918组,测试集共730组,验证不同模型的预测能力。用测试集分别验证XGBoost、LightGBM、RFR、SVR 4种单元模型的预测性能,将4个单元模型的预测结果作为集成模型的输入特征向量进行回归,建立基于光照度的蒸散量估算模型。
图4为基于光照度的4种单元模型和集成模型的蒸散量估算结果,XGBoost、LightGBM、RFR、集成模型的R2在0.9以上,其中集成模型的拟合效果最好,R2为0.955,集成模型的RMSE最小,为0.065 mm/h。表明光照度在蒸散量预测中效果良好,也初步表明集成算法的性能优于4种单元模型。
由图5可知,通过空气温度、空气湿度、饱和水汽压差和太阳辐射作为输入预测蒸散量,LightGBM、集成模型R2在0.9以上,最优R2为0.905,RMSE最小为0.094 mm/h。表明太阳辐射在蒸散量预测中同样具有良好的预测效果。
表3为分别通过光照度和太阳辐射估算蒸散量的模型结果对比,模型精度差异较小,R2最大差值为0.053,RMSE最大差值为0.031 mm/h,尤其是在SVR模型中,RMSE与R2的差异最小。太阳辐射和光照度预测蒸散量的性能很接近,证明了光照度替代太阳辐射作为预测蒸散量的辐射类数据的可靠性。其次,从训练算法角度进行分析评价,集成模型的整体性能优于单元模型。从基于光照度的蒸散量模型对比中可以发现,集成模型的R2与RMSE均优于单元模型。同样,基于太阳辐射的蒸散量模型中也能得出相同的结论。表明集成模型在解决蒸散量非线性问题时具有优势。
表3 光照度与太阳辐射估算蒸散量模型比较Tab.3 Comparison of illuminance and solar radiation estimation evapotranspiration models
2.3 晴朗指数对蒸散量估算精度的影响
不同天气条件下蒸散量的变化趋势具有很明显的差异。如图6所示,为了更加直观说明天气类型和蒸散量间的关系,将每日的逐时级实际蒸散量和光照度数据进行对比分析。以7月1日的蒸散量分布和光照度分布为例,7月1日的光照度分布与前一天差异较大时,其蒸散量分布也存在较大差异。这说明了在进行当日逐时级实际蒸散量估算中,当日的光照度分布情况对逐时级的蒸散量有较大影响。同理,在数据集中的其他日期也基本符合上述特征,而在2.2节部分模型的输入特征数据中并无对光照度分布的描述,降低了模型的预测效果。为此,在蒸散量的预测数据集中引入晴朗指数,作为逐时级蒸散量估算的惩罚因子。
在引入晴朗指数后,4种单元模型和集成模型的训练结果如图7所示。5种模型的一致性优于不引入晴朗指数的结果。如表4所示,引入晴朗指数后,单元模型XGBoost、LightGBM、RFR、SVR和集成模型的R2和RMSE均具有显著提升,其中RMSE最大降低了0.028 mm/h,最优值为0.037 mm/h。R2最大提高了0.03,最优值为0.985。
表4 晴朗指数对蒸散量预测模型的影响Tab.4 Influence of sunny index on evapotranspiration prediction model
为了进一步验证引入晴朗指数后通过光照度预测蒸散量的效果以及集成模型在进行蒸散量预测的优势,采用太阳辐射、晴朗指数和基础气象因子作为数据集,通过4种单元模型和集成模型进行蒸散量预测建模并与基于光照度的模型进行对比。
表5为引入晴朗指数后光照度与太阳辐射预测蒸散量的模型结果对比。结果表明:光照度在蒸散量的预测中可代替净辐射参数。晴朗指数对预测逐时级的实际蒸散量有较大的特征贡献,提高了预测模型的精度。集成模型的预测能力在蒸散量预测中优于单元模型。基于光照度数据,引入晴朗指数后的数据集成模型预测效果如图8所示,从图中可以看出,基于光照度的集成模型在不同天气晴朗条件下均能很好地表达蒸散量的气象特征,提高了蒸散量的预测精度。R2和RMSE分别为0.985和0.037 mm/h,能较好地对实际蒸散量进行预测。
表5 引入晴朗指数后光照度与太阳辐射预测蒸散量 模型对比Tab.5 Comparison between illuminance and solar radiation prediction evapotranspiration model after introducing sunny weather index
3 结论
(1)建立了基于光照度的蒸散量估算方法,分析了光照度代替太阳辐射的可行性,对比了XGBoost、LightGBM、RFR和SVR 4种单元机器学习回归模型和基于这4种单元模型的集成模型在蒸散量估算中的精度和稳定性。
(2)提出了基于光照度的晴朗指数,晴朗指数有助于表述当日逐时光照度分布差异较大时其逐时蒸散量也存在较大差异这一数据特征,晴天、多云以及阴天等不同天气条件下蒸散量的变化具有很明显的特征差异,原始气象数据中并无对天气类型的描述,因此降低了模型的预测效果,而晴朗指数作为短期逐时级实际蒸散量预测的惩罚因子解决了此问题,提高了蒸散量的估算精度。
(3)通过光照度代替太阳辐射的可行性分析可以得出,光照度能很好地代替太阳辐射来表述太阳对农田的辐射作用。光照度传感器使用比较普及,从而降低了农田蒸散量的仪器测量成本。相较于单元模型,集成算法更适合进行蒸散量的估算,集成算法通过次学习器对基础学习器的4种单元回归算法特征进行了权值分配,提高了模型的整体精度和稳定性。