楊代才, 張冰松
(湖北省 氣象信息與技術保障中心, 武漢 430074)
長江流域覆蓋范圍較大, 包含 12 個省 (市), 共計兩萬多個觀測站(水文雨量觀測站3730個、氣象國家站748個、氣象區域站19 557個). 充分利用這些站點, 將水文和氣象部門的觀測數據進行融合, 通過一個平臺進行統一展示, 對長江流域監測預報預警、防汛抗旱具有重要的意義. 本文在對氣象和水文站點篩選的基礎上, 建立降水資料的實時匯集流程, 設計數據處理業務系統以及數據產品制作和共享系統, 實現降水數據的融合共享.
長江流域氣象水文雨量資料一張圖分析系統主要是依托氣象部門和水文部門現有的觀測站, 收集臺站參數信息, 根據測站的空間分布、數據完整性以及質量指標篩選出需要共享的觀測站, 利用已建成的通信線路實現數據的實時收集匯聚, 收集的數據經過質量控制和加工處理后存儲于數據庫中, 采用B/S架構開發數據產品制作和共享系統, 實現質控后降水資料的顯示和共享.
由于長江流域范圍觀測站較多, 數據量比較大, 因此在數據存儲管理方面考慮采用HBase分布式數據庫和Spark內存數據庫, 提高數據讀寫性能; 針對查詢可能出現緩慢的情況, 在WebGIS上進行優化. 最終為用戶提供一個雨量數據統一、頁面響應快捷、數據質量可靠的共享系統, 為長江流域監測預警、防汛抗旱提供數據支撐.
根據氣象、水文部門的實際情況, 設計了長江流域氣象水文數據融合一張圖的解決方案, 總體架構如圖1所示, 主要分為水文數據信息收集、氣象水文大數據存儲管理、數據產品制作和共享三部分.

圖1 長江流域氣象水文雨量共享分析系統架構圖
(1)水文數據信息收集, 收集氣象和水文部門的臺站參數信息, 包括臺站的名稱、經度、緯度、拔高等內容. 通過觸發器以及輪詢的方式, 實現水情信息的實時同步收集.
(2)氣象水文大數據存儲管理, 通過Web Service接口, 實時接收水文部門小時降水數據文件, 并啟動入庫模塊. 結合氣象部門臺站的降水數據, 進行空間一致性檢查、持續性檢查. 根據數據質量控制結果, 對觀測數據標注質量控制碼, 通過Music接口(氣象數據統一服務接口), 提供數據獲取、回存、計算、可視化等服務接口, 滿足用戶需要的高效、規范的檢索.
(3)數據產品制作和共享, 基于B/S架構, 開發數據產品加工、數據顯示和共享系統, 實現長江流域氣象與水文部門所有臺站的質量控制后降水數據的顯示、數據產品的制作與共享.
1.3.1 氣象數據分布式存儲技術
數據存儲管理方面采用HBase分布式數據庫和Spark內存數據庫, 提高數據讀寫性能. HBase分布式數據庫與傳統數據庫不同, 它是非關系型的開源數據庫, 基于HDFS文件系統運行[1]. 數據采集部分基于Kafka開發, 消息生產者(RProducer)部署在傳感器數據接收端服務器, 發送消息到消息隊列; 消息消費者(RCustomer)部署在服務器端, 接收Kafka消息并轉換成可用格式存入HBase. Spark是基于內存的迭代計算框架,其核心是彈性分布式數據集, 復雜的算法和運算都是在內存中進行多次快速迭代[2,3]. Spark Streaming針對實時數據進行流式處理, 具有高通量和容錯性[4], 對Kafka消息進行操作處理, 并將結果保存到HBase數據庫.
1.3.2 數據共享交換管理
“一張圖”共享數據庫服務器(氣象)是水文、氣象數據匯聚的樞紐. 而傳統數據庫同步方式極為繁瑣, 需要對數據庫做諸多配置, 并對源數據庫與目的數據庫有限制和要求, 且傳輸實時性、穩定性均有較大瓶頸.為實現數據的實時同步, 采用了DIP工具, 依托物理機或虛擬機的方式部署, 與源和目標端數據相連, 原理等同于Oracle ogg, 但無需在前置機上部署任何Agent.
此次數據交換共享的實施, 主要分為兩個步驟: 一是從實時水雨情數據庫服務器到“一張圖”共享數據庫服務器(氣象側)的同步, 源數據庫與目標數據庫分別為Oracle. 二是“一張圖”共享數據庫服務器(氣象側)到“一張圖”共享數據庫服務器(水利側)的同步, 源數據庫與目標數據庫均為Oracle. 簡而言之, 本次的數據交換共享實現就是從Oracle到Oracle的同步過程. 原理如圖2所示.
1.3.3 應用平臺顯示優化技術
在WebGIS上進行優化, 一是增加一個緩存機制,定時獲取數據, 每次收到頁面請求時直接從緩存中獲取區域站的數據, 這樣可以將查詢和結果返回時間大大縮短, 二是優化前端站點繪制速度, 用繪制SVG矢量圖形替換原來的圖片疊加方式, 三是采用分級策略顯示站點, 逐級增大顯示站點數[5].

