樊 瑋,高 瑋
(山西省氣象信息中心,山西 太原 030006)
隨著氣象科學(xué)技術(shù)的飛速發(fā)展,氣象觀測資料及各類預(yù)報產(chǎn)品數(shù)據(jù)種類日益增多。為了滿足預(yù)報、決策服務(wù)等相關(guān)部門的需要,我們急需建立一套完善的網(wǎng)絡(luò)管理、查詢?nèi)庀筚Y料中各類觀測要素的查詢系統(tǒng),將現(xiàn)有的各類數(shù)據(jù)庫中全省觀測站每小時發(fā)送的各類氣象資料中各觀測要素,例如:全省各臺站觀測資料的入庫時間、緯度、經(jīng)度、海拔高度、以及溫度、濕度、降水量、風(fēng)速等各類氣象觀測要素以WEB網(wǎng)頁的形式在氣象內(nèi)部Internet 網(wǎng)絡(luò)上實現(xiàn)查詢、統(tǒng)計。動態(tài)實時地提供及時、準確可靠的各類氣象觀測資料各要素數(shù)據(jù)信息。并實現(xiàn)對全省各臺站各類觀測資料入庫統(tǒng)計,實現(xiàn)對數(shù)據(jù)庫中各類氣象資料要素的充分利用,滿足用戶對數(shù)據(jù)庫中各類氣象要素查詢、統(tǒng)計。還可以以表格、統(tǒng)計圖表、grads 軟件繪制出色斑圖等多種形式輸出查詢結(jié)果,便于相關(guān)業(yè)務(wù)部門人員以及地市、縣觀測站工作人員查詢氣象資料各要素情況。
氣象資料數(shù)據(jù)庫管理系統(tǒng)是支持全省氣象業(yè)務(wù)內(nèi)部、外部科研開發(fā)人員工作的氣象資料查詢平臺,可對全省各級臺站各類氣象要素進行收集、處理、分發(fā)的存儲管理及查詢等多功能的應(yīng)用系統(tǒng)。該網(wǎng)站搭建在VS2010 上,采用asp.net框架下用C#語言進行編程,數(shù)據(jù)庫采用了歷史數(shù)據(jù)庫SQL SERVER 數(shù)據(jù)庫。實時數(shù)據(jù)采集自O(shè)racle 數(shù)據(jù)庫,前臺采用jquery,highcharts 等插件編制的氣象要素查詢網(wǎng)頁。
系統(tǒng)采用四層架構(gòu),包括:數(shù)據(jù)層、應(yīng)用支持層、業(yè)務(wù)層、表示層。數(shù)據(jù)層采用微軟的sqlhelper 連接數(shù)據(jù)庫,數(shù)據(jù)庫包括了實時數(shù)據(jù)庫、歷史數(shù)據(jù)庫、元數(shù)據(jù)庫信息,還有各類氣象資料圖片數(shù)據(jù)。應(yīng)用支持層包括對用戶的管理、用戶權(quán)限設(shè)置、日志管理、數(shù)據(jù)管理。業(yè)務(wù)層主要是氣象要素查詢的功能模塊,包含查詢各功能模塊所用的函數(shù)。所有邏輯查詢語句都以存儲過程的形式寫在數(shù)據(jù)庫中。如圖1 系統(tǒng)架構(gòu)圖。
圖1 系統(tǒng)架構(gòu)圖
根據(jù)我省的實際需求,本系統(tǒng)設(shè)計要實現(xiàn)以下幾項功能:數(shù)據(jù)管理(數(shù)據(jù)加工、數(shù)據(jù)存儲、數(shù)據(jù)輸出)、元數(shù)據(jù)服務(wù)(元數(shù)據(jù)發(fā)布、元數(shù)據(jù)檢索、元數(shù)據(jù)建庫)[2]、數(shù)據(jù)服務(wù)(數(shù)據(jù)發(fā)布、數(shù)據(jù)查詢、數(shù)據(jù)分發(fā))、擴展服務(wù)(專題服務(wù)、數(shù)據(jù)挖掘、科學(xué)論壇)、系統(tǒng)管理功能(用戶管理、安全管理、運行監(jiān)控),具體功能結(jié)構(gòu)圖如圖2 所示。
圖2 功能結(jié)構(gòu)圖
山西省氣象信息中心現(xiàn)有實時數(shù)據(jù)庫一個,歷史數(shù)據(jù)庫兩個。數(shù)據(jù)庫內(nèi)容及結(jié)構(gòu)均有所不同,且DBMS 也不同。實時庫為oracle 數(shù)據(jù)庫,存有各種由北京下發(fā)的實時氣象資料。歷史庫一個為SYBASE 數(shù)據(jù)庫,存放的是地面氣候月報表資料,包括每日3 次或4 次的定時觀測值;另一個為SQL Server 數(shù)據(jù)庫,存放的是全省109 站建站以來的地面氣候資料定時值、日值、旬值、月值、年值資料,以及109 站從1991年開始的逐時自記風(fēng)、自記降水資料和2004 年開始陸續(xù)建立的多要素自動站資料。這些資料經(jīng)過多次格式檢查和質(zhì)量控制,準確性及可靠性高。因此,新建立的數(shù)據(jù)庫服務(wù)系統(tǒng)就必須是具備跨平臺、可重用、靈活性及伸縮性強的特點[3]。同時,氣象信息中心作為全省氣象數(shù)據(jù)收集、處理、管理中心,數(shù)據(jù)庫系統(tǒng)還承擔著不同部門及領(lǐng)導(dǎo)的不同需求的查詢和管理功能。也就是說,這個數(shù)據(jù)庫系統(tǒng)是異質(zhì)的,目前大部分對這種異質(zhì)要求的解決方式是分布式系統(tǒng)的3 層或者多層架構(gòu)技術(shù)[3]。
系統(tǒng)主要分為以下功能模塊:首頁顯示,包含了實時氣象要素的山西省地圖GIS 顯示模塊,歷史上的天氣情況顯示模塊、歷史極值排列顯示模塊。溫度要素查詢模塊、降水量查詢模塊、風(fēng)要素查詢模塊等各類氣象要素查詢模塊,后臺管理模塊。各氣象要素模塊下又包含各類要素的子模塊。如圖4 所示。
圖4 系統(tǒng)查詢功能模塊
系統(tǒng)主界面上山西省地圖區(qū)域部分是用sharpmap 開源dll 來實現(xiàn)地理數(shù)據(jù)的簡單顯示。它鏈接的數(shù)據(jù)庫是oracle實時數(shù)據(jù)庫。數(shù)據(jù)訪問層借助微軟已封裝好的sqlhelper 工具鏈接數(shù)據(jù)庫。
數(shù)據(jù)查詢,也就是從數(shù)據(jù)庫中查詢用戶所需求的各類氣象數(shù)據(jù)信息,而查詢條件的設(shè)定是衡量程序好壞的一個重要標準[4]。在設(shè)計程序時要充分考慮設(shè)計滿足用戶需求的各種查詢條件及在各種條件下顯示的查詢結(jié)果,并根據(jù)不同條件設(shè)定不同的窗體控件,以便于條件的選擇和設(shè)定。該系統(tǒng)提供了臺站查詢、氣象要素查詢、時段查詢、條件查詢、對比查詢等多種查詢功能。查詢結(jié)果可以以表格、曲線圖形等多種方式顯示出來,供相關(guān)業(yè)務(wù)人員查詢。
在氣象資料數(shù)據(jù)庫查詢系統(tǒng)頁面中可以查詢以下氣象要素:
溫度查詢、降水查詢、風(fēng)要素查詢、相對濕度查詢、氣壓查詢、日照查詢、元數(shù)據(jù)查詢[2]、綜合條件查詢等模塊。
例如:在溫度查詢頁面中顯示有以下查詢要素:
逐日氣溫查詢——包括最高氣溫、平均氣溫和最低氣溫逐日查詢。每項查詢根據(jù)條件查詢最高(低、平均)溫度、累年值、距平、歷年同期值及年份,點擊年份后面圖標可以查看該站歷史同期的溫度數(shù)據(jù)。
時段氣溫查詢——包括最高氣溫、平均氣溫和最低氣溫一年內(nèi)時段查詢。每項查詢根據(jù)條件查詢時間段最高(低、平均)溫度、累年值、距平,點擊歷史同期欄圖標可以查看該站歷史同期的溫度數(shù)據(jù)。
極端時間點氣溫排位查詢——包括歷史極端氣溫、任意年極端氣溫、任意月溫度查詢、任意月極端氣溫排位查詢、某月某日極端氣溫、某年某月某日極端氣溫查詢。
歷史極端氣溫——直接查詢歷年的最高(低)溫度。
任意年極端氣溫——查詢某年最高(低)溫度、出現(xiàn)日期及歷年最值、出現(xiàn)日期、歷史排位。并且可以根據(jù)溫度閥值控制顯示數(shù)據(jù)。
任意月溫度查詢——根據(jù)年月可以選擇查詢月溫度要素值。并點擊極端高溫和極端低溫查看歷年同月的極端值。
任意月極端氣溫排位查詢——根據(jù)年月查詢該年月的最高(低)氣溫及出現(xiàn)時間、歷史排位。并且可以根據(jù)溫度閥值控制顯示數(shù)據(jù)。
某月某日極端氣溫——根據(jù)條件查詢某月某日的歷年最高(低)溫度及出現(xiàn)年份。
某年某月某日極端氣溫查詢——查詢某日最高(低)溫度、歷年最(低)溫度及出現(xiàn)日期、歷史排位。并且可以根據(jù)溫度閥值控制顯示數(shù)據(jù)。
鏈接數(shù)據(jù)庫代碼:
數(shù)據(jù)訪問層借助微軟已封裝好的sqlhelper 工具。Sqlhelper 數(shù)據(jù)訪問層省去了大量代碼,可以把數(shù)據(jù)訪問層封裝起來,使用起來較為方便。鏈接數(shù)據(jù)庫代碼如下:
其他氣象要素查詢在此就不做詳細介紹。
本系統(tǒng)的實現(xiàn),實現(xiàn)了多種氣象要素的可視化查詢。用戶通過良好的界面,能夠快速檢索氣象數(shù)據(jù)的空間分布情況,為用戶提供了氣象資料查詢利用。采用了分層結(jié)構(gòu)進行設(shè)計,提高了系統(tǒng)的伸縮性和可靠性,便于日后根據(jù)業(yè)務(wù)實際需要進行功能擴充和系統(tǒng)的優(yōu)化。系統(tǒng)實現(xiàn)統(tǒng)一的用戶管理、統(tǒng)一的資源管理、統(tǒng)一的授權(quán)管理及統(tǒng)一的用戶界面,提高了工作效率。
[1]王建一,鄒麗君,周永吉.地面氣象要素數(shù)據(jù)庫終端查詢系統(tǒng)[J].黑龍江氣象,2003(4):37-38.
[2]李集明,沈文海.氣象信息共享平臺及其關(guān)鍵技術(shù)研究[J].應(yīng)用氣象學(xué)報,2006,17(5):621-628.
[3]何彬方,楊太明.省級農(nóng)業(yè)氣象數(shù)據(jù)庫及管理系統(tǒng)的設(shè)計與實現(xiàn)[J].中國農(nóng)學(xué)通報,2009,25(24):520-524.
[4]易列剛,楊玲.基于C/S 和B/S 模式的氣象資料檢索系統(tǒng)的設(shè)計與實現(xiàn)[G].2009 年高原山地氣象研究西南區(qū)域氣象學(xué)術(shù)交流會,2009:573-577.