張 鈞, 王 斌, 蔣文偉, 譚元峰, 鄒 武
(1.廣西北海市氣象局,廣西南寧 536000;2.山西晉中市氣象局,山西晉中 030600)
廣西全區(qū)現(xiàn)有自動(dòng)氣象站1200多個(gè),其中北部灣地區(qū)有數(shù)百個(gè),近幾年仍在不斷地增加。自動(dòng)氣象站的建成對(duì)進(jìn)一步做好氣象災(zāi)害預(yù)防工作,提高中小尺度災(zāi)害天氣的監(jiān)測(cè)水平,有效利用水資源,改進(jìn)災(zāi)害性天氣預(yù)警能力具有重要意義,對(duì)指導(dǎo)農(nóng)牧業(yè)生產(chǎn)和防災(zāi)減災(zāi)具有積極作用。隨著社會(huì)經(jīng)濟(jì)的快速發(fā)展,各級(jí)政府和社會(huì)公眾對(duì)突發(fā)性災(zāi)害天氣監(jiān)測(cè)的預(yù)警、發(fā)布提出了更高的要求,更加高度重視中小尺度甚至微尺度的災(zāi)害性天氣災(zāi)害問(wèn)題;頻繁發(fā)生的中小尺度災(zāi)害性天氣系統(tǒng),對(duì)人民生產(chǎn)和生活造成了極大影響,迫切需要建立有效的城市中小尺度災(zāi)害性天氣預(yù)警系統(tǒng)。
系統(tǒng)在廣西北部灣地區(qū)各市氣象部門經(jīng)過(guò)一年多的實(shí)際試運(yùn)行,其穩(wěn)定性、實(shí)時(shí)性、可靠性、準(zhǔn)確性等方面都非常好。
圖1是自動(dòng)氣象站實(shí)時(shí)數(shù)據(jù)應(yīng)急響應(yīng)系統(tǒng)(以下也稱系統(tǒng))結(jié)構(gòu)原理實(shí)例圖,目前使用單位有廣西北海市、防城港市 、欽洲市、玉林市氣象局。
在工作主機(jī)上運(yùn)行主控軟件,系統(tǒng)完成各個(gè)初始化數(shù)據(jù)的讀取后,全幕顯示主控程序用戶交互界面如圖2所示,點(diǎn)擊啟動(dòng)按鈕,系統(tǒng)開始工作。
圖1 地市級(jí)實(shí)況數(shù)據(jù)處理顯示、報(bào)警系統(tǒng)結(jié)構(gòu)圖
圖2 主控界面(廣西欽洲市)
首先,主控程序檢查本機(jī)文件資料臨時(shí)文件夾是否存在合法的自動(dòng)氣象站原始資料標(biāo)準(zhǔn)文本文件,如果不存在,系統(tǒng)將在規(guī)定時(shí)間段內(nèi)調(diào)用FTP文件收發(fā)進(jìn)程,對(duì)省級(jí)中小尺度文件服務(wù)器的原始數(shù)據(jù)文件進(jìn)行過(guò)濾,下載合適文件供本地區(qū)使用;如果存在,主控程序?qū)⒃?秒鐘內(nèi)循環(huán)對(duì)臨時(shí)文件夾的第一個(gè)文件的數(shù)據(jù)進(jìn)行分析、過(guò)濾、截取、入庫(kù)、比較、判斷、顯示、移位等處理方法,如果在此過(guò)程發(fā)現(xiàn)截取數(shù)據(jù)段的某一基本氣象要素(如雨量)超過(guò)系統(tǒng)設(shè)置的臨界值,主控程序立刻調(diào)用報(bào)警進(jìn)程和短信息發(fā)送進(jìn)程,及時(shí)對(duì)有關(guān)人員提示。由于第一個(gè)文件已經(jīng)被上一循環(huán)移除,所以避免了新循環(huán)讀取的文件對(duì)象和上一個(gè)文件對(duì)象的重復(fù)。
值得注意的是,由于涉及大量數(shù)據(jù)的讀寫操作,系統(tǒng)一般都要求某一地區(qū)必須配置一臺(tái)服務(wù)器總線結(jié)構(gòu)的計(jì)算機(jī),否則會(huì)嚴(yán)重影響數(shù)據(jù)的讀寫速度。
系統(tǒng)以實(shí)用、可靠、先進(jìn)、標(biāo)準(zhǔn)、開放為開發(fā)原則。實(shí)用性原則要求認(rèn)真分析用戶對(duì)地面觀測(cè)自動(dòng)站數(shù)據(jù)上的一般需求和特殊需求,設(shè)計(jì)出形象、直觀、富于啟發(fā)性的人機(jī)交互界面,同時(shí)完善數(shù)據(jù)庫(kù)和模型庫(kù)等底層設(shè)計(jì),采用最符合地面氣象數(shù)據(jù)分析的算法,得出符合客觀實(shí)際的計(jì)算結(jié)果。系統(tǒng)設(shè)計(jì)中采用以GIS地理信息系統(tǒng)為基礎(chǔ)、建立在CS/和BS/多層框架結(jié)構(gòu)上的VC++的MFC架構(gòu)語(yǔ)言編程、以meatdata數(shù)據(jù)格式建立的SQLServer數(shù)據(jù)庫(kù)為應(yīng)用核心、以Access、UDP和TFP協(xié)議數(shù)據(jù)分發(fā)與共享,使系統(tǒng)的使用效率得以充分發(fā)揮,系統(tǒng)標(biāo)準(zhǔn)化保證了系統(tǒng)的開放性。標(biāo)準(zhǔn)化原則體現(xiàn)在系統(tǒng)符合行業(yè)標(biāo)準(zhǔn)和程序設(shè)計(jì)標(biāo)準(zhǔn)化兩方面。數(shù)據(jù)庫(kù)、系統(tǒng)參數(shù)設(shè)置系統(tǒng)和資料查詢系統(tǒng)應(yīng)用氣象、水利、農(nóng)林的專業(yè)術(shù)語(yǔ)和行業(yè)規(guī)范,用客戶熟悉的專業(yè)術(shù)語(yǔ)設(shè)計(jì)用戶界面,保證用戶和計(jì)算機(jī)的良好交互。系統(tǒng)編程采用集成的思想,設(shè)計(jì)不同的功能模塊,模塊之間的調(diào)用依靠系統(tǒng)內(nèi)部接口進(jìn)行,改動(dòng)系統(tǒng)功能時(shí),只要改動(dòng)相應(yīng)模塊和模塊間的接口,而不必改變整個(gè)程序。
系統(tǒng)具有良好的用戶交互界面、易于使用、便于管理維護(hù)、數(shù)據(jù)更新快捷,具有優(yōu)化的系統(tǒng)結(jié)構(gòu)和完善的數(shù)據(jù)庫(kù)系統(tǒng),具有與其他系統(tǒng)數(shù)據(jù)共享、協(xié)同工作的能力。
(1)提高重大災(zāi)害性天氣的預(yù)警響應(yīng)速度,由于系統(tǒng)對(duì)自動(dòng)站進(jìn)行24小時(shí)全天候?qū)崟r(shí)監(jiān)控,通過(guò)編程方式解決了短信息發(fā)送和接收的技術(shù)難關(guān),本部門或相關(guān)部門領(lǐng)導(dǎo)、技術(shù)專業(yè)人員可以在任何地方第一時(shí)間知道各自動(dòng)站點(diǎn)主要?dú)庀笠剡_(dá)到或超過(guò)警告值的實(shí)況信息,為重大災(zāi)害性天氣預(yù)報(bào)決策提供可靠的基礎(chǔ)數(shù)據(jù)。
(2)使用客戶端程序界面方式,設(shè)置氣象要素顯示欄和地圖信息顯示欄及歷史數(shù)據(jù)分析、查詢菜單。由于該方式對(duì)網(wǎng)絡(luò)環(huán)境要求比較低,一般只要求網(wǎng)絡(luò)的物理環(huán)境暢通,同時(shí)該方式安全性能非常好,減少了本機(jī)或網(wǎng)絡(luò)滋生病毒的次數(shù),業(yè)務(wù)人員通過(guò)該界面直觀了解自動(dòng)站地理分布情況以及自動(dòng)站各種基礎(chǔ)氣象要素的實(shí)際變化情況,通過(guò)界面提供的菜單選項(xiàng)對(duì)歷史氣象要素進(jìn)行分析、判斷、統(tǒng)計(jì)等等。從而進(jìn)一步保證全區(qū)專用氣象數(shù)據(jù)網(wǎng)安全,提高查詢速度,大幅度減少手工操作,充分顯示出氣象現(xiàn)代化的特征,提高自動(dòng)氣象站數(shù)據(jù)的使用率。
(3)在新一代雷達(dá)投入使用后,通過(guò)自動(dòng)讀取雷達(dá)最新云圖數(shù)據(jù)結(jié)果,可以對(duì)即將發(fā)生的天氣過(guò)程及時(shí)進(jìn)行準(zhǔn)確地判斷和預(yù)警。
系統(tǒng)使用VC++的MFC架構(gòu)作為主要的編程工具環(huán)境,在制作過(guò)程中,首先解決自動(dòng)氣象站原始資料標(biāo)準(zhǔn)文本文件在網(wǎng)絡(luò)上的有效合理傳送及精確數(shù)據(jù)解讀、過(guò)濾、截取。其次解決數(shù)據(jù)入庫(kù)的過(guò)濾、數(shù)據(jù)表處理字段空值的方法,SQL常規(guī)表達(dá)式提供的模式匹配功能是否比通過(guò)TSQL查詢語(yǔ)言中的LIKE運(yùn)算符可用的模式匹配功能多,考慮到主要使用C++代碼進(jìn)行編程實(shí)現(xiàn),使用 System.Text.RegularExpressions命名空間中的 RegEx類進(jìn)行了一個(gè)簡(jiǎn)單包裝,另外自制了一個(gè)時(shí)間轉(zhuǎn)換類對(duì)自動(dòng)氣象站原始資料標(biāo)準(zhǔn)文本文件的時(shí)間字符串進(jìn)行特定算法,自制列表擴(kuò)展類改善列表控件的顯示方式。還要考慮標(biāo)準(zhǔn)數(shù)據(jù)接口API編程技術(shù)如何才能節(jié)省占用的CPU資源,數(shù)據(jù)表各字段標(biāo)準(zhǔn)命名,以便為下一步可持續(xù)開發(fā)打下堅(jiān)實(shí)的基礎(chǔ)。然后,解決發(fā)送短信息需要使用UCS2、7-bit、8-bit、16-bit等PDU編碼格式的合理化,AT指令對(duì)TCL35集成模塊的觸發(fā)等。最后考慮各個(gè)進(jìn)程的協(xié)調(diào)工作問(wèn)題。
圖3 名稱表的結(jié)構(gòu)設(shè)計(jì)
圖3是地市級(jí)自動(dòng)氣象站基礎(chǔ)表的結(jié)構(gòu)設(shè)計(jì)。從這個(gè)基礎(chǔ)表可以一目了然地明白其中的站名稱、代碼、區(qū)域,可以唯一的定義某地區(qū)某個(gè)自動(dòng)氣象站及其基本信息,由于該表需要存放的數(shù)據(jù)記錄不是很多,一般最多是300條記錄,所以使用ACCESS數(shù)據(jù)模型建立。對(duì)于需要大量歷史數(shù)據(jù)的數(shù)據(jù)表,使用SQL SERVER數(shù)據(jù)模型建立。系統(tǒng)以減少連接操作、減少關(guān)系大小及數(shù)據(jù)量、節(jié)省存儲(chǔ)空間作為優(yōu)化關(guān)系數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)。
系統(tǒng)統(tǒng)一定義兩個(gè)ODBC用戶數(shù)據(jù)源:一個(gè)是存放大量自動(dòng)氣象站基礎(chǔ)數(shù)據(jù)SQL 2000數(shù)據(jù)模型的數(shù)據(jù)源,數(shù)據(jù)源驅(qū)動(dòng)程序是SQL SERVER;另一個(gè)是ACCESS數(shù)據(jù)模型的數(shù)據(jù)源,數(shù)據(jù)源驅(qū)動(dòng)程序是Micsoft Access Driver(*.mdb)。定義數(shù)據(jù)源有利于用戶使用不同的主機(jī)時(shí),可以根據(jù)需要將數(shù)據(jù)庫(kù)安裝在本機(jī)合適的分區(qū)里,只需要定義相同名稱、類型的數(shù)據(jù)源就可以了。
FTP進(jìn)程模塊示例代碼(節(jié)選)是供主控程序軟件進(jìn)程模塊控制調(diào)用的程序代碼,是在執(zhí)行一系列合法省級(jí)中小尺度文件服務(wù)器的程序代碼后,按自上到下的執(zhí)行過(guò)程。首先得到省級(jí)中小尺度文件服務(wù)器第一個(gè)文件的文件名稱,取文件名稱的字符和名稱表進(jìn)行合法比較,如果合法,則下載到本機(jī)的固定目錄 D:/數(shù)據(jù)庫(kù)/NOWZDZS后移除,供主控程序軟件進(jìn)程模塊使用,如果不合法,則移除。
以自動(dòng)發(fā)送短信息的方式提示有關(guān)業(yè)務(wù)員和各級(jí)用戶第一時(shí)間了解本地區(qū)各個(gè)地段發(fā)生超過(guò)臨界值的氣象要素,比如雨量、風(fēng)、溫度等等,可以使各個(gè)工種的工作人員在任何地方任何時(shí)間及時(shí)了解特別天氣的變化情況,為災(zāi)害性天氣的應(yīng)急響應(yīng)贏得寶貴的時(shí)間,短信息進(jìn)程模塊是系統(tǒng)的一個(gè)重要組成部分。
SMS是由ESTI(Europen Telcommuncation Sdandards Institute,歐洲電信標(biāo)準(zhǔn)協(xié)會(huì))制定的一個(gè)規(guī)范,系統(tǒng)根據(jù)現(xiàn)代移動(dòng)通信發(fā)展的特點(diǎn)和硬件組合的實(shí)際需要出發(fā),使用通過(guò)計(jì)算機(jī)串口連接GSM MODEM的方式發(fā)送地區(qū)自動(dòng)氣象站實(shí)時(shí)數(shù)據(jù)應(yīng)急響應(yīng)預(yù)警短信息,SMS短信息進(jìn)程模塊使用VC++編制,是實(shí)現(xiàn)進(jìn)程的具體方法。
PDU模式現(xiàn)在已經(jīng)成為公認(rèn)的手機(jī)短信息發(fā)送和接收的基本編碼方式,用專門的函數(shù)將文本轉(zhuǎn)換為PDU格式,下面對(duì)發(fā)送“你好”到13977999403手機(jī)的PDU實(shí)例格式進(jìn)行分析說(shuō)明,發(fā)送內(nèi)容實(shí)際形成的發(fā)送串是:
08 91 683108709705F0 11 00 0D 91 683179979904F3 00 08 00 04 4F60597D短信息服務(wù)中心地址長(zhǎng)度,8個(gè)字節(jié)短信息服務(wù)中心號(hào)碼的類型短信息服務(wù)中心號(hào)碼文件頭字節(jié)信息參考被叫號(hào)碼長(zhǎng)度被叫號(hào)碼類型發(fā)送號(hào)碼協(xié)議標(biāo)準(zhǔn)編碼方式有效期用戶數(shù)據(jù)長(zhǎng)度用戶數(shù)據(jù)代表“你好”
主控程序界面實(shí)時(shí)數(shù)據(jù)如圖4所示,使用單位:廣西北海市氣象局,實(shí)際時(shí)間:2009年6月6日08時(shí)。
報(bào)警界面,如圖5所示,使用單位:廣西防城港市氣象局,發(fā)生時(shí)間:2009年5月30日02時(shí)。
圖5所示的第1編輯控件數(shù)字5表示該正點(diǎn)后15分鐘前的某分鐘05秒發(fā)現(xiàn)防城港市范圍的自動(dòng)氣象站指定站點(diǎn)(具體內(nèi)容在主控程序?qū)崟r(shí)數(shù)據(jù)顯示界面可以直接看到)發(fā)現(xiàn)警情而進(jìn)行報(bào)警,第2編輯控件數(shù)字是計(jì)時(shí)器,報(bào)警運(yùn)行35秒后自動(dòng)結(jié)束,圖5界面自動(dòng)消失,報(bào)警聲音停止播放。
手機(jī)接收短信息界面如圖6所示。
使用單位:廣西北海市氣象局,發(fā)生時(shí)間:2008年6月29日03時(shí),接收手機(jī):13977999403,發(fā)送手機(jī):13768093648,發(fā)生時(shí)間:2008年6月29日03時(shí),警情地點(diǎn):廣西北海市竹林鎮(zhèn),警情類型:雨。
圖4 2009年6月6日08時(shí),北海市范圍26個(gè)站點(diǎn),大風(fēng)警值2米/秒
圖5 報(bào)警界面
圖6 手機(jī)接收短信息界面
系統(tǒng)根據(jù)中尺度災(zāi)害性天氣的地面氣象要素觀測(cè)需求特點(diǎn),結(jié)合目前地區(qū)臺(tái)站的實(shí)際情況,提出并建立一個(gè)基于中尺度自動(dòng)氣象站標(biāo)準(zhǔn)數(shù)據(jù)文件的資料收集處理系統(tǒng),系統(tǒng)經(jīng)過(guò)近一年的試用運(yùn)行,穩(wěn)定性、可靠性都非常好,系統(tǒng)重點(diǎn)解決了以下問(wèn)題:
(1)以客戶端界面方式,實(shí)時(shí)監(jiān)控各種要素的自動(dòng)氣象站標(biāo)準(zhǔn)數(shù)據(jù)文件的實(shí)時(shí)數(shù)據(jù)和標(biāo)準(zhǔn)數(shù)據(jù)文件標(biāo)準(zhǔn)數(shù)據(jù)連接API接口的實(shí)現(xiàn)。
(2)雨量、溫度、風(fēng)力等氣象要素超過(guò)臨界值的應(yīng)急響應(yīng)方式有效途徑。
[1] 陳禮生,宋遠(yuǎn)清,朱小萍.廣東省自動(dòng)氣象站數(shù)據(jù)庫(kù)建設(shè)與應(yīng)用[J].氣象,2003,29(2):12-16.
[2] 周新,郭世浩.深圳市中小尺度自動(dòng)站網(wǎng)絡(luò)系統(tǒng)[J].廣東氣象,1998,2:34-36.