劉曉萍,楊世英,孟彩菊,趙春華, 靳玉貞
(1.山西省祁縣地震局,山西 祁縣 030900;2.山西省地震局太原基準(zhǔn)地震臺,山西 太原 030025;3.太原大陸裂谷動力學(xué)國家野外科學(xué)觀測研究站,山西 太原 030025)
?
·技術(shù)交流·
電磁波數(shù)據(jù)臺站日常處理程序的應(yīng)用
劉曉萍1,3,楊世英2,3,孟彩菊2,3,趙春華2,3, 靳玉貞2,3
(1.山西省祁縣地震局,山西祁縣030900;2.山西省地震局太原基準(zhǔn)地震臺,山西太原030025;3.太原大陸裂谷動力學(xué)國家野外科學(xué)觀測研究站,山西太原030025)
摘要:簡要介紹電磁波數(shù)據(jù)庫的結(jié)構(gòu),闡述電磁波數(shù)據(jù)臺站日常處理程序要實現(xiàn)的功能并列出實現(xiàn)功能所用的編程方法。研發(fā)程序在多個臺站應(yīng)用后,效果良好,其編程方法對臺站工作者具有一定的參考借鑒價值。
關(guān)鍵詞:地震臺站;電磁波數(shù)據(jù);處理程序
0引言
地震前電磁波現(xiàn)象逐漸受到地震學(xué)家的關(guān)注,監(jiān)測并分析電磁信號異常已成為一種重要的地震短臨預(yù)測方法。山西電磁波臺網(wǎng)自2007年建設(shè)完成并投入使用至今已有數(shù)年,網(wǎng)內(nèi)臺站達(dá)數(shù)十個,多數(shù)由地市局或企業(yè)承擔(dān)。電磁波系統(tǒng)配備相應(yīng)的客戶端軟件,可對儀器進(jìn)行相應(yīng)的設(shè)置和簡單的數(shù)據(jù)下載瀏覽。但這些功能較為簡單,仍存在以下不便:部分臺站人員仍需手工下載當(dāng)天數(shù)據(jù)編成模擬日報進(jìn)行發(fā)送;進(jìn)行分析時下載數(shù)據(jù)較慢,需將下載后的數(shù)據(jù)轉(zhuǎn)換成行業(yè)內(nèi)常用的MapSIS軟件數(shù)據(jù)格式;每月需手工生成月報表等。因此,在了解電磁波臺網(wǎng)數(shù)據(jù)庫結(jié)構(gòu)的基礎(chǔ)上,編寫電磁波日常處理程序,可以簡化繁瑣的手工操作,滿足日常工作需要。
1電磁波數(shù)據(jù)庫
查閱電磁波臺網(wǎng)數(shù)據(jù)庫服務(wù)器可大致了解電磁波數(shù)據(jù)結(jié)構(gòu),采用oracle數(shù)據(jù)庫,方案名為“JZ”,所有表均置于該方案內(nèi)。包括數(shù)據(jù)表、日志表、基礎(chǔ)數(shù)據(jù)表和數(shù)據(jù)字典表等,其中主要的表有臺點信息表TZSTUTA和數(shù)據(jù)表(分鐘值表MI、時均值表HH、日均值表DD)。臺點信息表和數(shù)據(jù)表通過臺站號TZH關(guān)聯(lián),數(shù)據(jù)表中,分鐘值表為原始數(shù)據(jù)表,表中臺站TZH、臺站名稱TZMC、時間SJ、A1、A2、A3、A4分別為NS、EW向的頻度與強(qiáng)度的觀測數(shù)據(jù)。表中每分鐘每個臺點的觀測數(shù)據(jù)為一條記錄,時間SJ為該分鐘時刻的DATE類型數(shù)值,A1、A2、A3、A4為相應(yīng)分鐘值的NUMBER類型數(shù)據(jù),缺數(shù)用“NULL”表示。
2程序的使用
程序需要.Net Framework2.0以上版本支持,安裝oracle8.7以上版本客戶端及Office 2000以上版本。
運行程序ElectroMagneticWave.exe后,點擊菜單“連接數(shù)據(jù)庫”,連接成功后可運行各項功能。連接數(shù)據(jù)庫的賬號保存在程序目錄下的EMW.txt中,一般由電磁波臺網(wǎng)管理人員提供,可根據(jù)需要進(jìn)行修改。
程序主界面有4個選項卡:文本輸出、日報發(fā)送、表格數(shù)據(jù)、生成月報。
2.1文本輸出
文本輸出主要用于下載文本格式的電磁波數(shù)據(jù),在成功連接數(shù)據(jù)庫后,文本輸出選項卡下(見第15頁圖1)“臺站選擇”框中列出了所有可供選擇的入網(wǎng)臺站,將需要下載數(shù)據(jù)的臺站進(jìn)行勾選,在“時間選擇”下拉框中選擇開始日期和結(jié)束日期,然后點擊“均值選擇”框中需下載的均值。該程序下載的數(shù)據(jù)符合MapSIS格式,可以勾選是否帶日期列,是否對數(shù)值取對數(shù),以及指定缺數(shù)標(biāo)志。
需要注意的是,分鐘值是原始數(shù)據(jù),由各臺站的電磁波儀器通過GPRS等通信方式準(zhǔn)實時地將數(shù)據(jù)傳送到電磁波應(yīng)用服務(wù)器,再由服務(wù)端程序存入數(shù)據(jù)庫。而時均值和日均值數(shù)據(jù)是由數(shù)據(jù)庫中定時執(zhí)行的“存儲過程”從分鐘值表MI中生成到時均值表HH、日均值表DD。下載數(shù)據(jù)前,可能還有最新的時均值或日均值未能生成,故在下載數(shù)據(jù)前需點擊“重算均值”,程序向oracle數(shù)據(jù)庫發(fā)送執(zhí)行一次生成時均值、日均值的命令,然后“導(dǎo)出文本”,將程序根目錄下的txt目錄生成所需數(shù)據(jù)。文件名體現(xiàn)了臺站名稱、起止時期、均值類型和觀測項目的信息。如“祁縣紅領(lǐng)巾電磁波站_20151201_20151216_MI_NSQ.txt”表示祁縣紅領(lǐng)巾電磁波站20151201至20151216的分鐘值,測項是NS向強(qiáng)度。一個生成的文本數(shù)據(jù)及通過此文本數(shù)據(jù)形成的Mapsis圖形示例分別見圖2、圖3。
圖1 文本輸出選項界面Fig.1 The interface of text output options
圖2 生成的文本數(shù)據(jù)Fig.2 The text data generated
2.2日報發(fā)送
目前,部分臺站每天需通過FTP按規(guī)定的模擬日報格式,向上級部門發(fā)送前一日電磁波觀測數(shù)據(jù)的日均值。在“日報發(fā)送”選項卡下(見圖4),選擇臺站、日期,程序會自動將日期設(shè)為前一日。與“文本輸出”的操作相同,選擇“重算均值”,再點擊“獲取數(shù)據(jù)”,窗口下方即列出需發(fā)送模擬日報的測項均值及報送文件鏈接,最后“上傳到Ftp”日報文件,即發(fā)送至FTP服務(wù)器中指定位置,并顯示“發(fā)送成功”確定框。
FTP的賬號保存在程序目錄下的EMW.txt中,根據(jù)需要可進(jìn)行修改。
圖3 通過使用生成的文本數(shù)據(jù)形成的Mapsis圖形Fig.3 The Mapsis graph based on text data
圖4 日報發(fā)送選項界面Fig.4 The interface of daily report delivery options
2.3數(shù)據(jù)表格
數(shù)據(jù)表格用于實時顯示某臺站的分鐘值數(shù)據(jù),一般用于調(diào)試儀器或調(diào)整觀測采集“門坎”后觀察數(shù)據(jù)的變化(見第16頁圖5)。
2.4生成月報
生成月報表是電磁波臺站日常工作之一,月報表中包含一個月各測項的時均值、日均值、其對數(shù)值,及其他與觀測相關(guān)的信息。
程序根目錄下包含月報模板.xls文檔,其結(jié)構(gòu)與格式符合有關(guān)規(guī)范對月報的要求,各臺站也可根據(jù)需要對此模板進(jìn)行修改,但注意不要更改存放數(shù)據(jù)單元格的相對位置。
生成月報前先下載時均值文件,在生成月報選項卡下(見圖6)“打開”時均值文件,文件的臺站名、測項分量名、起止年月均根據(jù)時均值文件中數(shù)據(jù)自動進(jìn)行填充。正確無誤后點擊“生成月報”,即在程序根目錄下的xls文件夾中生成所選月報表。一個已生成的月報表(見圖7)。
圖6 生成月報選項界面Fig.6 The interface of monthly report options
圖7 生成的月報表格式Fig.7 The monthly report generated
3程序主要功能的編程實現(xiàn)方法
該程序采用微軟Visual Basic .NET作為編程工具。
3.1從oracle數(shù)據(jù)庫獲取數(shù)據(jù)
程序采用ADO.NET方式進(jìn)行數(shù)據(jù)庫編程,ADO.NET是.NET平臺中的一種封裝的數(shù)據(jù)庫訪問技術(shù),擁有.NET Data Provider(數(shù)據(jù)提供程序)和DataSet(數(shù)據(jù)集)兩個核心組件。以下代碼演示ADO.NET從電磁波數(shù)據(jù)庫查詢數(shù)據(jù)的最基本步驟。代碼中采納了用于Oracle的.NET Framework數(shù)據(jù)提供程序,并使用System.Data.Oracle Client命名空間[1]。
(1) 建立到數(shù)據(jù)源的連接。
Private dcbConn As New OracleConnection(connectionString)
’connectionString變量為連接字符串
dcbConn.Open()
(2) 建立適配器并向數(shù)據(jù)集“填充”數(shù)據(jù)
Private dcbAdapter As New OracleDataAdapter(″″, dcbConn)
Private dcbDataSet As DataSet
dcbAdapter.SelectCommand.CommandText = sqlQueryStr
’connectionString 變量為SQL查詢命令字符
dcbAdapter.Fill(dcbDataSet, atableName)
(3) 關(guān)閉連接。
dcbAdapter.Dispose()
dcbDataSet.Dispose()
dcbConn.Close()
3.2通過FTP上傳文件
該程序采用“Win32 API”編程方式,調(diào)用“wininet.dll”的資源進(jìn)行FTP編程,使用“wininet.dll”前須對其各函數(shù)進(jìn)行聲明。上傳文件函數(shù)的聲明如下:
Public Declare Function FtpPutFile Lib ″wininet.dll″ Alias ″FtpPutFileA″ _
(ByVal hFtpSession As Integer, _
ByVal lpszLocalFile As String, _
ByVal lpszNewRemoteFile As String, _
ByVal dwInternetFlags As Integer, _
ByVal dwContext As Integer) As Boolean
聲明后可在代碼中使用FtpPutFile()函數(shù)上傳文件。一個完整的FTP上傳過程分為5個步驟:打開鏈接;打開FTP服務(wù);上傳文件;關(guān)閉FTP服務(wù);關(guān)閉鏈接。
3.3生成Excel格式月報
生成Excel格式的報表可方便對報表文檔進(jìn)行后期編輯與交換。Visual Basic.NET操作Excel可采用ActiveX方式,一般分為3個步驟:(1) 創(chuàng)建Excel對象的引用;(2) 對Excel對象進(jìn)行編程(如方法、屬性、事件等);(3) 完成使用后,將Excel對象釋放。下面給出部分代碼[2]。
Dim xLapp As Excel.Application = New Excel.Application
Dim xLbook As Excel.Workbook = xLapp.Workbooks.Open(Application.StartupPath & ″Temp.xls″)
Dim xLsheet As Excel.Worksheet = xLbook.Worksheets(1)
…………
xLsheet.Cells(Int((1 + j) / 2) + 1, 2 + k).value = VAll(k, j)
…………
xLapp.Quit()
xLsheet = Nothing
xLbook = Nothing
xLapp = Nothing
4結(jié)束語
電磁波臺站日常處理程序已在多個臺站應(yīng)用,減少了人工操作,有效提高了工作效率,文中介紹的編程方法對有類似需求的人員具有一定參考借鑒價值。
參考文獻(xiàn):
[1]趙春華,孟彩菊,楊世英,等.太原基準(zhǔn)地震臺測震資料的電子化管理及拓展應(yīng)用[J].山西地震,2016(1):46-48.
[2]楊世英,王新勝,張亮娥,等.基于G856F的地磁野外測量處理程序[J].山西地震,2008(1):18-20.
文章編號:1000-6265(2016)02-0014-04
收稿日期:2015-12-17
第一作者簡介:劉曉萍(1970—),女,山西省祁縣人。2006年畢業(yè)于山西省委黨校,助理工程師。
中圖分類號:TP311
文獻(xiàn)標(biāo)志碼:A
Application of Daily-processing Program in Electromagnetic Wave Data Seismic Station
LIU Xiao-ping1,3, YANG Shi-ying2,3, MENG Cai-ju2,3, ZHAO Chun-hua2,3, JIN Yu-zhen2,3
(1.Earthquake Administration of Qi County, Jinzhong, Shanxi 030900, China; 2.Taiyuan Referential Seismological Station of Earthquake Administration of Shanxi Province, Taiyuan, Shanxi 030025, China; 3.State Key Observatory of Shanxi Rift System, Taiyuan Shanxi 030025, China)
Abstract:The electromagnetic wave database is introduced briefly in this paper. The functions implemented by the daily-processing program and the programing method are elaborated. The process program has been well used in several stations. So the programing method can be used for reference for other station workers.
Key words:Seismic station; Electromagnetic wave data; Process program