邱忠洋, 蔣 駿, 雷正翠, 黃文彥
(常州市氣象局, 江蘇 常州 213022)
現(xiàn)代計算機網(wǎng)絡(luò)和數(shù)字資源建設(shè)的不斷發(fā)展極大地加快了各行業(yè)信息化建設(shè)步伐。2016 年底, 中國氣象局發(fā)布了《關(guān)于發(fā)展智慧氣象的若干思考》[1], 文中高度重視并關(guān)注 “智慧氣象” 的戰(zhàn)略研究, 闡述了智慧氣象的內(nèi)涵和特征, 提出了發(fā)展智慧氣象的三大戰(zhàn)略——氣象大數(shù)據(jù)戰(zhàn)略、 “互聯(lián)網(wǎng)氣象+” 戰(zhàn)略和氣象平臺戰(zhàn)略。這為數(shù)據(jù)可視化技術(shù)在氣象行業(yè)的應(yīng)用做了政策上的引導(dǎo)。
大數(shù)據(jù)時代的到來, 對于數(shù)據(jù)分析以及數(shù)據(jù)展示都帶來了極大的挑戰(zhàn)。氣象數(shù)據(jù)具有種類繁多、監(jiān)測頻次密、傳輸周期短、歷史資料量大等特點[2]。這也給行業(yè)氣象數(shù)據(jù)服務(wù)的展示帶來很大困難。將傳統(tǒng)技術(shù)中的統(tǒng)計學(xué)、機器學(xué)習(xí)、運籌學(xué)、數(shù)值模式等技術(shù)與可視化技術(shù)結(jié)合, 將數(shù)據(jù)挖掘出來的結(jié)果與演示的系統(tǒng)相結(jié)合, 最終形成大型數(shù)據(jù)資源和挖掘系統(tǒng), 為用戶提供服務(wù), 成為行業(yè)內(nèi)需要研究的重要方向。
數(shù)據(jù)可視化是應(yīng)對該挑戰(zhàn)非常有效的辦法, 從海量的氣象數(shù)據(jù)中挖掘獲取有價值的關(guān)鍵信息, 及時高效地洞察隱藏信息, 并將其直觀地展示給決策機構(gòu), 為決策提供參考依據(jù)。數(shù)據(jù)可視化平臺致力于用更生動、友好的形式, 及時呈現(xiàn)隱藏在瞬息萬變且龐雜數(shù)據(jù)背后的變化規(guī)律。數(shù)據(jù)可視化主要是借助圖形化的手段, 演示所要傳達的信息。在大數(shù)據(jù)分析、監(jiān)控、指揮、調(diào)度等方面, 可視化平臺已經(jīng)成為不可或缺的基礎(chǔ)工具之一。結(jié)合當(dāng)前業(yè)務(wù)現(xiàn)狀, 本研究提出通過DataV 技術(shù)建設(shè)可視化大屏系統(tǒng), 將氣象預(yù)警、預(yù)報、觀測、站點、服務(wù)產(chǎn)品等信息集中進行展示。大屏系統(tǒng)還可以作為參展平臺將業(yè)務(wù)中的服務(wù)產(chǎn)品、影視視頻、新媒體、科普情況等以統(tǒng)計信息的方式給予演示。通過地理分析、實況監(jiān)控、歷史資料再現(xiàn)等方式讓用戶在一個屏幕上讀懂多元數(shù)據(jù)的深層次關(guān)系。
根據(jù)前期業(yè)務(wù)需求分析以及調(diào)查研究, 本平臺采用單頁在大屏上進行數(shù)據(jù)的呈現(xiàn)與展示, 展示內(nèi)容包括觀測、預(yù)報、預(yù)警、服務(wù)產(chǎn)品、氣候統(tǒng)計、視頻監(jiān)控、空氣質(zhì)量、新媒體服務(wù)等方面(圖1)。
圖1 系統(tǒng)模塊
1)觀測。展示常州地圖, 在地圖上標(biāo)注站點, 并顯示數(shù)據(jù)流向、監(jiān)控站點狀態(tài)。同時展示實時溫度、小時降水量、濕度、風(fēng)速風(fēng)向、能見度、日出日落時間、空氣質(zhì)量等數(shù)據(jù)。
2)預(yù)報。展示7 d 天氣預(yù)報, 空氣質(zhì)量預(yù)報。
3)預(yù)警。滾動展示生效預(yù)警信號, 按預(yù)警類型與預(yù)警級別分別統(tǒng)計歷史預(yù)警信號。
4)服務(wù)產(chǎn)品。滾動展示各項服務(wù)產(chǎn)品, 主要包括重要天氣報告、氣象服務(wù)專報、氣候影響評價、生活指數(shù)預(yù)報等。
5)影視視頻。播放最新氣象影視視頻。
6)新媒體。展示通過微信、微博、App、短信、傳真、郵件等渠道發(fā)布出去的統(tǒng)計信息。
7)科普次數(shù)。統(tǒng)計氣象科普次數(shù)。
8)氣候統(tǒng)計。展示極端最高/最低氣溫及發(fā)生日期、最大日雨量、最大小時雨量、極端最大風(fēng)速等信息。
9)設(shè)備建設(shè)。展示自動站、加密站、雷達站、探測設(shè)備、無人機、應(yīng)急指揮車等設(shè)備統(tǒng)計。
系統(tǒng)業(yè)務(wù)架構(gòu)主要分為4 層:基礎(chǔ)數(shù)據(jù)層、采集服務(wù)層、數(shù)據(jù)接口層, 數(shù)據(jù)展示層[3]?;A(chǔ)數(shù)據(jù)層和采集服務(wù)層為可視化平臺提供基礎(chǔ)數(shù)據(jù), 數(shù)據(jù)接口層包含了對基礎(chǔ)數(shù)據(jù)的分析整合, 其中包括數(shù)據(jù)挖掘算法的實現(xiàn)。數(shù)據(jù)展示層則是將大屏系統(tǒng)所需要的數(shù)據(jù)進行展示, 形式多樣(圖2)。
圖2 系統(tǒng)模塊劃分
1)數(shù)據(jù)接口層。該模塊主要任務(wù)在于統(tǒng)一數(shù)據(jù)源, 將零散的數(shù)據(jù)資源整合到同一個平臺, 目前集中處理的數(shù)據(jù)源包括CIMISS、CMACAST、省局?jǐn)?shù)據(jù)共享平臺、自建數(shù)據(jù)庫及外部共享數(shù)據(jù)等。
2)采集服務(wù)層。該模塊主要工作是對來源多、種類繁雜的氣象數(shù)據(jù)進行自動采集、處理、分批入庫并提供相應(yīng)的數(shù)據(jù)服務(wù)。采集的數(shù)據(jù)除了本地氣象探測資料以外, 還包括雷達、衛(wèi)星云圖、自動站、PM2.5 以及PM10 等多種類型數(shù)據(jù)。
3)數(shù)據(jù)接口層。將底層整理好的數(shù)據(jù)進行再處理, 處理過程包括對基礎(chǔ)數(shù)據(jù)的整理、分析、提純、再加工等, 最終得到用戶想要的數(shù)據(jù)。包括了觀測數(shù)據(jù)接口、站點信息接口、預(yù)警數(shù)據(jù)接口、空氣質(zhì)量接口、服務(wù)產(chǎn)品接口等。
4)數(shù)據(jù)展示層。該層主要是響應(yīng)用戶需求, 將數(shù)據(jù)進行可視化展示, 在DataV 技術(shù)中使用拖拽即可實現(xiàn)對大屏整體結(jié)構(gòu)的把控, 該技術(shù)提供了GIS地圖、地圖層疊、飛線、熱力圖、折線圖、餅圖、柱形圖等, 這些都為用戶更直觀地感受數(shù)據(jù)提供有力的技術(shù)支撐。
1.3.1 傳統(tǒng)可視化技術(shù) 傳統(tǒng)可視化技術(shù)主要基于軟件的原生研發(fā), 前端可視化主要依托第三方提供的可視化開發(fā)工具, 如D3、Charts、Highcharts 工具等, 對數(shù)據(jù)進行組合展示。而軟件的原生研發(fā)則需要前端、后臺、數(shù)據(jù)庫等全方面的研發(fā)團隊共同參與才能實施完成, 成本較高、效率低下, 一套系統(tǒng)的完成需要漫長的研發(fā)周期, 這種模式在大數(shù)據(jù)時代已經(jīng)無法滿足用戶對數(shù)據(jù)及時獲取并用于決策的實際需求。這就對全新的數(shù)據(jù)可視化平臺提出了新的需求, 應(yīng)具備實時性、操作簡單、研發(fā)快捷、展現(xiàn)豐富、多元數(shù)據(jù)兼容等特點。
1.3.2 DataV 技術(shù) DataV 是由阿里巴巴(中國)網(wǎng)絡(luò)技術(shù)有限公司開發(fā), 是一個精于業(yè)務(wù)數(shù)據(jù)與地理信息融合的大數(shù)據(jù)可視化平臺。相較于傳統(tǒng)可視化技術(shù), DataV 數(shù)據(jù)可視化技術(shù)有了質(zhì)的飛越, DataV技術(shù)使用了可視化應(yīng)用的方式來分析、展示龐雜的數(shù)據(jù)。DataV 旨在讓更多的人看到數(shù)據(jù)可視化的魅力, 幫助非專業(yè)工程師通過圖形化的界面輕松搭建專業(yè)水準(zhǔn)的可視化應(yīng)用, 滿足業(yè)務(wù)監(jiān)控、風(fēng)險預(yù)警、地理信息分析等多種業(yè)務(wù)的展示需求[4]。
1.3.3 DataV 技術(shù)使用 對于DataV 技術(shù)的使用, 主要包括頁面布局、文字及顏色設(shè)計、圖表選擇、數(shù)據(jù)接入4 個方面[5]。
1)頁面布局。該模塊主要是對大屏可視化頁面進行合理布局, 是信息可視化的基礎(chǔ), 主要分為主要素、次要素、輔助要素3 大類, 主要素放中間, 其他要素盡量靠近, 本系統(tǒng)GIS 地圖以及預(yù)警信息放置中間, 其他輔助擺放。
2)文字和顏色設(shè)計??梢暬猩屎臀淖质侵匾? 色彩可以快速讓人區(qū)分信息, 文字則可以簡要說明, 避免閱讀疲勞。
3)圖表選擇。圖形可視化以圖表的形式為主。本平臺使用了曲線圖顯示天氣預(yù)報, 反映天氣變化形式, 柱狀圖直觀反映降水量, 餅圖反映氣象要素部分與總體的對比。DataV 能將數(shù)據(jù)由單一的數(shù)字轉(zhuǎn)化為各種動態(tài)的可視化圖表, 從而實時地將數(shù)據(jù)展示給用戶。
4)數(shù)據(jù)接入。DataV 支持多種類型的數(shù)據(jù)源, 包括數(shù)據(jù)庫類、文件類、API 類等。其優(yōu)勢在于能夠加強信息傳輸?shù)男? 快速訪問相關(guān)數(shù)據(jù)接口, 更好地管理業(yè)務(wù), 快速識別最新趨勢, 可以準(zhǔn)確定位客戶需求、與數(shù)據(jù)直接交互、做深度挖掘演示分析、定制數(shù)據(jù)可視化以及輕松理解數(shù)據(jù)。
在傳統(tǒng)IT 建設(shè)方式下, 各種信息系統(tǒng)大多獨立采購或建設(shè), 無法做到信息的互聯(lián)互通, 導(dǎo)致內(nèi)部形成多個數(shù)據(jù)孤島?;ヂ?lián)網(wǎng)以及移動互聯(lián)網(wǎng)的發(fā)展帶來了很多模式, 新模式通過新平臺支撐, 產(chǎn)生的數(shù)據(jù)也無法與傳統(tǒng)模式下的數(shù)據(jù)互通。分散的數(shù)據(jù)很難完成當(dāng)前快速變化的前端業(yè)務(wù)。 “大中臺, 小前臺” 的數(shù)據(jù)中臺技術(shù)應(yīng)運而生, 該模式能夠融合老模式, 整合分散在孤島上的數(shù)據(jù), 快速提供數(shù)據(jù)服務(wù)能力[6, 7]。氣象數(shù)據(jù)種類繁多, 對數(shù)據(jù)的實時性要求高。按照類型可以分為常規(guī)天氣資料和非常規(guī)天氣資料。比如, 基本站資料(溫度、濕度、氣壓、風(fēng)速、風(fēng)向等)屬于常規(guī)天氣資料, 非常規(guī)天氣資料包括加密自動站、探空、雷達、風(fēng)廓線雷達、衛(wèi)星等。這些數(shù)據(jù)分散獨立, 將其形成一整套可用于提供氣象數(shù)據(jù)服務(wù)的后臺系統(tǒng)顯得尤為重要。為適應(yīng)復(fù)雜多變的前端業(yè)務(wù), 本平臺采用數(shù)據(jù)中臺技術(shù)整合資源, 提供數(shù)據(jù)服務(wù)(圖3)。
圖3 小型數(shù)據(jù)中臺技術(shù)流程
1.5.1 數(shù)據(jù)庫技術(shù)選擇 MySQL 是一個高速度、高性能、多線程、開放源代碼, 建立在客戶/服務(wù)器結(jié)構(gòu)上的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。MySQL 數(shù)據(jù)庫可以高度融合標(biāo)準(zhǔn)結(jié)構(gòu)化查詢語言(SQL 數(shù)據(jù)庫語言)。在性能方面, MySQL 性能卓越、服務(wù)穩(wěn)定, 很少出現(xiàn)宕機, 并且源代碼開放、自主性強、使用成本低。軟件體積小, 安裝使用簡單, 并且易于維護。在WEB應(yīng)用方面, MySQL 是最好的RDBMS 應(yīng)用軟件之一。支持多種操作系統(tǒng), 提供多個API 接口, 支持多個開發(fā)語言[8, 9], MySQL 數(shù)據(jù)庫因其安裝便捷、使用方便、安全性能高、穩(wěn)定性強以及可移植性好等性能被廣泛使用。
結(jié)合當(dāng)前實際, 考慮小型數(shù)據(jù)中臺能夠使多元數(shù)據(jù)完成整合管理, 為了能夠讓本系統(tǒng)與其他系統(tǒng)對接兼容, 本系統(tǒng)采用MySQL 數(shù)據(jù)。
1.5.2 表結(jié)構(gòu)構(gòu)建 系統(tǒng)關(guān)聯(lián)是減少數(shù)據(jù)冗余, 提高數(shù)據(jù)操作效率的重要方式, 本系統(tǒng)中數(shù)據(jù)表之間有許多關(guān)聯(lián)表。本系統(tǒng)構(gòu)建的數(shù)據(jù)庫表包括人員信息表、觀測業(yè)務(wù)管理表、預(yù)報業(yè)務(wù)數(shù)據(jù)管理表、預(yù)警業(yè)務(wù)數(shù)據(jù)管理表、氣候業(yè)務(wù)數(shù)據(jù)管理表、統(tǒng)計信息管理表、日志管理表等(圖4)。
圖4 數(shù)據(jù)庫表結(jié)構(gòu)
1.5.3 多線程入庫技術(shù) 本研究對數(shù)據(jù)的處理除了基礎(chǔ)的氣象數(shù)據(jù), 還有其他業(yè)務(wù)數(shù)據(jù)。數(shù)據(jù)種類較多、數(shù)據(jù)量較大, 使用傳統(tǒng)的單線程的操作方式不僅效率低下, 而且會影響平臺的實時展示。針對效率問題, 系統(tǒng)將采用多線程的操作方式進行解析入庫。在多線程處理數(shù)據(jù)的過程中, 一方面, 需要使用線程同步機制, 即處理數(shù)據(jù)的各線程依賴主線程, 需要主線程通過掃描提供消息進行喚醒調(diào)用, 而其他的線程則是處于等待狀態(tài)。另一方面, 當(dāng)共享資源被多個線程爭相使用時, 又用到線程互斥機制, 即任何時候最多只允許一個線程使用資源, 其他要使用該資源的線程必須處于等待狀態(tài), 直到占用資源的線程釋放了該資源[10, 11]。
多線程的創(chuàng)建主要從新建線程對象開始, 通過線程Start()方法開始線程操作, 線程就緒完畢, 則等待CPU 分配時鐘片進入運行狀態(tài), 若線程發(fā)生阻塞, 則當(dāng)前線程進入阻塞狀態(tài), 等待阻塞結(jié)束, 重新回到線程就緒狀態(tài)等待CPU 分配時鐘片, 否則線程結(jié)束。具體流程如圖5 所示。
圖5 多線程運作方式
1.5.4 Mybaitis 框架提供API 服務(wù) 系統(tǒng)對數(shù)據(jù)的調(diào)用和訪問都有一定的要求, 一是數(shù)據(jù)的精準(zhǔn)度, 二是調(diào)用數(shù)據(jù)的效率, 三是能夠滿足多并發(fā)數(shù)據(jù)獲取的條件。這樣的后臺數(shù)據(jù)處理急需一個具備簡易存儲過程、高級映射、通用SQL 及高并發(fā)的持久性框架來滿足。經(jīng)過研究, 系統(tǒng)最終選擇了MyBatis 框架, 除了能夠滿足上述的功能以外, 通過XML 和注解配置數(shù)據(jù)庫原生信息, 將接口和java 對象映射成數(shù)據(jù)庫中的記錄, 滿足基本數(shù)據(jù)調(diào)用需求, 該模式可以讓開發(fā)者把更多的精力放在業(yè)務(wù)SQL 的編輯上, 節(jié)省了一定的開發(fā)成本。Mybatis 功能框架主要分為3 層[12]。
1)API 接口層。負(fù)責(zé)為外部應(yīng)用提供API 接口服務(wù), 通過這些API 可對數(shù)據(jù)庫進行操作。 向接口層發(fā)送帶參數(shù)的request 請求, 數(shù)據(jù)處理層將接收參數(shù)并完成數(shù)據(jù)處理。
2)數(shù)據(jù)處理層。負(fù)責(zé)將接收到的SQL 及參數(shù)進行解析、執(zhí)行、映射處理及反饋結(jié)果。返回的結(jié)果可自行設(shè)定, 可以是JSON/XML 等。它的主要目的是根據(jù)調(diào)用的請求完成一次數(shù)據(jù)庫操作。
3)基礎(chǔ)支撐層。負(fù)責(zé)基礎(chǔ)的功能支撐, 包括數(shù)據(jù)庫鏈接配置、映射管理、事務(wù)管理、配置加載和緩存處理。為上層的數(shù)據(jù)處理層提供最基礎(chǔ)的支撐。
考慮到系統(tǒng)未來使用的可擴展性、高效性、兼容性、通用性。選擇Mybatis 作為系統(tǒng)開發(fā)的ORM 框架, 框架結(jié)構(gòu)如圖6 所示。
圖6 Mybatis框架結(jié)構(gòu)
本研究在軟件研發(fā)過程中對涉及到的數(shù)據(jù)流進行模塊化劃分, 主要包括數(shù)據(jù)源模塊、數(shù)據(jù)處理模塊、中臺服務(wù)模塊以及數(shù)據(jù)演示模塊(圖7)。數(shù)據(jù)源模塊重點研究多元數(shù)據(jù)資料的整合, 對于來自多個渠道的數(shù)據(jù)分類采集, 包括了人員信息、OA 辦公信息、觀測數(shù)據(jù)、預(yù)報信息、預(yù)警信息、自動站信息等。數(shù)據(jù)采集之后有一個自檢預(yù)處理的過程, 合格的數(shù)據(jù)將進入進一步的整理。整理之后的數(shù)據(jù)進入數(shù)據(jù)處理模塊, 在數(shù)據(jù)處理模塊中首先是數(shù)據(jù)接收, 之后進行分類、解碼、質(zhì)量控制, 進行融合分級、評估鑒定, 最后再作存儲入庫。入庫后的數(shù)據(jù)進入中臺服務(wù)模塊, 該模塊主要是對數(shù)據(jù)進行匯聚連接、存儲計算、算法研發(fā)、提純加工、數(shù)據(jù)整理以及API 服務(wù)。數(shù)據(jù)演示模塊中, 通過API 調(diào)用數(shù)據(jù), 使用DataV 技術(shù)中的控件進行數(shù)據(jù)綁定, 可以通過個性化的選擇完成前端演示, 比如, 氣候統(tǒng)計匹配曲線圖、餅圖、形圖等, 站點信息匹配GIS 地圖, 預(yù)警預(yù)報可匹配文字滾動。在數(shù)據(jù)流中, 最重要的是數(shù)據(jù)中臺服務(wù), 數(shù)據(jù)中臺可以將復(fù)雜的氣象數(shù)據(jù)進行融合處理, 使信息協(xié)調(diào)優(yōu)化便于調(diào)用。
圖7 數(shù)據(jù)處理及反饋流程
系統(tǒng)使用B/S 模式和JAVA 語言進行開發(fā), 前端使用DataV 技術(shù)數(shù)據(jù)可視化控件進行頁面布局以及JavaScript 技術(shù)前端數(shù)據(jù)調(diào)取, 后臺則是采用mybatis框架和MySQL 數(shù)據(jù)庫同步編程, 在系統(tǒng)開發(fā)工具上選擇Eclipse、VS Code、Tomcat 等。Java 語言選擇基于其面向?qū)ο?、分布式、解釋性、安全特性、可移植、高性能、多線程和靜態(tài)等特點。 Eclipse 選擇基于其是一種流行的開源軟件, 其強大的語言提示功能和代碼分類顯示功能, 極大地提高了軟件開發(fā)人員的程序開發(fā)效率。Tomcat 服務(wù)器優(yōu)點是兼有可擴展性和安全性。系統(tǒng)可運行于Windows 及Linux 服務(wù)器, 兼容性良好。這些選型基本可以解決系統(tǒng)實施中的技術(shù)問題。
實際運行效果表明系統(tǒng)性能良好。大屏首頁如圖8 所示, 預(yù)警以及氣候數(shù)據(jù)統(tǒng)計如圖9、圖10 所示。但是, 未來如何進一步優(yōu)化對海量氣象數(shù)據(jù)的處理以及挖掘數(shù)據(jù)中隱藏的規(guī)律, 還需要進一步研究和探索。
圖8 可視大屏首頁
圖9 預(yù)警統(tǒng)計
本研究根據(jù)氣象資料輔助決策的實際需求, 設(shè)計并實現(xiàn)了可視化大屏系統(tǒng), 該系統(tǒng)具備自動采集、分析、提純、可視化等功能。采用DataV 技術(shù)極大地減輕了前端開發(fā)人員的工作量, 使系統(tǒng)能夠快速搭建。數(shù)據(jù)中臺技術(shù)的引入, 實現(xiàn)對局內(nèi)資源的整合, 完成了傳統(tǒng)數(shù)據(jù)供給到新型數(shù)據(jù)倉庫的轉(zhuǎn)型。系統(tǒng)結(jié)合使用了多線程數(shù)據(jù)處理、B/S 框架、Mybatis 框架下MySQL 數(shù)據(jù)庫同步編程, 最后跨平臺部署。最大效能地發(fā)揮了互聯(lián)網(wǎng)技術(shù)在氣象服務(wù)中的作用。
圖10 氣候數(shù)據(jù)統(tǒng)計
系統(tǒng)當(dāng)前處于應(yīng)用階段, 還有很多不足和需要改進的地方, 后期將重點解決3 個問題, 一是進一步整合氣象系統(tǒng)的各類數(shù)據(jù), 完善中臺數(shù)據(jù)基礎(chǔ)。二是對多元氣象數(shù)據(jù)進行深度挖掘, 探索海量氣象數(shù)據(jù)背后的規(guī)律和秘密。三是深入研究數(shù)據(jù)可視化技術(shù), 并將其應(yīng)用于實際業(yè)務(wù)中。