據(jù)同化如何破解多源異構(gòu)氣象數(shù)據(jù)的融合難題?)
值班時(shí)遇到過最讓人頭大的場(chǎng)景就是把多源觀測(cè)數(shù)據(jù)疊在一起準(zhǔn)備做分析的那幾分鐘。地面自動(dòng)站給出的是逐分鐘的氣壓和風(fēng)雷達(dá)是五分鐘一幀的三維回波衛(wèi)星云圖反映的是十幾分鐘前的云頂溫度探空則是半天才放一次它們對(duì)同一片強(qiáng)對(duì)流系統(tǒng)的描述還經(jīng)?;ハ嗝芤粋€(gè)偏北、一個(gè)偏西、一個(gè)說強(qiáng)度還在增加。這個(gè)問題放到氣象大數(shù)據(jù)背景下會(huì)被無限放大——資料種類越來越多、文件體積越來越大但數(shù)據(jù)集的堆積本身并不等于可用信息。把這些“異構(gòu)”數(shù)據(jù)變成數(shù)值模式真正能吃得下的高質(zhì)量初始場(chǎng)靠的正是數(shù)據(jù)同化。這篇博客想系統(tǒng)聊聊數(shù)據(jù)同化為什么能解決多源異構(gòu)難題以及在真實(shí)業(yè)務(wù)系統(tǒng)里落地時(shí)那些容易被忽略的細(xì)節(jié)。內(nèi)容主要面向正在做數(shù)值預(yù)報(bào)、短臨預(yù)報(bào)或者氣象數(shù)據(jù)工程的朋友有一定基礎(chǔ)的新人也建議讀完我會(huì)盡量把原理講成大白話。1. 先想清楚一個(gè)問題多源數(shù)據(jù)為什么非得“同化”不可1.1 不做同化時(shí)的“笨辦法”有多差如果完全不做同化處理常見的做法是直接拿上一時(shí)刻的分析場(chǎng)當(dāng)作初始場(chǎng)去啟動(dòng)模式或者在插值之后把站點(diǎn)觀測(cè)直接寫到網(wǎng)格上。這兩種做法看起來樸素省事實(shí)際效果都很糟糕。拿舊分析場(chǎng)當(dāng)初始場(chǎng)本質(zhì)上是“完全信任過去”。模式起步時(shí)和當(dāng)前大氣狀態(tài)的差距會(huì)非常大最初的十幾次時(shí)間步幾乎全部被浪費(fèi)在調(diào)整虛假擾動(dòng)上還會(huì)誘發(fā)一批假的對(duì)流回波。做過短臨的人應(yīng)該都有經(jīng)驗(yàn)如果初始場(chǎng)質(zhì)量差模式頭一兩個(gè)小時(shí)的降水預(yù)報(bào)基本沒法看不是空?qǐng)?bào)就是漏報(bào)。直接把觀測(cè)插值到網(wǎng)格上的問題就更隱蔽了。站點(diǎn)觀測(cè)只是大氣狀態(tài)的“點(diǎn)采樣”把它當(dāng)格點(diǎn)值用等于忽略了一個(gè)網(wǎng)格體內(nèi)部的真實(shí)變化。分析場(chǎng)會(huì)變得支離破碎像拿幾十根溫度計(jì)拼一張全國氣溫圖中間地帶全靠猜根本不可能平滑出可信的東西。更關(guān)鍵的是這兩種方法都沒有處理“不同觀測(cè)之間互相矛盾”的問題。一旦地面站和雷達(dá)對(duì)同一條回波給出不一致的信息插值邏輯也不知道該信誰最后往往只能看哪個(gè)數(shù)據(jù)文件排在最后面。這些就是數(shù)據(jù)同化要解決的原始場(chǎng)景。1.2 數(shù)據(jù)同化的本質(zhì)依賴物理約束的融合而不是統(tǒng)計(jì)平均數(shù)據(jù)同化和“加權(quán)平均”最本質(zhì)的區(qū)別在于它的每一次狀態(tài)估計(jì)都必須經(jīng)過模式的物理約束。你可以把模式狀態(tài)想成一個(gè)由溫度、濕度、風(fēng)場(chǎng)、云水等變量在三維網(wǎng)格上構(gòu)成的完整向量同化就是在“模式認(rèn)為大氣應(yīng)該是什么樣”和“觀測(cè)告訴我們實(shí)際是什么樣”之間按各自的不確定性求出最可能的狀態(tài)。這整套邏輯在貝葉斯框架里非常清晰背景場(chǎng)是先驗(yàn)一組觀測(cè)是證據(jù)后驗(yàn)狀態(tài)就是分析場(chǎng)。但這里的關(guān)鍵在于絕大多數(shù)觀測(cè)并不直接給出模式變量。雷達(dá)測(cè)到的是反射率衛(wèi)星測(cè)到的是通道亮溫掩星資料給的是折射率閃電定位給的是放電事件。只有通過觀測(cè)算子把這些觀測(cè)映射到模式變量空間才能把“不同語言”的多源數(shù)據(jù)翻譯成同一種狀態(tài)描述。這正是多源異構(gòu)難題的核心解法不是強(qiáng)行統(tǒng)一觀測(cè)格式而是把每類觀測(cè)都映射到同一個(gè)模式坐標(biāo)系里再比較。1.3 一個(gè)醫(yī)生問診式的類比打個(gè)比方一位醫(yī)生判斷病人的血糖情況不會(huì)把血糖儀讀數(shù)、靜脈血化驗(yàn)結(jié)果和癥狀描述直接按平均值糊成一個(gè)數(shù)而是知道每種檢查的取樣時(shí)間窗口、儀器誤差、操作誤差各有不同再綜合這些信息給出判斷。數(shù)據(jù)同化做的事其實(shí)就是這套每個(gè)觀測(cè)都有可信度即觀測(cè)誤差協(xié)方差每個(gè)背景值也有可信度即背景誤差協(xié)方差最后的結(jié)果既不是全信觀測(cè)也不是全信模式而是二者按照誤差結(jié)構(gòu)做加權(quán)折中。理解了這一點(diǎn)后續(xù)所有流程——質(zhì)量控制、偏差訂正、觀測(cè)算子設(shè)計(jì)——本質(zhì)上都是在回答同一個(gè)問題每個(gè)數(shù)據(jù)源的“可信度”是不是被定對(duì)了。數(shù)據(jù)同化解決多源異構(gòu)難題的根基不在某個(gè)酷炫算法而在于它把“融合”變成了一個(gè)有物理約束、有誤差量化、可診斷可回溯的過程。2. 數(shù)據(jù)同化的核心閉環(huán)先驗(yàn)、觀測(cè)算子與分析增量2.1 一個(gè)代價(jià)函數(shù)把整個(gè)機(jī)制講明白第一次打開同化系統(tǒng)日志時(shí)很容易被一堆縮寫嚇到3D-Var、4D-Var、EnKF、FGAT。剝開外殼核心都是一個(gè)代價(jià)函數(shù)最小化問題J(x) (x - x_b)^T B^{-1} (x - x_b) (y - H(x))^T R^{-1} (y - H(x))第一項(xiàng)計(jì)算分析狀態(tài)和背景場(chǎng)的偏差由背景誤差協(xié)方差B加權(quán)第二項(xiàng)計(jì)算觀測(cè)和背景通過觀測(cè)算子H得到的模擬值之間的偏差由觀測(cè)誤差協(xié)方差R加權(quán)。同化的全部工作就是找到讓這個(gè)函數(shù)總和最小的狀態(tài)x。這個(gè)公式的價(jià)值不只是數(shù)學(xué)意義它還能讓你看懂所有經(jīng)驗(yàn)設(shè)計(jì)的取舍如果某一類觀測(cè)的誤差被設(shè)得很大R就大它在最終分析里的權(quán)重自然就小如果背景本身不可靠B變大觀測(cè)的影響力就會(huì)被放大。很多新人面對(duì)同化無從下手其實(shí)先把這一個(gè)式子里每個(gè)符號(hào)代表什么搞清楚整個(gè)框架就打通了一半。后續(xù)不管換什么同化算法代價(jià)函數(shù)的基本形態(tài)都會(huì)保持這種“背景項(xiàng)加觀測(cè)項(xiàng)”的結(jié)構(gòu)。2.2 背景誤差協(xié)方差B整個(gè)系統(tǒng)的靈魂在代價(jià)函數(shù)里B決定的是“模式狀態(tài)里哪些變量之間相關(guān)、空間相關(guān)性有多大”。降水和濕度自然是高度相關(guān)的邊界層溫度和風(fēng)的關(guān)系也很緊密。如果B把這種相關(guān)性描述得太弱分析場(chǎng)就會(huì)像在每根網(wǎng)格上獨(dú)立修正產(chǎn)生逐點(diǎn)鋸齒狀噪聲預(yù)報(bào)跑不了幾步就碎掉。如果描述得太強(qiáng)真實(shí)的局地信息又會(huì)被抹平連強(qiáng)對(duì)流中心都會(huì)被糊成一片溫和的降水區(qū)。業(yè)務(wù)系統(tǒng)里B通常不是直接統(tǒng)計(jì)出來的而是用NMC方法——統(tǒng)計(jì)同一時(shí)刻不同預(yù)報(bào)時(shí)效之間差值的協(xié)方差特征——或者從集合預(yù)報(bào)樣本中估計(jì)再做定標(biāo)和局地化處理。這些方法各有各的不完美。所以我一直覺得同化里最難調(diào)的不是觀測(cè)權(quán)重而是“背景該怎么被信任”這個(gè)矩陣。B沒調(diào)好觀測(cè)資料再多也白搭這幾乎是我接觸過幾套同化系統(tǒng)之后最大的共識(shí)。在后面的混合EnVar部分還會(huì)提到B從固定場(chǎng)變成流依賴場(chǎng)正是當(dāng)代同化發(fā)展的主線之一。2.3 觀測(cè)算子H讓多源數(shù)據(jù)完成“對(duì)齊”數(shù)據(jù)同化為什么能讓“異構(gòu)”數(shù)據(jù)變得可用關(guān)鍵就在觀測(cè)算子這一步。地面站觀測(cè)的是站點(diǎn)高度上的氣壓和溫度要做的是在模式場(chǎng)里找到同一時(shí)刻、同一位置最近的格點(diǎn)做插值這是最簡單的觀測(cè)算子。衛(wèi)星輻射亮溫和模式變量的關(guān)系就復(fù)雜得多模式給出的是大氣溫度廓線、水汽分布、云滴濃度衛(wèi)星測(cè)到的卻是若干通道從近地面到平流層整層大氣的加權(quán)輻射貢獻(xiàn)必須通過輻射傳輸模型做前向模擬才能算出“如果模式是對(duì)的衛(wèi)星應(yīng)該看到什么”。雷達(dá)反射率更是典型反射率是降水粒子散射的積分結(jié)果模式變量里并沒有直接對(duì)應(yīng)的“反射率”狀態(tài)必須借助反射率與降水速率之間的經(jīng)驗(yàn)關(guān)系做映射。閃電資料甚至只能通過局地對(duì)流參數(shù)化的關(guān)系間接同化。理解了觀測(cè)算子你就明白為什么每種資料都要有自己的同化路徑這也是多源異構(gòu)問題的第一個(gè)工程實(shí)體。所謂多源融合本質(zhì)上就是把所有觀測(cè)源的前向過程精確建立起來。2.4 增量循環(huán)與同化窗口實(shí)際業(yè)務(wù)里幾乎沒有人直接在最細(xì)分辨率的模式上最小化代價(jià)函數(shù)。標(biāo)準(zhǔn)做法是先算“低分辨率增量”——在較粗網(wǎng)格上求分析場(chǎng)和背景場(chǎng)之間偏差的平滑解再用這組增量去修正細(xì)網(wǎng)格上的背景場(chǎng)。這個(gè)增量循環(huán)把計(jì)算量降下來也讓分析擾動(dòng)保持較大的空間尺度不容易弄碎細(xì)節(jié)場(chǎng)。同化也不是一次性的。大多數(shù)業(yè)務(wù)系統(tǒng)采用循環(huán)同化比如每3小時(shí)或每1小時(shí)跑一次讓觀測(cè)逐步進(jìn)入分析。窗口概念同樣重要4D-Var會(huì)在一段時(shí)間窗內(nèi)對(duì)所有觀測(cè)做時(shí)間協(xié)調(diào)業(yè)務(wù)上常見的FGAT則是在3D-Var的框架內(nèi)把每條觀測(cè)拿到它自己對(duì)應(yīng)的預(yù)報(bào)時(shí)刻去計(jì)算O-B這比一律拿同化起始時(shí)刻的背景場(chǎng)去比要準(zhǔn)一個(gè)檔次。多源異構(gòu)在業(yè)務(wù)落地中必須做的就是把這些時(shí)間坐標(biāo)、空間坐標(biāo)、觀測(cè)算子、誤差結(jié)構(gòu)全部統(tǒng)一到一套固定循環(huán)里。3. 多源異構(gòu)的真正難點(diǎn)不是數(shù)據(jù)多而是標(biāo)準(zhǔn)不齊3.1 時(shí)間坐標(biāo)不齊秒級(jí)、分鐘級(jí)、半天一次氣象觀測(cè)的時(shí)間尺度跨度之大是很多非本行的人想象不到的。雷達(dá)和地面自動(dòng)站用分鐘算衛(wèi)星掃描數(shù)據(jù)帶的是過境時(shí)間戳探空一天只有兩次土壤濕度觀測(cè)可能幾天才有一條有效記錄。把這些裝進(jìn)同一個(gè)同化窗口時(shí)首先要問的不是“它有多新”而是“它反映的是哪個(gè)時(shí)刻的大氣狀態(tài)”。一條12小時(shí)前的探空放進(jìn)6小時(shí)同化窗口里它的有效信息其實(shí)已經(jīng)耗掉了一大半。如果只看文件時(shí)間忽略了探空儀的實(shí)際釋放時(shí)間甚至可能把過期的探測(cè)結(jié)果當(dāng)新鮮資料用。資深的同化工程師通常會(huì)維護(hù)一份“數(shù)據(jù)時(shí)間標(biāo)簽臺(tái)賬”每個(gè)數(shù)據(jù)源都要登記名義時(shí)間、實(shí)際觀測(cè)時(shí)間、延遲到達(dá)時(shí)間否則很難定位那些“數(shù)據(jù)量正常但預(yù)報(bào)持續(xù)變差”的詭異情況。時(shí)間標(biāo)準(zhǔn)不齊是多源異構(gòu)里最容易被新手低估的一層。3.2 空間尺度與觀測(cè)代表性問題一個(gè)探空儀球測(cè)到的只是幾百米范圍內(nèi)的大氣狀態(tài)而模式網(wǎng)格可能代表幾十平方公里。尺度不匹配直接帶來的就是“代表性誤差”觀測(cè)記錄和模式狀態(tài)本來就不可能完全一致哪怕模式和觀測(cè)都各自“正確”。這種誤差不適合壓進(jìn)儀器誤差里需要單獨(dú)估計(jì)。山地、海岸、城市下墊面附近的站點(diǎn)代表性誤差尤其大。一個(gè)谷地早晨的溫度和同一海拔山坡上的溫度差距可能超過好幾攝氏度把這種觀測(cè)的誤差設(shè)得太小分析場(chǎng)就會(huì)被局地地形“綁架”在周邊幾十公里都產(chǎn)生虛假修正。業(yè)務(wù)上通常通過資料代表性檢查或聚類分析把特別局地的觀測(cè)排除在同化名單之外或者主動(dòng)調(diào)大它們的觀測(cè)誤差。觀測(cè)不是越多越好“每個(gè)觀測(cè)的誤差描述是否真實(shí)反映它本身的不可信程度”才是多源融合里真正要回答的問題。3.3 系統(tǒng)偏差同化最怕的“隱性毛病”不同類型的觀測(cè)源都有自己頑固的系統(tǒng)偏差衛(wèi)星掃描角度不同會(huì)導(dǎo)致增益差異雷達(dá)的衰減和地物雜波會(huì)讓回波強(qiáng)度系統(tǒng)性偏大輻射計(jì)長期運(yùn)行后絕對(duì)定標(biāo)會(huì)漂移。這些偏差如果不去除后果比噪聲嚴(yán)重得多因?yàn)樗鼈儠?huì)持續(xù)把分析場(chǎng)朝錯(cuò)誤方向拉而且很難看出“不對(duì)勁”——每天的偏差方向都一樣看起來反而像穩(wěn)定的東西。同化系統(tǒng)里處理它的標(biāo)準(zhǔn)動(dòng)作分兩步先用統(tǒng)計(jì)方法做基于歷史O-B均值的偏差訂正再進(jìn)一步用變分偏差訂正把偏差項(xiàng)本身作為控制變量隨同化一起求解。變分偏差訂正是衛(wèi)星資料能否有效同化的關(guān)鍵之一衛(wèi)星通道一旦進(jìn)入變分偏差訂正流程后O-B統(tǒng)計(jì)里的系統(tǒng)性殘余會(huì)被顯著壓縮。多源數(shù)據(jù)的現(xiàn)實(shí)就在這里沒有哪類資料可以只靠物理公式就天然可信每類都必須做系統(tǒng)性的驗(yàn)算。3.4 質(zhì)量控制寧可少用不可錯(cuò)用所有同化系統(tǒng)里都有一套質(zhì)量控制邏輯閾值范圍檢查、物理一致性檢查、靜默檢查觀測(cè)是否長時(shí)間停在某個(gè)固定值、鄰近點(diǎn)一致性檢查、衛(wèi)星云檢測(cè)和通道選擇。一套流程跑下來真正進(jìn)入同化求解的觀測(cè)可能只有原始數(shù)據(jù)量的三分之一。這一環(huán)節(jié)的原則非常簡單被錯(cuò)誤數(shù)據(jù)污染的分析場(chǎng)比缺資料更可怕。同化是一個(gè)全局最小化過程局部的一個(gè)錯(cuò)誤觀測(cè)會(huì)通過協(xié)方差傳播到相鄰變量和相鄰區(qū)域形成一片虛假特征。質(zhì)量控制門檻怎么設(shè)本質(zhì)上是平衡“資料利用率”和“污染風(fēng)險(xiǎn)”。我見過一些團(tuán)隊(duì)為了讓新數(shù)據(jù)源“看起來有貢獻(xiàn)”把質(zhì)控閾值放得過寬最后O-B殘差一直異常大分析場(chǎng)卻沒有任何改進(jìn)這種問題往往要過好幾天才暴露排查成本極高。所以新數(shù)據(jù)源上線時(shí)第一步不是看預(yù)報(bào)有沒有變好而是看質(zhì)控后剩余多少可用樣本、O-B分布是否合理。4. 業(yè)務(wù)落地中的數(shù)據(jù)融合處理流從原始報(bào)文到同化輸入4.1 數(shù)據(jù)到達(dá)后的“四道關(guān)”任何一個(gè)數(shù)據(jù)源上線都要先過四道關(guān)解碼、預(yù)處理、質(zhì)量控制、誤差賦值。拿衛(wèi)星資料舉例解碼環(huán)節(jié)要把原始分包解析成通道亮溫、掃描幾何信息、時(shí)間和位置標(biāo)簽預(yù)處理要做定標(biāo)訂正、去掉明顯壞像素并計(jì)算云量質(zhì)量控制用地表類型、云檢測(cè)、水汽通道一致性等條件篩選通道誤差賦值則是為每個(gè)通過質(zhì)控的觀測(cè)寫定觀測(cè)誤差矩陣?yán)锏闹?。這四個(gè)環(huán)節(jié)里解碼和誤差賦值最容易在業(yè)務(wù)里被忽略。解碼錯(cuò)誤通常是靜默的數(shù)據(jù)能出圖、能統(tǒng)計(jì)但物理單位可能少了個(gè)換算系數(shù)誤差賦值錯(cuò)誤則會(huì)在同化里直接體現(xiàn)為“這條觀測(cè)擁有巨大權(quán)重”某個(gè)雷達(dá)站周圍的溫度分析會(huì)被單個(gè)反射率觀測(cè)強(qiáng)行拽偏。每當(dāng)我聽到某個(gè)新數(shù)據(jù)源上線、負(fù)責(zé)人興高采烈地說“同化跑起來了”第一反應(yīng)都是問一句觀測(cè)誤差矩陣到底是怎么定的往往這一問就能發(fā)現(xiàn)問題。4.2 O-B統(tǒng)計(jì)最便宜又好用的診斷工具同化系統(tǒng)里最有價(jià)值、最不該節(jié)省的模塊就是O-B統(tǒng)計(jì)。所謂O-B就是觀測(cè)值減去由背景場(chǎng)前向模擬出來的值。在合理情況下它應(yīng)當(dāng)圍繞零附近窄幅分布均值接近零標(biāo)準(zhǔn)差和設(shè)定的觀測(cè)誤差量級(jí)相當(dāng)。把O-B按通道、按掃描角、按站點(diǎn)區(qū)域、按小時(shí)滾動(dòng)統(tǒng)計(jì)出來很多數(shù)據(jù)問題一眼就能看見某個(gè)通道O-B均值突然向正方向偏移了0.5 K多半是這個(gè)通道存在未訂正的系統(tǒng)偏差某一站的O-B方差突然膨脹估計(jì)是觀測(cè)儀器或采集鏈路出了故障某條新數(shù)據(jù)源的O-B分布嚴(yán)重偏斜往往意味著觀測(cè)算子的某個(gè)物理參數(shù)設(shè)置不對(duì)。我在做區(qū)域模式升級(jí)時(shí)日常監(jiān)測(cè)基本就靠一套O-B面板一屏顯示所有數(shù)據(jù)源同化前后的樣本數(shù)、平均O-B、標(biāo)準(zhǔn)差像看儀表盤一樣。有了它資料遲到與否、通道失聯(lián)、文件名規(guī)則改動(dòng)導(dǎo)致的靜默失效都會(huì)被快速發(fā)現(xiàn)而不必等幾天后的預(yù)報(bào)評(píng)分下跌再倒查。4.3 稀疏化與超級(jí)觀測(cè)衛(wèi)星資料一次過境就能產(chǎn)生百萬級(jí)觀測(cè)點(diǎn)十幾個(gè)通道乘以每條掃描線幾千個(gè)像元直接把全部數(shù)據(jù)扔進(jìn)代價(jià)函數(shù)數(shù)學(xué)上不是不行但計(jì)算代價(jià)和誤差相關(guān)性的處理都非常吃力。業(yè)務(wù)系統(tǒng)通常采用稀疏化先按固定網(wǎng)格挑代表點(diǎn)比如每個(gè)約100公里見方的網(wǎng)格內(nèi)保留一個(gè)觀測(cè)再根據(jù)時(shí)間窗和掃描角度做抽稀。雷達(dá)資料的密度同樣驚人因此更常用“超級(jí)觀測(cè)”的方式——把設(shè)定半徑內(nèi)多個(gè)原始觀測(cè)做平均得到一個(gè)更高信噪比的合成觀測(cè)再賦予相應(yīng)誤差。做稀疏化的原則是保證代表性而不遺漏關(guān)鍵信號(hào)。強(qiáng)對(duì)流單體本身尺度小如果稀疏化網(wǎng)格太大局地信號(hào)會(huì)被磨光所以業(yè)務(wù)系統(tǒng)需要針對(duì)不同同化窗口設(shè)計(jì)不同密度的稀疏化方案。這里沒有放之四海的統(tǒng)一參數(shù)只能結(jié)合系統(tǒng)本身的分辨率和觀測(cè)密度去調(diào)。4.4 時(shí)間窗與循環(huán)周期業(yè)務(wù)時(shí)效是一切的約束很多算法文章只講數(shù)學(xué)推導(dǎo)不講業(yè)務(wù)時(shí)效但實(shí)際開發(fā)里最讓人頭疼的往往就是時(shí)間。同化系統(tǒng)建好后會(huì)有一個(gè)固定的循環(huán)周期比如每3小時(shí)啟動(dòng)一次留給同化求解只有20到40分鐘因?yàn)楹竺孢€要緊接下一段模式預(yù)報(bào)。數(shù)據(jù)到達(dá)系統(tǒng)和同化截止時(shí)間之間的窗口是有限資源衛(wèi)星資料延遲30分鐘、雷達(dá)基數(shù)據(jù)分批到位、探空?qǐng)?bào)文晚到都是家常便飯。穩(wěn)妥的調(diào)度設(shè)計(jì)是給每個(gè)數(shù)據(jù)源設(shè)置最晚等待時(shí)間超過時(shí)限的數(shù)據(jù)寧可不等也不能讓整個(gè)同化循環(huán)卡死遲到的數(shù)據(jù)如果價(jià)值還足夠可以放進(jìn)下一個(gè)循環(huán)窗口。這個(gè)看似不起眼的取舍在長期業(yè)務(wù)里決定了系統(tǒng)的穩(wěn)定性和可維護(hù)性。同化算法寫得再漂亮調(diào)度一塌糊涂整個(gè)系統(tǒng)的實(shí)際可用性也會(huì)大打折扣。5. 實(shí)時(shí)預(yù)報(bào)場(chǎng)景下的工程實(shí)現(xiàn)細(xì)節(jié)與常見坑5.1 調(diào)度設(shè)計(jì)數(shù)據(jù)到達(dá)時(shí)間和同化截止時(shí)間打架同化系統(tǒng)真正跑起來之后面對(duì)的不再是論文里的理想場(chǎng)景而是源源不斷的數(shù)據(jù)流、隨時(shí)可能崩掉的任務(wù)、磁盤被日志占滿的各種現(xiàn)實(shí)問題。調(diào)度器的核心挑戰(zhàn)是協(xié)調(diào)“數(shù)據(jù)到達(dá)的延遲分布”和“同化窗口的截止時(shí)間”。我見過不少系統(tǒng)采取同步等待策略每到一個(gè)數(shù)據(jù)源才啟動(dòng)下一步結(jié)果只要一個(gè)外部數(shù)據(jù)源斷了整條流水線就僵死在那里預(yù)報(bào)員對(duì)著屏幕干瞪眼。更穩(wěn)妥的方案是異步流水線先按各自依賴關(guān)系準(zhǔn)備數(shù)據(jù)主同化任務(wù)在截止時(shí)間前啟動(dòng)凡在截止前到的數(shù)據(jù)才納入同化未完成的從側(cè)通道通知值班人員。這一層設(shè)計(jì)看似和數(shù)據(jù)同化算法無關(guān)但在實(shí)際業(yè)務(wù)里它往往比算法調(diào)參更能決定預(yù)報(bào)質(zhì)量。5.2 靜默失敗最消耗工作熱情的坑同化系統(tǒng)里最氣人的故障不是報(bào)錯(cuò)而是完全不報(bào)錯(cuò)。比如某個(gè)外部數(shù)據(jù)源因?yàn)樯嫌喂?jié)點(diǎn)改名傳輸鏈路悄悄斷了文件還在定時(shí)生成但內(nèi)容全是空記錄甚至更隱蔽的是文件被替換成了同名的舊文件。系統(tǒng)日志顯示“同化完成”面板上數(shù)據(jù)計(jì)數(shù)也正常沒人察覺異常直到幾天后模型對(duì)某個(gè)區(qū)域的預(yù)報(bào)系統(tǒng)性變差才開始地毯式排查。這種靜默失敗幾乎只能靠監(jiān)測(cè)面板和O-B統(tǒng)計(jì)的聯(lián)動(dòng)來防范。每次同化任務(wù)跑完后要自動(dòng)生成所有數(shù)據(jù)源的樣本量對(duì)比圖任何數(shù)據(jù)量劣化都會(huì)立刻在圖上暴露。我在維護(hù)區(qū)域模式時(shí)就遇到過類似情況最終定位到是文件解析規(guī)則的一次改動(dòng)導(dǎo)致某一類資料完全沒被讀取。如果當(dāng)時(shí)沒有樣本量面板這個(gè)問題可能幾天都發(fā)現(xiàn)不了。所以我的經(jīng)驗(yàn)是寧可減少花哨的展示功能也要把數(shù)據(jù)監(jiān)測(cè)做成同化系統(tǒng)的一等公民。5.3 初始沖擊與虛假重力波同化拿到的分析場(chǎng)是“修正過的狀態(tài)”但如果某一類觀測(cè)帶來的分析增量過大比如在某個(gè)高度層把風(fēng)場(chǎng)一下改了幾十米每秒模式后續(xù)積分就會(huì)激發(fā)很強(qiáng)的虛假重力波表現(xiàn)為氣壓場(chǎng)出現(xiàn)格點(diǎn)尺度的振蕩、降水組織變得雜亂無章。這類問題不是數(shù)值格式的Bug而是初始場(chǎng)與模式動(dòng)力約束不匹配。業(yè)務(wù)系統(tǒng)常用的緩解手段是數(shù)字濾波初始化通過在初始時(shí)段施加數(shù)字濾波去掉那些與可分辨大尺度運(yùn)動(dòng)不相容的高頻分量更直接的土辦法是給分析增量設(shè)定上限超過閾值就把增量壓縮回來。每次同化生成增量場(chǎng)后我習(xí)慣讓系統(tǒng)自動(dòng)輸出最大增量診斷一旦某個(gè)變量增量異常大立刻檢查對(duì)應(yīng)的觀測(cè)源。這個(gè)習(xí)慣省了大量排查時(shí)間。5.4 嵌套與多網(wǎng)格同化別讓兩套分析打架區(qū)域和全球預(yù)報(bào)系統(tǒng)并存、多分辨率嵌套已經(jīng)是業(yè)務(wù)常態(tài)。這時(shí)同化系統(tǒng)的周期問題和耦合問題會(huì)被放大父網(wǎng)格的分析場(chǎng)和子網(wǎng)格同化出來的分析場(chǎng)在側(cè)邊界附近如果不一致短短幾個(gè)小時(shí)的預(yù)報(bào)就會(huì)在邊界產(chǎn)生虛假反射。合理的做法是讓子網(wǎng)格的同化窗口和父網(wǎng)格錯(cuò)開父網(wǎng)格先完成同化和一小段預(yù)報(bào)再給子網(wǎng)格提供最新的側(cè)邊界條件或者將父網(wǎng)格分析作為子網(wǎng)格的背景場(chǎng)來源在嵌套里去除非必要的重復(fù)同化。這些設(shè)計(jì)細(xì)節(jié)不會(huì)出現(xiàn)在算法論文里但在多源異構(gòu)系統(tǒng)的實(shí)際部署中卻是天天要面對(duì)的難題。很多所謂“多網(wǎng)格一致性”問題本質(zhì)上就是沒有把兩個(gè)同化系統(tǒng)的輸入輸出時(shí)序整理清楚。6. 觀測(cè)越來越多之后數(shù)據(jù)同化的新選擇與新麻煩6.1 從固定B到流依賴協(xié)方差集合與混合EnVar前文反復(fù)強(qiáng)調(diào)的B矩陣在傳統(tǒng)3D-Var里是逐季節(jié)統(tǒng)計(jì)的固定場(chǎng)但它并不知道“今天這個(gè)低壓系統(tǒng)到底有多強(qiáng)”。觀測(cè)資料越來越豐富之后業(yè)界普遍轉(zhuǎn)向集合方法用背景集合估計(jì)流依賴的誤差協(xié)方差讓分析對(duì)天氣系統(tǒng)的位置和形態(tài)更加敏感。EnKF、EnVar以及把固定B與流依賴B疊加起來的混合EnVar是目前業(yè)務(wù)系統(tǒng)的主流選項(xiàng)?;旌螮nVar的核心做法是在代價(jià)函數(shù)里同時(shí)保留氣候態(tài)B和集合B。這樣既享受集合方法的流依賴優(yōu)勢(shì)又不會(huì)因?yàn)榧蠘颖咎俣鴣G掉大尺度結(jié)構(gòu)。代價(jià)是計(jì)算量和內(nèi)存開銷明顯上升本質(zhì)上是用算力換更準(zhǔn)確的多源融合效果。如果你所在系統(tǒng)觀測(cè)密度本身不高提升B矩陣的流依賴度能帶來的收益會(huì)比盲目加觀測(cè)更大。6.2 衛(wèi)星資料讓人又愛又恨晴空之外的全天空同化衛(wèi)星資料是所有多源數(shù)據(jù)里信息量最大的部分但也是誤差特性最難掌握的。傳統(tǒng)同化基本只敢使用晴空和少云區(qū)的通道云區(qū)的觀測(cè)因?yàn)檩椛鋫鬏斔阕釉谠葡鄳B(tài)和粒子譜假設(shè)上極其脆弱一直被排除在外??稍茀^(qū)恰恰是強(qiáng)對(duì)流系統(tǒng)的核心觀測(cè)價(jià)值最高。全天空同化就是在云和降水區(qū)也同化衛(wèi)星輻射率它通過更精細(xì)的輻射傳輸模式、場(chǎng)景依賴的觀測(cè)誤差模型和更復(fù)雜的質(zhì)量控制把原本被丟棄的資料重新接進(jìn)系統(tǒng)。這種方法統(tǒng)計(jì)上確實(shí)有明顯收益但代價(jià)也很現(xiàn)實(shí)全天空同化對(duì)輻射傳輸模型的偏差極其敏感一個(gè)微物理假設(shè)參數(shù)的變化就可能讓O-B殘差顯著惡化。衛(wèi)星資料的胃口有多大質(zhì)量控制的肩上的責(zé)任就有多重。6.3 算力與I/O壓力被忽視的隱形瓶頸同化系統(tǒng)的計(jì)算密度其實(shí)遠(yuǎn)高于一次簡單預(yù)報(bào)4D-Var需要反復(fù)運(yùn)行切線和伴隨模式集合方法要同時(shí)運(yùn)行幾十個(gè)成員的短預(yù)報(bào)。很多人以為瓶頸在GPU但實(shí)際上大量數(shù)據(jù)源的I/O、解碼、格式轉(zhuǎn)換、緩存同步才是日??c(diǎn)。我們?cè)谝惶淄到y(tǒng)升級(jí)時(shí)最大的改動(dòng)不是算法而是把資料讀取改成了并行預(yù)取模式讓報(bào)表生成和同化計(jì)算重疊執(zhí)行單個(gè)循環(huán)的墻鐘時(shí)間直接降了三分之一。這類工程優(yōu)化沒有公式可寫但幾乎是每一套業(yè)務(wù)型同化系統(tǒng)都要踩過一遍的坑。多源異構(gòu)帶來的數(shù)據(jù)通道越來越寬I/O架構(gòu)跟不上算得再快也等于零。6.4 機(jī)器學(xué)習(xí)與同化交叉能學(xué)習(xí)但不能丟掉可診斷性這兩年機(jī)器學(xué)習(xí)在氣象領(lǐng)域大量涌入不少團(tuán)隊(duì)開始嘗試用神經(jīng)網(wǎng)絡(luò)替代部分觀測(cè)算子、甚至直接學(xué)習(xí)背景誤差協(xié)方差。這些方向確實(shí)有潛力尤其是在輻射傳輸算子的加速和非高斯誤差建模上。但我不建議剛上手同化的人直接跳到AI因?yàn)槭紫鹊脮?huì)用O-B、會(huì)用質(zhì)控統(tǒng)計(jì)、看得懂殘差分布才有能力判斷一個(gè)模型輸出是否合理。同化系統(tǒng)的護(hù)城河一直是“可診斷”每一個(gè)觀測(cè)偏差背后都應(yīng)該有可以量化的解釋。如果一個(gè)方法無法用標(biāo)準(zhǔn)工具解釋自己的行為它在業(yè)務(wù)上會(huì)非常難維護(hù)。至少在當(dāng)前階段機(jī)器學(xué)習(xí)更適合做加速器和誤差修正器而不是端到端的黑盒替換。先把現(xiàn)有系統(tǒng)的可診斷性做扎實(shí)再考慮用機(jī)器學(xué)習(xí)優(yōu)化局部環(huán)節(jié)是更穩(wěn)妥的路徑。最后再說一點(diǎn)我個(gè)人這幾年最大的心得多源異構(gòu)數(shù)據(jù)同化面對(duì)的困難真正決定系統(tǒng)質(zhì)量的因素往往不是算法新穎程度而是數(shù)據(jù)管道穩(wěn)定性。再好的同化方案如果數(shù)據(jù)報(bào)送鏈路、解碼格式、質(zhì)量標(biāo)記三天兩頭出問題實(shí)際收益都會(huì)被白白消耗掉。所以如果你準(zhǔn)備踏入氣象大數(shù)據(jù)同化這個(gè)方向我的建議是先給系統(tǒng)配一份完整的O-B監(jiān)測(cè)面板和樣本量報(bào)表把它們當(dāng)成每日值班的必需項(xiàng)而不是“有空再看”的輔助工具。不要急著追求最新穎的同化算法先讓現(xiàn)有觀測(cè)數(shù)據(jù)在系統(tǒng)里清清楚楚地進(jìn)來、明明白白地參與權(quán)重計(jì)算再談下一步優(yōu)化。很多所謂多源異構(gòu)難題當(dāng)你把每類數(shù)據(jù)的時(shí)間標(biāo)簽、觀測(cè)算子、誤差結(jié)構(gòu)、質(zhì)量控制都整理到可診斷的狀態(tài)時(shí)破解路徑已經(jīng)非常清晰了。技術(shù)更新會(huì)很快但“先學(xué)會(huì)看懂?dāng)?shù)據(jù)質(zhì)量再考慮融合算法”這個(gè)順序大概很長時(shí)間都不會(huì)變。