程文聰,王志剛,張文軍,史小康
(北京航空氣象研究所,北京 100085)
云會影響飛行員的視覺判斷,飛機在起降過程中要考慮低云大霧的影響,積雨云則可能會引發飛機顛簸和積冰,云的結構在一定程度上也反映了強對流風暴等天氣系統的發展方向和強度,因此云的三維結構對于航空飛行安全和飛行任務實施有著巨大的影響,一直是民航和軍事部門非常關注的氣象要素之一。在飛行航線規劃中應盡量避免飛行器在云層中穿行,實時航空氣象服務保障過程中也應及時提醒機組人員注意大片密集云團,此外云對于紅外、電視、激光等空中制導武器的制導性能也有較大影響,掌握云的三維結構對于航空氣象服務保障具有重要的實際意義。
當前對于天氣雷達未覆蓋區域的云三維結構的獲取主要有兩種途徑,一種是基于天氣數值預報模式的方法,另一種是基于衛星云圖產品反演的方法。天氣數值預報模式是能夠定量預測未來天氣變化的一種技術手段,通過對天氣數值預報模式的診斷分析可根據大氣物理特征和規律獲取未來數十小時各個標準等壓面層的云量產品以及云底高、云量等云結構參數產品。但其在實際業務使用過程中存在一定不足和限制,云是目前公認的數值預報模式中重要的不確定因素之一,數值預報的計算是一個復雜的過程,一般只在固定時間點發布數小時后的預報產品,不能及時融合具有較好時效性的實時資料,因而對臨近時間點的云參數預測準確率偏低。而且該方法對計算資源有較高的要求,難以在機場氣象臺實際航空氣象業務工作中部署應用。衛星作為云探測的有效工具,其云圖能夠提供大范圍、多時次的宏觀和微觀云信息,不僅可以檢測行星尺度的天氣系統,也能對單個對流云團進行監測,基于衛星云圖反演的方法通過直接對衛星云圖的處理可獲取云頂高、云分類、云覆蓋等結構信息,但難以獲取云底高、云層厚度等重要的云結構參數,因而無法獲取云三維結構的完整信息。
在云的三維可視化方面,當前有多種方法可以構建視覺效果較為逼真的三維云,如基于體過程的建模方法、基于分形的建模方法、基于文法的建模方法以及基于粒子系統的建模方法等。由云的物理形成原理可知,云是由無數的水滴和小冰晶隨機運動產生的,而基于粒子系統的建模方法正是由基本粒子群按照一定的規則組成物體的形態,因此基于粒子系統生成的云具有豐富的三維結構,與自然環境中的云具有物理相似性,能夠構建可視化及交互效果較為真實的三維云。
目前深度學習在圖像分類、圖像識別和語音識別等多個領域的應用取得了較好的結果,基于卷積神經網絡(CNN)的方法在計算機視覺等領域有了廣泛的應用,但在圖像生成領域中使用歐式距離作為相似性度量的常規深度學習方法通常會傾向于產生模糊的圖像。深度生成對抗網絡是近年來人工智能領域有較多研究的一個方向,通過生成器和判別器的對抗,實現生成器參數和判別器參數的訓練優化,從而建模從特定領域A向特定領域B的數據映射關系,實現產品從領域A向領域B的轉換,生成對抗網絡模型目前在圖像生成領域有較廣泛的應用。
本文提出一種基于生成對抗網絡的三維云構建方法。在統一的模型下,利用深度學習的非線性映射能力,使用生成對抗網絡建立衛星云圖產品與云結構參數產品的映射模型,將衛星云圖產品重構為云頂高、云底高和云量產品,再通過這些云結構參數構建基于粒子系統的三維云,從而為航空氣象服務保障提供云信息資料支持。
深度學習需要有大量數據作為訓練的支撐,本文工作的目標是將衛星云圖產品作為源數據,反演云頂高、云底高和云量這三個反映云結構的參數,進而通過引入粒子系統構建三維云。因此需要使用衛星云圖產品作為源數據,對應時次的云頂高、云底高和云量產品作為訓練目標。具體研究中選取了FY-4A(風云4A)氣象衛星4km分辨率各通道產品作為衛星云圖源數據,歐洲中期天氣預報中心提供的0.25°×0.25°(經緯度)分辨率的ERA5再分析場產品作為云底高和云量產品的訓練目標,國家氣象衛星中心網站上公布的云頂高2級反演產品作為云頂高產品的訓練目標。各產品的覆蓋范圍均選取為北緯10°~北緯50°、東經90°~東經130°。
1)FY-4A衛星通道產品
FY-4A地球靜止氣象衛星是我國第二代靜止軌道氣象衛星的首發星,搭載了多通道掃描成像儀、干涉式大氣垂直探測儀、閃電成像儀、空間環境監視儀等多種載荷,本文的工作中選擇FY-4A搭載的多通道掃描成像儀通道產品作為源數據。多通道掃描成像儀的主要任務是對地球表面和云物理狀態參數進行高頻次、高精度、多光譜定量遙感,直接為天氣分析和預報、短期氣候預測以及環境和災害監測服務。觀測波段覆蓋可見光、近紅外、短波紅外、中波紅外和長波紅外,既可觀測到大尺度天氣系統的全貌,又可觀測到中、小尺度天氣系統的迅速演變過程。多通道掃描成像儀共配備14個通道,包括7個可見光-近紅外通道和7個紅外通道。14個通道中500m地面分辨率通道1個,1km通道2個,2km通道4個,4km通道 7個,全圓盤觀測時間間隔為15分鐘。
本文工作中為統一各通道產品分辨率,且不影響工作的一般性,選取4km分辨率的通道產品作為衛星云圖源數據,則在考察范圍 (北緯10°~北緯50°、東經90°~東經130°) 內單一通道產品分辨率為1000×1000;為配合數值模式產品的時效,云圖通道產品也選擇逐小時的整點產品。目前在國家衛星氣象中心網站上該資料的起始時間為2018年3月12日。
2)歐洲中期天氣預報中心第五代數值模式再分析場(ERA5)云底高和云量產品
云底高指云層底所處的高度,云量指云遮蔽天空視野的成數。歐洲中期天氣預報中心發布的數值模式產品是實際業務中使用較為廣泛的產品之一,各個氣象業務部門一般均將其作為天氣分析和預報的重要資料源之一。ERA5再分析數據是其發展的第5代全球大氣再分析數據,在大氣物理模型的基礎上同化了30余顆衛星的觀測資料以及全球多種觀探測資料,具有較高的可信度和準確度。通過歐洲中期天氣預報中心網站可下載1979年至今的歷史ERA5再分析場產品,本文中使用0.25°×0.25°(經緯度)空間分辨率的逐小時ERA5云底高產品和總云量產品作為云底高和總云量訓練目標產品,則在所考察范圍 (北緯10°~北緯50°、東經90°~東經130°) 內產品分辨率為160×160。目前在歐洲數值中心網站上該資料的起始時間為1979年1月1日。
3)國家衛星氣象中心FY-4衛星反演的云頂高產品
云頂高指云層頂所處的高度,歐洲中期天氣預報中心的ERA5再分析產品中沒有提供云頂高產品,而國家衛星氣象中心利用FY-4A衛星的2個紅外通道和1個CO2吸收通道,結合數值預報資料,通過最優估計的迭代計算,生成了全圓盤的云頂高度2級反演產品并公開發布,本文將其作為云頂高訓練的目標產品。該產品分辨率為4km,則在所考察范圍 (北緯10°~北緯50°、東經90°~東經130°) 內產品分辨率為1000×1000,為配合云底高產品和云量產品共同構建三維云結構,將其降采樣為與云底高和云量產品相同的160×160分辨率。目前在國家衛星氣象中心網站上該資料的起始時間為2019年1月18日。
采用基于生成對抗網絡的模型獲取云結構參數產品。產品生成過程如圖1所示。

