陳祥開(kāi), 周 玲, 郭昱琴, 陳 江, 江 蕾, 常振宇
在Dimashelpe 軟件開(kāi)發(fā)之前, 我們經(jīng)常使用DIMAS 軟件對(duì)地震觀測(cè)報(bào)告中的五日?qǐng)?bào)、月報(bào)進(jìn)行編輯, 此軟件也具有糾正錯(cuò)誤的功能, 但軟件存在一些缺陷, 需要我們逐一的錄入數(shù)據(jù), 工作量大且容易出現(xiàn)錯(cuò)誤。 之后黑龍江牡丹江臺(tái)對(duì)DIMAS 軟件糾正錯(cuò)誤功能進(jìn)行了改進(jìn), 使其可以自動(dòng)編輯, 但改進(jìn)后的軟件還存在一些不足, 還需要我們?cè)龠M(jìn)行人工編輯, 才能符合國(guó)家臺(tái)網(wǎng)中心的要求。 由于進(jìn)行了人工編輯, 會(huì)出現(xiàn)一些不符合要求的錯(cuò)誤,從而影響我們的工作質(zhì)量。 因此開(kāi)發(fā)人工編輯五日?qǐng)?bào)、月報(bào)的糾錯(cuò)與改正軟件, 成了一項(xiàng)使工作質(zhì)量提高、 減少錯(cuò)誤率行之有效的任務(wù)。
海南瓊中臺(tái)每五天發(fā)送一個(gè)五日?qǐng)?bào), 每一個(gè)月發(fā)送一個(gè)月報(bào)告。 使用DIMAS 軟件編輯生成五日?qǐng)?bào), 它的第一個(gè)文件名是 “臺(tái)站名年年月月a.bat”, 第二個(gè)五日?qǐng)?bào)的文件名是“臺(tái)站名年年月月b.bat”, 以此類推, 到第六個(gè)五日?qǐng)?bào)的文件名為 “臺(tái)站名年年月月f.bat” ,而月報(bào)的文件名則為“臺(tái)站名年年月月s.bat”。
(1)用DIMAS 軟件處理后的五日?qǐng)?bào)和月報(bào), 它們的頭標(biāo)題是一致的, 但對(duì)于月報(bào)來(lái)說(shuō)是不符合要求, 需要處理。
(2)可能會(huì)出現(xiàn)空行的情況或者震項(xiàng)的時(shí)間順序混亂以及出現(xiàn)重復(fù)地震等情況。
(3)有時(shí)源文件的序號(hào)出現(xiàn)錯(cuò)誤, 使用DIMAS 編輯后, 序號(hào)還是按錯(cuò)誤地排列(圖1)。
(4)震源深度未出現(xiàn)在規(guī)定位置的問(wèn)題。
(5)第三列數(shù)據(jù)表示使用的是何種濾波器, 不能為空.第四列則表示的是震相, 也是不能為空白。
圖1 DIMAS 軟件編輯后序號(hào)還是不連續(xù)的Fig.1 Serial number still discontinuous after DIMAS software editing
(1)技術(shù)平臺(tái): 本軟件采用C/S 的結(jié)構(gòu)設(shè)計(jì), 是在java 的jdk-6u22-windows-i586 版本的基礎(chǔ)上, 使用NetBeans6.9.1 版本開(kāi)發(fā)的。 可在windous XP 和windows 7 系統(tǒng) 上使用本軟件。
(2)通過(guò)分析數(shù)據(jù)后, 整個(gè)設(shè)計(jì)的數(shù)據(jù)流圖, 如圖2 所示。
(1)Dimashelper 是基于DIMAS 生成的五日?qǐng)?bào)、月報(bào), 對(duì)其進(jìn)行的二次編輯, 所以要判定打開(kāi)的文件是五日?qǐng)?bào)或是月報(bào), 然后作出相應(yīng)的處理。 由于五日?qǐng)?bào)和月報(bào)的區(qū)別在于文件名, 所以判斷的依據(jù), 可以通過(guò)文件名來(lái)判斷。 五日?qǐng)?bào)文件名格式為:年年年年月月(a到f).bat, 而月報(bào)文件名格式為:年年年年月月s.bat 。 如是月報(bào)則對(duì)頭標(biāo)題進(jìn)行修改, 如是五日?qǐng)?bào)則不進(jìn)行處理。
圖2 數(shù)據(jù)流圖Fig.2 Data flow chart
(2)地震正文信息中的第一行, 即臺(tái)網(wǎng)時(shí)間信息中的時(shí)間信息時(shí)常會(huì)出現(xiàn)錯(cuò)誤, 這里通過(guò)自動(dòng)識(shí)別文件名稱中的正確時(shí)間的方式, 實(shí)現(xiàn)時(shí)間信息的自動(dòng)修正處理, 關(guān)鍵代碼如下:
//修改表頭" QIONGZHONG QZN。。。" 后的日期信息
//修改依據(jù)文件名稱中的日期而定
(3)有時(shí)源文件中的地震事件序列出現(xiàn)錯(cuò)誤后, 用DIMAS 處理還是會(huì)出現(xiàn)錯(cuò)誤, 據(jù)數(shù)據(jù)統(tǒng)計(jì)調(diào)查, 出現(xiàn)這種錯(cuò)誤的概率還是蠻高的。 因此有必要做這個(gè)方面的功能設(shè)計(jì), 進(jìn)而減少錯(cuò)誤率的出現(xiàn)。
關(guān)鍵代碼如下:
替換錯(cuò)誤序列號(hào):
履歷記錄:
(4)地震事件里有一項(xiàng)地震深度, 而用DIMAS 編輯后的五日?qǐng)?bào)、月報(bào), 深度數(shù)據(jù)并沒(méi)有在規(guī)定的位置上, 需要人為地移動(dòng)它的位置才行。 本軟件能直接實(shí)現(xiàn)地震事件的深度數(shù)據(jù)在規(guī)定的位置上這個(gè)功能。 關(guān)鍵代碼如下:
(5)對(duì)于分析后的震項(xiàng), 面波對(duì)應(yīng)的方向, 有時(shí)候會(huì)出現(xiàn)混亂的現(xiàn)象。 正確的排列位置: 按北南向(BHN), 東西向(BHE), 垂直向(BHZ) 排列。 //對(duì)于排序規(guī)則中以 “#/” 結(jié)尾的部分, 需要按照 “第4個(gè)8 位” 的時(shí)間升序進(jìn)行排序//這里對(duì)其進(jìn)行排序, 并將本行數(shù)據(jù)插入結(jié)果ArrayList “alNew” 中
如下圖3 所示, 該畫(huà)面分上下兩部分, 即“自動(dòng)處理” 和“錯(cuò)誤記錄”:
自動(dòng)處理有 “文件” 和 “文件夾” 兩種處理模式, 可供用戶單獨(dú)選擇并處理一個(gè)文件和選擇一個(gè)文件并讓系統(tǒng)自動(dòng)處理文件夾下所有文件。
錯(cuò)誤記錄部分用于顯示處理的過(guò)程中系統(tǒng)記錄下的操作信息和錯(cuò)誤提示信息, 用戶可以通過(guò) “文件名稱” 和 “處理狀態(tài)” 兩種查詢條件進(jìn)行有條件或無(wú)條件的查詢, 以便了解處理內(nèi)容, 進(jìn)一步修正系統(tǒng)已發(fā)現(xiàn)但無(wú)法自行修正的錯(cuò)誤。
該畫(huà)面用于查詢和刪除歷史處理中報(bào)錯(cuò)的錯(cuò)誤信息, 用戶可通過(guò)文件名稱、 處理時(shí)間、處理狀態(tài)等字段對(duì)歷史履歷信息進(jìn)行有條件或無(wú)條件查詢, 并對(duì)其中無(wú)需保留的歷史信息進(jìn)行刪除處理。 如圖4 所示。
圖3 自動(dòng)糾錯(cuò)處理畫(huà)面Fig.3 Auto-correction screen
圖4 歷史錯(cuò)誤查詢畫(huà)面Fig.4 Error log query screen
該畫(huà)面可供用戶打開(kāi)、 修改、 保存和另存文件, 方便用戶在無(wú)需切換環(huán)境的情況下手動(dòng)修正一些自動(dòng)糾錯(cuò)處理中無(wú)法自動(dòng)修正的錯(cuò)誤內(nèi)容。 如下圖5 所示。
該畫(huà)面可供用戶自行設(shè)置自動(dòng)糾錯(cuò)處理的過(guò)程中用到的處理規(guī)則, 以使軟件可以適應(yīng)不斷變化的處理規(guī)則。 如圖6 所示。
圖5 文件操作畫(huà)面Fig.5 File operation screen
圖6 自動(dòng)糾錯(cuò)規(guī)則畫(huà)面Fig.6 Rule of auto-correction screen
2010年12月完成設(shè)計(jì), 經(jīng)過(guò)一年的測(cè)試后, 本軟件基本已經(jīng)做到如下幾個(gè)方面:
(1)五日?qǐng)?bào)和月報(bào)的標(biāo)題是不一樣的, 工作人員要根據(jù)所編輯的文件是五日?qǐng)?bào)還是月報(bào), 然后對(duì)其設(shè)置相應(yīng)的標(biāo)題。
(2)將地震事件中的深度調(diào)整至正確的位置。
(3)地震事件編號(hào)按從小到大排序, 排除跳號(hào)或重復(fù)編號(hào)現(xiàn)象。
(4)出現(xiàn)重復(fù)編輯的地震事件, 則提示用戶查看。
(5)刪除不需要的空行和空格。
(6)修改并使中長(zhǎng)周期濾波器LP、 SK 分體波時(shí)對(duì)應(yīng)的是MB震級(jí), 短周期濾波器SP分體波時(shí)對(duì)應(yīng)的是Mb震級(jí), 其它的體波情況為ML震級(jí)。
(7)糾正面波分向排列錯(cuò)誤。
(8)調(diào)整地震事件中震相位置, 使它們格式正確。
本軟件自測(cè)試以來(lái), 根據(jù)同事們所提出的問(wèn)題和發(fā)現(xiàn)的不足, 做了相應(yīng)的改動(dòng), 使軟件應(yīng)用更加實(shí)用, 操作更簡(jiǎn)單。 本軟件基本擁有工作所需的功能, 輸出的結(jié)果也基本符合國(guó)家臺(tái)網(wǎng)中心的關(guān)于地震分析報(bào)告的標(biāo)準(zhǔn), 更重要的是在對(duì)編輯完成的五日?qǐng)?bào)、月報(bào)使用此軟件后, 錯(cuò)誤率減少, 提高了工作效率。
本軟件是基于DIMAS 的二次開(kāi)發(fā), 主要存在的問(wèn)題是對(duì)于DIMAS 產(chǎn)生的尚不可預(yù)知的錯(cuò)誤無(wú)法判斷和處理。 比如亂碼的情況, 有時(shí)候是出現(xiàn)文字之類的亂碼, 有時(shí)候是英文之類的亂碼, 有時(shí)候則是阿拉伯字體的亂碼。 雖然這種情況出現(xiàn)極少, 但是以后將會(huì)加以改進(jìn)這方面的問(wèn)題。
[1] 丁文秀, 王慧群, 印蘇文, 等. 利用xxx.obs 文件生成五日?qǐng)?bào)的研究[J]. 大地測(cè)量與地球動(dòng)力學(xué),2009, 29(8): 131-133.
[2] 肖磊, 李鐘尉. JAVA 實(shí)用教程[M]. 北京: 人民郵電出版社, 2010.
[3] 許勇, 王黎. Netbeans 6.0 程序開(kāi)發(fā)技術(shù)詳解[M]. 北京: 清華大學(xué)出版社, 2010.