李 力,陳 城,彭 軍,甘少明
(湖北省氣象局 a.湖北省氣象信息與技術(shù)保障中心;b.湖北省氣象學(xué)會(huì),武漢 430074)
閃電是氣象領(lǐng)域中的一種強(qiáng)放電現(xiàn)象,不僅在每年夏季頻繁發(fā)生,而且還會(huì)造成人員傷亡,因此開(kāi)展閃電定位探測(cè)數(shù)據(jù)分析應(yīng)用能有效減少閃電災(zāi)害造成的重大損失[1-2]。閃電定位探測(cè)系統(tǒng)是閃電研究、監(jiān)測(cè)與防護(hù)的核心,現(xiàn)代閃電定位探測(cè)系統(tǒng)起源于Krider等[3]成功地改進(jìn)了雙陰極示波器閃電定位儀[4]。閃電定位儀大面積部署于氣象、軍隊(duì)、電力等關(guān)系國(guó)計(jì)民生安全的骨干行業(yè),組網(wǎng)后探測(cè)系統(tǒng)通過(guò)監(jiān)測(cè)閃電活動(dòng)的范圍與頻度對(duì)重點(diǎn)區(qū)域進(jìn)行預(yù)警預(yù)報(bào)。傳統(tǒng)二維閃電探測(cè)系統(tǒng)只能探測(cè)云地閃,不能探測(cè)云內(nèi)閃電;只能二維定位,無(wú)法探測(cè)閃電高度實(shí)現(xiàn)三維定位。
三維閃電探測(cè)系統(tǒng)由三維閃電定位儀、定位數(shù)據(jù)處理中心與數(shù)據(jù)庫(kù)、圖形顯示與產(chǎn)品制作子系統(tǒng)組成。探測(cè)系統(tǒng)應(yīng)用全球定位系統(tǒng)精確測(cè)量雷暴(云地閃、云閃)放電生成的甚低頻、低頻電磁脈沖到達(dá)時(shí)間,使用多站探測(cè)儀時(shí)差定位方法同時(shí)結(jié)合現(xiàn)代通信網(wǎng)絡(luò)技術(shù)實(shí)時(shí)測(cè)量云地回?fù)簟⒃苾?nèi)閃電發(fā)生的時(shí)間、高度、極性、強(qiáng)度、平面位置等參數(shù)進(jìn)行閃電監(jiān)測(cè)和三維定位[5-7]。目前,國(guó)外相同領(lǐng)域的軟件功能設(shè)計(jì)較為復(fù)雜,程序運(yùn)行和算法更新速度較慢;國(guó)內(nèi)閃電信號(hào)處理領(lǐng)域相似功能的軟件極少。針對(duì)三維閃電探測(cè)系統(tǒng)接收處理的數(shù)據(jù)量相比二維閃電探測(cè)系統(tǒng)增加數(shù)倍,定位、回?fù)?、狀態(tài)數(shù)據(jù)入庫(kù)情況相較二維系統(tǒng)復(fù)雜許多的情況,使用Oracle數(shù)據(jù)庫(kù)和PL(Procedural Language)/SQL(Structured Quevy Language) developer集成開(kāi)發(fā)環(huán)境設(shè)計(jì)三維閃電探測(cè)數(shù)據(jù)處理存儲(chǔ)系統(tǒng)。筆者將重點(diǎn)闡明系統(tǒng)的模塊結(jié)構(gòu)設(shè)計(jì)與關(guān)鍵處理算法,并結(jié)合湖北省三維閃電探測(cè)網(wǎng)進(jìn)行實(shí)際運(yùn)行驗(yàn)證,期望開(kāi)發(fā)出模塊功能完備、處理算法合理、運(yùn)行穩(wěn)定順暢的三維閃電探測(cè)數(shù)據(jù)處理存儲(chǔ)系統(tǒng)。
三維閃電探測(cè)系統(tǒng)數(shù)據(jù)處理中心根據(jù)任務(wù)需求和運(yùn)行環(huán)境可分為數(shù)據(jù)接收處理(DAPS:Data Accepting and Processing Subsystem)、系統(tǒng)監(jiān)視、數(shù)據(jù)存儲(chǔ)(DSS:Data Storage Subsystem)和數(shù)據(jù)再處理4個(gè)子系統(tǒng)[8],三維閃電探測(cè)系統(tǒng)數(shù)據(jù)處理中心的設(shè)計(jì)結(jié)構(gòu)如圖1所示。
圖1 數(shù)據(jù)處理中心結(jié)構(gòu)設(shè)計(jì)Fig.1 Structure design of data processing center
數(shù)據(jù)存儲(chǔ)子系統(tǒng)接收DAPS發(fā)送的三維定位結(jié)果、回?fù)襞c狀態(tài)數(shù)據(jù),以及經(jīng)數(shù)據(jù)廣播子系統(tǒng)(DBS:Data Broadcasting Subsystem)發(fā)送標(biāo)注地理信息的定位結(jié)果,將所有接收數(shù)據(jù)存儲(chǔ)于數(shù)據(jù)庫(kù)中[9-10];讀取定位結(jié)果數(shù)據(jù)庫(kù)里對(duì)應(yīng)的三維定位信息,將其地理信息標(biāo)注為定位結(jié)果中的值發(fā)送給DBS;接收系統(tǒng)監(jiān)視軟件定時(shí)監(jiān)控,將運(yùn)行狀態(tài)統(tǒng)計(jì)數(shù)據(jù)發(fā)送給系統(tǒng)監(jiān)視子系統(tǒng)[11-12]。數(shù)據(jù)存儲(chǔ)子系統(tǒng)與DAPS、DBS、系統(tǒng)監(jiān)視子系統(tǒng)的運(yùn)行環(huán)境關(guān)系如圖2所示。
圖2 數(shù)據(jù)存儲(chǔ)系統(tǒng)運(yùn)行環(huán)境圖Fig.2 Data storage system environment diagram
根據(jù)三維閃電探測(cè)系統(tǒng)數(shù)據(jù)存儲(chǔ)功能的需求,數(shù)據(jù)存儲(chǔ)子系統(tǒng)由數(shù)據(jù)接收與發(fā)送、定位數(shù)據(jù)入庫(kù)、回?fù)魯?shù)據(jù)入庫(kù)、狀態(tài)數(shù)據(jù)入庫(kù)和日志模塊組成,系統(tǒng)模塊組成如圖3所示。
圖3 數(shù)據(jù)存儲(chǔ)系統(tǒng)模塊組成圖Fig.3 Module diagram of data storage system
1) 數(shù)據(jù)接收與發(fā)送模塊。通過(guò)內(nèi)部傳輸控制協(xié)議(TCP:Transmission Control Protocol)接收來(lái)自DAPS發(fā)送的三維定位結(jié)果、回?fù)襞c狀態(tài)數(shù)據(jù);通過(guò)TCP接收經(jīng)地理信息標(biāo)注和DBS發(fā)送的定位結(jié)果;將接收數(shù)據(jù)發(fā)送至對(duì)應(yīng)子功能后形成數(shù)據(jù)接收信息,再發(fā)送到日志模塊。
2) 定位數(shù)據(jù)入庫(kù)模塊。接收來(lái)自DAPS的三維定位結(jié)果和DBS發(fā)送標(biāo)注地理信息的定位結(jié)果,并將收到的所有定位結(jié)果存入數(shù)據(jù)庫(kù)。
3) 回?fù)魯?shù)據(jù)入庫(kù)模塊。接收閃電回?fù)魯?shù)據(jù),將收到的回?fù)魯?shù)據(jù)存入數(shù)據(jù)庫(kù)。
4) 狀態(tài)數(shù)據(jù)入庫(kù)模塊。根據(jù)接收的狀態(tài)數(shù)據(jù)判斷某個(gè)探測(cè)儀狀態(tài)是否發(fā)生改變。若狀態(tài)改變,則將該狀態(tài)數(shù)據(jù)存入數(shù)據(jù)庫(kù);若狀態(tài)沒(méi)有改變,則該狀態(tài)數(shù)據(jù)不存入數(shù)據(jù)庫(kù)。
5) 日志模塊。接收生成的數(shù)據(jù)接收信息,并存儲(chǔ)為日志文件;接收系統(tǒng)監(jiān)視軟件定時(shí)監(jiān)控,將運(yùn)行狀態(tài)統(tǒng)計(jì)數(shù)據(jù)發(fā)送給系統(tǒng)監(jiān)視子系統(tǒng)。數(shù)據(jù)存儲(chǔ)系統(tǒng)的信息傳輸流程如圖4所示。
圖4 數(shù)據(jù)存儲(chǔ)系統(tǒng)信息傳輸流程圖Fig.4 Flow chart of data transmission in data storage system
數(shù)據(jù)接收與發(fā)送模塊通過(guò)TCP協(xié)議將標(biāo)注地理信息的定位結(jié)果和三維定位結(jié)果發(fā)送至定位數(shù)據(jù)入庫(kù)模塊[13-14];將接收的狀態(tài)和回?fù)魯?shù)據(jù)分別發(fā)送到狀態(tài)數(shù)據(jù)入庫(kù)模塊與回?fù)魯?shù)據(jù)入庫(kù)模塊。數(shù)據(jù)接收與發(fā)送模塊還需要統(tǒng)計(jì)各類(lèi)數(shù)據(jù)的接收情況,形成數(shù)據(jù)接收信息后發(fā)送至日志模塊。
定位數(shù)據(jù)入庫(kù)模塊接收三維定位結(jié)果后,將三維定位結(jié)果存儲(chǔ)至數(shù)據(jù)庫(kù),并將該三維定位結(jié)果的地理信息標(biāo)注為特定值;接收DBS發(fā)送的定位結(jié)果,在數(shù)據(jù)庫(kù)中找到對(duì)應(yīng)的三維定位結(jié)果,再將其地理信息標(biāo)注為定位結(jié)果中的值[15-16],其關(guān)鍵處理算法如下:
while(消息隊(duì)列中有待處理的數(shù)據(jù))
{
if(是定位數(shù)據(jù))
{
讀取一條數(shù)據(jù),進(jìn)行大端、小端的轉(zhuǎn)換處理
將定位數(shù)據(jù)庫(kù)中與該數(shù)據(jù)對(duì)應(yīng)的條目加上地理信息,形成定位數(shù)據(jù)
寫(xiě)入每日定位數(shù)據(jù)庫(kù)
}
else if(是初始定位數(shù)據(jù))
{
讀取一條數(shù)據(jù),進(jìn)行大端、小端的轉(zhuǎn)換處理
定位算法和描述換算:1~7分別對(duì)應(yīng)
“二站算法”,“二站時(shí)差法”,“三站算法”,“三站時(shí)差法”,
“三站時(shí)差測(cè)向法”,“四站算法”,“二站振幅定位法”;
寫(xiě)入數(shù)據(jù)庫(kù)
}
}
回?fù)魯?shù)據(jù)入庫(kù)模塊將接收的回?fù)魯?shù)據(jù)存儲(chǔ)至回?fù)魯?shù)據(jù)日表(每天一個(gè))和回?fù)魯?shù)據(jù)總表(每年一個(gè)),其關(guān)鍵處理算法如下:
while(消息隊(duì)列中有待處理的數(shù)據(jù))
{
讀取一條數(shù)據(jù),進(jìn)行大端、小端的轉(zhuǎn)換處理
寫(xiě)入每日定位數(shù)據(jù)庫(kù)
}
狀態(tài)數(shù)據(jù)入庫(kù)模塊根據(jù)接收的狀態(tài)數(shù)據(jù)判斷某個(gè)探測(cè)儀狀態(tài)是否正常,并根據(jù)數(shù)據(jù)庫(kù)中現(xiàn)有的狀態(tài)信息判斷此探測(cè)儀狀態(tài)是否改變。若發(fā)生改變,則將接收的狀態(tài)數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)中;若沒(méi)有改變,則此數(shù)據(jù)不存入數(shù)據(jù)庫(kù),其關(guān)鍵處理設(shè)計(jì)如下:
while(消息隊(duì)列中有待處理的數(shù)據(jù))
{
讀取一條數(shù)據(jù),進(jìn)行大端、小端的轉(zhuǎn)換處理
從數(shù)據(jù)庫(kù)中讀取該探測(cè)儀的最近一條記錄
if(該記錄不存在)
將當(dāng)前數(shù)據(jù)入庫(kù)
else
{
計(jì)算數(shù)據(jù)庫(kù)記錄中的設(shè)備狀態(tài)
記錄當(dāng)前數(shù)據(jù)的設(shè)備狀態(tài)
如果兩者不一致,則入庫(kù)
}
}
計(jì)算三維閃電定位儀設(shè)備狀態(tài)信息的算法如下:
if((msg->result of selftest==1 024)
&&(msg->longitude>0)
&&(msg->latitude>0)
&&(msg->dop >=0)
&&(msg->dop <=10)
&&(abs(msg->frequency error)<10)
&&(msg->threshold<=800)
&&(msg->threshold>0))
{
return STATE_OK;
}
else
return STATE_ERROR;
三維閃電探測(cè)數(shù)據(jù)處理存儲(chǔ)系統(tǒng)使用Oracle數(shù)據(jù)庫(kù),通過(guò)專(zhuān)門(mén)針對(duì)Oracle數(shù)據(jù)庫(kù)存儲(chǔ)程序單元的集成開(kāi)發(fā)環(huán)境PL/SQL developer連接數(shù)據(jù)庫(kù)。將三維閃電探測(cè)系統(tǒng)部署于省級(jí)平臺(tái),用于處理存儲(chǔ)湖北省三維閃電定位儀探測(cè)數(shù)據(jù),驗(yàn)證上述數(shù)據(jù)處理存儲(chǔ)系統(tǒng)設(shè)計(jì)方法的可行性[17-19]。湖北省三維閃電定位儀站點(diǎn)信息表,表內(nèi)存儲(chǔ)了站點(diǎn)的名稱(chēng)、編號(hào)、經(jīng)緯度、IP地址和端口號(hào)等基本信息,如圖5所示。
圖5 站點(diǎn)信息表Fig.5 Site information table
三維閃電探測(cè)系統(tǒng)將數(shù)據(jù)處理后的定位和回?fù)艚Y(jié)果存儲(chǔ)于數(shù)據(jù)庫(kù)中,閃電定位結(jié)果信息表如圖6所示。
圖6 定位結(jié)果信息表Fig.6 Location result information table
數(shù)據(jù)庫(kù)還設(shè)計(jì)了三維閃電探測(cè)站點(diǎn)的最新?tīng)顟B(tài)信息表,用于存儲(chǔ)設(shè)備的最新一條狀態(tài)信息,通過(guò)數(shù)據(jù)可判斷閃電定位儀的狀態(tài)是否正常,如圖7所示。
圖7 最新?tīng)顟B(tài)信息表Fig.7 Latest status information table
針對(duì)筆者所述的三維閃電探測(cè)數(shù)據(jù)處理存儲(chǔ)系統(tǒng),開(kāi)發(fā)了面向用戶(hù)的雷電監(jiān)測(cè)和綜合分析系統(tǒng)界面,并與數(shù)據(jù)接收處理、系統(tǒng)監(jiān)視、數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)再處理子系統(tǒng)構(gòu)成的省級(jí)臺(tái)站閃電探測(cè)系統(tǒng)進(jìn)行數(shù)據(jù)關(guān)聯(lián),數(shù)據(jù)處理存儲(chǔ)系統(tǒng)可接收處理后的湖北省三維閃電定位儀回?fù)襞c定位結(jié)果,如圖8所示。
圖8 系統(tǒng)接收回?fù)襞c定位結(jié)果Fig.8 System receives return and location results
數(shù)據(jù)處理存儲(chǔ)系統(tǒng)將湖北省三維閃電定位儀的最新?tīng)顟B(tài)信息通過(guò)雷電監(jiān)測(cè)和綜合分析系統(tǒng)界面顯示,如圖9所示。
圖9 探測(cè)儀最新?tīng)顟B(tài)數(shù)據(jù)顯示Fig.9 Latest status data display of detector
筆者針對(duì)組網(wǎng)后三維閃電探測(cè)系統(tǒng)數(shù)據(jù)存儲(chǔ)功能需求開(kāi)發(fā)了三維閃電探測(cè)數(shù)據(jù)處理存儲(chǔ)系統(tǒng),包含了數(shù)據(jù)接收與發(fā)送、定位數(shù)據(jù)入庫(kù)、回?fù)魯?shù)據(jù)入庫(kù)、狀態(tài)數(shù)據(jù)入庫(kù)和系統(tǒng)日志5個(gè)模塊。使用Oracle數(shù)據(jù)庫(kù)和PL/SQL Developer集成開(kāi)發(fā)環(huán)境設(shè)計(jì)三維閃電定位儀站點(diǎn)信息表,用于存儲(chǔ)站點(diǎn)的基本信息;設(shè)計(jì)閃電定位結(jié)果信息表,用于存儲(chǔ)處理后的定位數(shù)據(jù)和回?fù)魯?shù)據(jù);設(shè)計(jì)最新?tīng)顟B(tài)信息表,用于存儲(chǔ)定位儀的最近一條狀態(tài)信息,通過(guò)此信息可以判斷設(shè)備狀態(tài)是否正常。將三維閃電探測(cè)系統(tǒng)部署于湖北省級(jí)平臺(tái),測(cè)試驗(yàn)證數(shù)據(jù)處理的流暢性與存儲(chǔ)系統(tǒng)的穩(wěn)定性,利用省級(jí)臺(tái)站雷電監(jiān)測(cè)和綜合分析系統(tǒng)進(jìn)行數(shù)據(jù)監(jiān)視。結(jié)果表明,數(shù)據(jù)處理存儲(chǔ)系統(tǒng)滿足了三維閃電探測(cè)系統(tǒng)數(shù)據(jù)處理與存儲(chǔ)的技術(shù)要求,對(duì)其他類(lèi)型探測(cè)設(shè)備數(shù)據(jù)處理存儲(chǔ)系統(tǒng)設(shè)計(jì)開(kāi)發(fā)具有普遍和重要的參考價(jià)值。