趙俊香,朱培育,朱佳苗,施俊杰
(上海市地震局崇明地震臺,上海 202164)
通過水氡觀測來進(jìn)行地震分析預(yù)報在國內(nèi)外地震前兆研究中占有重要地位,尤其是在我國地震地下流體學(xué)科研究中,與水位并列成為兩大主測項而受到重視[1-2]??蒲腥藛T在分析會商時,選擇的測點數(shù)據(jù)越多,結(jié)果越真實、可靠。
目前,上海共有8個水氡測報點。崇明地震臺作為中國地震局專業(yè)臺站,其水氡數(shù)據(jù)已納入國家“十五”數(shù)據(jù)庫,每日的氡測值通過前兆數(shù)據(jù)管理系統(tǒng)上傳。其余7個測報點的氡值數(shù)據(jù)分別由各測報點過一段時間通過郵件方式上報市局。市局的相關(guān)工作人員打開郵箱,將各測報點的氡值分別復(fù)制、粘貼到自己創(chuàng)建的CSV文件中,一個測點一個文件。整個過程繁瑣且費時,數(shù)據(jù)的時效性差,且只有主樣氡值,無輔助測項數(shù)據(jù)。對于各測報點來說,由于相互之間不能進(jìn)行數(shù)據(jù)共享,不利于測報點科研人員開展工作,數(shù)據(jù)的利用率較低。
互聯(lián)網(wǎng)技術(shù)的興起使數(shù)據(jù)庫的共享成為可能,特別是B/S結(jié)構(gòu)的運用,使得這種共享變得更為簡單。在這種結(jié)構(gòu)下,用戶界面可完全通過Web瀏覽器實現(xiàn),一部分事務(wù)邏輯在前端實現(xiàn),但是主要的事務(wù)邏輯在服務(wù)器端實現(xiàn)。文章設(shè)計和開發(fā)出一套實現(xiàn)水氡數(shù)據(jù)上傳、下載與圖形顯示的管理系統(tǒng),解決上海區(qū)縣各水氡測點數(shù)據(jù)傳輸滯后、無法共享的問題。
目前,較為常用的網(wǎng)頁編程語言有三種:ASP.NET、PHP、JSP。ASP.NET借鑒ASP以前版本的最大優(yōu)點,參照J(rèn)ava、VB語言的開發(fā)優(yōu)勢并加入許多新特色,具備開發(fā)網(wǎng)站應(yīng)用程序的一切解決方案,同時使程序代碼看起來更潔凈、更簡單[3-4]。鑒于此,系統(tǒng)研發(fā)采用ASP.NET網(wǎng)頁編程語言。
在數(shù)據(jù)庫的選取上,就數(shù)據(jù)量看,ACCESS數(shù)據(jù)庫能滿足需求,但其安全系數(shù)較低,運行速度較慢,所以程序選用安全性更好、速度更快的SQL Server[5]數(shù)據(jù)庫。
在實現(xiàn)用戶與數(shù)據(jù)庫互通問題上,由于服務(wù)器端架設(shè)在局域網(wǎng)內(nèi)部,而用戶沒有專線接入服務(wù)器,所以通過使用花生殼的動態(tài)域名解析服務(wù)[6],實現(xiàn)外網(wǎng)訪問內(nèi)網(wǎng)的功能。
經(jīng)需求分析和反復(fù)設(shè)計,確定系統(tǒng)包含3大功能模塊就可以涵蓋測報點的日常工作,基本滿足局分析人員和測報點科研人員的研究工作。系統(tǒng)的功能模塊如圖1所示。
圖1 系統(tǒng)功能模塊圖Fig.1 Function module diagram of the system
系統(tǒng)采用B/S架構(gòu)[7-8],如圖2所示,主要分為用戶層、應(yīng)用層和數(shù)據(jù)層。用戶層又名表示層,即瀏覽器,主要完成用戶和后臺的交互及最終結(jié)果的輸出功能;應(yīng)用層為Internet Web服務(wù)器和花生殼動態(tài)域名解析服務(wù),Web服務(wù)器接受用戶的請求,并與后臺數(shù)據(jù)服務(wù)器中的數(shù)據(jù)庫連接,進(jìn)行數(shù)據(jù)處理申請,然后將數(shù)據(jù)處理的結(jié)果返回給Web服務(wù)器,再由Web服務(wù)器傳給用戶層?;ㄉ鷼討B(tài)域名解析服務(wù)解決公網(wǎng)IP地址不固定的問題,通過端口映射,實現(xiàn)外網(wǎng)訪問內(nèi)網(wǎng)的功能;數(shù)據(jù)層即數(shù)據(jù)庫服務(wù)器端。數(shù)據(jù)庫服務(wù)器應(yīng)用戶請求進(jìn)行數(shù)據(jù)庫輸入、查詢、修改、下載等各種處理,負(fù)責(zé)數(shù)據(jù)響應(yīng)和更新,完成數(shù)據(jù)存儲。
圖2 系統(tǒng)架構(gòu)圖Fig.2 System architecture diagram
在瀏覽器中輸入系統(tǒng)網(wǎng)址進(jìn)入系統(tǒng)界面,輸入事先設(shè)置好的用戶名和密碼后直接進(jìn)入數(shù)據(jù)輸入界面(見圖3)。這里設(shè)計有兩個區(qū)域:測項輸入?yún)^(qū)和水氡主、副樣顯示區(qū)。在測項輸入?yún)^(qū),取樣水溫和流量設(shè)置成前一天的數(shù)據(jù),這兩個量基本不變,批量輸入時直接跳過,節(jié)省時間,數(shù)據(jù)輸入結(jié)束按“提交”即可;水氡主、副樣顯示區(qū)可顯示當(dāng)前日之前一個月的主、副樣數(shù)據(jù)圖形,覆蓋原有記錄選項,相當(dāng)于修改,勾選此項,選擇需修改的日期,清空原有數(shù)據(jù),重新輸入完畢后提交,即完成修改操作。
數(shù)據(jù)查詢界面如圖4所示,包含數(shù)據(jù)下載和圖形繪制功能,用戶根據(jù)需要可選擇下載或需繪制圖形的日期段、測點及測項,下載的數(shù)據(jù)以文本文件的格式保存到本地計算機,繪制的圖形直接在界面顯示。
在編程過程中,查詢?nèi)我鉁y項組合的圖形顯示是一個難點。由于帶繪圖的測項和測項總數(shù)均是隨機的,圖形框也最好是動態(tài)增減,如果是預(yù)設(shè),除了全選外,必會在網(wǎng)頁留下空區(qū),嚴(yán)重影響網(wǎng)頁的美觀。設(shè)計時為實現(xiàn)圖形框動態(tài)增減的關(guān)鍵代碼如下。
ReadDat() ’讀取數(shù)據(jù)模塊;
Panel1.Controls.Clear() ’清除原有的圖形框;
If Rn0Index Then;
Panel1.Controls.Add(ChartRn0) ’添加圖形框;
ChartRn0.Titles(0).Text = CMB_Station.Text.Trim + " 主樣" ’繪圖;
ChartRn0.Series(0).Points.DataBindXY(x, Rn0) ;
End If。
圖3 數(shù)據(jù)輸入界面Fig.3 Data input interface
圖4 數(shù)據(jù)查詢界面 Fig.4 Data query interface
該系統(tǒng)有效解決了上海區(qū)縣水氡數(shù)據(jù)的上傳、共享不及時等問題,為局預(yù)報人員和區(qū)縣的科研人員使用數(shù)據(jù)提供了方便。據(jù)了解,其他觀測手段的地方測點,只有小部分入國家數(shù)據(jù)庫,大部分?jǐn)?shù)據(jù)產(chǎn)出之后的利用率較低,如何實現(xiàn)這些數(shù)據(jù)的有效利用,筆者認(rèn)為此文的思路可以借鑒。