李力,藍天飛,郭越凡,甘少明
(1.湖北省氣象信息與技術保障中心,湖北 武漢 430074;2.十堰市氣象局,湖北 十堰 442011;3.重慶市氣象信息與技術保障中心,重慶 401147)
閃電是氣象領域里的一種強放電現(xiàn)象,不但每年災害頻發(fā),而且會造成不同程度的國家人民生命財產(chǎn)損失。閃電定位探測儀廣泛部署應用于氣象、航空、航天、軍隊、電力等重點行業(yè),組網(wǎng)的閃電定位探測系統(tǒng)可以有效監(jiān)測活動范圍、峰值強度、發(fā)生頻次等雷電信息,實現(xiàn)重點區(qū)域的雷電觀測與預警預報[1-2]。閃電定位探測系統(tǒng)起源于Krider等改進的雙陰極示波器閃電定位儀[3-5],是閃電研究、監(jiān)測、防護領域的核心。
閃電放電過程的觀測研究表明:不僅云地閃回擊過程輻射甚低頻、低頻脈沖信號,云內(nèi)閃電正負電荷中和過程也產(chǎn)生較強的甚低頻、低頻脈沖[6-7]。三維閃電探測系統(tǒng)不僅能實時測量云地回擊,還能測量云內(nèi)閃電發(fā)生的時間、高度、極性、強度、平面位置等重要參數(shù),從而進行三維定位[8-10]。田彩霞等實現(xiàn)了江蘇省三維閃電定位系統(tǒng)算法仿真,利用江蘇建立的三維閃電監(jiān)測定位試驗網(wǎng)開展試驗,該算法的水平及高度定位誤差均較小[11],但缺乏不同省份閃電探測定位數(shù)據(jù)聯(lián)合仿真應用。趙生昊等開發(fā)了基于ArcGIS Engine的閃電定位資料查詢系統(tǒng),通過監(jiān)控以及批量方式將閃電定位資料存儲于數(shù)據(jù)庫中,使用網(wǎng)絡地圖作為顯示地圖,設計了比較完善的閃電信息查詢方式[12],但缺少閃電定位數(shù)據(jù)的信息處理功能。回擊數(shù)據(jù)再處理系統(tǒng)能提供準確的三維閃電探測定位結果,尤其是云內(nèi)閃電高度值[13],故亟需設計開發(fā)出三維閃電回擊數(shù)據(jù)再處理系統(tǒng)。
三維閃電探測系統(tǒng)數(shù)據(jù)處理算法改進時需要重新定位回擊數(shù)據(jù),而且接收處理的數(shù)據(jù)量相比二維閃電探測系統(tǒng)增加數(shù)倍,回擊數(shù)據(jù)、定位結果、日志信息等文件更加復雜[14-15],同時省級三維閃電探測系統(tǒng)的原始回擊數(shù)據(jù)保存更加完整。針對這些情況,使用C/S架構和C++ builder編程設計開發(fā)三維閃電回擊數(shù)據(jù)再處理系統(tǒng),并與Oracle數(shù)據(jù)庫運行于同一局域網(wǎng)內(nèi)。本文中重點闡明程序模塊組成與軟件設計流程,并將系統(tǒng)部署于國家級平臺,查詢處理全國組網(wǎng)的三維閃電歷史回擊數(shù)據(jù),通過實際運行驗證系統(tǒng)功能,期望開發(fā)出功能清晰、友好直觀的三維閃電回擊數(shù)據(jù)再處理系統(tǒng),滿足將多個省份探測站點回擊數(shù)據(jù)合并以后需重新定位處理的任務要求。
三維閃電探測系統(tǒng)數(shù)據(jù)處理中心由數(shù)據(jù)接收處理(data accepting and processing subsystem,DAPS)、系統(tǒng)監(jiān)視(system monitoring subsystem,SMS)、數(shù)據(jù)存儲(data storage subsystem,DSS)、數(shù)據(jù)再處理(data reprocessing subsystem,DRS)四個子系統(tǒng)組成[16-17]。結合三維閃電探測系統(tǒng)任務要求與運行環(huán)境,數(shù)據(jù)處理中心的組成架構如圖1所示。

圖1 數(shù)據(jù)處理中心架構設計
數(shù)據(jù)再處理子系統(tǒng)開發(fā)了回擊數(shù)據(jù)查詢界面以便用戶選擇需要再處理的回擊數(shù)據(jù)文件,通過設定相應處理參數(shù)后,系統(tǒng)對符合條件的回擊數(shù)據(jù)進行排序,在排序后的回擊數(shù)據(jù)中提取同一閃電相關信息,通過定位計算得到三維定位結果,再將處理結果發(fā)送到數(shù)據(jù)存儲子系統(tǒng)。數(shù)據(jù)再處理子系統(tǒng)與回擊數(shù)據(jù)文件、數(shù)據(jù)存儲子系統(tǒng)的運行環(huán)境關系如圖2所示。