圖1 云參數產品生成過程
該問題可形式化為如下表述:


(1)
為生成云參數產品,首先需要收集同時次、同區域的歷史云圖通道產品和目標云參數產品組成訓練數據集,繼而構建深度生成對抗網絡模型,經訓練提取訓練數據集中云圖通道產品與云參數產品間的對應信息,最后將待推算時次的云圖通道產品作為模型輸入,模型的輸出即為對應時次的云參數產品。

圖2 云參數產品生成對抗網絡架構
如圖2所示,生成對抗網絡模型需要訓練兩個不同的網絡,分別為生成網絡G和辨別網絡D。選用U-Net結構再結合一個下采樣層構成生成網絡G。U-Net結構是一種增加了跳躍連接的編碼-解碼器網絡,在圖像分割領域有較廣泛的使用,文中模型使用的U-Net為64層結構。由于衛星云圖產品與云參數產品具有不同的分辨率,因此在U-Net結構后增加下采樣層將輸出產品調整到目標云參數產品的分辨率,下采樣層采用雙三次插值方法將輸出結果的分辨率降為目標云參數產品的分辨率。辨別網絡D為一個64層的卷積分類網絡,通過計算其輸入為真實云參數產品的概率,辨別輸入的是真實云參數產品還是模型生成的云參數產品。在模型訓練過程中,判別器嘗試正確辨別真實云參數產品與生成的云參數產品,生成器則嘗試生成盡可能真實的云參數產品使辨別器無法辨別真偽。

