李力,藍天飛,郭越凡,甘少明
(1.湖北省氣象信息與技術保障中心,湖北 武漢 430074;2.十堰市氣象局,湖北 十堰 442011;3.重慶市氣象信息與技術保障中心,重慶 401147)
閃電是氣象領域里的一種強放電現(xiàn)象,不但每年災害頻發(fā),而且會造成不同程度的國家人民生命財產損失。閃電定位探測儀廣泛部署應用于氣象、航空、航天、軍隊、電力等重點行業(yè),組網的閃電定位探測系統(tǒng)可以有效監(jiān)測活動范圍、峰值強度、發(fā)生頻次等雷電信息,實現(xiàn)重點區(qū)域的雷電觀測與預警預報[1-2]。閃電定位探測系統(tǒng)起源于Krider等改進的雙陰極示波器閃電定位儀[3-5],是閃電研究、監(jiān)測、防護領域的核心。
閃電放電過程的觀測研究表明:不僅云地閃回擊過程輻射甚低頻、低頻脈沖信號,云內閃電正負電荷中和過程也產生較強的甚低頻、低頻脈沖[6-7]。三維閃電探測系統(tǒng)不僅能實時測量云地回擊,還能測量云內閃電發(fā)生的時間、高度、極性、強度、平面位置等重要參數,從而進行三維定位[8-10]。田彩霞等實現(xiàn)了江蘇省三維閃電定位系統(tǒng)算法仿真,利用江蘇建立的三維閃電監(jiān)測定位試驗網開展試驗,該算法的水平及高度定位誤差均較小[11],但缺乏不同省份閃電探測定位數據聯(lián)合仿真應用。趙生昊等開發(fā)了基于ArcGIS Engine的閃電定位資料查詢系統(tǒng),通過監(jiān)控以及批量方式將閃電定位資料存儲于數據庫中,使用網絡地圖作為顯示地圖,設計了比較完善的閃電信息查詢方式[12],但缺少閃電定位數據的信息處理功能?;負魯祿偬幚硐到y(tǒng)能提供準確的三維閃電探測定位結果,尤其是云內閃電高度值[13],故亟需設計開發(fā)出三維閃電回擊數據再處理系統(tǒng)。
三維閃電探測系統(tǒng)數據處理算法改進時需要重新定位回擊數據,而且接收處理的數據量相比二維閃電探測系統(tǒng)增加數倍,回擊數據、定位結果、日志信息等文件更加復雜[14-15],同時省級三維閃電探測系統(tǒng)的原始回擊數據保存更加完整。針對這些情況,使用C/S架構和C++ builder編程設計開發(fā)三維閃電回擊數據再處理系統(tǒng),并與Oracle數據庫運行于同一局域網內。本文中重點闡明程序模塊組成與軟件設計流程,并將系統(tǒng)部署于國家級平臺,查詢處理全國組網的三維閃電歷史回擊數據,通過實際運行驗證系統(tǒng)功能,期望開發(fā)出功能清晰、友好直觀的三維閃電回擊數據再處理系統(tǒng),滿足將多個省份探測站點回擊數據合并以后需重新定位處理的任務要求。
三維閃電探測系統(tǒng)數據處理中心由數據接收處理(data accepting and processing subsystem,DAPS)、系統(tǒng)監(jiān)視(system monitoring subsystem,SMS)、數據存儲(data storage subsystem,DSS)、數據再處理(data reprocessing subsystem,DRS)四個子系統(tǒng)組成[16-17]。結合三維閃電探測系統(tǒng)任務要求與運行環(huán)境,數據處理中心的組成架構如圖1所示。
圖1 數據處理中心架構設計
數據再處理子系統(tǒng)開發(fā)了回擊數據查詢界面以便用戶選擇需要再處理的回擊數據文件,通過設定相應處理參數后,系統(tǒng)對符合條件的回擊數據進行排序,在排序后的回擊數據中提取同一閃電相關信息,通過定位計算得到三維定位結果,再將處理結果發(fā)送到數據存儲子系統(tǒng)。數據再處理子系統(tǒng)與回擊數據文件、數據存儲子系統(tǒng)的運行環(huán)境關系如圖2所示。
圖2 數據再處理子系統(tǒng)運行環(huán)境圖
根據三維閃電探測系統(tǒng)數據再處理功能的需求,數據再處理系統(tǒng)由回擊數據查詢界面模塊、回擊數據處理模塊、數據處理過程監(jiān)視與控制模塊、三維定位結果數據入庫模塊和數據文件存儲模塊五部分組成,系統(tǒng)組成模塊如圖3所示。
圖3 數據再處理系統(tǒng)模塊組成圖
1)回擊數據查詢界面模塊:根據使用需求選定要查詢的回擊數據時間段,從數據庫(存儲目錄)中獲取符合查詢條件的回擊數據文件,結合配置文件設定的相關參數信息開展回擊數據處理[18-19]。
2)回擊數據處理模塊:對符合設定要求的回擊數據進行實時排序,提取回擊數據排序后的同一閃電相關信息,通過定位計算得到三維定位結果[20]。
3)數據處理過程監(jiān)視與控制模塊:數據處理過程中,以列表形式實時顯示經過處理的三維定位結果信息和數據處理日志信息,以進度條的方式實時展示數據處理進度。此外,模塊還設計了定位處理中止和定位數據歸檔功能,對處理過程進行監(jiān)視和控制[21-23]。
4)三維定位結果數據入庫模塊:將回擊數據經過再處理后生成的三維定位結果存儲至數據庫。
5)數據文件存儲模塊:回擊數據經過再處理后,系統(tǒng)將三維定位結果信息存儲成二進制格式的三維定位結果文件,將數據處理日志信息存儲為文本格式的日志文件。數據再處理系統(tǒng)的信息傳輸流程如圖4所示。
圖4 回擊數據再處理系統(tǒng)信息傳輸流程圖
三維閃電回擊數據再處理系統(tǒng)使用C++ builder和C/S架構設計開發(fā),且與Oracle數據庫運行于同一局域網內[24-25],其程序設計的主流程如下:
DRS()
{
if(讀取配置文件信息失敗)//包含查找回擊數據文件的目錄位置、默認處理參數等;
{
提示讀取配置文件失敗及其失敗原因;
進程退出;
}
While(未退出)
{
/*搜集用戶輸入的回擊數據查詢條件、數據再處理需要的處理參數,對用戶輸入內容的合法性進行判斷*/
if(根據用戶輸入的查詢條件獲取符合條件的回擊數據文件列表成功)
{
for(int i=0;i<用戶選擇的回擊數據文件個數;i++)
{
創(chuàng)建三維定位結果文件;
創(chuàng)建數據處理日志文件;
打開回擊數據文件;
逐條讀取回擊數據文件中的回擊數據;
對回擊數據實時排序,在排序后的回擊數據中提取同一閃電信息,進行定位計算;
將三維定位結果信息寫入三維定位結果文件;
將數據處理日志信息寫入數據處理日志文件;
顯示三維定位結果信息;
關閉三維定位結果文件;
關閉數據處理日志文件;
關閉回擊數據文件;
}
根據用戶操作確定是否需要把生成的三維定位結果數據寫入數據庫;
}
else
{
提示用戶數據查詢失敗及其失敗原因;
}
}
}
數據再處理系統(tǒng)提供回擊數據查詢界面,通過設置回擊數據時間段等條件信息在指定回擊數據文件數據庫(存儲目錄)中獲取符合條件的數據文件,并以列表形式顯示。系統(tǒng)還設計了回擊數據選擇界面,用戶可在查詢結果中選取需要再處理的回擊數據文件。查詢界面模塊的詳細設計如下。
1)回擊數據文件查詢條件包括:回擊數據文件時間段信息(開始與結束的年份日期及具體時間)。
2)數據處理需要設定的內容包括:選擇參與閃電回擊數據再處理的省域站點;在配置文件中,設定單站最遠探測距離與最大探測高度,以及聯(lián)合探測站點的有效定位范圍。
3)顯示符合條件的回擊數據文件,其文件字段包括:文件名稱、創(chuàng)建時間、文件大小等信息?;負魯祿樵兡K的界面設計如圖5所示。
圖5 回擊數據查詢界面設計圖
處理模塊對某一回擊數據文件中的回擊數據進行排序,在排序后的回擊數據中提取同一閃電信息,通過定位計算得出三維定位結果,然后再將三維定位結果信息和數據處理日志一面?zhèn)鬏斨翑祿幚磉^程監(jiān)視與控制模塊進行顯示,另一面經過數據存儲功能模塊分別保存為二進制數據文件和文本格式文件。回擊數據文件讀取和處理流程設計如下:
1)打開回擊數據文件;
2)逐條讀取回擊數據文件中的回擊信息;
3)對回擊數據實時排序;
4)在排序后的回擊數據中提取同一閃電信息,并進行定位計算;
5)將三維定位結果信息、數據處理日志、數據處理進度信息傳至數據處理過程監(jiān)視與控制功能模塊進行顯示;
6)將三維定位結果信息經過存儲功能模塊保存為二進制格式的三維定位結果文件,同時將數據處理日志通過存儲功能模塊保存為文本格式的日志文件;
7)在接收到三維定位結果數據入庫命令后,把三維定位結果信息通過數據入庫功能模塊存入數據庫;
8)在接收到數據處理終止命令后,模塊停止處理數據。
在數據處理過程中,監(jiān)視與控制模塊對單個回擊數據文件的處理進度、處理日志、處理結果信息進行顯示,并提供數據處理控制功能(主要是終止功能),模塊的功能設計如下:
1)以列表形式展示回擊數據處理模塊生成的三維定位結果(閃電類型、發(fā)生時間、發(fā)生位置、峰值強度、最大陡度、誤差、定位方式、處理標志、定位站點基礎數據等信息)。
2)以列表方式顯示數據處理日志(日志內容、文件大小、生成時間等信息)。
3)以進度條的形式顯示數據處理進度。
將回擊數據處理后生成的三維定位結果信息存入數據庫,入庫模塊的數據處理流程設計如下:
1)鏈接數據庫;
2)刪除數據庫中某一時間段的三維定位結果信息;
3)插入最新處理生成的三維定位結果信息;
4)關閉數據庫。
將回擊數據處理后生成的三維定位結果文件和數據處理日志文件保存至存儲模塊,數據文件的存儲流程設計如下:
1)使每類文件名稱與輸入回擊數據文件之前保持一致,日志文件后綴名為log,定位結果文件后綴名為pos;
2)每種文件的目錄位置與回擊數據文件目錄位置保持一致;
3)回擊數據再處理程序開始運行時,創(chuàng)建三維定位結果文件和日志文件;
4)將最新處理生成的三維定位結果信息和日志信息分別寫入三維定位結果文件與數據處理日志文件。
針對三維閃電探測系統(tǒng)顯示監(jiān)測和綜合分析的任務需求,開發(fā)了功能清晰、友好直觀的三維閃電回擊數據再處理系統(tǒng)監(jiān)視與控制界面,并同閃電回擊文件數據庫(存儲目錄)進行數據關聯(lián),使系統(tǒng)具有三維閃電歷史回擊數據查詢、選擇、處理、監(jiān)視、控制、入庫、存儲等相關功能,完成了軟件系統(tǒng)各組成模塊的集成運用[22-24],驗證了前文所述設計內容的可行性,以下是回擊數據再處理系統(tǒng)的主要功能及應用。
首先設置需要查詢的閃電歷史回擊數據詳細時間段,通過指定文件數據庫(存儲目錄)獲取符合查詢條件的原始回擊數據文件(后綴名為bin);再設定配置文件中的單站最遠探測距離、單站最大探測高度、聯(lián)合探測站點有效定位范圍等相關參數;然后選擇查詢到的原始數據文件,以及參與回擊數據再處理的省域站點;點擊定位處理啟動按鍵進行回擊數據再處理,處理結果以列表形式顯示。將三維閃電回擊數據再處理系統(tǒng)部署于國家級平臺可以查詢處理參與全國組網的閃電歷史回擊數據,如圖6所示。
圖6 回擊數據查詢再處理
由圖6可見,設置2022年4月至2023年5月為查詢時間段,通過選定查詢時間段內的原始回擊數據文件和閃電探測站點信息,并設定配置文件中的單站最遠探測距離為760 km、單站最大探測高度為30 km、聯(lián)合探測站點有效定位范圍為500 km之后,啟動回擊數據再處理功能可以進行閃電探測數據重新定位。
在回擊數據再處理過程中,系統(tǒng)以列表形式展示生成的閃電類型、發(fā)生時間、空間位置、峰值強度、最大陡度、定位誤差、定位方式、站點編號、處理標志等三維定位結果信息,并且提供詳細的數據處理步驟以及直觀的處理進度顯示功能,如圖7所示。
圖7 數據處理監(jiān)視與控制
從圖7可知,回擊數據再處理系統(tǒng)還提供了定位處理啟動、定位處理終止、定位數據歸檔等控制功能。
本研究針對三維閃電數據處理算法改進調整以后需重新定位回擊數據,以及省級三維閃電探測系統(tǒng)回擊數據通常更加完整,應用時要將多個省份閃電回擊數據合并后重新處理出準確的云內閃電高度值等問題,基于C/S架構與C++ builder編程開發(fā)出三維閃電回擊數據再處理系統(tǒng)。系統(tǒng)設計了回擊數據查詢處理界面,實現(xiàn)了運行監(jiān)視及操作控制功能,與Oracle數據庫運行于同一局域網內。系統(tǒng)需要查詢選擇再處理的回擊數據文件,設定配置文件的相應參數,然后運行軟件系統(tǒng)對符合條件的回擊數據展開排序,在完成排序的回擊數據中提取同一閃電相關信息,通過計算處理得到重新定位的三維閃電探測結果,最后發(fā)送結果文件、日志文件到數據存儲系統(tǒng)。將三維閃電回擊數據再處理系統(tǒng)部署于國家級平臺,查詢處理全國組網的三維閃電歷史回擊數據,測試系統(tǒng)的功能性與穩(wěn)定性。結果表明,系統(tǒng)查詢簡便、顯示清晰、操控直觀、功能齊全、移植性強,滿足了三維閃電回擊數據再處理系統(tǒng)的任務要求,為其他類型的數據處理系統(tǒng)設計研發(fā)提供了參考借鑒,具有廣闊的應用前景。