一种基于机器学习的高精度海表温度反演方法
技术领域
本发明涉及海表温度的反演算法模型,特别是针对现有海表温度(SST)反演算法模型参数构建繁琐,且反演精度易受频谱噪声的影响,尤其是无法预估有云遥感数据的海表温度的缺点,基于机器学习实现有云无云情况下高精度海面温度一致性反演。
背景技术
海表温度(Sea surface temperature,SST)是预估海洋和大气之间复杂关系的基础物理变量,对渔业的环境和可持续管理具有重要的影响,可以为水产养殖的活动和规划提供重要的信息。参考现有科学文献中海表温度的研究,简单的线性回归算法预估海面温度容易受到大气和海域变化的影响降低反演精度,一些非线性算法在一定程度上能够消除大气和海域的影响,但受到外界不确定因素反演精度相对较低。此外,受到云层干扰无法预测含云遥感数据的海温。
现有最为广泛的反演算法是非线性海表温度反演算法,非线性算法能够较高精度的预估海面温度,但是面向全球海温,非线性算法主要表现以下:算法无法反演含云数据的海面温度,只能剔除云遮挡的数据,预估晴空数据的海面温度;算法需要繁琐的数据预处理,通过拟合的方式得到预估海温的表达式。
例如,中国专利申请201510812028.X公开了一种基于Landsat8数据的海表温度反演方法及系统。该方法包括:读入Landsat8光学与热红外遥感图像及与其对应的大气廓线数据;基于水体与海水发射率数据,结合Landsat8热红外传感器TIRS的光谱响应函数,以大气廓线为驱动,模拟在不同大气状况、不同海表温度与发射率等组合条件下TIRS两个通道在大气层顶的通道亮温;利用获得的大气柱水汽含量,将大气柱水汽含量分为若干区间,并结合劈窗算法构建各个水汽含量区间的海表温度反演算法,进而计算海表温度并输出结果。
前面该专利是通过劈窗算法构建海表温度反演算法,虽然在一定程度上能够消除大气和海域的影响,但受到外界不确定因素反演精度相对较低;此外,易受到云层干扰无法预测含云遥感数据的海温。
发明内容
基于此,为了解决上述问题,本发明的首要目的在于提供一种基于机器学习的高精度海表温度反演方法,该方法针对现有海表温度反演算法模型参数构建繁琐,且反演精度易受频谱噪声的影响,尤其是无法预估有云遥感数据的海表温度的缺点,提出了一种基于机器学习的实现有云无云情况下高精度海面温度一致性反演。
本发明的另一个目的在于提供一种基于机器学习的高精度海表温度反演方法,该方法构建的反演模型可以有效地解决以上问题,通过堆栈泛化构建的机器学习模型可以降低云层对不同波段频谱噪声影响,通过扩展亮度温度波段特征和实测温度相匹配反演含云遥感数据的海面温度,解决传统算法无法预估含云遥感数据的问题。此外构建的模型不需要预处理数据,直接将匹配的数据用于海面温度的反演,减少反演繁琐步骤,提高了海表温度反演精度。
本发明的再一个目的在于提供一种基于机器学习的高精度海表温度反演方法,该方法选取Himawari-8数据利用堆栈泛化技术基于机器学习算法进行高精度海表温度反演,有利于建立满足机器学习模型的反演海表温度的数据集,通过特征扩展方法,消除部分频谱噪声,提高单个机器学习精度,利用堆栈泛化技术,消除云噪声带来的海表温度反演误差。
为实现上述目的,本发明提供如下技术方案:
一种基于机器学习的高精度海表温度反演方法,该方法包括如下步骤:
步骤(1)、组合时间序列海表温度实测数据;
步骤(2)、准备与海表实测温度数据具有相近时间域的遥感影像数据;
步骤(3)、建立遥感影像是否有云判别标准;
步骤(4)、将步骤(1)与步骤(2)的数据进行时间关联,匹配与实测海表温度空间位置相近的遥感影像数据,按照步骤(3)判别是否为云,将匹配得到遥感影像中波段数据和辅助数据以及是否有云,作为原始特征X';
步骤(5)、将步骤(4)数据和实测海表温度数据(Y)进行匹配,形成机器学习训练样本集合。
步骤(6)、根据当前海表温度反演研究,制定扩展特征标准,用以扩展原始特征X',形成新的特征X;
步骤(7)、对所有特性X进行标准化;
步骤(8)、构建机器学习子模型,以机器学习回归模型:随机森林回归,支持向量机回归,XGBoot回归和ANN作为子模型,训练数据,获得Level0输出数据;
步骤(9)、以逻辑回归作为集成模型,以Level0输出数据作为输入,以最小二乘算法作为回归检验算法,集成Level0层输出,得到Level1层输出数据;
步骤(10)、构建机器学习模型反演结果评价指标;
步骤(11)、以步骤(9)输出数据和对应的实测数据结果对,按照步骤(10)评价指标进行模型评判。
与现有技术相比,本发明的有益效果是:
本发明从提取样本数据、训练测试模型实现高精度预估海面温度,利用机器学习算法的优势,具体的影响程度通过数据直接解决外界环境的影响因素,通过堆栈泛化构建的机器学习模型可以实现不同波段检测云层对遥感数据的削弱程度,通过削弱后亮度温度和实测温度相匹配反演含云遥感数据的海面温度,解决传统算法无法预估含云遥感数据的问题。此外构建的模型不需要预处理数据,直接将匹配的数据用于海面温度的反演,减少反演繁琐步骤,提高了海表温度反演精度。
另外,选取Himawari-8数据利用堆栈泛化技术基于机器学习算法进行高精度海表温度反演。Himawari-8数据具有10min超短周期的时间分辨率,能够有效和实测海表温度数据进行匹配,有利于建立满足机器学习模型的反演海表温度的数据集,通过特征扩展方法,消除部分频谱噪声,提高单个机器学习精度,利用堆栈泛化技术,消除云噪声带来的海表温度反演误差。
而且,本发明避免了合并不同算法(有云和无云)反演海表温度,可以作为一种一致性海表温度反演算法。
附图说明
图1是本发明所实现的流程图。
图2是本发明在无云数据预估结果散点图。
图3是本发明在有云数据预估结果散点图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示是本发明实现的流程图,将构建的样本数据训练模型,训练后的机器子模型预估海表温度,最后通过构建的评价指标评价反演模型性能。
以下分别说明各个实现步骤,以提供参考。
步骤(1),组合时间序列海表温度实测数据;
通过气象网站获取具有时空信息的实测海表温度,以时间顺序排列数据,根据信息添加索引并以TXT格式保存数据;
步骤(2),准备与海表实测温度数据具有相近时间域的遥感影像数据;
根据步骤(1)中得到实测数据匹配实测数据时间前后30min内的L1级NC格式的Himawari遥感数据,配对时间最邻近的遥感数据。
步骤(3),建立遥感影像是否有云判别标准;
根据遥感数据中心波段为1.6μm和0.0215的阈值判断是否含云,大于阈值判定存在云遮挡,小于判定为晴空数据;
步骤(4),将步骤(1)与步骤(2)的数据进行时间关联,匹配与实测海表温度空间位置相近的遥感影像数据,按照步骤(3)判别是否为云,将匹配得到遥感影像中波段数据和辅助数据以及是否有云,作为原始特征X',具体如下;
步骤41.根据是实测数据的时间匹配时间形同的遥感数据,遥感数据的文件名中包含时间信息;
步骤42.以实测海表温度空间位置为中心提取遥感数据,以实测数据位置为中心建立3×3窗口提取与海表温度有关遥感数据的平均值;
步骤43.根据步骤1检验步骤2中提取的遥感数据是否存在云层;只要一个窗口存在云层在提取的数据中添加“YL=1”的标签,无云的数据添加“YL=0”的标签;将卫星天顶角、卫星方位角、太阳天顶角、太阳方位角作为原始特征X'的辅助数据,匹配得到遥感数据中波段数据和辅助数据及云标签作为原始特征X'。
步骤(5),将步骤(4)数据和实测海表温度数据(Y)进行匹配,形成机器学习训练数据集合。
通过步骤(4)后的数据集和实测海表温度数据(Y)进行匹配,形成机器学习训练数据集合,保存为CSV格式文件。
步骤(6),根据当前海表温度反演研究,制定扩展特征标准,用以扩展原始特征X',形成新的特征X;
根据当前海表温度反演研究,将原始特征中所有波段性相减和相除扩展成新的特征,波段性相减和相除拓展特征方式如下1),2)所示,
其中bandi表示第i波段,bandj表示第j波段。
feature2=bandi-bandj 2)
步骤(7),对所有特性X进行标准化;
标准化数据通过减去均值然后除以方差(或标准差),这种数据标准化方法经过处理后数据符合标准正态分布,即均值为0,标准差为1,转化函数如表达式3),其中μ表示平均值,o表示方差:
步骤(8),构建机器学习子模型,以机器学习回归模型:随机森林回归,支持向量机回归,XGBoot回归和ANN作为子模型,训练数据,获得Level0输出数据;
步骤81.随机森林回归使用CART回归树,利用最小均方差(MSE)搜索各个特征及特征值划分点,其表达式如4),进而建立随机森林回归模型(RFR),其中c1为样本D1的均值,c2为样本D2的均值,A表示特征,s表示切分点;
步骤82.选取样本数据集中80%数据进行训练,对随机森林关键参数:树的数量(n_estimators)和最大特征数(max_features)进行迭代,设置迭代次数为1000,获得模型最优参数,建立最佳随机森林模型;
步骤83.根据步骤2中最佳随机森林模型,反演所有样本数据,得到随机森林预测的海表温度序列P1;
步骤84.基于高斯核函数,其表达式如5),利用scikit-learn构建支持向量机回归模型;
步骤85.选取样本数据集中80%数据进行支持向量机模型训练,基于该训练模型反演所有样本数据,得到支持向量机回归预测的海表温度序列P2;
步骤86.根据特征数量构建多层神经网络,输入参数为标准化后的特征,输出参数为海表温度,多层神经网络,可表达式如6)所示;
其中xi(i=1,…),N0指输入层中的一个元素,它们表示卫星天顶角、卫星方位角、太阳天顶角、太阳方位角以及原始波段特征和扩展特征总计36个变量;N0=36表示输入层中的元素数;N1、N2和N3表示三个隐藏层中的神经元数量;w1,ji,w2,kj,w3,lk,w4,ml,表示三个隐藏层和输出层的权重;b1,j,b2,j,b3,l,和b4,m,表示三个隐藏层和输出层的偏差值。权重和偏差的值由训练算法确定。6)公式中,f代表等式中的双曲正切sigmoid函数。ym表示输出层中的第m个元素,指第m个波段的遥感反射率,同时m的最大值为10,表示Himawari卫星数据10个亮温波段。
步骤87.根据步骤6构建多层神经网络,选取80%样本数据进行迭代训练,将最优模型反演所有样本数据,得到多层神经网络预测的海表温度序列P3。
步骤(9),以逻辑回归作为集成模型,以Level0输出数据作为输入,以最小二乘算法作为回归检验算法,集成Level0层输出,得到Level1层输出数据;
步骤91.以逻辑回归作为集成模型,该模型表达式如7)所示,其中Pi表示(8)中的输出值(P1,P2,P3),wi表示对应的权重值。
步骤92.以最小二乘方法,如表达式8),作为求解7)的标准,计算出当8)最小时,wi的值,从而构建出逻辑回归的集成模型;
步骤93.以步骤2中构建的集成模型,反演所有样本的模拟值i属于样本数据集n样本i;
步骤(10),构建机器学习模型反演结果评价指标;
构建机器学习模型反演结果评价指标:基于机器学习的可解释方差9)、平均绝对误差10)、均方误差11)和决定系数12)构建评价模型整体性的评价指标,将模型预估的海表温度和实测温度的散点图作为不同温度时段的评价指标。可解释方差、平均绝对误差、均方误差和决定系数的公式如下:
步骤(11),以步骤(9)输出数据和对应的实测数据结果对,按照步骤(10)评价指标进行模型评判。
将步骤(9)中模型预估海表温和对应的实测温度写入步骤(10),通过构建的评价指标评定模型的预估能力。
评估效果如图2、图3所示,能够准确反应海面温度。
本发明通过堆栈泛化构建的机器学习模型可以实现不同波段检测云层对遥感数据的削弱程度,通过削弱后亮度温度和实测温度相匹配反演含云遥感数据的海面温度,解决传统算法无法预估含云遥感数据的问题。此外构建的模型不需要预处理数据,直接将匹配的数据用于海面温度的反演,减少反演繁琐步骤,提高了海表温度反演精度。
总之,本发明的优点如下:
1、构建的高精度海面温度反演方法,可以全球海表温度反演提供代替方案。
2、基于机器学习技术实现了含云噪声的遥感数据海表温度反演,解决传统算法无法预估的缺点。
3、利用堆栈泛化技术构建了一致性的海表温度反演,避免了合并不同算法(有云和无云)反演海表温度,可以作为一种一致性海表温度反演算法。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。