符鳳平,吳哲紅,高如玉,何 偉
(貴州省安順市氣象局,貴州 安順 561000)
安順市暴雨個(gè)例數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
符鳳平,吳哲紅,高如玉,何 偉
(貴州省安順市氣象局,貴州 安順 561000)
基于省—地—縣氣象光纖通信網(wǎng),采用B/S軟件體系結(jié)構(gòu),建立安順市暴雨個(gè)例數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng),實(shí)現(xiàn)安順市暴雨天氣個(gè)例檔案、各種物理量及歷史災(zāi)情的顯示與查詢(xún)、統(tǒng)計(jì)與輸出等功能。系統(tǒng)基于Web方式,所有程序運(yùn)行在服務(wù)器端,用戶(hù)端不用安裝任何程序,各部分功能設(shè)計(jì)均結(jié)合實(shí)際需求。自投入業(yè)務(wù)運(yùn)行以來(lái),在本地預(yù)報(bào)業(yè)務(wù)、氣象服務(wù)、科研與管理等方面發(fā)揮了重要作用,已成為一個(gè)實(shí)用性較強(qiáng)的業(yè)務(wù)服務(wù)支撐系統(tǒng),有效提高了災(zāi)害性天氣保障能力。
暴雨個(gè)例;ASP;SQL Server數(shù)據(jù)庫(kù);物理量
目前,本地災(zāi)害性天氣個(gè)例檔案的存儲(chǔ)管理主要采取人工方式,處理結(jié)果使用單一的文件格式進(jìn)行存儲(chǔ),缺乏統(tǒng)一的管理與調(diào)控,數(shù)據(jù)共享程度較低,查詢(xún)與統(tǒng)計(jì)效率不理想。以暴雨個(gè)例檔案為例,2014年本單位預(yù)報(bào)人員對(duì)2009年以來(lái)安順市暴雨天氣個(gè)例檔案做了歸類(lèi)存檔工作,并以文件方式存放在服務(wù)器上,由于此項(xiàng)工作屬多人完成,造成文件存放比較分散,查詢(xún)資料不便,共享程度不高,不能充分發(fā)揮其使用效率。為解決這一現(xiàn)狀,立足于預(yù)報(bào)業(yè)務(wù)、服務(wù)與管理的長(zhǎng)遠(yuǎn)需求,建立一個(gè)屬于安順市的災(zāi)害性天氣數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng),對(duì)于提高預(yù)報(bào)業(yè)務(wù)服務(wù)現(xiàn)代化水平具有較為重要的意義。本研究主要以暴雨災(zāi)害性天氣個(gè)例檔案為對(duì)象,實(shí)現(xiàn)基于B/S方式的暴雨個(gè)例資料自動(dòng)化管理,提高災(zāi)害性天氣歷史數(shù)據(jù)的共享程度和利用效率,成為安順市天氣預(yù)報(bào)業(yè)務(wù)、氣象服務(wù)、科研與管理等領(lǐng)域較為實(shí)用的一個(gè)系統(tǒng)。
2.1 主界面
系統(tǒng)主界面如圖1所示。
圖1 系統(tǒng)主界面Fig.1 The main interface of the system
2.2 技術(shù)方法
基于省—地—縣氣象光纖通信網(wǎng)和局域網(wǎng),以32位Windows 7操作系統(tǒng)為開(kāi)發(fā)平臺(tái),后臺(tái)數(shù)據(jù)庫(kù)設(shè)計(jì)采取手工錄入和自動(dòng)處理相結(jié)合的方式,通過(guò)對(duì)安順市暴雨天氣歷史數(shù)據(jù)進(jìn)行整理、分類(lèi),實(shí)現(xiàn)暴雨資料與發(fā)生災(zāi)情的自動(dòng)入庫(kù)。前端應(yīng)用部分采用B/S工作方式,使用ASP開(kāi)發(fā)環(huán)境、VBScript腳本語(yǔ)言(少部分功能使用JavaScrpit語(yǔ)言)、SQL Server數(shù)據(jù)庫(kù)等技術(shù),實(shí)現(xiàn)安順市暴雨天氣個(gè)例檔案、各種物理量及歷史災(zāi)情的顯示與查詢(xún)、統(tǒng)計(jì)與輸出等功能,查詢(xún)方式可按日期或站名等字段分別進(jìn)行查詢(xún),查詢(xún)結(jié)果可導(dǎo)入Excel表格文件,方便保存或打印。
2.3 數(shù)據(jù)庫(kù)簡(jiǎn)介
采用SQL Server 數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)命名為baoyu,一共包含個(gè)例檔案、假相當(dāng)位溫、冷空氣特征、動(dòng)力特征、暴雨災(zāi)情、水汽特征、熱力特征、降雨實(shí)況、高低空急流特征等9張表,所有表內(nèi)容均通過(guò)Excel文件導(dǎo)入,Excel文件內(nèi)容為手工錄入的歷史暴雨資料與發(fā)生災(zāi)情。其中,“暴雨災(zāi)情”表主要存放1987—2005年安順市暴雨災(zāi)情,其數(shù)據(jù)來(lái)源于安順市民政部門(mén),包含地名、日期、日雨量、天氣現(xiàn)象、最大3 h雨量、連續(xù)降水最長(zhǎng)持續(xù)時(shí)間、受災(zāi)人口、倒塌房屋等29個(gè)字段,其它8張表主要存放2009—2013年安順市暴雨天氣個(gè)例檔案、各種物理量等信息,如表“個(gè)例檔案”一共包含13個(gè)字段,其結(jié)構(gòu)見(jiàn)表1。
表1 個(gè)例檔案表結(jié)構(gòu)
2.4 主要實(shí)現(xiàn)功能
2.4.1 暴雨歷史個(gè)例查詢(xún)
①降雨實(shí)況
分別實(shí)現(xiàn)按站名和日期查詢(xún)降雨實(shí)況,其數(shù)據(jù)從數(shù)據(jù)庫(kù)的降雨實(shí)況表中讀取,該表主要包含08時(shí)前后24 h雨量、20時(shí)前后24 h雨量等4個(gè)字段。按站名查詢(xún)主要實(shí)現(xiàn)自動(dòng)查詢(xún)某站在某個(gè)暴雨發(fā)生日的具體降雨實(shí)況。網(wǎng)頁(yè)界面使用兩個(gè)控件,左邊控件顯示站名,右邊控件內(nèi)容顯示從數(shù)據(jù)庫(kù)baoyu的降雨實(shí)況表中讀取選取站名發(fā)生暴雨的所有日期。選擇站名和日期后,即可查詢(xún)某站的降雨實(shí)況,查詢(xún)結(jié)果以表格方式在線顯示,并可導(dǎo)出為Excel文件。按日期查詢(xún)主要實(shí)現(xiàn)查詢(xún)某日所有站的具體降雨實(shí)況。
②個(gè)例檔案小結(jié)
實(shí)現(xiàn)按日期查詢(xún)暴雨發(fā)生日的個(gè)例檔案,如發(fā)生站數(shù)、影響系統(tǒng)、過(guò)程時(shí)間、過(guò)程站名、降雨量實(shí)況、天氣過(guò)程概述、實(shí)況天氣形勢(shì)、數(shù)值預(yù)報(bào)天氣形勢(shì)、個(gè)例檔案小結(jié)等資料。網(wǎng)頁(yè)界面使用日期控件,其內(nèi)容為暴雨發(fā)生的所有日期。選擇好日期,點(diǎn)擊確定后,即可查詢(xún)?cè)撊盏膫€(gè)例檔案。圖2為2009年5月17日的個(gè)例檔案小結(jié)。
圖2 2009年5月17日的個(gè)例檔案小結(jié)Fig.2 The case file summary in may 17, 2009
2.4.2 關(guān)鍵物理量查詢(xún) 實(shí)現(xiàn)按日期查詢(xún)暴雨發(fā)生日的關(guān)鍵物理量值,物理量按照動(dòng)力特征、水汽條件、高低空急流、冷空氣特征、熱力條件等進(jìn)行分類(lèi),各自包含的物理量見(jiàn)表2。
表2 物理量分類(lèi)
物理量的每一分類(lèi)在數(shù)據(jù)庫(kù)baoyu中都有一張對(duì)應(yīng)表,如水汽條件對(duì)應(yīng)的數(shù)據(jù)庫(kù)表名為水汽特征。所有物理量讀取方法基本相同,讀取時(shí)次均為暴雨發(fā)生日當(dāng)天、前后兩天的08時(shí)和20時(shí)兩個(gè)時(shí)次,僅僅是讀取字段和高度層略有不同,如動(dòng)力特征部分,主要讀取暴雨發(fā)生日不同高度層的渦度、散度、垂直速度等物理量,高度層分為200 hPa、500 hPa、700 hPa、850 hPa等層次。水汽條件部分主要從數(shù)據(jù)庫(kù)水汽特征表中,讀取暴雨發(fā)生日500 hPa、700 hPa、850 hPa 3個(gè)高度層的貴陽(yáng)比濕、貴陽(yáng)溫度露點(diǎn)差、水汽通量散度等物理量。高低空急流部分主要從數(shù)據(jù)庫(kù)的高低空急流特征表中,讀取暴雨發(fā)生日200 hPa、700 hPa、850 hPa 3個(gè)高度層的貴陽(yáng)風(fēng)向風(fēng)速、最大風(fēng)向風(fēng)速。而冷空氣特征部分主要從數(shù)據(jù)庫(kù)的冷空氣特征表中,讀取暴雨發(fā)生日500 hPa的貴陽(yáng)溫度、蘭州溫度、貴陽(yáng)蘭州溫度差、貴陽(yáng)高度、福州高度、貴陽(yáng)福州高度差,以及安順、遵義、貴陽(yáng)、畢節(jié)等站的變壓變溫值。熱力條件部分從數(shù)據(jù)庫(kù)的熱力特征表中,讀取暴雨發(fā)生日各站的K指數(shù)、SI指數(shù)、抬升指數(shù)LI、CAPE、對(duì)流抑制能量等物理量以及700 hPa和850 hPa兩個(gè)高度的假相當(dāng)位溫值,讀取的站名主要有威寧(56691)、昆明(56778)、懷化(57749)、貴陽(yáng)(57816)、河池(59023)、白色(59211)等。圖3為動(dòng)力特征部分散度物理量查詢(xún)顯示界面。
圖3 散度查詢(xún)界面Fig.3 The display interface for scatter query
2.4.3 暴雨災(zāi)情查詢(xún)
①按站名查詢(xún)
使用兩個(gè)列表控件,左邊控件顯示站名,右邊控件顯示具體日期。當(dāng)在左邊控件選擇某站名時(shí),則自動(dòng)從數(shù)據(jù)庫(kù)baoyu的暴雨災(zāi)情表中讀取該站發(fā)生暴雨的所有日期,并顯示在右邊的列表控件中。選擇好站名和日期,點(diǎn)擊確定后后,查詢(xún)結(jié)果以表格方式在線顯示,并可導(dǎo)入Excel文件。圖4為1987年7月2日安順市暴雨災(zāi)情查詢(xún)界面。
圖4 按站名查詢(xún)顯示界面Fig.4 The query interface according to the station name
②按日期查詢(xún)
使用列表控件,有序地顯示1987年以來(lái)安順發(fā)生暴雨的具體日期,其日期數(shù)據(jù)從數(shù)據(jù)庫(kù)baoyu的暴雨災(zāi)情表中讀取,查詢(xún)語(yǔ)句為 “select distinct 日期 from 暴雨災(zāi)情 order by 日期”,實(shí)現(xiàn)日期按序排列并過(guò)濾掉重復(fù)記錄[1]。當(dāng)選擇某日期時(shí),則自動(dòng)從數(shù)據(jù)庫(kù)的暴雨災(zāi)情表中讀取該日期發(fā)生暴雨的所有站名及部分字段情況,列表控件值的變化使用語(yǔ)句“onChange="javascript:location.href='zh_date.asp?rq0='+this.value"”及參數(shù)傳遞語(yǔ)句“request.QueryString("rq0")”獲取其值[2]。暴雨災(zāi)情表包含29個(gè)字段,由于網(wǎng)頁(yè)界面無(wú)法完整顯示其全部字段內(nèi)容,在表格最右邊添加了“內(nèi)容鏈接”進(jìn)行對(duì)應(yīng)災(zāi)情全部?jī)?nèi)容的顯示鏈接,當(dāng)點(diǎn)擊此鏈接時(shí),可在另一個(gè)界面中顯示該日某站發(fā)生暴雨的所有情況,在此頁(yè)界面,可以返回主界面,也可以將顯示內(nèi)容導(dǎo)入Excel文件。圖5為1991年7月11日安順市產(chǎn)生暴雨的站名及部分情況。
圖5 按日期查詢(xún)界面Fig.5 The query interface according to the date
3.1 將Excel表文件內(nèi)容導(dǎo)入SQL Server數(shù)據(jù)庫(kù)時(shí),出現(xiàn)提示“對(duì)于所指定的緩沖區(qū)來(lái)講太大”,造成數(shù)據(jù)導(dǎo)入失敗[3]
3.1.1 問(wèn)題分析 SQL Server數(shù)據(jù)庫(kù)導(dǎo)入Excel表數(shù)據(jù)時(shí)主要工作流程如下:事先在SQL Server數(shù)據(jù)庫(kù)中創(chuàng)建目標(biāo)表,然后把Excel數(shù)據(jù)寫(xiě)入緩沖區(qū),再把緩沖區(qū)數(shù)據(jù)寫(xiě)入目標(biāo)表。此問(wèn)題出現(xiàn)在創(chuàng)建目標(biāo)表和寫(xiě)入緩沖區(qū)這兩個(gè)環(huán)節(jié),SQL Server會(huì)根據(jù)Excel文件中的數(shù)據(jù)格式寫(xiě)入緩沖區(qū)和創(chuàng)建目標(biāo)表,比如Excel文件中有一列為編號(hào),內(nèi)容為數(shù)字類(lèi)型,SQL Server就會(huì)在目標(biāo)表里創(chuàng)建命名為“編號(hào)”的一列,其數(shù)據(jù)類(lèi)型為float,而對(duì)于Excel文件中內(nèi)容為文字的列,通常SQL Server會(huì)事先計(jì)算Excel文件中前8行該列的最大長(zhǎng)度,如果這8行里某列的最大長(zhǎng)度大于255,則目標(biāo)列和緩沖區(qū)的數(shù)據(jù)類(lèi)型就會(huì)建立成ntext型。如果Excel文件前8行文字列的長(zhǎng)度都小于255,則目標(biāo)表和緩沖區(qū)被建立為varchar類(lèi)型(雖然目標(biāo)表的字段類(lèi)型可以修改,但緩沖區(qū)長(zhǎng)度或類(lèi)型無(wú)法修改),如果第8行以后某列長(zhǎng)度超過(guò)了255,則SQL Server往緩沖區(qū)里寫(xiě)數(shù)據(jù)的時(shí)候,會(huì)提示“數(shù)據(jù)對(duì)于指定的緩沖區(qū)來(lái)講太大”,造成數(shù)據(jù)導(dǎo)入失敗。
3.1.2 處理方法 針對(duì)此現(xiàn)象,主要有以下3種處理方法:
①把某列內(nèi)容較長(zhǎng)的行移到Excel表的前第8行。
②修改注冊(cè)表鍵值。SQL Server數(shù)據(jù)庫(kù)導(dǎo)入Excel數(shù)據(jù)時(shí),Jet引擎根據(jù)注冊(cè)表中“TypeGuessRows”選項(xiàng)值代表的行數(shù)判斷導(dǎo)入內(nèi)容的數(shù)據(jù)類(lèi)型,其默認(rèn)值為8,SQL Server數(shù)據(jù)庫(kù)根據(jù)前8行內(nèi)容判斷數(shù)據(jù)類(lèi)型,將其修改成0后,SQL Server數(shù)據(jù)庫(kù)則會(huì)對(duì)每行內(nèi)容進(jìn)行判斷。具體操作步驟如下:
在注冊(cè)表的“HKEY_LOCAL_MACHINESOFTWAREMicrosoftJet4.0EnginesExcel”下雙擊右邊的“TypeGuessRows”選項(xiàng),將“數(shù)值數(shù)據(jù)”改成0,然后重新啟動(dòng)計(jì)算機(jī)。
③事先將Excel數(shù)據(jù)導(dǎo)入到Access,然后再導(dǎo)入到SQL Server數(shù)據(jù)庫(kù)。
為避免使用以上第2種方法可能會(huì)影響SQL Server數(shù)據(jù)庫(kù)性能,以及使用第3種方法會(huì)延長(zhǎng)將Excel數(shù)據(jù)導(dǎo)入SQL Server數(shù)據(jù)庫(kù)所花費(fèi)的時(shí)間,本研究使用第1種方法,將暴雨個(gè)例Excel數(shù)據(jù)文件中內(nèi)容較長(zhǎng)的行移到Excel表的前8行后,在SQL Server數(shù)據(jù)庫(kù)中成功導(dǎo)入Excel數(shù)據(jù)時(shí),未再產(chǎn)生此錯(cuò)誤提示。
3.2 日期格式問(wèn)題[4]
正常情況下,SQL Server數(shù)據(jù)庫(kù)中的日期字段通過(guò)網(wǎng)頁(yè)顯示時(shí)應(yīng)為YYYY-MM-DD格式,如果顯示為YYYY/M/D格式,可通過(guò)以下兩種方法解決:①在控制面板—日期時(shí)間格式中修改短日期格式;②修改注冊(cè)表鍵值,具體操作步驟如下:將注冊(cè)表“HKEY_USERS。DEFAULTControl PanelInternational”中的sDate鍵值改為“-”,sShortDate鍵值改為“yyyy-MM-dd”,然后重啟計(jì)算機(jī)即可。
3.3 前端網(wǎng)頁(yè)顯示時(shí),有的字段為NULL
在將SQL Serve數(shù)據(jù)庫(kù)內(nèi)容進(jìn)行前端網(wǎng)頁(yè)顯示時(shí),有的字段顯示內(nèi)容為NULL。檢查SQL Server表內(nèi)容發(fā)現(xiàn),導(dǎo)入Excel數(shù)據(jù)后,有的內(nèi)容為空,說(shuō)明導(dǎo)入時(shí)個(gè)別數(shù)據(jù)未成功導(dǎo)入。檢查Excel文件,將其顯示內(nèi)容為NULL的單元格格式與SQL Server表字段數(shù)據(jù)類(lèi)型修改為一致后,網(wǎng)頁(yè)端顯示恢復(fù)正常。
系統(tǒng)本著業(yè)務(wù)需要而設(shè)計(jì),利用較為分散的暴雨歷史資料,基于B/S方式,通過(guò)對(duì)安順市暴雨災(zāi)害性天氣個(gè)例檔案的整理分類(lèi),結(jié)合預(yù)報(bào)業(yè)務(wù)、服務(wù)與管理需求,建立一個(gè)基于Web方式的暴雨天氣個(gè)例數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng),最終實(shí)現(xiàn)對(duì)安順市暴雨天氣個(gè)例檔案、各種物理量及歷史災(zāi)情的顯示與查詢(xún)、統(tǒng)計(jì)與輸出等功能。系統(tǒng)開(kāi)發(fā)完成后,可擴(kuò)充運(yùn)用于對(duì)其它類(lèi)型災(zāi)害性天氣如冰雹、干旱、大霧等個(gè)例檔案的數(shù)據(jù)庫(kù)應(yīng)用研究。自投入業(yè)務(wù)應(yīng)用以來(lái),系統(tǒng)運(yùn)行穩(wěn)定,數(shù)據(jù)準(zhǔn)確無(wú)誤,尤其在預(yù)報(bào)業(yè)務(wù)方面發(fā)揮了重要作用,便于業(yè)務(wù)人員及時(shí)了解與查詢(xún)本地暴雨天氣個(gè)例歷史情況,對(duì)提高暴雨天氣預(yù)報(bào)質(zhì)量起到有效的促進(jìn)作用,較大地滿(mǎn)足了預(yù)報(bào)業(yè)務(wù)服務(wù)和管理需求。
[1] 符鳳平,吳哲紅,高如玉.精細(xì)化預(yù)報(bào)的自動(dòng)檢驗(yàn)與技巧評(píng)分系統(tǒng)[J].貴州氣象,2015,39(5):14-18.
[2] 羅銳韌.ASP網(wǎng)頁(yè)程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2005.
[3] http://www.cnblogs.com/emanlee/archive/2009/07/28/1532878.html.
[4] http://blog.sina.com.cn/s/blog_53befb7b0102uyd4.html.
The design and implementation of the rainstorm casedatabase application system in Anshun City
FU Fengping,WU Zhehong,GAO Ruyu,HE Wei
(Anshun Meteorological Bureau of Guizhou Province,Anshun 561000, China)
The system was developed based on the meteorological optical fiber communication network,using B/S software architecture, establishing the database application system for the rainstorm case in Anshun City, realizing the display and query, the statistics and output,and so on for the rainstorm weather case archives, all kinds of physical quantity and the historical disaster in Anshun city. The system is based on Web mode, all programs run on the server side, users do not need to install any program, each part of the functional design is combined with the actual need. Since having been put into the business operation, it has played an important role in the local forecast business, the meteorological service, the scientific research and the management, having become a support system with high practicality for the meteorological business and service, effectively improving the protection ability for the disaster weather.
rainstorm case; ASP; SQL server database; physical quantity
1003-6598(2017)01-0059-05
2016-08-12
符鳳平(1969—),女,副高,主要從事信息網(wǎng)絡(luò)與技術(shù)保障工作,E-mail:836755434@qq.com。
TP311.52
B