圖2 “一張圖”共享數據庫服務器數據同步原理圖(氣象端)
結合目前實時雨水情數據庫的使用情況, 為了最大限度的減少對現有系統的影響, 同時能夠保證數據交換的時效性, 系統通過觸發器, 在水文部門的數據庫平臺內將發生變動(新增、修改或刪除)的數據寫入到待交換區, 通過輪詢方式監控交換區是否有新的數據, 如果有新的記錄將數據發送給氣象部門的數據接收節點, 從而實現水情信息的實時交換收集, 數據交換處理過程如圖3.
(1)水利部門將實時雨水情數據庫中所管轄的站號信息類、雨量、水文的數據進行插入(修改、刪除)操作時, 啟動數據庫表的觸發器;
(2)將變化的數據保存到待交換區中;
(3)系統定時對待交換信息記錄表進行輪詢檢查,發現有待發送數據后, 根據系統設置的轉發關系, 生成相應的數據文件, 并啟動發送模塊;
(4)發送模塊負責把數據文件, 分別發送給各接收節點;
(5)接收節點通過Web Service接口, 接收上傳的文件, 并啟動入庫模塊;

圖3 水文數據信息收集處理過程圖
(6)入庫模塊負責解讀數據文件, 并把數據記錄插入到已接收信息記錄表中, 同時插入(修改、刪除)相應的基本類、實時類信息.
長江流域氣象、水文觀測站多、頻次密, 對高并發需求數據, 采用內存數據庫技術(Spark); 對非高并發數據, 采用非關系型數據庫(HBase), 存儲管理結構如圖4所示. 通過五臺服務器及萬兆交換機構建集群數據庫環境, 利用云分布式存儲技術, 采用數據主鍵、分塊和數據壓縮相結合的方式提高大數據的存儲能力,實現降水數據要素級的數據庫存儲管理.

圖4 氣象水文大數據存儲管理結構圖
據統計, 使用HBase存儲45天數據, 數據量達到280 GB, 其中區域站 173 415 988 條記錄, 國家站 12 303 617條數據, 湖北省6000多個站點雨量查詢顯示在3 s以內, 形成矢量圖片在20 s以內; 長江流域20 000多個站點雨量查詢顯示在10 s左右, 形成矢量圖片在25秒左右; 長江、漢江流域的水位、流量、水勢等數據能夠每小時正點實時顯示. 相比傳統關系型數據庫存儲顯示速度有明顯提升.
根據降水觀測數據的特點, 參考天氣因素等條件設計以下質量控制方法, 包括界限值檢查、范圍值檢查、空間一致性檢查、持續性檢查、累計降水量秩相關系數檢查、綜合檢查等方法[6-8].
2.3.1 界限值檢查方法
氣象部門《地面氣象觀測規范》中對每一個要素的界限值范圍進行了規定, 可以根據該范圍判斷降水資料質量情況.
2.3.2 范圍值檢查方法
范圍值檢查是通過插值, 計算某一地點的多年日極值, 根據日數據變化規律, 求得降水資料的逐月閾值.
2.3.3 空間一致性檢查
空間一致性檢查方法是檢查觀測數據的變化是否符合其空間規律, 利用與被檢站下墊面及周圍環境相識的一個或多個鄰近站觀測數據計算被檢站降水量,對被檢站觀測值和計算值進行比較, 比較結果超出給定的閾值, 即認為被檢站降水觀測數據為可疑資料.
2.3.4 持續性檢查
如果某個要素的觀測值在一段時間內沒有變化,則有可能觀測設備或者數據傳輸出現問題, 在降水資料的持續性檢查中, 若降水量長期持續不變(有降水現象時, 即降水量大于0), 被檢站在被檢時段內的小時降水觀測數據均為可疑資料.
2.3.5 累計降水量秩相關系數檢查
根據降水現象的特點, 在時間、空間分布上對被檢站與鄰近站滑動過去6小時累計降水量進行比較,比較結果超出給定的閾值, 即認為被檢站降水觀測數據為可疑資料.
2.3.6 綜合一致性檢查等方法
綜合一致性檢查是根據以上所有檢查方法得出的結論來確定該類數據最終的質控碼.
數據產品制作和共享功能[9,10]包括數據監控、數據顯示和產品生成三個功能(見圖5). 數據監控包括到站率監控和小時降水量監測; 數據顯示功能實現了降水量的查詢、顯示和統計, 具體包括單時次數據顯示、任意時段累計降水量統計、閾值過濾顯示、數據表格顯示、單站曲線顯示、色斑圖顯示和疑誤數據顯示等; 產品生成是指對查詢、統計結果進行保存和下載, 包括圖片保存和Excel格式下載.

