杜曉宇
(成都信息工程學(xué)院軟件工程學(xué)院,四川成都610225)
眾所周知,氣象領(lǐng)域的數(shù)據(jù)以種類繁多,數(shù)據(jù)條目多為主要特點(diǎn)。氣象數(shù)據(jù)在空間上,覆蓋全省、全國乃至世界;在時間上,可細(xì)化到每分鐘一組數(shù)據(jù);在數(shù)據(jù)類型上,目前包含溫度、降水、濕度、地表溫度、云量、雷電等200多種不同要素。氣象數(shù)據(jù)通常以數(shù)值存儲,大量數(shù)值中隱含大量信息,需利用再分析工具和手段,使其通過圖形、動畫等方式直觀的展現(xiàn),為天氣預(yù)報(bào)、災(zāi)害預(yù)警服務(wù)。數(shù)據(jù)再分析工具的研究已成為氣象行業(yè)重要環(huán)節(jié)[1]。Unidata項(xiàng)目組[2]在數(shù)據(jù)再分析領(lǐng)域做出重要貢獻(xiàn),成為國際公認(rèn)氣象領(lǐng)域最有影響力的再分析工具研究部門。該項(xiàng)目組研發(fā)的再分析工具GrADS、IDV在氣象行業(yè)被廣泛應(yīng)用,通用圖形顯示庫VisAD[3]也大量應(yīng)用到各科學(xué)領(lǐng)域。此外,地理信息系統(tǒng)的ArcGIS[4]、WebGIS等工具,統(tǒng)計(jì)及數(shù)學(xué)領(lǐng)域的分析工具M(jìn)atlab,SPSS也常被用于氣象再分析。
傳統(tǒng)的氣象分析工具都是單機(jī)處理工具。隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的發(fā)展,基于B/S架構(gòu)構(gòu)建氣象服務(wù)平臺已成為主要趨勢。B/S架構(gòu)即瀏覽器/服務(wù)器模式,是 WEB興起后的一種網(wǎng)絡(luò)結(jié)構(gòu)模式,瀏覽器就成為B/S模式的唯一客戶端。這種模式將系統(tǒng)功能實(shí)現(xiàn)的核心部分集中到服務(wù)器上,屏蔽分析工具的使用差異,因而不需要用戶下載大量數(shù)據(jù),也不需要用戶了解分析工具,降低客戶使用要求,提升用戶體驗(yàn)。因而,使氣象再分析向在線平臺轉(zhuǎn)換成為重要的研究目標(biāo)。通過在線方式,獲得實(shí)時分析產(chǎn)品,保障數(shù)據(jù)的分析時效,為防災(zāi)減災(zāi)等實(shí)時性要求很高的業(yè)務(wù)提供及時支持。
Unidata項(xiàng)目組開發(fā)了RAMADDA[5-6],提供氣象產(chǎn)品的在線實(shí)時生成和分享服務(wù),較好的解決了氣象專業(yè)用戶自定義氣象象站點(diǎn)的功能。但RAMADDA自成一套體系,更多的考慮了業(yè)務(wù)需求,開發(fā)人員難以進(jìn)行擴(kuò)展,將其融入到定制服務(wù)中。
氣象服務(wù)再分析平臺面向?qū)I(yè)的氣象人員,要求平臺提供的數(shù)據(jù)準(zhǔn)確、再分析結(jié)果在顯示效果上符合氣象人員的通用標(biāo)準(zhǔn),操作簡單且符合氣象人員的常用習(xí)慣,能夠快速上手。這要求開發(fā)人員具備一定的氣象知識,需要深刻了解氣象業(yè)務(wù),否則將難以被業(yè)務(wù)人員接受。但是,氣象人員通常不夠了解開發(fā)流程,難以提出有效的開發(fā)建議,所以使開發(fā)人員介入氣象領(lǐng)域需要較長的學(xué)習(xí)時間。
通過對實(shí)際氣象項(xiàng)目開發(fā)過程的整理,以專業(yè)氣象人員的服務(wù)需求為目標(biāo),為開發(fā)人員提出可在氣象業(yè)務(wù)中通用的架構(gòu),劃分多個層次以降低開發(fā)耦合,提高開發(fā)并行性及可靠性。并封裝氣象可用組件,降低組件設(shè)計(jì)難度。在氣象人員與開發(fā)人員中搭建橋梁。
氣象再分析平臺面向氣象業(yè)務(wù)設(shè)計(jì),在結(jié)構(gòu)、功能上根據(jù)氣象業(yè)務(wù)需求進(jìn)行封裝。目的是為開發(fā)人員提供氣象開發(fā)架構(gòu)和功能組件,使開發(fā)人員能夠快速,生成符合氣象需求的業(yè)務(wù)系統(tǒng)。氣象再分析平臺是根據(jù)氣象再分析的特點(diǎn)提出的完整解決方案,能夠與各類業(yè)務(wù)系統(tǒng)融合。
氣象軟件再分析以數(shù)據(jù)為基礎(chǔ),加以數(shù)值轉(zhuǎn)換及圖形顯示,所以氣象數(shù)據(jù)模型是氣象再分析的基礎(chǔ)。由數(shù)據(jù)出發(fā),經(jīng)歷數(shù)據(jù)集選擇,數(shù)據(jù)預(yù)處理,再分析產(chǎn)品展現(xiàn)3個步驟,將數(shù)值產(chǎn)品轉(zhuǎn)化為更為直觀的圖象產(chǎn)品[7]。
氣象再分析由數(shù)據(jù)文件啟動。氣象包含大量數(shù)據(jù)文件格式,包含 HDF5[8],netCDF[9],Grib2,CSV等,但讀入到分析工具中后,基本都可被轉(zhuǎn)化為站點(diǎn)數(shù)據(jù)或格點(diǎn)數(shù)據(jù)操作。站點(diǎn)數(shù)據(jù)是指各離散觀測站所獲得的信息,信息在空間分布不規(guī)則,站點(diǎn)數(shù)據(jù)是原始數(shù)據(jù),但通常會被插值轉(zhuǎn)化為格點(diǎn)數(shù)據(jù)再進(jìn)一步分析;格點(diǎn)數(shù)據(jù)是指經(jīng)過插值處理,在空間上均勻分布的二維數(shù)據(jù)。Unidata中定義通用數(shù)據(jù)模型Common Data Model(CDM)為氣象數(shù)據(jù)分析提供數(shù)據(jù)模型支持[10]。
氣象原始數(shù)據(jù)在再分析之前,需要做預(yù)處理,如特殊值轉(zhuǎn)換,數(shù)值離散化等。再分析模塊操作預(yù)處理后的數(shù)據(jù),根據(jù)用戶提出的插值要求:插值半徑,插值精度等,獲得再分析數(shù)值產(chǎn)品。最終在可視化界面上形成趨勢變化、平面展現(xiàn)、空間展現(xiàn)、動畫演示等顯示效果。
氣象再分析具有明確的流程特征,因此再分析平臺也基于該流程設(shè)計(jì)主體框架。平臺主體拆分為數(shù)據(jù)模型層、數(shù)據(jù)加工層、結(jié)果顯示層,分別完成再分析過程中的主要功能,以數(shù)據(jù)通信機(jī)制調(diào)用和傳遞消息,各層級間低耦合,便于開發(fā)人員并行開發(fā)。
圖1 再分析平臺通用架構(gòu)
(1)數(shù)據(jù)存儲層
數(shù)據(jù)存儲層解決氣象數(shù)據(jù)源種類繁多,統(tǒng)一處理難度較高問題。氣象中常用數(shù)據(jù)文件有40余種格式。數(shù)據(jù)存儲層屏蔽數(shù)據(jù)源區(qū)別,按照CDM標(biāo)準(zhǔn)提供數(shù)據(jù)接口,統(tǒng)一為上層應(yīng)用服務(wù)。該層適用于絕大部分的氣象業(yè)務(wù),使開發(fā)人員不再糾結(jié)于數(shù)據(jù)源,而更多的考慮再分析業(yè)務(wù)。
(2)數(shù)據(jù)加工層
數(shù)據(jù)加工層解決數(shù)據(jù)不規(guī)范、數(shù)據(jù)異常值、單位不統(tǒng)一等問題,同時也對數(shù)據(jù)進(jìn)行離散化或推理相關(guān)處理,通過數(shù)據(jù)轉(zhuǎn)換鏈路的方式,按照調(diào)用各處理模塊依次對數(shù)據(jù)加工,形成再分析數(shù)據(jù)。
數(shù)據(jù)加工層使用鏈接(Chaining)技術(shù)優(yōu)化用戶處理方法,即定義加工接口,并將加工方案分拆為若干接口的實(shí)現(xiàn)。在使用過程中,通過配置文件形成調(diào)用鏈接,便于加工方案的重復(fù)應(yīng)用。
(3)結(jié)果顯示層
結(jié)果顯示層完成數(shù)據(jù)再分析的顯示工作,將數(shù)據(jù)再分析的數(shù)值結(jié)果及圖形,通過氣象業(yè)務(wù)人員接受的方式展現(xiàn)。在瀏覽器中,結(jié)果顯示層提供簡單的用戶交互,以提升用戶體驗(yàn),幫助用戶全方位獲得分析結(jié)果。
在通用架構(gòu)中,再分析平臺定義為低耦合的三層結(jié)構(gòu),便于開發(fā)人員開發(fā)業(yè)務(wù),同時能夠使工作模塊化,形成可復(fù)用的代碼。將代碼抽象為業(yè)務(wù)組件,使開發(fā)人員能夠在開發(fā)過程中,通過簡單配置,形成可用功能塊,屏蔽了大量的實(shí)現(xiàn)細(xì)節(jié),達(dá)到快速開發(fā)的效果,并提升代碼可維護(hù)性。同時,封裝的功能模塊能夠滿足氣象人員的顯示需求,將開發(fā)人員從復(fù)雜的功能需求中解放,更快的搭建業(yè)務(wù)系統(tǒng)。
根據(jù)已接觸的氣象業(yè)務(wù)需求,抽象數(shù)據(jù)加工及使用Javascript顯示的組件。
數(shù)據(jù)過濾組件解決在數(shù)據(jù)加工過程中,數(shù)值的變化、刪除、離散化操作。設(shè)計(jì)包含以下考慮:(1)定值轉(zhuǎn)換。這類轉(zhuǎn)換最為常用,方式明確,因此在配置文件中設(shè)計(jì)轉(zhuǎn)換規(guī)則,以保證在不改變?nèi)魏未a的情況下完成轉(zhuǎn)換工作。(2)單位換算。數(shù)據(jù)文件中為保證數(shù)據(jù)精度,通常會將單位量綱做一些轉(zhuǎn)換,因此在數(shù)據(jù)加工中,常在數(shù)據(jù)讀入后,將單位轉(zhuǎn)換為特定標(biāo)準(zhǔn)。單位換算與定值轉(zhuǎn)換類似,在配置文件中可做完整規(guī)則定義。(3)用戶定制轉(zhuǎn)換。為用戶定制機(jī)制,用戶可根據(jù)自己需求定制離散數(shù)據(jù)、特定函數(shù)轉(zhuǎn)化方案等。
組件通過XML文件定義過濾規(guī)則,實(shí)現(xiàn)上述轉(zhuǎn)換。其中,用戶定制使用IoC[11]模式設(shè)計(jì),在不修改原有代碼的情況下提供更高的擴(kuò)展性。XML配置對應(yīng)的DTD描述如表1所示。
表1 數(shù)據(jù)過濾組件配置DTD定義
在DTD定義中,定值轉(zhuǎn)換通過ConstantFilter直接配置完成,單位轉(zhuǎn)換通過UnitFilter配置完成,用戶定制轉(zhuǎn)換在CustomFilter中配置完成。
再分析平臺基于Web設(shè)計(jì),使用Javascript[12]對頁面元素進(jìn)行控制。Javascript可以為用戶提供豐富的用戶體驗(yàn),設(shè)計(jì)基于瀏覽器的顯示組件幫助開發(fā)人員開發(fā)。組件設(shè)計(jì)與平臺整體設(shè)計(jì)目標(biāo)一致,從平臺的最終用戶和開發(fā)人員兩方面考慮:(1)以專業(yè)的顯示模式向用戶展現(xiàn),保障用戶獲得良好的數(shù)據(jù)支持,并能夠在頁面上對組件控制操作;(2)屏蔽用戶的各類復(fù)雜需求,并解決跨瀏覽器的兼容性問題,以接口的方式面向開發(fā)人員,使開發(fā)人員僅用配置即可快速開發(fā)。顯示組件被設(shè)計(jì)為jQuery插件[13],以JSON作為數(shù)據(jù)接口[14]。
2.2.1 色標(biāo)組件
平臺定義2個可拆分的組件:色標(biāo)選擇組件及色標(biāo)顯示組件,配合為色標(biāo)體系服務(wù)。色標(biāo)選擇組件用于修改色標(biāo),為頁面的下拉選擇框,在點(diǎn)選后會顯示多個可選色標(biāo),如圖2(a),選中色標(biāo)即可觸發(fā)色標(biāo)修改事件,并將改變后的色標(biāo)值通過事件響應(yīng)交給響應(yīng)監(jiān)聽。色標(biāo)顯示組件用于顯示色標(biāo)值,將傳入的色標(biāo)列舉在指定的DIV中,如圖2(b)。
圖2 色標(biāo)選擇組件與色標(biāo)顯示組件
在色標(biāo)組件中,單項(xiàng)色標(biāo)都被統(tǒng)一表示為一個JSON,該JSON包含2項(xiàng):dbarn表示色標(biāo)的值列表,cbarn表示色標(biāo)的顏色列表,如:{dbarn:[-16,-14],cbarn:[″#FF0000″,″#00FF00″,″#0000FF″]}。色標(biāo)選擇組件傳入?yún)?shù)為多個色標(biāo)及響應(yīng)監(jiān)聽,色標(biāo)顯示組件傳入?yún)?shù)為待顯示的色標(biāo)。
2.2.2 站點(diǎn)圖組件
平臺定義站點(diǎn)數(shù)據(jù)的顯示方案,直接在地圖上描繪站點(diǎn)數(shù)據(jù),使用戶能夠宏觀的查看氣象要素分頁情況,同時能夠基于地形、行政、山地等參考背景進(jìn)行分析。當(dāng)?shù)貓D上有足夠的站點(diǎn)數(shù)目時,就能看出數(shù)據(jù)的大致趨勢。站點(diǎn)圖組件基于OpenLayer框架[15],支持地圖縮放、拖拽,能夠?qū)崟r更換背景圖,同時能夠在不同的層級選擇不同的站點(diǎn)顯示。當(dāng)用戶選擇中國區(qū)顯示時,則顯示國家級的重要站點(diǎn);當(dāng)用戶選擇省級區(qū)域時,則顯示縣級站點(diǎn),提供不同精度的數(shù)據(jù)支持。站點(diǎn)圖效果圖如圖3所示。
圖3 站點(diǎn)圖組件
該組件使用參數(shù)為:色標(biāo)、站點(diǎn)信息、站點(diǎn)要素值、背景地圖。當(dāng)站點(diǎn)數(shù)量較多時,插件使用分級顯示的方案,解決了在IE的兼容性問題。
2.2.3 分析圖組件
平臺中提供氣象常用的分析圖組件:折線圖與柱狀圖。繪制分析圖的主要目標(biāo)是,對多種數(shù)據(jù)進(jìn)行對比以及查看數(shù)據(jù)的變化趨勢。因此在圖中提供多項(xiàng)數(shù)據(jù)的顯示,單位的顯示,圖4所示為分析圖組件的樣本。為分析圖組件所需輸入?yún)?shù):分析圖類型、數(shù)據(jù)值序列、單位及標(biāo)簽。
圖4 分析圖組件
2.2.4 播放組件
再分析平臺為氣象數(shù)據(jù)再分析提供時間解析,以解決氣象要素在時間上的變化分析。時間變化圖也能夠很好的服務(wù)于觀測人員,如云圖、風(fēng)場。在設(shè)計(jì)中,提供通用播放組件,使再分析圖形能夠隨時間動起來。
播放組件提供基本播放功能,定時觸發(fā)時次切換操作,控制圖形切換。對圖形能夠進(jìn)行上一時次,下一時次,自動播放及停止4個操作,響應(yīng)方法由用戶自定義。當(dāng)時次改變時,組件調(diào)用用戶自定效果顯示。
氣象科學(xué)研究院洪水監(jiān)測預(yù)警系統(tǒng)項(xiàng)目提出需求如下:給定某區(qū)域內(nèi)的格點(diǎn)分析資料,在網(wǎng)頁上形成格點(diǎn)資料的再分析圖形,并通過播放方式自動展現(xiàn)數(shù)據(jù)變化。
根據(jù)用戶需求,開發(fā)人員基于架構(gòu)搭建原型系統(tǒng)。開發(fā)過程如下:由于數(shù)據(jù)源為用戶自定義數(shù)據(jù)格式,故開發(fā)數(shù)據(jù)讀取層,將用戶數(shù)據(jù)轉(zhuǎn)為通用數(shù)據(jù)模型;根據(jù)用戶建議,設(shè)計(jì)前端的展現(xiàn)方案,形成靜態(tài)HTML頁面,并確定顯示控件的顯示位置和大??;根據(jù)用戶特殊值表及部分?jǐn)?shù)據(jù)離散化規(guī)則,完成數(shù)據(jù)過濾組件的XML定義;在HTML頁面上嵌入色標(biāo)、分析圖、播放插件,并將配置參數(shù)與后端數(shù)據(jù)對應(yīng);聯(lián)編,聯(lián)調(diào)。
可見,在開發(fā)過程中,開發(fā)人員幾乎不涉及對氣象領(lǐng)域的理解,降低了開發(fā)人員的學(xué)習(xí)成本。同時,由于各組件代碼均可復(fù)用,所以原型系統(tǒng)開發(fā)過程代碼工作量很小,達(dá)到快速開發(fā)的效果。
對國家科技基礎(chǔ)條件平臺運(yùn)行服務(wù)主系統(tǒng)功能完善項(xiàng)目中的架構(gòu)抽象及模塊抽取,形成的在線再分析平臺架構(gòu)和組件,是對基于瀏覽器的氣象再分析業(yè)務(wù)開發(fā)的重要嘗試和預(yù)研。其理念和成果,為開發(fā)人員提供開發(fā)思路和一定的開發(fā)基礎(chǔ),輔助非專業(yè)氣象開發(fā)人員快速上手,并在實(shí)踐過程中取得良好的效果。在未來的氣象業(yè)務(wù)開發(fā)過程中,不僅可以使用現(xiàn)有成果,還可以在此基礎(chǔ)上封裝更多的實(shí)用組件,進(jìn)一步完善架構(gòu)和組件庫,為在線氣象再分析服務(wù)提供更強(qiáng)大的支持。
致謝:感謝成都信息工程學(xué)院科研基金(CRF201406)對本文的資助
[1] 張浩,郭燦.數(shù)據(jù)可視化技術(shù)應(yīng)用趨勢與分類研究[J].軟件導(dǎo)刊,2012.
[2] Fulker,David,Sally Bates,et al.Unidata:A Virtual Community Sharing Resources via Technological Infrastructure[C].Bull.Amer.Meteor.Soc.,1997:78,457-468.
[3] B Hibbard.VisAD:Connecting people to computations and people to people[C].ACM SIGGRAPH Computer Graphics,1998.
[4] T Ormsby,E Napoleon,R Burke.Getting to know ArcGIS desktop[C].Journal of Science Teacher Education,2001.
[5] T Yoksas,J Caron,J McWhirter.Using Unidata's THREDDS and RAMADDA Services to Support Two Disparate Projects[C].AGU Spring Meeting.2009.
[6] J McWhirter,CJ Crosby,PC Griffith.Rich Support for Heterogeneous Polar Data in RAMADDA[C].AGU Fall Meeting.2013.
[7] M Zhao,SW Running.Sensitivity of Moderate Resolution Imaging Spectroradiometer(MODIS)terrestrial primary production to the accuracy of meteorological reanalyses[C].Journal of Geophysical.2006.
[8] Q Koziol,R Matzke.Hdf5–a new generation of hdf:Reference manual and user guide[EB/OL].http://hdf.ncsa.uiuc.edu/nra/HDF5,1998.
[9] R Rew,G Davis.NetCDF:an interface for scientific data access[C].Computer Graphics and Applications,IEEE,1990.
[10] Daniel Gardner,Kevin H Knuth,Michael Abato,et al.Thomas White,Robert DeBellis,Esther P Gardner.Common Data Model for Neuroscience Data and Data Model Exchange[C].Journal of the A-merican Medical Informatics Association.2001,8(1).
[11] WEI Xue-song,ZHANG Yu-ping.Research and Realization of IOC Framework[J].Computer Technology and Development.2006.
[12] D Flanagan.JavaScript:the definitive guide.2002.
[13] The jQuery Foundation[EB/OL].http://api.jquery.com.
[14] S Shin.Introduction to JSON (JavaScript Object Notation)[J].http://www.javapassion.com.2010.
[15] F Halsall,D Links.Computer Networks and Open Systems[J].Addison-Wesley Publishers.1995.