圖2 數(shù)據(jù)再處理子系統(tǒng)運行環(huán)境圖
根據(jù)三維閃電探測系統(tǒng)數(shù)據(jù)再處理功能的需求,數(shù)據(jù)再處理系統(tǒng)由回擊數(shù)據(jù)查詢界面模塊、回擊數(shù)據(jù)處理模塊、數(shù)據(jù)處理過程監(jiān)視與控制模塊、三維定位結果數(shù)據(jù)入庫模塊和數(shù)據(jù)文件存儲模塊五部分組成,系統(tǒng)組成模塊如圖3所示。

圖3 數(shù)據(jù)再處理系統(tǒng)模塊組成圖
1)回擊數(shù)據(jù)查詢界面模塊:根據(jù)使用需求選定要查詢的回擊數(shù)據(jù)時間段,從數(shù)據(jù)庫(存儲目錄)中獲取符合查詢條件的回擊數(shù)據(jù)文件,結合配置文件設定的相關參數(shù)信息開展回擊數(shù)據(jù)處理[18-19]。
2)回擊數(shù)據(jù)處理模塊:對符合設定要求的回擊數(shù)據(jù)進行實時排序,提取回擊數(shù)據(jù)排序后的同一閃電相關信息,通過定位計算得到三維定位結果[20]。
3)數(shù)據(jù)處理過程監(jiān)視與控制模塊:數(shù)據(jù)處理過程中,以列表形式實時顯示經(jīng)過處理的三維定位結果信息和數(shù)據(jù)處理日志信息,以進度條的方式實時展示數(shù)據(jù)處理進度。此外,模塊還設計了定位處理中止和定位數(shù)據(jù)歸檔功能,對處理過程進行監(jiān)視和控制[21-23]。
4)三維定位結果數(shù)據(jù)入庫模塊:將回擊數(shù)據(jù)經(jīng)過再處理后生成的三維定位結果存儲至數(shù)據(jù)庫。
5)數(shù)據(jù)文件存儲模塊:回擊數(shù)據(jù)經(jīng)過再處理后,系統(tǒng)將三維定位結果信息存儲成二進制格式的三維定位結果文件,將數(shù)據(jù)處理日志信息存儲為文本格式的日志文件。數(shù)據(jù)再處理系統(tǒng)的信息傳輸流程如圖4所示。

圖4 回擊數(shù)據(jù)再處理系統(tǒng)信息傳輸流程圖
三維閃電回擊數(shù)據(jù)再處理系統(tǒng)使用C++ builder和C/S架構設計開發(fā),且與Oracle數(shù)據(jù)庫運行于同一局域網(wǎng)內(nèi)[24-25],其程序設計的主流程如下:
DRS()
{
if(讀取配置文件信息失敗)//包含查找回擊數(shù)據(jù)文件的目錄位置、默認處理參數(shù)等;
{
提示讀取配置文件失敗及其失敗原因;
進程退出;
}
While(未退出)
{
/*搜集用戶輸入的回擊數(shù)據(jù)查詢條件、數(shù)據(jù)再處理需要的處理參數(shù),對用戶輸入內(nèi)容的合法性進行判斷*/
if(根據(jù)用戶輸入的查詢條件獲取符合條件的回擊數(shù)據(jù)文件列表成功)
{
for(int i=0;i<用戶選擇的回擊數(shù)據(jù)文件個數(shù);i++)
{
創(chuàng)建三維定位結果文件;
創(chuàng)建數(shù)據(jù)處理日志文件;
打開回擊數(shù)據(jù)文件;
逐條讀取回擊數(shù)據(jù)文件中的回擊數(shù)據(jù);
對回擊數(shù)據(jù)實時排序,在排序后的回擊數(shù)據(jù)中提取同一閃電信息,進行定位計算;
將三維定位結果信息寫入三維定位結果文件;
將數(shù)據(jù)處理日志信息寫入數(shù)據(jù)處理日志文件;
顯示三維定位結果信息;
關閉三維定位結果文件;
關閉數(shù)據(jù)處理日志文件;
關閉回擊數(shù)據(jù)文件;
}
根據(jù)用戶操作確定是否需要把生成的三維定位結果數(shù)據(jù)寫入數(shù)據(jù)庫;
}
else
{
提示用戶數(shù)據(jù)查詢失敗及其失敗原因;
}
}
}
數(shù)據(jù)再處理系統(tǒng)提供回擊數(shù)據(jù)查詢界面,通過設置回擊數(shù)據(jù)時間段等條件信息在指定回擊數(shù)據(jù)文件數(shù)據(jù)庫(存儲目錄)中獲取符合條件的數(shù)據(jù)文件,并以列表形式顯示。系統(tǒng)還設計了回擊數(shù)據(jù)選擇界面,用戶可在查詢結果中選取需要再處理的回擊數(shù)據(jù)文件。查詢界面模塊的詳細設計如下。
1)回擊數(shù)據(jù)文件查詢條件包括:回擊數(shù)據(jù)文件時間段信息(開始與結束的年份日期及具體時間)。
2)數(shù)據(jù)處理需要設定的內(nèi)容包括:選擇參與閃電回擊數(shù)據(jù)再處理的省域站點;在配置文件中,設定單站最遠探測距離與最大探測高度,以及聯(lián)合探測站點的有效定位范圍。
3)顯示符合條件的回擊數(shù)據(jù)文件,其文件字段包括:文件名稱、創(chuàng)建時間、文件大小等信息。回擊數(shù)據(jù)查詢模塊的界面設計如圖5所示。