圖5 數據產品制作和共享系統功能結構圖
2.4.1 數據監控
(1)數據傳輸監控
數據傳輸監控模塊逐小時從數據庫中統計已到資料的總站數, 并統計到站率. 在GIS頁面上顯示應到站、實到站和到站率, 并將已到站按綠色、未到站按紅色進行標示.
(2)降水量監測及對比
降水量監測功能是系統每小時自動統計所有站點的小時降水量, 自動統計出大于設定值的站數, 并顯示最大降水量和所在站點. 設定值可以根據用戶進行修改. 統計的時間將按照到站率和時間策略進行綜合設計. 在顯示頁面上, 以氣象、水文兩個復選框給出, 用戶根據需要可以形成三個組合, 即氣象與水文單獨、氣象與水文合并的顯示方式, 做到雨量的對比融合顯示.
2.4.2 數據產品制作
(1)色斑圖生成
提供不同時間段累計降水量的色斑圖制作功能,生成圖形產品.
(2)面雨量統計
按流域, 統計不同時間段累計面雨量.
2.4.3 數據顯示
(1)單時次降水量顯示
根據用戶選擇, 單時次降水量顯示功能在WebGIS頁面上所有站點標示附近顯示站點的過去1小時(3小時、6小時、12小時、24小時)降水量, 用戶可通過放大地圖直觀的查看區域內的降水量情況.
(2)任意時段降水量統計
任意時段降水量統計功能是查詢開始時間和結束時間內所有站點的累計雨量, 并在WebGIS頁面上顯示站點的累計雨量值, 用戶可通過放大地圖直觀的查看區域內的降水量情況.
(3)按閾值過濾顯示
對查詢結果提供閾值過濾顯示功能, 在閾值文本框中輸入數值, 濾掉降水小于閾值的站點, 只顯示值大于等于閾值的站點, 并在文本框后顯示站點數目.
(4)數據表格顯示
所有查詢結果除以WebGIS方式疊加在地圖上展示, 也提供數據表格顯示, 并提供數據下載.
(5)單站降水曲線顯示
提供單站降水曲線顯示功能, 單擊站點可查看過去24小時降水曲線圖或柱狀圖, 并可保存圖片到本地.
(6)色斑圖實時顯示
對降水量查詢結果進行插值算法, 并根據指定圖例生成色斑圖.
(7)面雨量顯示
顯示各流域不同時間段累計面雨量.
長江流域氣象水文雨量資料一張圖分析系統(見圖6), 部署在湖北省氣象局, 水文和氣象部門的用戶可以通過數據庫客戶端獲取數據, 也可以通過瀏覽器查詢、分析雨情, 雨量資料的對比, 做到了氣象、水利部門數據的一致性, 提高了數據發布的權威性. 系統主要包括數據監控、數據顯示和產品生產三大功能. 其中,數據監控包括到站率監控和小時雨量監測; 數據顯示功能包括雨量時查詢、顯示和統計, 具體包括單時次數數據顯示、任意時段累計雨量統計、閾值過濾顯示、數據表格顯示、單站曲線顯示、色板圖顯示和疑誤數據顯示等; 產品生成可對查詢、統計結果進行保存和下載.

圖6 長江流域氣象水文雨量資料一張圖分析系統
為提高產品應用的便捷性, 增強平臺對業務的支撐度, 還開發了按流域、行政區域(地市級、縣級)查詢顯示的功能, 同時還根據業務需要形成氣象與水文雨量顯示的三種組合, 即氣象與水文單獨、氣象與水文合并的顯示方式, 實現雨量的對比融合顯示.
2017年7月25日, 湖北省氣象局正式下發了《關于做好湖北氣象業務內網水文部門雨量資料產品應用的函》, 水文部門的雨量、水文數據正式在全省氣象部門得到應用. 8月3日和8月10日, “長江流域氣象水文雨量資料一張圖分析系統”在省水利廳和長江委正式使用, 普遍反映良好. 在我省今年盛夏 8月7-8日、11-13日強降雨過程以及多次局地強對流天氣影響期間, 為武漢中心氣象臺更加有效捕捉“坨子雨”強度、提高預警精度、精準防范發揮了重要作用.長江委、省防辦、省水利廳在今年秋汛精準調度中也很好的發揮了作用. 下一步將繼續優化站點, 完善雨量數據質量控制, 開發滿足水利部門面雨量產品和各種極值統計產品, 更好的為流域防汛抗旱提供服務.
長江流域氣象水文雨量共享分析系統構建了集氣象、水文雨量融合為一張圖的可視氣象信息服務平臺,主要承擔為長江流域氣象、長江水利委員會水文部門提供實時融合雨情查詢、監視、分析統計. 系統基于分布式數據庫和WebGIS技術進行優化處理, 響應速度快捷、功能完善、界面豐富友好, 為流域氣象服務工作提供了很好的平臺, 得到了用戶的一致肯定.