池海江,張 帆,溫 佳,王志敏,韓和平,程德慶
(1.河北省地震局懷來地震臺(tái),河北 懷來 075400;2.河北省地震局赤城地震臺(tái),河北 赤城 075500;3.河北省地震局陽原地震臺(tái),河北 陽原 075800)
根據(jù)《地震前兆臺(tái)網(wǎng)運(yùn)行管理辦法》(以下簡(jiǎn)稱《管理辦法》)和《地震前兆臺(tái)網(wǎng)管理細(xì)則》(以下簡(jiǎn)稱《管理細(xì)則》),地震臺(tái)站每天的工作任務(wù)除儀器維護(hù)、數(shù)據(jù)采集、數(shù)據(jù)處理外,日志報(bào)送也是主要內(nèi)容之一。以河北省地震局懷來地震臺(tái)為例,每天要通過FTP方式報(bào)送監(jiān)控日?qǐng)?bào),通過《中國(guó)地震前兆臺(tái)網(wǎng)數(shù)據(jù)管理系統(tǒng)》網(wǎng)頁報(bào)送東良形變、后郝窯流體工作日志;填寫Word格式的極低頻觀測(cè)日志、工作日志和檢查日志;填寫電磁波Excel格式的工作日志等[1]。在實(shí)際工作中發(fā)現(xiàn),填報(bào)這些日志存在如下問題:填寫重復(fù)性內(nèi)容較多,如值班員簽名、氣象三要素?cái)?shù)據(jù)等需多次輸入;填寫內(nèi)容多為固定文本,如臺(tái)站編碼、儀器數(shù)量、測(cè)項(xiàng)分量等一些內(nèi)容相對(duì)固定;大多數(shù)為必須人工參與的繁瑣操作。如雨量的讀取,需要登錄《中國(guó)地震前兆臺(tái)網(wǎng)數(shù)據(jù)處理系統(tǒng)》,輸入用戶名、密碼、數(shù)據(jù)轉(zhuǎn)換、均值計(jì)算、人工查看曲線確定降雨開始和結(jié)束時(shí)間,才能填寫日志;再如極低頻工作日志,需應(yīng)用SSH的Secure File Transfer Client軟件登錄openSUSE服務(wù)器,查找相應(yīng)目錄,查找每日文件數(shù)量并確認(rèn)每一個(gè)文件的字節(jié)數(shù)并記錄比較;如遇有特殊情況,缺乏規(guī)范性模板用語,值班員需查找規(guī)范要求及說明;在每年的資料驗(yàn)收評(píng)比中總會(huì)出現(xiàn)遲報(bào)漏報(bào)、填錯(cuò)數(shù)值、填錯(cuò)位置、缺項(xiàng)漏項(xiàng)等難以杜絕的低級(jí)失誤。為此,編制了日志自動(dòng)報(bào)送軟件。充分發(fā)揮程序的人工智能優(yōu)勢(shì),代替值班員完成相應(yīng)數(shù)據(jù)的讀取、計(jì)算、填寫、上傳等操作,定時(shí)自動(dòng)登錄服務(wù)器檢查日志報(bào)送情況。
軟件開發(fā)采用Visual Basic語言編寫,在win7、win10等操作系統(tǒng)下“SETUP.EXE”安裝后運(yùn)行。計(jì)算機(jī)安裝有IE8.0以上瀏覽器,便于引用Microsoft Internet Controls控件,進(jìn)行儀器網(wǎng)頁登錄和瀏覽。安裝有office2007或更高版本,便于引用Microsoft Word 12.O Object Library和Microsoft Excel 12.O Object Library控件,進(jìn)行Word和Excel文檔的填寫。建議為電腦配置聲卡及音箱,作為音樂告警使用。計(jì)算機(jī)要有網(wǎng)口,進(jìn)行網(wǎng)絡(luò)鏈接或基于網(wǎng)絡(luò)平臺(tái)的短信告警。
軟件設(shè)計(jì)根據(jù)《管理辦法》和《管理細(xì)則》,代替或提醒地震臺(tái)站值班員快速準(zhǔn)確地填報(bào)工作日志,更好地完成日常工作任務(wù)。日志自動(dòng)報(bào)送軟件主要功能模塊如第45頁圖1所示。
圖1 日志自動(dòng)報(bào)送軟件功能模塊圖Fig.1 Functional module diagram of log automatic submission software
主要實(shí)現(xiàn)對(duì)監(jiān)控日?qǐng)?bào)、中國(guó)地震前兆臺(tái)網(wǎng)數(shù)據(jù)管理系統(tǒng)網(wǎng)頁工作日志的自動(dòng)填寫和報(bào)送檢查,Word格式的極低頻檢查日志、工作日志、觀測(cè)日志和Excel格式電磁波工作日志的自動(dòng)填報(bào)。
監(jiān)控日?qǐng)?bào)填報(bào)界面如第45頁圖2a所示,主要功能為:
(1) 正常情況下,單擊“生成監(jiān)控日?qǐng)?bào)”按鈕,即可自動(dòng)生成前一天的監(jiān)控日?qǐng)?bào)。這里使用正常情況下監(jiān)控日?qǐng)?bào)的模板復(fù)制命令,根據(jù)值班日期自動(dòng)更改文件名。
(2) 雙擊“監(jiān)控日志”文本框,即可用Excel自動(dòng)打開,進(jìn)行檢查或特殊情況下的內(nèi)容修改。若產(chǎn)生疑問,可打開右側(cè)的“填寫幫助”,彈出如圖2b所示的詳細(xì)說明,保證填寫的準(zhǔn)確性。
圖2 監(jiān)控日?qǐng)?bào)填報(bào)及幫助說明界面Fig.2 Filling form of monitoring daily report and help description
(3) 單擊“發(fā)送監(jiān)控日?qǐng)?bào)”則將臺(tái)站當(dāng)日的監(jiān)控日?qǐng)?bào)上傳至省局臺(tái)網(wǎng)中心分配的固定目錄下?!鞍l(fā)送命令顯示窗”顯示文件發(fā)送結(jié)果。
(4) 報(bào)送時(shí)限檢查及告警。根據(jù)臺(tái)網(wǎng)管理辦法要求每天09:00前上報(bào),故軟件設(shè)定在08:50后臺(tái)會(huì)自動(dòng)登錄服務(wù)器,在遠(yuǎn)程目錄端查找當(dāng)日監(jiān)控日?qǐng)?bào)。若發(fā)現(xiàn)未上報(bào),則發(fā)出聲音和短信告警,提醒值班員及時(shí)發(fā)送。
(5) 關(guān)于省局的FTP主機(jī)、用戶名、密碼以及本地監(jiān)控日?qǐng)?bào)文件目錄則保存在JKRBFTP.INI文件中,方便修改。
關(guān)鍵技術(shù):對(duì)FTP后臺(tái)登錄連接、本地和遠(yuǎn)程文件的熟練操控。如上傳文件部分代碼有:
If LCase$(Left$(host_name,6))<>"ftp://"Then host_name="ftp://" & host_name
InetFTP.protocol=icFTP
InetFTP.URL=host_name
InetFTP.UserName=txtUserName.Text
InetFTP.Password=txtPassword.Text
InetFTP.Execute,"Put" & txtLocalFile.Text & " " & txtRemoteFile.Text
網(wǎng)頁日志指《中國(guó)地震前兆臺(tái)網(wǎng)數(shù)據(jù)管理系統(tǒng)》中的工作日志,填報(bào)界面如第46頁圖3所示。軟件主要實(shí)現(xiàn):
(1) 自動(dòng)登錄。軟件采用自動(dòng)輸入用戶名和密碼的方式進(jìn)行登錄。臺(tái)網(wǎng)中心分配給臺(tái)站的用戶名和密碼保存在AUTOLOG.INI文件中。
(2) “一鍵輸入”。軟件首先查找“值班表”中對(duì)應(yīng)日期的值班員并填入;其次通過Winsock后臺(tái)登錄所選臺(tái)站的氣象儀,獲取前一天08時(shí)氣溫值、氣壓值,計(jì)算全天降水量累加值并填入;再根據(jù)常用模板對(duì)應(yīng)項(xiàng)添加到網(wǎng)頁文本框,如懷來后郝窯地震臺(tái)“儀器運(yùn)行狀況”欄填入“在運(yùn)行儀器13套,正常運(yùn)行13套”,“觀測(cè)井水位類型”填入“動(dòng)水位”,“數(shù)據(jù)收集情況”填入“應(yīng)收集測(cè)項(xiàng)分量數(shù)23,實(shí)際收集測(cè)項(xiàng)分量數(shù)23”;最后自動(dòng)單擊“暫存”。
(3) 右側(cè)文本框顯示臺(tái)站根據(jù)特例情況總結(jié)的規(guī)范用語,方便修改。如“水位校測(cè):XX:XX—XX:XX現(xiàn)場(chǎng)校測(cè)懷4井動(dòng)水位,校測(cè)過程符合規(guī)范要求,觀測(cè)誤差值ΔH′=X.XXX X m,觀測(cè)誤差判定值=X.XXX X m,|ΔH′|<|H|,校測(cè)結(jié)論:儀器符合水位觀測(cè)技術(shù)要求,可以繼續(xù)使用”。氣象儀季檢填入“XX時(shí)—XX時(shí)進(jìn)行季度檢查,儀器供電XXX.X V,UPS浮充電壓XX.X V,雨量桶清潔,可以繼續(xù)使用”。
(4) “地震信息”單擊則進(jìn)入中國(guó)地震臺(tái)網(wǎng)中心地震信息網(wǎng)(http://news.ceic.ac.cn),顯示最近發(fā)生的國(guó)內(nèi)外地震目錄。根據(jù)要求,“我國(guó)境內(nèi)5級(jí)以上地震,中國(guó)及其周邊海域7.0級(jí)以上,世界范圍內(nèi)超過8級(jí)以上地震應(yīng)記錄震源位置、震級(jí)、發(fā)震時(shí)刻和震中距等要素,無論是否有影響都應(yīng)有相關(guān)記錄”。值班員進(jìn)行查看,選中對(duì)應(yīng)的地震,彈出圖3b所示的地震要素顯示網(wǎng)頁,單擊“地震條目”則計(jì)算出震中距,在右面文本框顯示條目,如“2018-09-08 10:31:29.0云南普洱市墨江縣(101.53°E、23.28°N)發(fā)生M5.9地震,震中距2 317 km”。臺(tái)站的地理坐標(biāo)保存在LOCALST.INI文件夾中。
(5) 報(bào)送時(shí)限檢查及告警。根據(jù)要求“臺(tái)站每天上午12時(shí)前完成前一天觀測(cè)資料的預(yù)處理工作,填寫觀測(cè)日志和工作日志,數(shù)據(jù)和日志均入數(shù)據(jù)庫保存”。軟件定于每天11:30在后臺(tái)自動(dòng)登錄網(wǎng)站,在“數(shù)據(jù)服務(wù)—工作日志查詢”中查找是否由復(fù)核員提交當(dāng)天的工作日志,否則彈出提醒文本,并發(fā)出音樂或短信告警。
(6) 易疏忽的特例事件。如懷來后郝窯地震臺(tái)每星期一在“重大情況記載”欄填入“XX:XX—XX:XX現(xiàn)場(chǎng)校測(cè)懷3井氣氡、氣汞,懷4井水位、氣氡、氣汞、氣氦、氣象三要素儀時(shí)鐘”。
(7) “常用模板”為臺(tái)站正常情況下輸入文本,單擊可打開編輯。編輯時(shí)采用管理系統(tǒng)默認(rèn)的關(guān)鍵字,如相對(duì)濕度為“humidity”、自然干擾為“nature”、人為干擾為“human”、系統(tǒng)軟硬件運(yùn)行情況為“system”等。
關(guān)鍵技術(shù):基于SOCKET連接的HTTP協(xié)議以指令方式登錄氣象儀獲取氣象三要素?cái)?shù)據(jù);臺(tái)網(wǎng)管理系統(tǒng)網(wǎng)站的自動(dòng)登錄、網(wǎng)頁要素的讀取和輸入;地震目錄網(wǎng)頁的讀取,計(jì)算臺(tái)站的震中距。如獲取氣象儀數(shù)據(jù)部分代碼為:
Form1.Winsock1.RemoteHost=qxyip
Form1.Winsock1.RemotePort=81
Form1.Winsock1.Connect
Do
DoEvents
Loop Until Form2.Winsock1.State=sckConnected Or Form2.Winsock1.State=sckError
Denglu="get/length+" & qxyid & "+lin+" & Username+" & Password & "" & "/http/1.1"
Form1.Winsock1.SendData denglu
Zhtshuju="get/length+" & qxyid & "+dat+" & "1+1" & "" & "/http/1.1"
Form1.Winsock1.SendData zhtshuju
圖3 網(wǎng)頁日志填報(bào)及地震條目自動(dòng)生成Fig.3 Web log filling form and automatic generation form of seismic entry
主要適用于懷來臺(tái)極低頻電磁觀測(cè)日志、工作日志和檢查日志的填報(bào)。極低頻項(xiàng)目是中國(guó)地震局地質(zhì)研究所正在實(shí)施的地震預(yù)報(bào)新項(xiàng)目,全國(guó)范圍內(nèi)建設(shè)30個(gè)臺(tái)站(主要分布于華北、川滇地區(qū)),采用德國(guó)Metronix公司生產(chǎn)的ADU-07大地電磁觀測(cè)系統(tǒng),填報(bào)日志既是對(duì)觀測(cè)情況的詳細(xì)記錄,也是對(duì)儀器觀測(cè)狀態(tài)的全面檢查,以保證儀器工作正常。
圖4a為工作日志示例。日志中主要涉及日期、值班員的變更,輔助觀測(cè)要填寫00時(shí)、08時(shí)、16時(shí)的氣溫、氣壓值,00時(shí)—08時(shí)、08時(shí)—16時(shí)、16時(shí)—23時(shí)天氣的變化情況。軟件運(yùn)行時(shí)自動(dòng)登錄臺(tái)站氣象儀,首先讀取00時(shí)、08時(shí)、16時(shí)氣溫、氣壓數(shù)據(jù),然后分別統(tǒng)計(jì)三個(gè)時(shí)段的降雨情況。如果有降雨,則主導(dǎo)天氣為“雨”,最后對(duì)降雨時(shí)段進(jìn)行識(shí)別,即分鐘值中第一個(gè)雨量不為0的時(shí)刻,即為降雨開始時(shí)間,最后一個(gè)降雨不為0的分鐘時(shí)刻,為降雨結(jié)束時(shí)間,生成XX時(shí)-XX時(shí)降水量XX.X mm的字段,填入測(cè)區(qū)環(huán)境、干擾情況欄。日志成功生成后彈出“是否打開”消息對(duì)話框,確定則彈出Word編輯界面,進(jìn)一步修改確認(rèn)。
圖4b為極低頻儀器檢查窗體。點(diǎn)擊“信息顯示”后,軟件后臺(tái)會(huì)自動(dòng)以root、密碼連接極低頻觀測(cè)儀器,讀取相關(guān)信息。ADU-07極低頻儀器采用openSUSE操作系統(tǒng),是德國(guó)Novell公司的開源Linux項(xiàng)目。
(1) 從相關(guān)記錄文件中讀取信息。包括經(jīng)緯度、高程、GPS是否同步,運(yùn)行任務(wù)包括接地電阻、直流偏移以及最大振幅、電池電流和電壓、系統(tǒng)內(nèi)部溫度、磁盤全部/剩余空間等。儀器采用UTC國(guó)際標(biāo)準(zhǔn)時(shí)間,信息顯示要換成北京時(shí)間。填寫過程主要做如下判別:GPS是否同步,若Sync State顯示為“G4FIX”正常,否則發(fā)出“GPS不同步”的提示;檢查接地電阻Resistivty Ex和Ey數(shù)值,若大于臺(tái)站接地電阻數(shù)日常均值的3倍,則發(fā)出“接地電阻變大”的提示;檢查直流偏移DC Offset Ex、Ey和最大振幅Amplitude Ex、Ey的數(shù)值,若數(shù)值為0,則發(fā)出“直流偏移為0”或“最大振幅為0”提示;檢查電池電壓若低于12.5 V,則提示“電池電壓變低”;磁盤空間若大于90%,則提示“請(qǐng)及時(shí)清理磁盤”等。
(2) 檢查儀器中觀測(cè)數(shù)據(jù)文件是否存在和字節(jié)大小。儀器以16 Hz、256 Hz、4 096 Hz頻率記錄的天然電場(chǎng)數(shù)據(jù)Ex、Ey,天然磁場(chǎng)數(shù)據(jù)Hx、Hy、Hz的5個(gè)文件是否生成,正常情況下字節(jié)分別為5 563 360、兩個(gè)7 898 080;以32 Hz、512 Hz、2 048 Hz頻率記錄人工源上午ca(m)和下午cp(m)、5個(gè)測(cè)項(xiàng)共10個(gè)文件,正常情況下字節(jié)為447 456、1 999 840、3 245 024。若檢查發(fā)現(xiàn)情況有異,則發(fā)出如“16 Hz文件缺失或大小有異”的提示。
(3) 功率譜頻譜和電磁響應(yīng)數(shù)據(jù)EDI文件。正常情況下,儀器每天對(duì)天然源、人工源數(shù)據(jù)經(jīng)過相干度疊加、中值疊加和全疊加法的二次處理得到369個(gè)頻譜文件。由于儀器的穩(wěn)定性或其他干擾,經(jīng)常造成文件缺失,需人工干預(yù)進(jìn)行再次處理。軟件后臺(tái)以“SSH”命令登錄,檢查頻譜文件個(gè)數(shù)并顯示,若數(shù)量不夠則提示“EDI文件缺失,請(qǐng)檢查儀器及時(shí)處理”。
關(guān)鍵技術(shù)與部分源代碼。極低頻儀器是新項(xiàng)目,需不斷總結(jié)經(jīng)驗(yàn),提高儀器狀態(tài)自動(dòng)判別的準(zhǔn)確性;openSUSE操作系統(tǒng)下的SSH自動(dòng)登錄、文件查找和大小顯示。如SSH自動(dòng)登錄命令:
圖4 極低頻工作日志填報(bào)及儀器檢查Fig.4 Very low frequency working log and inspection form
Dim wshshell
Set wshshell=wscript.createobject("wscript.shell")
Wshshell.run "c:windowssystem32cmd.exe/c"
Wshshell.sendkeys "ssh root@XX.XX.XX.XXX"
Wshshell.appactivate"管理員:C:windowssystem32cmd.exe-ssh root@XX.XX.XX.XXX",true
Wshshell.sendkeys "password"
Wshshell.sendkeys "ls-l /mtdata/CEAcopy/Site_13004/yyyy/mm/dd/EDI|grep |wc-l"
其主要應(yīng)用在河北省電磁波觀測(cè)工作日志格式中。首先,后臺(tái)通過Winsock登錄CNEM08-Ⅰ電磁波儀,檢查是否工作正常,產(chǎn)出數(shù)據(jù)文件;然后,通過程序操作EXCEL表格,在相應(yīng)的單元格中填入日期,如前2.3所述,填入溫度、氣壓和降水量時(shí)段,數(shù)據(jù)格式按學(xué)科組要求,溫度保留一位小數(shù),濕度保留整數(shù),自動(dòng)完成后提示“確認(rèn)打開”,方便值班員修改編輯。
Excel操作部分源代碼:
Dim MyXL As Object
Dim ExcelWasNotRunning As Boolean
On Error Resume Next
Set MyXL=GetObject(,"Excel.Application")If err.Number <> 0 Then ExcelWasNotRunning=True
Err.Clear
DeectExcel
MyXL.Application.Visible=True
MyXL.Parent.Windows(1).Visible=True
If ExcelWasNotRunning=True Then
MyXL.Application.Quit
End If
(1) 填報(bào)的日志種類多樣。軟件從臺(tái)站的實(shí)際工作出發(fā),對(duì)日常工作中每天填報(bào)的監(jiān)控日?qǐng)?bào)、網(wǎng)頁格式日志、Word格式、Excel格式的日志中能夠完成的工作都進(jìn)行程序化處理,幫助值班員減輕工作負(fù)擔(dān)。
(2) 自動(dòng)化填寫的準(zhǔn)確性。人工填寫總存在如“輸入錯(cuò)誤、缺項(xiàng)漏項(xiàng)”等低級(jí)錯(cuò)誤,再如降雨時(shí)段的確認(rèn),常有提前或滯后等不準(zhǔn)確的填寫,通過程序處理數(shù)據(jù)格式使填寫更加規(guī)范。
(3) 進(jìn)行檢查后再告警。軟件對(duì)日常工作中有時(shí)效要求的報(bào)送,不是簡(jiǎn)單定時(shí)鬧鐘式提醒,而是通過登錄服務(wù)器后檢查確認(rèn),然后發(fā)出告警,增加告警的有效性。
(4) 告警方式多樣。除界面提示外,有音樂和短信告警,實(shí)用方便。關(guān)于短信告警,采用目前成熟的網(wǎng)絡(luò)平臺(tái)模式,程序應(yīng)用時(shí)添加相應(yīng)公司的外加模塊即可,這里不再贅述。
(5) 程序進(jìn)程錯(cuò)誤處理。日志文件生成過程中對(duì)每一步都設(shè)置響應(yīng)提醒,對(duì)系統(tǒng)bug設(shè)置錯(cuò)誤判斷。如氣象儀連接時(shí)錯(cuò)誤處理,服務(wù)器登錄的錯(cuò)誤處理,數(shù)據(jù)文件讀取的錯(cuò)誤處理等,都提供報(bào)錯(cuò)功能,方便對(duì)執(zhí)行錯(cuò)誤的判斷[2],軟件不斷修改完善。
目前,軟件應(yīng)用于懷來、赤城、陽原地震臺(tái)站日常工作中,在減少日志錯(cuò)誤,提高工作質(zhì)量方面發(fā)揮積極作用,受到一線觀測(cè)人員的一致好評(píng)。工作日志采用全國(guó)或全省統(tǒng)一格式,具有代表性和通用性,軟件適合在更多臺(tái)站加以推廣應(yīng)用。今后還需結(jié)合實(shí)際工作,對(duì)軟件功能進(jìn)行完善。