圖5 回擊數(shù)據(jù)查詢界面設計圖
處理模塊對某一回擊數(shù)據(jù)文件中的回擊數(shù)據(jù)進行排序,在排序后的回擊數(shù)據(jù)中提取同一閃電信息,通過定位計算得出三維定位結果,然后再將三維定位結果信息和數(shù)據(jù)處理日志一面?zhèn)鬏斨翑?shù)據(jù)處理過程監(jiān)視與控制模塊進行顯示,另一面經(jīng)過數(shù)據(jù)存儲功能模塊分別保存為二進制數(shù)據(jù)文件和文本格式文件。回擊數(shù)據(jù)文件讀取和處理流程設計如下:
1)打開回擊數(shù)據(jù)文件;
2)逐條讀取回擊數(shù)據(jù)文件中的回擊信息;
3)對回擊數(shù)據(jù)實時排序;
4)在排序后的回擊數(shù)據(jù)中提取同一閃電信息,并進行定位計算;
5)將三維定位結果信息、數(shù)據(jù)處理日志、數(shù)據(jù)處理進度信息傳至數(shù)據(jù)處理過程監(jiān)視與控制功能模塊進行顯示;
6)將三維定位結果信息經(jīng)過存儲功能模塊保存為二進制格式的三維定位結果文件,同時將數(shù)據(jù)處理日志通過存儲功能模塊保存為文本格式的日志文件;
7)在接收到三維定位結果數(shù)據(jù)入庫命令后,把三維定位結果信息通過數(shù)據(jù)入庫功能模塊存入數(shù)據(jù)庫;
8)在接收到數(shù)據(jù)處理終止命令后,模塊停止處理數(shù)據(jù)。
在數(shù)據(jù)處理過程中,監(jiān)視與控制模塊對單個回擊數(shù)據(jù)文件的處理進度、處理日志、處理結果信息進行顯示,并提供數(shù)據(jù)處理控制功能(主要是終止功能),模塊的功能設計如下:
1)以列表形式展示回擊數(shù)據(jù)處理模塊生成的三維定位結果(閃電類型、發(fā)生時間、發(fā)生位置、峰值強度、最大陡度、誤差、定位方式、處理標志、定位站點基礎數(shù)據(jù)等信息)。
2)以列表方式顯示數(shù)據(jù)處理日志(日志內(nèi)容、文件大小、生成時間等信息)。
3)以進度條的形式顯示數(shù)據(jù)處理進度。
將回擊數(shù)據(jù)處理后生成的三維定位結果信息存入數(shù)據(jù)庫,入庫模塊的數(shù)據(jù)處理流程設計如下:
1)鏈接數(shù)據(jù)庫;
2)刪除數(shù)據(jù)庫中某一時間段的三維定位結果信息;
3)插入最新處理生成的三維定位結果信息;
4)關閉數(shù)據(jù)庫。
將回擊數(shù)據(jù)處理后生成的三維定位結果文件和數(shù)據(jù)處理日志文件保存至存儲模塊,數(shù)據(jù)文件的存儲流程設計如下:
1)使每類文件名稱與輸入回擊數(shù)據(jù)文件之前保持一致,日志文件后綴名為log,定位結果文件后綴名為pos;
2)每種文件的目錄位置與回擊數(shù)據(jù)文件目錄位置保持一致;
3)回擊數(shù)據(jù)再處理程序開始運行時,創(chuàng)建三維定位結果文件和日志文件;
4)將最新處理生成的三維定位結果信息和日志信息分別寫入三維定位結果文件與數(shù)據(jù)處理日志文件。
針對三維閃電探測系統(tǒng)顯示監(jiān)測和綜合分析的任務需求,開發(fā)了功能清晰、友好直觀的三維閃電回擊數(shù)據(jù)再處理系統(tǒng)監(jiān)視與控制界面,并同閃電回擊文件數(shù)據(jù)庫(存儲目錄)進行數(shù)據(jù)關聯(lián),使系統(tǒng)具有三維閃電歷史回擊數(shù)據(jù)查詢、選擇、處理、監(jiān)視、控制、入庫、存儲等相關功能,完成了軟件系統(tǒng)各組成模塊的集成運用[22-24],驗證了前文所述設計內(nèi)容的可行性,以下是回擊數(shù)據(jù)再處理系統(tǒng)的主要功能及應用。
首先設置需要查詢的閃電歷史回擊數(shù)據(jù)詳細時間段,通過指定文件數(shù)據(jù)庫(存儲目錄)獲取符合查詢條件的原始回擊數(shù)據(jù)文件(后綴名為bin);再設定配置文件中的單站最遠探測距離、單站最大探測高度、聯(lián)合探測站點有效定位范圍等相關參數(shù);然后選擇查詢到的原始數(shù)據(jù)文件,以及參與回擊數(shù)據(jù)再處理的省域站點;點擊定位處理啟動按鍵進行回擊數(shù)據(jù)再處理,處理結果以列表形式顯示。將三維閃電回擊數(shù)據(jù)再處理系統(tǒng)部署于國家級平臺可以查詢處理參與全國組網(wǎng)的閃電歷史回擊數(shù)據(jù),如圖6所示。