令(,)為辨別器準確識別真偽云參數產品的概率,(,)為由衛星云圖產品生成云參數產品的函數(為隨機噪聲),則對于辨別器,目標函數為找到如下使最大化的模型參數:
argmax((,))+log(1-(,(,))))
(2)
對于生成器,目標函數為找到如下最優化參數
argmax((,(,))
(3)
模型具體實現中,使用二元交叉熵作為損失度量。即對于辨別器而言,損失函數如下
((,),1)+((,(,)),0)
(4)
其中

(5)

對于生成器而言,文獻[14]的研究表明將生成對抗損失與傳統的損失函數結合將得到更好的結果。因此令的損失函數為生成對抗損失與1損失的按比例合成,具體損失函數如下
=((,(,)),1)+|-(,)|
(6)
其中和為生成對抗損失和1損失的比例系數。
訓練過程以迭代方式執行。首先對辨別器進行訓練,對批量輸入真實云參數產品和生成器生成的云參數產品,利用損失通過反向傳播的方式更新辨別器的參數;繼而凍結辨別器的參數,對生成器和辨別器批量輸入衛星云圖通道產品和對應的真實云參數,計算生成器損失,再通過反向傳播的方式更新生成器的參數。重復上述過程直至生成器和辨別器的能力達到平衡。
訓練優化方法為使用mini-batch SGD的ADAM方法,學習率為0.0002,優化器動量參數=05,=0999。在推理測試過程中,使用生成器生成目標云參數產品,生成器網絡架構與訓練階段的生成器網絡模型相同,參數為訓練后的生成器模型參數。
基于深度學習計算得到的云頂高和云底高參數產品,結合特定經緯度網格所限定的平面邊框,可構建該網格區域的云立體輪廓,再利用粒子系統根據云量參數生成一定量的云粒子對立體輪廓進行填充,即可得到可視化及交互效果逼真的三維云體,云立體輪廓如圖3所示。

圖3 地理網格單元上的云立體輪廓示意圖
傳統的基于粒子系統的三維云構建方法一般強調追求視覺效果而沒有使用真實的云結構參數,本文在云立體輪廓中按如下方式填充粒子系統以使生成的三維云與實際空域中的云形態保持基本一致:
1)為每一個地理網格單元生成一個粒子系統,設定該網格單元上粒子系統的輪廓為與云立體輪廓相同的立方體。
2)每一個粒子系統中的粒子數量由式(7)確定,使得粒子的密度與云量線性相關。
=(-)
(7)
其中為粒子數量,為調整系數,為云量,為云頂高,為云底高。
3)在粒子系統中,云粒子需要指定紋理材質以進行渲染,本文使用的粒子紋理材質如圖4所示。為獲取較好的云粒子視覺效果,設定該紋理材質的亮度按高斯分布從中心向邊緣連續遞減。

圖4 云粒子渲染材質
通過實驗分析基于深度學習生成的云頂高、云底高以及云量參數的質量,并展示基于云參數的三維云演示驗證軟件。
設定云參數質量判別方法為平均絕對誤差,在實驗中僅計算真實云參數產品和生成云參數產品中不同時為0的格點。對于尺寸為×的生成云參數產品數據以及真實云參數產品數據,相關計算公式如式(8)所示

(8)
其中為樣本數據緯度方向的格點數,為樣本數據經度方向的格點數。
實驗環境配置如下,CPU:Intel Xeon 4116×2、內存:64GB、GPU:NVIDIA GTX 1080ti 11GB×2、硬盤:512GB SSD、操作系統:Ubuntu 18.04、深度學習平臺:Pytorch 1.0.1。
本文所使用的FY-4A衛星通道產品以及三個目標云參數產品的資料覆蓋時間存在一定區別。FY-4A衛星通道產品的資料起始時間為2018年3月12日;目標云底高和云量數據來源于歐洲ERA5數值模式再分析產品,資料起始時間為1979年1月1日;目標云頂高數據來源于FY-4A衛星2級反演數據,資料起始時間為2019年1月18日。為最大化利用訓練數據,使用上述生成對抗網絡模型針對三個云參數分別獨立進行建模訓練。云底高和云量產品使用的輸入數據為FY-4A全部14個通道的產品數據,訓練數據時間區間為2018年3月12日至2019年6月31日的逐小時數據,由于夜晚可見光通道無數據,僅使用白天10個時次(北京時08時~17時)的數據,共計4455組;由于云頂高參數在理論上可由衛星紅外通道產品計算,因此使用的輸入數據為FY-4A的7個紅外通道產品,訓練數據時間區間為2019年1月18日至2019年6月31日全天的逐小時數據,共計3789組。
模型均經歷200個訓練周期(epoch)的訓練,云頂高產品的訓練時長為3小時16分,云底高產品的訓練時長為3小時29分,云量產品的訓練時長為3小時23分。
參與統計分析的測試數據為2019年7月1日至2019年7月31日的逐小時數據。由于夜晚可見光通道無數據,因而僅取白天10個時次(北京時08時~17時)共302個時次的數據(存在缺測時次)。表1為云頂高產品、云底高產品和云量產品的平均MAE誤差以及測試數據中最大、最小MAE誤差統計。統計結果顯示,測試數據中云頂高產品的平均MAE誤差為1180米,云底高產品的平均MAE誤差為1185米,根據航空氣象保障的一般經驗,在云高范圍0米~20000米的尺度下,1000米左右的云底高平均誤差、2000米以下的云頂高平均誤差產品基本可用。測試數據中云量產品的平均MAE誤差為1.78,在實際航空氣象服務保障過程中一般云量誤差低于2即認為基本準確。由統計結果可知基于本文方法根據衛星云圖通道產品生成的云頂高、云底高和云量產品基本能夠滿足重構三維云的使用需要。

