文/許皓皓 何彩芬
氣象災害數(shù)據(jù)庫管理與分析系統(tǒng)開發(fā)與實現(xiàn)
文/許皓皓1何彩芬2
為解決歷年氣象災害災情數(shù)據(jù)錄入和查詢手段匱乏問題,及時準確地分析氣象災害的發(fā)生發(fā)展情況,為氣象災害風險評估和決策服務提供依據(jù)。設計和開發(fā)氣象災害數(shù)據(jù)庫管理與分析系統(tǒng),實現(xiàn)包括臺風、雷電、冰雹等十余種氣象災害信息的錄入、修改、刪除、查詢、檢索、統(tǒng)計和分析功能。該系統(tǒng)主要基于C# .NET語言開發(fā),采用B/S架構,提供GIS可視化界面,可以基于災情信息在后臺自動計算災情指數(shù),為災害的評估提供直接數(shù)據(jù)支持。
氣象災害 災害風險評估 氣象災害數(shù)據(jù)庫 災害分析 災情評估
我國是世界上氣象災害最嚴重的國家之一,氣象災害損失占所有自然災害總損失的70%以上。氣象災害種類多、分布地域廣、發(fā)生頻率高、造成損失重,我國每年受氣象災害影響的人口達4億人次,造成的經(jīng)濟損失相當于國內(nèi)生產(chǎn)總值的1%~3%。根據(jù)2010年4月1日正式施行的《氣象災害防御條例》第十條明確要求:縣級以上地方人民政府應當組織氣象等有關部門對本行政區(qū)域內(nèi)發(fā)生的氣象災害的種類、次數(shù)、強度和造成的損失情況開展氣象災害普查、建立氣象災害數(shù)據(jù)庫,按照氣象災害的種類進行氣象災害風險評估,并根據(jù)氣象災害分布情況和氣象災害風險評估結(jié)果,劃定氣象災害風險區(qū)。因此開展氣象災害數(shù)據(jù)庫相關系統(tǒng)的研究和建設,既是國家層面對地方政府的要求,也對氣象災害的風險評估和決策服務,乃至人民群眾的財產(chǎn)生命安全都有切實的意義。
各地氣象部門在氣象災害數(shù)據(jù)庫領域開展了大量的研究工作。黃國榮等[4]針對主要農(nóng)業(yè)氣象災害發(fā)生規(guī)律,分析不同生育期農(nóng)作物生長發(fā)育的適宜氣象指標,建立了主要農(nóng)業(yè)氣象災害的農(nóng)業(yè)生產(chǎn)防御對策數(shù)據(jù)庫的檢索系統(tǒng);王夢琳等[5]選用VB.net開發(fā)語言,結(jié)合Access 2007數(shù)據(jù)庫系統(tǒng),設計并初步實現(xiàn)了具有數(shù)據(jù)收集、處理及災害等級判定等功能的農(nóng)業(yè)氣象災害查詢系統(tǒng);吳亞玲等[6]運用Web技術、地理信息系統(tǒng)(GIS)等關鍵技術設計和構建氣象災情數(shù)據(jù)庫,實現(xiàn)了災情查詢和統(tǒng)計對比分析、災情和對應自動站各氣象要素的關聯(lián)查詢等功能,為2011年在深圳舉行的大運會開展相應的防災減災氣象服務。然而現(xiàn)有的氣象災害數(shù)據(jù)庫系統(tǒng),有些只關注農(nóng)業(yè)氣象災害等單一災種,無法適用于全部類型的氣象災害;有些系統(tǒng)開發(fā)平臺過于落后,操作方式也不夠便捷,為系統(tǒng)的大規(guī)模使用留下隱患;如果能基于主流開發(fā)平臺設計和研發(fā)一款支持多災種氣象災害、操作簡便的氣象災害數(shù)據(jù)庫管理與分析系統(tǒng),實現(xiàn)包括臺風、雷電、冰雹等十余種氣象災害信息的錄入、修改、刪除、查詢、檢索、統(tǒng)計和分析功能,將非常具有實用價值。
為滿足氣象災情評估精細化的目標,參考現(xiàn)有氣象災害數(shù)據(jù)庫系統(tǒng)功能,結(jié)合地方實際需求,確定氣象災害數(shù)據(jù)庫管理與分析系統(tǒng)主要功能需求如下:
(1)梳理氣象災害各災種災情信息字段后合理分類,對災害數(shù)據(jù)庫模型和災害的閾值進行研究,設計氣象災害數(shù)據(jù)庫結(jié)構,建立臺風、雷電、冰雹、雷雨大風、龍卷,暴雨(洪澇),地質(zhì)災害、干旱等11類氣象災害數(shù)據(jù)表和關聯(lián)數(shù)據(jù)表。
(2)基于B/S架構開發(fā)氣象災害管理模塊,實現(xiàn)各類氣象災害數(shù)據(jù)的錄入、修改、刪除功能,支持jpg、png、doc、docx、xls、xlsx、pdf等多種格式的圖片、文檔、資料文件的上傳。
(3)在氣象災害數(shù)據(jù)庫基礎上,研發(fā)氣象災害顯示分析模塊,實現(xiàn)基于GIS的氣象災害的可視化查詢、統(tǒng)計、管理和分析功能,提供自動化的災情指數(shù)計算和顯示功能。
基于四層架構構建氣象災害數(shù)據(jù)庫管理與分析系統(tǒng),實現(xiàn)數(shù)據(jù)與操作邏輯分離、操作與服務邏輯分離,由服務支撐客戶端請求的模式,降低系統(tǒng)風險,為系統(tǒng)的健壯性、可擴展性奠定基礎。系統(tǒng)由數(shù)據(jù)層、持久層、業(yè)務層和表現(xiàn)層4部分組成。數(shù)據(jù)層負責氣象災害數(shù)據(jù)的存儲,由SQL Server數(shù)據(jù)庫提供支撐;業(yè)務層負責系統(tǒng)各項功能的業(yè)務邏輯實現(xiàn);持久層將業(yè)務層和數(shù)據(jù)層連通,通過SQL語句向數(shù)據(jù)存儲器中存儲或者獲取數(shù)據(jù);表現(xiàn)層為最終用戶操作界面,負責系統(tǒng)操作界面和互動功能展現(xiàn)。
在廣泛、多源收集寧波氣象災害數(shù)據(jù)的基礎上,調(diào)研參考國內(nèi)氣象災害數(shù)據(jù)庫,完成寧波氣象災害數(shù)據(jù)庫的模型設計。數(shù)據(jù)庫共設計臺風、地質(zhì)災害、暴雨、強對流、低溫雨雪冰凍、干旱、高溫、連陰雨、低溫冷害、大霧和其他災害等十一類災害類別。氣象災害數(shù)據(jù)庫管理系統(tǒng)后臺數(shù)據(jù)庫主要由5類表格組成,災害總表,用于存儲主要的氣象災害信息;災害附表,用于存儲次重要的災害信息,避免主表數(shù)據(jù)字段太多導致的各類問題;災害附件表用于存儲用戶上傳的圖片、文檔等災害附件;地理信息表用于存儲災害區(qū)域地理信息數(shù)據(jù);災害字段表用于關聯(lián)災害主表、災害附表和災害附件表,保證同一災害信息的相關性。每個災害設計一個主表,主要項目有災害的時間、地點、相關氣象要素和與本災害密切相關的災情信息。所有災害共用一張副表,副表的主要項目為一般災害所涉及的所有災情信息。并對臺風、暴雨兩種災害特別設計災情評估指數(shù)字段存儲災情指數(shù)的計算和統(tǒng)計值。氣象災害數(shù)據(jù)庫設計圖如圖1所示。
圖1:氣象災害數(shù)據(jù)庫設計圖
氣象災害數(shù)據(jù)庫管理模塊主要實現(xiàn)用戶登錄驗證、災害數(shù)據(jù)增刪改、災害數(shù)據(jù)附表增刪改和災害附件上傳等功能。氣象災害數(shù)據(jù)庫管理模塊基于.NET Framework4.0框架,采用C#語言開發(fā)。程序開發(fā)重點使用了ASP.NET GridView控件來實現(xiàn)氣象災害數(shù)據(jù)的增刪改操作。GridView是 DataGrid的后繼控件,相對于DataGrid來說GridView在界面設計上更加容易,支持模板化設計,無需編寫大量定制代碼;DataGrid功能上更加豐富,常用的排序、分頁、更新、刪除等操作均可以零代碼實現(xiàn),在Visual Studio平臺開發(fā)ASP.NET程序時使用特別方便。GridView控件與ADO.NET技術緊密結(jié)合可以以盡可能少的數(shù)據(jù)實現(xiàn)雙向數(shù)據(jù)綁定,使開發(fā)周期大大縮短,搭配微軟SQL Server數(shù)據(jù)庫效率尤其高,特別適合氣象災害數(shù)據(jù)庫需要頻繁進行錄入、修改和刪除等操作的特性。
氣象災害數(shù)據(jù)庫管理模塊程序開發(fā)過程中,為了解決氣象災害數(shù)據(jù)字段過多帶來的顯示和輸入問題,引入了附表的概念和設計,通過附表和主表兩個頁面分別進行數(shù)據(jù)的錄入修改工作,但保持同一條災害數(shù)據(jù)關聯(lián)id字段的統(tǒng)一。這樣后期在數(shù)據(jù)的使用分析過程中,通過對數(shù)據(jù)庫兩張數(shù)據(jù)表id字段進行關聯(lián),就可以實現(xiàn)單條氣象災害數(shù)據(jù)的統(tǒng)一使用、分析和管理。
用戶使用氣象災害數(shù)據(jù)庫管理模塊進行災害信息的增加、修改、刪除等操作首先需要登錄驗證,登錄程序通過FormsAuthentication. SetAuthCookie表單驗證方式實現(xiàn),目前驗證功能比較單一,后期可以采用用戶分組方式進一步細化操作權限控制。氣象災害數(shù)據(jù)庫管理模塊提供附件上傳功能,支持災害圖片、文檔的上傳和管理,包括災害天氣圖、受災圖片、新聞報道、統(tǒng)計表格等,可以為以后的氣象災害檢索提供更加豐富的信息量和展示形式。附件上傳功能采用Ajax Uploader控件實現(xiàn),支持多文件異步上傳。
氣象災害顯示分析模塊主要實現(xiàn)氣象災害數(shù)據(jù)信息的顯示、檢索、排序、統(tǒng)計以及災情指數(shù)計算等功能。功能頁面采用GIS和表單相結(jié)合的方式展示數(shù)據(jù)。氣象災害顯示分析系統(tǒng)實現(xiàn)了臺風、暴雨、地質(zhì)災害、強對流等幾種主要氣象災害的檢索功能。首先可選擇或輸入災害類別和災害發(fā)生時間段,進行檢索,得到某一災害類別災害個例的統(tǒng)計信息,包括寧波全市和各縣市區(qū)該時段內(nèi)發(fā)生此災害的個例數(shù)。點擊進入全市或某縣市區(qū)氣象災害列表,可根據(jù)檢索欄設置的關鍵詞進行個例篩選。檢索欄設置了災害類別、災害發(fā)生地(縣、區(qū)、市)、災害起止時間、過程最大風力、過程最大雨量、冰雹直徑(毫米)、過程最低溫度、積雪深度(毫米)、最低能見度(米)、直接經(jīng)濟損失、死亡失蹤人口和農(nóng)業(yè)受災面積等關鍵詞。氣象災害顯示分析模塊通過GIS界面對災害基本信息進行檢索,并把結(jié)果顯示在地圖界面上,點擊后再跳轉(zhuǎn)到氣象災害檢索分析詳情頁面顯示詳細的災害數(shù)據(jù)和災情指數(shù)等信息。通過這種方式既利用了GIS系統(tǒng)方便直觀、操作人性化的特點,也可以滿足對數(shù)據(jù)詳情查看和分析的功能需求。氣象災害顯示分析模塊界面如圖2所示。
圖2:氣象災害顯示分析系統(tǒng)網(wǎng)站界面
氣象災害檢索分析詳情頁面為用戶提供詳細的災害信息顯示、查看、檢索和分析功能,主體功能采用DevExpress商業(yè)化控件開發(fā)。其中檢索功能支持以所有災害信息字段為條件的檢索方式,包括受災情況概述里的文字的全文檢索功能,此外受災面積和經(jīng)濟損失等數(shù)值字段還支持排序功能。氣象災害檢索分析詳情頁面界面見圖3。氣象災害檢索分析詳情頁面支持將檢索的氣象災害詳細信息導出為Excel、Word、PDF三種文件格式,用戶只要點擊相應的按鈕就可以導出對應格式的文件,所有災害信息均按照災害檢索分析詳情頁面格式存儲,無需進行任何后期編輯即可使用。災害檢索分析程序支持災前評估指數(shù)和災后評估指數(shù)自動計算顯示功能,根據(jù)預先定義的評估指數(shù)計算公式,由程序自動通過函數(shù)計算并顯示。以暴雨氣象災害災后評估指數(shù)為例:災后災情指數(shù)G=0.3*d+0.1*P+0.1*A+0.4*L+0.1*F+ 0.06*H(d死亡人口 P受災人口 A農(nóng)田受災面積 L直接經(jīng)濟損失 F水利經(jīng)濟損失 H房屋倒損數(shù))。
圖3:氣象災害檢索分析詳情界面
DevExpress是一款重量級的商業(yè)控件套裝,提供了一系列.NET開發(fā)所需的界面控件。相較于.NET集成的界面控件,DevExpress可以獲得更高效的界面設計以及更美觀的效果。氣象災害顯示分析模塊開發(fā)主要使用了DevExpress控件集里的ASPxGridView、ASPxGridViewExporter、XpoDataSource、SqlDataSource這4款控件,ASPxGridView支持模板化設置,無需定制就可以實現(xiàn)Office風格的操作界面,搭配XpoDataSource和SqlDataSource控件可以方便的展示氣象災害數(shù)據(jù),提供數(shù)據(jù)分頁、自定義條件檢索等功能,使用ASPxGridViewExporter控件可以無代碼將氣象災害信息導出為Excel、Word、PDF等文件格式。
Ajax Uploader是一個高性能、方便開發(fā)的ASP.NET上傳控件,由于使用了Ajax技術,可以在不刷新頁面的情況下同時選擇多個文件異步上傳。Ajax Uploader控件的主要技術特點包括:
(1)支持單次選擇多個文件異步上傳;
(2)支持客戶端對上傳文件大小和類型驗證;
(3)上傳數(shù)據(jù)直接通過輸出流實現(xiàn),不占用內(nèi)存容量;
(4)上傳過程提供豐富的上傳進度等信息;
(5)上傳文件無需刷新程序頁面,實現(xiàn)類似GMAIL附件上傳的效果;
(6)支持上傳文件后綴名檢測。
氣象災害數(shù)據(jù)庫管理與分析系統(tǒng)提供了氣象災害數(shù)據(jù)庫的實時及歷史災害數(shù)據(jù)的輸入平臺,實現(xiàn)多災種氣象災害信息的錄入、修改、查詢、檢索統(tǒng)計分析功能。系統(tǒng)提供GIS可視化界面,通過瀏覽器即可多人操作,并有分縣輸入和統(tǒng)計功能,可以基于災情信息在后臺自動計算災情指數(shù),使用簡單方便。系統(tǒng)開發(fā)完成后即在寧波市氣象臺和象山縣氣象局這兩個單位投入業(yè)務應用,目前災害數(shù)據(jù)庫中已有臺風、暴雨、強對流、地質(zhì)災害、低溫雨雪冰凍、連陰雨等近20年的歷史資料,該系統(tǒng)為氣象災害的評估提供了直接數(shù)據(jù)支持,也為氣象災害的基礎研究提供便利。
然而在氣象災害數(shù)據(jù)搜集和錄入工作中,存在災害數(shù)據(jù)不完整、數(shù)據(jù)有疑義、計算方式不統(tǒng)一等諸多問題,本系統(tǒng)還無法提供有效的數(shù)據(jù)質(zhì)量控制技術和手段來解決這一問題。此外借助于本研究構建的氣象災害數(shù)據(jù)庫,制定災情數(shù)據(jù)收集交換標準,開發(fā)標準化氣象災害數(shù)據(jù)服務接口,最大化氣象災害數(shù)據(jù)的應用價值,這些工作都有待進一步研究去解決。
[1]國家氣象災害防御規(guī)劃(2009-2020年)[S].
[2]薛峰,劉磊,羅兵等.氣象災害災情共享系統(tǒng)的設計與實現(xiàn)[J].氣象科技,2013,41(06):1043-1048.
[3]氣象災害防御條例[N].人民日報,2010-02-03(016).
[4]黃國榮,陳家豪,宋蘭芬等.農(nóng)業(yè)氣象災害及防御對策數(shù)據(jù)庫系統(tǒng)的建立與運行[J].福建農(nóng)業(yè)學報,2007,(01):63-67.
[5]王夢琳,吳丹,郭佰匯等.基于VB.net的農(nóng)業(yè)氣象災害查詢系統(tǒng)研究[J].吉林農(nóng)業(yè),2016(22):117-118.
[6]吳亞玲,吳佳銀,曾峰.深圳市氣象災情信息數(shù)據(jù)庫的設計與應用[J].廣東氣象,2010,32(03):66-68.
[7]芮 素 文 .基 于 ASP.NET的 ADO.NET技術研究[J].電子技術與軟件工程,2015(05):82.
作者單位1.寧波市氣象網(wǎng)絡與裝備保障中心 浙江省寧波市 315012
2.鎮(zhèn)海區(qū)氣象局 浙江省寧波市 315202
許皓皓(1984-),男,浙江省寧波市人。學士學位?,F(xiàn)為寧波市氣象網(wǎng)絡與裝備保障中心科長、工程師。主要研究方向為氣象信息化規(guī)劃設計、IT運維和數(shù)據(jù)處理。何彩芬(1974-),女,浙江省寧波市人。碩士學位?,F(xiàn)為鎮(zhèn)海區(qū)氣象局局長助理、高級工程師。主要研究方向為天氣預報技術、氣象防災減災。