圖6 回擊數(shù)據(jù)查詢再處理
由圖6可見,設置2022年4月至2023年5月為查詢時間段,通過選定查詢時間段內(nèi)的原始回擊數(shù)據(jù)文件和閃電探測站點信息,并設定配置文件中的單站最遠探測距離為760 km、單站最大探測高度為30 km、聯(lián)合探測站點有效定位范圍為500 km之后,啟動回擊數(shù)據(jù)再處理功能可以進行閃電探測數(shù)據(jù)重新定位。
在回擊數(shù)據(jù)再處理過程中,系統(tǒng)以列表形式展示生成的閃電類型、發(fā)生時間、空間位置、峰值強度、最大陡度、定位誤差、定位方式、站點編號、處理標志等三維定位結果信息,并且提供詳細的數(shù)據(jù)處理步驟以及直觀的處理進度顯示功能,如圖7所示。

圖7 數(shù)據(jù)處理監(jiān)視與控制
從圖7可知,回擊數(shù)據(jù)再處理系統(tǒng)還提供了定位處理啟動、定位處理終止、定位數(shù)據(jù)歸檔等控制功能。
本研究針對三維閃電數(shù)據(jù)處理算法改進調(diào)整以后需重新定位回擊數(shù)據(jù),以及省級三維閃電探測系統(tǒng)回擊數(shù)據(jù)通常更加完整,應用時要將多個省份閃電回擊數(shù)據(jù)合并后重新處理出準確的云內(nèi)閃電高度值等問題,基于C/S架構與C++ builder編程開發(fā)出三維閃電回擊數(shù)據(jù)再處理系統(tǒng)。系統(tǒng)設計了回擊數(shù)據(jù)查詢處理界面,實現(xiàn)了運行監(jiān)視及操作控制功能,與Oracle數(shù)據(jù)庫運行于同一局域網(wǎng)內(nèi)。系統(tǒng)需要查詢選擇再處理的回擊數(shù)據(jù)文件,設定配置文件的相應參數(shù),然后運行軟件系統(tǒng)對符合條件的回擊數(shù)據(jù)展開排序,在完成排序的回擊數(shù)據(jù)中提取同一閃電相關信息,通過計算處理得到重新定位的三維閃電探測結果,最后發(fā)送結果文件、日志文件到數(shù)據(jù)存儲系統(tǒng)。將三維閃電回擊數(shù)據(jù)再處理系統(tǒng)部署于國家級平臺,查詢處理全國組網(wǎng)的三維閃電歷史回擊數(shù)據(jù),測試系統(tǒng)的功能性與穩(wěn)定性。結果表明,系統(tǒng)查詢簡便、顯示清晰、操控直觀、功能齊全、移植性強,滿足了三維閃電回擊數(shù)據(jù)再處理系統(tǒng)的任務要求,為其他類型的數(shù)據(jù)處理系統(tǒng)設計研發(fā)提供了參考借鑒,具有廣闊的應用前景。