• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于PySide2天氣雷達運行監(jiān)控軟件的設(shè)計與實現(xiàn)

      2024-03-13 13:49:18謝宸浩黎德波羅賜麟徐黃飛魯峻麟
      廣東氣象 2024年1期
      關(guān)鍵詞:線程報警雷達

      謝宸浩,黎德波,羅賜麟,徐黃飛,魯峻麟

      (1.廣州市突發(fā)事件預(yù)警信息發(fā)布中心,廣東廣州 511430;2.廣東省氣象數(shù)據(jù)中心,廣東廣州 510640)

      廣州CINRAD/SA新一代天氣雷達(以下簡稱“廣州雷達”)于1999年籌建,2001年開始正式運行。廣州雷達在2016年完成雙偏振升級,2018年完成技術(shù)升級及技術(shù)狀態(tài)統(tǒng)一后,在一定程度上實現(xiàn)了雷達系統(tǒng)的優(yōu)化配置,提高了雷達技術(shù)性能,進一步提升廣州雷達設(shè)備整體質(zhì)量。同時,廣州雷達在完成一系列的升級改造后,數(shù)據(jù)格式以及業(yè)務(wù)上傳方式也發(fā)生了明顯的改變。而目前廣州雷達站在用的監(jiān)控軟件已無法應(yīng)對當前雷達發(fā)展的新情況,陳舊且簡單的底層架構(gòu)造成軟件容錯性差,技術(shù)升級困難,長時間不更新造成軟件對目前主流的windows系統(tǒng)版本兼容差,已無法滿足網(wǎng)絡(luò)安全要求。全國多個臺站在這方面也做了嘗試,郭春輝等[1]通過讀取RDA計算機的RadarMonitor文件夾下的.dat二進制文件,獲取雷達設(shè)備運行時的各種參數(shù),并將異常參數(shù)及結(jié)果通知值班人員,但是雷達虛警比較多,虛警在雷達下一次體掃標定后會自動消除,因此監(jiān)控.dat文件容易造成誤報過多;吳少峰等[2]是利用監(jiān)控log文件完成對雷達報警信息的監(jiān)控,但log文件不同臺站文件的個數(shù)、類型及格式不盡相同,且RDA計算機系統(tǒng)升級也將改變log文件的格式,不利于長期使用和推廣,而且同一個log文件每天產(chǎn)生一個,文件信息量大,占用資源較大,客戶端在臺站運行時偶爾會由于信息量過大而發(fā)生癱瘓現(xiàn)象。

      隨著雙偏振天氣雷達進行業(yè)務(wù)上傳的數(shù)據(jù)量越來越大,業(yè)務(wù)考核越來越嚴格,雙偏振天氣雷達資料的及時傳輸變得越來越重要,按照2018年12月中國氣象局綜合觀測司審定的新一代天氣雷達觀測規(guī)定,必須按有關(guān)規(guī)定向國家、省級信息業(yè)務(wù)部門傳送新一代天氣雷達探測資料[3]。為提高雙偏振天氣雷達系統(tǒng)的可用性,特別是保障重大天氣過程中雷達的正常運行,是雷達機務(wù)保障人員的重要職責,因此開發(fā)新的廣州新一代雙偏振天氣雷達運行監(jiān)控軟件(以下簡稱“監(jiān)控軟件”)并應(yīng)用于業(yè)務(wù)具有非常重要的意義。

      1 軟件設(shè)計

      1.1 軟件架構(gòu)

      監(jiān)控軟件的開發(fā)平臺采用了Python3.10+Pyside2+VSCode,軟件整體進行模塊化獨立設(shè)計,各功能模塊集成于主程序模塊中,子模塊可獨立操作,從而降低了程序的復(fù)雜度,使程序的設(shè)計操作簡單化。監(jiān)控軟件的整體架構(gòu)由展示層、控制層、業(yè)務(wù)層以及數(shù)據(jù)層組成,如圖1所示。展示層的界面開發(fā)采用PySide2,并通過CSS樣式表進行修飾。PySide2提供了對Qt5.12+Designer完整框架的訪問,因此使用PySide2既能開發(fā)出完美的界面,又能享受Python的便捷開發(fā)。同時PySide2是開源的,使用不受限制,與傳統(tǒng)Qt的C++相比,使用PySide2能大大減少代碼量,更便于軟件的維護升級??刂茖油ㄟ^Python3.10與界面庫構(gòu)建操作控件響應(yīng)用戶需求,并與業(yè)務(wù)層進行實時交互。數(shù)據(jù)層負責對軟件的監(jiān)控信息、監(jiān)控參數(shù)、報警配置以及用戶信息等關(guān)鍵參數(shù)進行存儲。業(yè)務(wù)層則依據(jù)控制層的指令來調(diào)用數(shù)據(jù)層的關(guān)鍵參數(shù),進行雷達運行狀態(tài)數(shù)據(jù)的采集、緩存、處理、比對。監(jiān)控軟件的運行環(huán)境可同時兼容Windows 10以及Windows 7操作系統(tǒng)。

      圖1 軟件架構(gòu)設(shè)計示意圖

      1.2 功能模塊

      雷達系統(tǒng)主要由3部分組成,分別是雷達產(chǎn)品生成子系統(tǒng)(radar products generator,RPG)、主用戶終端子系統(tǒng)(principal user processor,PUP)和雷達數(shù)據(jù)采集子系統(tǒng)(radar date acquisition,RDA)[4]。雷達約6 min完成1次體掃,RDA將標準格式雷達基數(shù)據(jù)向省級和RPG軟件的逐徑向分發(fā),RPG軟件解析基數(shù)據(jù)并將解析后的數(shù)據(jù)分發(fā)到PUP,PUP將RPG處理后的數(shù)據(jù)進行二次處理,生成雷達產(chǎn)品并上傳至省局[5]。廣州雷達在2016年完成雙偏振升級后需同時上傳單雙偏振兩種雷達產(chǎn)品共計57種。同時,廣州雷達在2018年完成技術(shù)升級及技術(shù)狀態(tài)統(tǒng)一后,新增了雷達標準輸出控制器,雷達的狀態(tài)文件通過標準輸出控制器上傳至省局。為了更好地保障廣州雙偏振雷達正常運行并完成廣州雙偏振雷達資料的業(yè)務(wù)上傳,監(jiān)控軟件主要實現(xiàn)以下功能:雷達資料生成和傳輸?shù)谋O(jiān)控、雷達狀態(tài)文件傳輸?shù)谋O(jiān)控、雷達報警信息的本地化存儲和多種報警方式,軟件的功能結(jié)構(gòu)如圖2所示。

      圖2 軟件功能結(jié)構(gòu)示意圖

      1)監(jiān)控模塊。

      (1)雷達基數(shù)據(jù)生成監(jiān)控。

      雷達約6 min生成一個基數(shù)據(jù)文件,為了保證雷達數(shù)據(jù)的完整性,雷達基數(shù)據(jù)在上傳省局的同時也會進行本地化存儲[6],通過定時檢查本地FTP雷達共享的基數(shù)據(jù)目錄中最新時次的雷達基數(shù)據(jù)文件的寫入時間,與計算機系統(tǒng)時間進行比對,兩者時間差值若是大于軟件設(shè)置的基數(shù)據(jù)生成報警門限,則可判斷為雷達基數(shù)據(jù)生成異常,并向值班人員發(fā)出告警。

      (2)雷達產(chǎn)品生成監(jiān)控。

      PUP生成雷達產(chǎn)品上傳至省局后,默認會在本地保存7 d的雷達產(chǎn)品文件[7]。與基于FTP的雷達基數(shù)據(jù)生成監(jiān)控模塊的設(shè)計思路一致,定時檢查FTP雷達產(chǎn)品共享目錄中最新時次的雷達產(chǎn)品文件的寫入時間,與計算機系統(tǒng)時間進行比對,兩者時間差值若是大于軟件設(shè)置的產(chǎn)品生成報警門限,則可判斷為雷達產(chǎn)品生成異常,并向值班人員發(fā)出告警。由于每種雷達產(chǎn)品生成的時間間隔不一樣,如VWP每6 min生成一個產(chǎn)品文件,PPI每1 min生成一個產(chǎn)品文件,因此雷達產(chǎn)品生成報警門限需要根據(jù)所監(jiān)控的雷達產(chǎn)品種類進行設(shè)置。

      (3)雷達狀態(tài)傳輸監(jiān)控。

      雷達標準輸出控制器的運行情況會按照月份生成log文件,存儲在根目錄下的WRSOC文件夾中,當標準輸出控制器成功上傳雷達狀態(tài)信息至省局后,會記錄在log文件中,內(nèi)容包括上傳時間、狀態(tài)文件名和省局服務(wù)器地址,只需定時讀取標準輸出控制器中yyyymm.log文件中關(guān)于雷達狀態(tài)文件上傳的信息的最新修改時間,與計算機系統(tǒng)時間進行比對,兩者時間差值若是大于軟件設(shè)置的報警門限,則可判斷為雷達狀態(tài)文件傳輸異常,并向值班人員發(fā)出告警。

      (4)雷達產(chǎn)品傳輸監(jiān)控。

      廣州雷達目前按照省局要求在PUP業(yè)務(wù)機上傳57種雷達產(chǎn)品至省局服務(wù)器,當雷達存在網(wǎng)絡(luò)延遲太大或暫時中斷等問題時,PUP上傳不成功的雷達產(chǎn)品會存儲至根目錄下的archive文件夾中[8-10]。定時檢查FTP雷達產(chǎn)品緩存共享目錄中是否有新的雷達產(chǎn)品文件產(chǎn)生,當雷達產(chǎn)品緩存目錄存在文件時,讀取該目錄中最舊時次的雷達產(chǎn)品文件的寫入時間,與計算機系統(tǒng)時間進行比對,兩者時間差值就是該未成功上傳的產(chǎn)品文件的存留時間,若是存留時間大于軟件設(shè)置的產(chǎn)品傳輸報警門限,則可判斷為雷達產(chǎn)品文件傳輸異常,并向值班人員發(fā)出告警。

      2)報警模塊。

      雷達報警模塊實現(xiàn)了聲音、微信、短信3種報警方式,可確保值班人員及時掌握雷達故障。

      (1)多媒體聲音報警模塊:通過調(diào)用系統(tǒng)音頻格式文件,讓音響輸出設(shè)備播報雷達報警信息。

      (2)短信報警模塊:利用各手機運營商自帶郵箱能開啟手機短信推送郵件提醒的特點,在開啟郵箱的SMTP服務(wù)后,即可通過python中的smtplib進行請求郵件服務(wù),實現(xiàn)軟件自動給值班人員發(fā)送報警短信。

      (3)微信報警模塊:微信是最為常用的手機APP之一,通過微信報警可以提高監(jiān)控軟件的實用性。在微信APP中開啟“QQ郵箱提醒”功能,同時將微信與QQ郵箱關(guān)聯(lián),通過向值班人員的QQ郵箱發(fā)送報警郵件來實現(xiàn)值班人員的微信提醒。

      3)報警日志模塊。

      該系統(tǒng)報警記錄全部實現(xiàn)本地化保存,用于雷達發(fā)生故障后快速查詢和統(tǒng)計。該模塊有3個功能,分別是寫入、查詢以及清除。當系統(tǒng)監(jiān)控到雷達故障發(fā)生報警時,系統(tǒng)會將發(fā)生報警的時間及類型本地存儲在Alarm.log文件中,值班人員可以在軟件中的監(jiān)控信息界面右鍵進行快速查詢。

      4)其他模塊。

      軟件還集成了參數(shù)管理模塊、軟件狀態(tài)監(jiān)控模塊以及軟件注冊模塊,其中參數(shù)管理模塊主要用于統(tǒng)一管理雷達資料路徑、監(jiān)控頻率、報警門限、報警方式、值班人員信息等參數(shù)。軟件對參數(shù)類型做了分類,存儲時只存儲編號,顯示時再轉(zhuǎn)換成對應(yīng)的字符顯示。軟件狀態(tài)監(jiān)控模塊主要用于對軟件的運行狀態(tài)如開始、暫停、報警等進行監(jiān)控,并實時顯示在軟件監(jiān)控信息界面中的狀態(tài)圖標中,幫助值班人員快速掌握軟件的運行狀態(tài)。同時,軟件會根據(jù)當下的運行狀態(tài)判斷用戶的操作是否符合規(guī)范,并進行相對應(yīng)的彈窗提醒。

      2 關(guān)鍵技術(shù)

      2.1 更高效的監(jiān)控方式

      為了解決監(jiān)控.dat文件以及l(fā)og文件造成的誤報過多、信息量過大導(dǎo)致軟件崩潰等問題,軟件通過監(jiān)控雷達資料生成及傳輸?shù)哪繕四夸泚砼袛嗬走_的運行狀態(tài)。同時,由于雷達部分資料如雷達產(chǎn)品ppi生成速度快,資料目錄的文件數(shù)量多,采用listdir()方法讀取此類雷達資料目錄時,會返回包含目錄中所有文件的列表,類型為list。這種方法耗時較長,設(shè)置的監(jiān)控門限較小的情況下容易造成誤報。為了解決這個問題,軟件使用scandir()方法代替listdir(),讀取雷達資料目錄時返回的是包含文件類型或文件屬性信息的os.DirEntry迭代器,通過循環(huán)讀取迭代器就能快速定位到最新生成的雷達資料。關(guān)鍵代碼如下:

      2.2 優(yōu)化程序的多線程監(jiān)控

      線程也叫輕量級進程,是操作系統(tǒng)能夠進行運算調(diào)度的最小單位,也是進程中的實際運作單位。進程在執(zhí)行過程之中擁有獨立的內(nèi)存單元,而多個線程共享內(nèi)存,從而極大的提升了程序的運行效率。本監(jiān)控軟件把4個雷達資料監(jiān)控模塊、報警測試模塊以及主程序分別放在獨立線程中運行,每個線程在程序中是獨立的、并發(fā)的執(zhí)行流,通過多線程監(jiān)控能避免當其中一類雷達資料監(jiān)控耗時過長時,整個主程序都會等待這個操作,主程序就不能及時響應(yīng)用戶的其他操作。同時,為了解決并發(fā)訪問的沖突問題,軟件將主程序線程設(shè)置為守護線程,并通過創(chuàng)建線程列表來監(jiān)控子線程的運行狀態(tài),子線程沖突時用遞歸鎖RLock進行阻塞,子線程完成監(jiān)控任務(wù)后會自動結(jié)束進程,釋放內(nèi)存,保證主程序的運行效率。關(guān)鍵代碼如下:

      2.3 單例模式的設(shè)計模式

      單例模式是一種軟件設(shè)計模式,該模式的主要目的是確保某一個類只有一個實例存在。當希望在整個軟件不會存在多個相同的實例對象,從而避免嚴重浪費內(nèi)存資源時,單例對象就能派上用場。軟件把需要反復(fù)調(diào)用的線程開啟、銷毀函數(shù)以及監(jiān)控狀態(tài)信號觸發(fā)的回調(diào)函數(shù)放在命名為SCHEDULER的單例模式中,這樣可以節(jié)約內(nèi)存和計算,SCHEDULER單例模式作為計數(shù)器還可以保證多個線程的協(xié)調(diào)性。此外,還方便軟件的管理,對于后續(xù)的升級也有很大的便捷性。關(guān)鍵代碼如下:

      3 軟件實現(xiàn)

      廣州新一代雙偏振天氣雷達運行監(jiān)控軟件的界面功能明了、操作便捷,在軟件界面的設(shè)計上使用了stackedWidget,在軟件界面上將軟件的4個功能模塊全部列出,其中監(jiān)控信息功能模塊主要用于顯示監(jiān)控的信息流以及報警信息,并提供了監(jiān)控開始、暫停、報警方式測試的軟件基礎(chǔ)操作;參數(shù)設(shè)置、報警配置、軟件注冊功能模塊則用于修改系統(tǒng)的配置文件,如設(shè)置ftp監(jiān)控路徑、監(jiān)控頻率、報警時間門限等系統(tǒng)參數(shù)。

      3.1 監(jiān)控信息分界面

      為了讓值班人員能實時掌握雷達資料最新的生成以及傳輸情況,軟件會在監(jiān)控信息功能模塊中滾動顯示當前的監(jiān)控情況。為了保證雷達異常清晰顯目,異常狀態(tài)及異常結(jié)果顯示為紅色字體;同時,監(jiān)控信息框左下方圖標用于指示當前雷達的運行狀態(tài),以便于值班人員能做到快速定位異常內(nèi)容(黃色圖標代表軟件等待開始監(jiān)控,綠色圖標代表軟件正在運行且雷達狀態(tài)正常,紅色表示軟件正在運行且雷達異常),如圖3所示。

      圖3 軟件監(jiān)控信息界面

      3.2 參數(shù)設(shè)置分界面

      該功能模塊主要用于設(shè)置軟件監(jiān)控的系統(tǒng)參數(shù),其中包括ftp監(jiān)控路徑、監(jiān)控頻率、報警時間門限、值班人員的選擇等。同時,為了保證軟件的通用性,考慮到部分臺站未完成技術(shù)升級及技術(shù)狀態(tài)統(tǒng)一,以及部分臺站所使用的監(jiān)控電腦性能較差,軟件僅默認開啟雷達基數(shù)據(jù)和產(chǎn)品生成監(jiān)控,雷達狀態(tài)信息傳輸和產(chǎn)品傳輸監(jiān)控則可根據(jù)臺站需求選擇是否需要開啟,如圖4所示。

      圖4 參數(shù)設(shè)置界面

      3.3 報警配置分界面

      軟件多媒體聲音報警為默認選項,值班人員可根據(jù)需求在參數(shù)設(shè)置界面選擇是否開啟短信報警功能。同時,可在報警配置分界面進行配置用于發(fā)送報警信息的郵箱,以及對站內(nèi)值班人員的信息進行刪增減改。如需通過微信接收雷達報警信息,可將站內(nèi)值班人員的郵箱地址設(shè)置為QQ郵箱,并在微信APP中開啟“QQ郵箱提醒”功能。

      4 軟件應(yīng)用效果

      業(yè)務(wù)上,及時準確地了解雷達的運行狀態(tài)和模式,及時采取措施處理系統(tǒng)運行故障,減少停機時間,更好地發(fā)揮天氣雷達在災(zāi)害性天氣中的作用,是雷達值班機務(wù)人員的重要職責。廣州新一代雙偏振天氣雷達運行監(jiān)控軟件實現(xiàn)了對技術(shù)升級后的雙偏振天氣雷達運行狀態(tài)、資料傳輸情況和網(wǎng)絡(luò)連接狀態(tài)的自動監(jiān)控,軟件兼容目前主流的windows操作系統(tǒng)版本。廣州雷達站對該軟件進行了3個月的試運行,期間利用雷達的周和月維護停機時間進行多次測試,證明軟件對于雷達停機響應(yīng)及時。自正式投入業(yè)務(wù)運行以來,軟件運行穩(wěn)定,軟件發(fā)生告警12次,告警均為基數(shù)據(jù)生成異常,后經(jīng)值班人員排查,是由于廣州雷達RPG被植入挖礦病毒后造成RPG計算機性能大幅度下降,從而導(dǎo)致雷達基數(shù)據(jù)本地保存延時嚴重。軟件故障提醒及時準確,成功協(xié)助值班人員及時發(fā)現(xiàn)并解決了該次故障,極大地縮短值班人員的故障響應(yīng)時間。

      猜你喜歡
      線程報警雷達
      有雷達
      大自然探索(2023年7期)2023-08-15 00:48:21
      雷達
      LKD2-HS型列控中心驅(qū)采不一致報警處理
      淺談linux多線程協(xié)作
      2015款奔馳E180車安全氣囊報警
      基于空時二維隨機輻射場的彈載雷達前視成像
      現(xiàn)代“千里眼”——雷達
      死于密室的租住者
      奔馳E260車安全氣囊報警
      Linux線程實現(xiàn)技術(shù)研究
      察哈| 忻城县| 安平县| 营山县| 金川县| 长乐市| 沙河市| 白朗县| 博兴县| 大港区| 皮山县| 台东市| 青州市| 康乐县| 镇巴县| 塘沽区| 广汉市| 乐东| 仁化县| 兴安盟| 嘉鱼县| 措勤县| 德昌县| 盐源县| 元谋县| 石门县| 灵台县| 裕民县| 始兴县| 潼关县| 射洪县| 鹤山市| 晋中市| 右玉县| 灌阳县| 新宁县| 奈曼旗| 惠安县| 南澳县| 招远市| 屯昌县|