王颖超柳青青李洪平赵 红
(1.中国海洋大学 信息科学与工程学院,山东 青岛266100;2.青岛大学 商学院,山东 青岛266100;3.中国海洋大学 数学科学学院,山东 青岛266100)
海表面盐度(Sea Surface Salinity,SSS)在研究海洋循环、气候变化和全球水循环中均发挥着不可取代的作用,因此研究SSS至关重要[1]。2009年,欧洲航天局发射了SMOS(Soil Moisture and Ocean Salinity)卫星,该卫星是一颗专门用来研究土壤湿度与海洋盐度的卫星[2-3];2011年,美国国家宇航局和阿根廷国家空间活动委员会共同发射了Aquarius/SAC-D卫星,为海表盐度的进一步研究提供了重要数据源[4-5]。但是,目前这些卫星已经达到使用年限。我国将计划于2022年发射海表盐度卫星,为我国海表盐度卫星的研究提供新思路。
SMOS卫星搭载的L波段微波辐射计,能够实现对海表盐度和土壤湿度的大范围、全天候实时观测[6]。为了获取高精度海表盐度,学者们对其做了大量的研究和评估。例如:Kolodziejczyk等[7]提出了一种降低SMOS系统误差的方法,通过调整驻留线和轨道方向之间的SSS相对变化,提高了海表盐度的探测精度;而Boutin等[8]在2018年纠正了他的方法,其修正的靠近陆地的SMOS海表盐度与SMAP测量的海表盐度更加一致;金旭辰等[9]基于SMOS数据,采用广义相加模型和偏最小二乘法分析了水温对海表盐度的影响,在平均水温约16℃时的SSS均方根误差(Root Mean Square Error,RMSE)约为0.9,在平均水温23℃时的RMSE约为0.7,在平均水温30℃时的RMSE约为0.4;Boutin等[10]针对远离海岸的宽阔海域,将SMOS卫星的升轨盐度数据与ARGO浮标盐度数据进行比较,结果表明,SMOS卫星在宽阔海域的精度可以达到0.3~0.5;Yin等[11]通过修正正演模型,将风场和降雨的影响最小化,从而提高盐度的反演精度;Zhao等[12]利用多元线性回归的方法来预测海表盐度,其预测的盐度值与WOA13的RMSE值为0.21,提高了海表盐度的观测精度。
机器学习相关算法的应用领域越来越广泛,神经网络、K-means算法和遗传算法等也被引用于海表盐度的反演模型中。BP(Back Propagation)神经网络作为人工神经网络中的一种,其计算过程由正向和反向组成,通过不断的迭代将误差降为最低,其优点较多,自适应性、自组织性、良好的学习能力、良好的联想能力、良好的容错能力和抗干扰能力。同时,BP神经网络在理论和性能方面都已经成熟,并具有很强的非线性映射能力。除此之外,其网络结构具有可调节性,可根据研究的实际情况对隐藏层的数量进行调节,以达到研究的预期目标[13]。
本文综合考虑海表面温度、亮温(包括水平和垂直两个方向的数据值)、波高、主波长、蒸发量和风速等因素对海表盐度的影响,采用BP神经网络方法建立了一种新型的海表盐度预测模型。对比分析本模型计算所得的海表盐度值(SSS0)和SMOS卫星level 2(简称L2)级的3个粗糙度模型盐度产品(SSS1,SSS2,SSS3)与ARGO实测盐度值(SSSARGO),以期为发射的海表盐度卫星提供技术储备。
本文使用2种SMOS卫星数据,即L1C级别的亮度温度数据和欧洲中期预报中心提供的辅助数据(ECMWF数据),选取2015年5月12—31日的南半球海域卫星数据,入射角选择42°~43°。
ARGO浮标采用一种沉浮式的自律式拉格朗日环流剖面观测浮标,测量海水温度、海水盐度和海流参数等多种海洋数据。本文利用ARGO浮标数据第一层(5 m)的盐度值,为了与SMOS数据进行时间与空间上的匹配,本文同样也使用2015年5月南半球的海表盐度数据。数据来源于网站http:∥www.ARGO.org.cn/。此数据为经过国际上普遍认可的对ARGO数据处理模式,处理后可直接应用[14]。
对于SMOS L1C级数据,需要通过SMOS卫星L1C级数据反演至L2级盐度数据所使用的数据处理软件L2OS(L2 Ocean Salinity Operational Processor)进行处理,输出水滴密集度、主波长和海表温度等参数信息。软件主要包括预处理程序、主程序、后置处理和正演模型四部分。其中,预处理程序主要用于反演前对亮温数据进行异常值检测,去除受到射频干扰、太阳反辉区或者其他不明来源的外来污染的异常值,并且L1C级亮温数据的初始化工作也在预处理程序中进行。首先,对于下载的Zip文件进行解压获得“.DBL”和“.HDR”文件,该文件储存了该条带内所有网格点的编号、经纬度信息等;然后,修改软件配置文件里涉及的数据版本信息并检查数据的经纬度,生成Job order配置文件,每组数据对应一个配置文件;最后即生成OTT文件,并将OTT文件加入到L2OS中,输出参数信息。为了节约程序运行时间,只需对存在ARGO浮标的SMOS网格进行处理。此软件源于欧空局SMOS卫星官方网站https:∥smos.argans.co.uk/。
将SMOS卫星L1C数据和ECMWF辅助数据与ARGO实测数据进行时间和空间上的匹配,并去除NAN无效数据。时间上,匹配的最大时间间隔为1天;空间上,按照SMOS数据的网格点进行匹配。除此之外,对同一入射角对应的不同亮温值进行求平均值处理,而对相同的天、小时、网格点数据进行标准化处理。随后,按照同样的匹配原则将其L2级数据进行匹配。在2015年5月12—18日时间范围内,共匹配有效数据1021组,并将此数据集作为本次研究的建模数据;在2015年5月19—31日时间范围内,共匹配有效数据2055组,将此数据集作为新模型的验证数据集。
BP(Back Propagation)神经网络是人工神经网络的一种,该网络模型主要包括三部分:输入层、隐藏层和输出层。在建模过程中,为了提高精度可以设置多个隐藏层并给其设定传递函数。BP神经网络包括2个方向的传播,先是信号的正向传播(图1a),信号到达输出层后,若网络输出值与期望值有偏差,则计算损失函数并进行误差信号的反向传播(图1b)。由于层与层之间通过权重和偏置来连接,因此反向传播是通过不断地迭代来调整每一层各个神经单元的权重系数和偏置值,从而使得损失函数最小,直到达到所限定的迭代次数或者规定的误差为止。
图1 BP神经网络组成及原理Fig.1 Composition and schematic of BP neural network
BP神经网络的计算公式:
利用匹配的1021组数据进行建模,由于不同参数的数值有很大差异,所以为了避免大数据淹没小数据的情况发生,利用mapminmax对数据进行归一化处理。经过不断的试验,最终选定了隐藏层为5层,且确定正向传播时每一层的神经元节点数分别为9,5,5,4和3,对应的每一隐藏层的传递函数分别为tansig,tansig,tansig,tansig和purelin,训练函数选择trainrp函数。除此之外,我们将模型的最大训练次数设为1000次,目标精度设为0.00001,学习率为0.00001。该模型训练1021组数据用时4 s,迭代602次,利用该模型得到的权值和偏置矩阵如表1所示。
表1 模型输出的各层权值和偏置Table 1 Weight and offset of the model output
利用匹配的2055组数据作为模型的验证数据集,并按照与本文中模型建立相同的数据处理方法对验证数据集进行处理。利用式(1)、式(2)及表1中模型输出的权值和偏置矩阵进行计算。可得南半球海表盐度(SSS0)和SSS3以及ARGO的盐度值SSSARGO,将其对比(图2)(随机抽取1000组数据展示),结果表明,SSS0与ARGO实测值更为接近,精度更高。
在模型验证部分,本文分别计算了SMOS的3个粗糙度模型盐度产品(SSS1,SSS2,SSS3)和本模型(SSS0)与ARGO实测盐度值SSSARGO的误差,结果表明,SSS1,SSS2,SSS3与SSSARGO的误差值在[-1,1]的数据分别占总数的47%,49%和49%;SSS0与SSSARGO的误差值在[-1,1]的数据约占总数的80%;由此可知,本模型极大提高了海表盐度的预测精度。进一步计算了SSS0,SSS1,SSS2,SSS3与SSSARGO的均方根误差(RMSE)和平均绝对误差(Mean Absolute Error,MAE),如表2所示,结果表明:SSS0与SSSARGO的RMSE和MAE都远小于其他3个盐度产品。
图2 ARGO实测盐度数据与SSS0,SSS3的对比Fig.2 Comparison between SSS0,SSS3 and SSSARGO
表2 SSS0,SSS1,SSS2,SSS3与ARGO实测盐度值(SSSARGO)的误差Table 2 The error of SSS0,SSS1,SSS2,SSS3 and ARGO(SSSARGO)measured salinity value
图3 SSS0,SSS1,SSS2,SSS3与SSSARGO的误差对比Fig.3 Comparison of errors between SSS0,SSS1,SSS2,SSS3 and SSSARGO
由于SMOS的3个粗糙度模型得出的盐度值极为相似,因此将SSS3作为SMOS粗糙度模型的代表盐度值。本文分别计算了SSS0,SSS1,SSS2,SSS3与SSSARGO的误差值。随机抽取验证数据中的1000组数据进行分析,可见SSS1,SSS2,SSS3与ARGO浮标盐度值之间误差较大,其误差分布范围较广,而SSS0与SSSARGO误差值却集中分布在0附近,这表明二者之间误差较小(图3);分析SSS0,SSS3与SSSARGO的误差,可得其空间分布结果(图4),选取太平洋中部(20°×20°)海域;统计SSS0,SSS3与SSSARGO的误差(图5)可知,SSS0与SSSARGO的误差值多集中在0附近,而SSS3与SSSARGO的误差值分布较广,该结果表明SSS0与SSSARGO误差最小。
图4 SSS0,SSS3与SSSARGO的误差空间分布Fig.4 The spatial distribution of the error between SSS0,SSS3 and SSSARGO
图5 SSS0,SSS3与SSSARGO的误差分布Fig.5 The distribution of the error between SSS0,SSS3 and SSSARGO
海表盐度在研究海洋循环、气候变化和全球水循环中都起着不可取代的作用,由于海表盐度观测受诸多因素的干扰且数据处理过程较为繁琐,难以得到十分精确的数据结果,因此提高海表盐度的预测精度尤为关键。本文通过BP神经网络的方法对海表盐度进行建模,得到了一个全新的海表面盐度预测模型。本模型与SMOS的3个粗糙度模型盐度产品相较,精度更高。
在未来的研究中,我们将继续尝试机器学习的其他方法来建立预测模型,争取建立一个精度更高的海表盐度预测模型,为我国2022年即将发射的海表盐度卫星做贡献。