表1 生成的云參數產品結果統計
2019年7月22日12時~15時(北京時)4個連續時次計算生成的云頂高、云底高以及云量參數產品與目標云參數產品和可見光云圖的對比如圖5~圖7所示。圖中可發現4個時次的計算云頂高產品、云底高產品以及云量產品均與可見光云圖有相似的外形分布,表明從云圖通道產品中提取到了相關有效信息;由熱度圖顏色對比可知,4個時次的計算生成產品與再分析云底高產品、云量產品以及衛星反演的云頂高產品在值域范圍上保持了基本一致,說明深度學習網絡準確建模了相應云參數產品的特征,完成了從衛星云圖通道產品數據域向云參數產品數據域的轉換。個例分析表明本文所提方法能夠較準確地計算云參數產品。

圖5 2019年7月22日12時~15時(北京時)云頂高計算結果對比

圖6 2019年7月22日12時~15時云底高計算結果對比

圖7 2019年7月22日12時~15時云量計算結果對比
為展示本文所提方法構建三維云的可行性和實用性,基于Unity3D平臺開發了三維云演示軟件,圖8為基于云頂高、云底高以及云量參數構建的2019年7月22日12時北緯10°~北緯50°、東經90°~東經130°空域的三維云立體輪廓示例(使用透明度表示云量)。
圖9為使用粒子系統構建的該時次三維云示例。在兩個三維云示例下方疊加了對應時次可見光衛星云圖產品進行對比,可以觀察到構建出的三維云立體結構與實際云圖保持了較高程度的一致性。

圖8 云立體輪廓示例

圖9 三維粒子云示例

圖10 根據三維云信息進行航線規劃的示例
圖10演示了根據三維云信息進行飛行航線規劃的一個操作示例。在圖中右下方平面云圖上指定航線后(紅色線),可在圖中左下部分生成航線的云剖面圖,通過在航線云剖面圖中設定航線飛行高度(藍色線)可規避航線中的大片云團。從而使三維云信息參與到航線規劃過程中,圖11展示了在第一視角下云環境中飛行的效果示例。通過點擊右下方的平面云圖,可以在右上方高度表上標識出云底高及云頂高,云量信息由高度表中白色區域的亮度標識,從而讓使用人員了解感興趣位置的云結構參數信息。由于該軟件主要用于演示三維云信息對飛行任務規劃以及航空氣象服務保障的支持能力,因而與實際航線規劃過程不完全吻合,僅為演示示例使用。
1) 本文提出了一種基于深度生成對抗網絡的云參數推算模型,可在相關數據集的支持下生成多種云結構參數,未來可探索利用該模型在相關氣象數據集的支持下對其它云參數進行推算。
2) 基于FY-4A氣象衛星通道產品、FY-4A氣象衛星反演云頂高產品、ERA5云底高和云量產品的實驗證明了本文所提方法在云頂高、云底高和云量這三個云參數上的有效性,誤差均可滿足使用要求。
3)根據云頂高、云底高和云量參數提出了一種基于粒子系統的三維云構建方法,實現了演示驗證軟件,并基于該軟件探索了基于云信息的飛行航線規劃方法,未來擬根據需要融入現有業務軟件,讓航空氣象信息更好地得到應用。
4)本文使用同一材質的基礎粒子填充云體,沒有考慮不同云類型的區別,未來將根據云分類信息探索不同云類的細分構建方法。
5)本文僅根據云底高和云頂高構建云的立體輪廓,暫時沒有考慮多層云的情況,未來將進一步完善本文工作,探索多層云的構建方法。

圖11 第一視角三維云環境示例