周 輝 , 馬 亮
(1.中國(guó)地震地球物理研究所 地震觀測(cè)與地球物理成像重點(diǎn)實(shí)驗(yàn)室,北京100081;2.中國(guó)地震局第二監(jiān)測(cè)中心 陜西 西安 710054)
現(xiàn)今,科學(xué)數(shù)據(jù)的可視化已經(jīng)成為科學(xué)研究中數(shù)據(jù)分析的重要手段之一。數(shù)據(jù)可視化,旨在一目了然地揭示數(shù)據(jù)中的復(fù)雜信息,以幫助研究人員快速形象的了解數(shù)據(jù)實(shí)質(zhì)。地震地形變數(shù)據(jù)作為我國(guó)地震前兆臺(tái)網(wǎng)中歷史記錄比較完備、數(shù)字化程度較高的原始觀測(cè)數(shù)據(jù),非常適合成為可視化相關(guān)技術(shù)的研究和實(shí)驗(yàn)對(duì)象。近年來(lái),地震局地形變觀測(cè)臺(tái)網(wǎng)持續(xù)產(chǎn)出數(shù)據(jù),本文以地形變觀測(cè)臺(tái)網(wǎng)實(shí)時(shí)數(shù)據(jù)流為輸入,通過(guò)數(shù)據(jù)標(biāo)準(zhǔn)化處理、研究并改進(jìn)相關(guān)數(shù)值算法,準(zhǔn)實(shí)時(shí)地產(chǎn)出指定時(shí)間窗及滑動(dòng)步長(zhǎng)、指定測(cè)項(xiàng)的地形變觀測(cè)數(shù)據(jù)二維圖像。初步完成一套可視化展示程序。
當(dāng)前,科學(xué)數(shù)據(jù)在科學(xué)研究中的作用日益顯著,數(shù)據(jù)不僅是科學(xué)研究的結(jié)果,且成為科學(xué)研究的基礎(chǔ)。人們不僅關(guān)心數(shù)據(jù)的建模、描述、組織、保存等,更關(guān)心如何利用海量數(shù)據(jù)的可知識(shí)對(duì)象化、可計(jì)算化、可視化,構(gòu)造基于數(shù)據(jù)的、開放協(xié)同的研究模式。
可視化(Visualization)是一個(gè)新興的交叉學(xué)科研究領(lǐng)域。近年來(lái),可視化已經(jīng)成為對(duì)由測(cè)量或計(jì)算所產(chǎn)生的海量數(shù)據(jù)進(jìn)行分析和詮釋的主要手段之一。通過(guò)將各種復(fù)雜的數(shù)據(jù)轉(zhuǎn)換為直觀的圖像,可視化能夠幫助用戶依靠視覺這一最有效的手段了解數(shù)據(jù)的內(nèi)在規(guī)律,進(jìn)而取得新的發(fā)現(xiàn)。
地震科學(xué)數(shù)據(jù)具有多門類、多途徑、多格式等特點(diǎn),地震工作者花費(fèi)大量時(shí)間、精力,采集大量的地震數(shù)據(jù),然而,這些數(shù)據(jù)中的大部分可能與地震或地震災(zāi)害無(wú)關(guān)或者弱相關(guān),需要研究人員分析、過(guò)濾,以得到輕量、簡(jiǎn)潔、有效的數(shù)據(jù),從而為圖像化提供可靠的數(shù)據(jù)來(lái)源。目前,地震前兆臺(tái)網(wǎng)的數(shù)據(jù)可視化方面主要僅限于連續(xù)觀測(cè)數(shù)據(jù)時(shí)間序列的曲線圖展示,產(chǎn)出的一些具有空間屬性的產(chǎn)品或?qū)?shù)據(jù)時(shí)間序列曲線進(jìn)行專業(yè)加工則主要依靠第三方的工具軟件,如GMT、Matlab、MapSIS等等,因缺乏一個(gè)集成、高效、易用、專業(yè)針對(duì)性強(qiáng)的平臺(tái),使得數(shù)據(jù)產(chǎn)品圖像可視化水平相對(duì)較低[1-4]。
本項(xiàng)目擬在搭建完善總體架構(gòu)的基礎(chǔ)上,選取和構(gòu)建底層數(shù)據(jù)庫(kù),實(shí)現(xiàn)地形變數(shù)據(jù)準(zhǔn)實(shí)時(shí)的數(shù)據(jù)調(diào)用,并利用微軟.NET平臺(tái),結(jié)合相關(guān)計(jì)算方法,針對(duì)數(shù)據(jù)二維成像,開發(fā)用戶桌面版的應(yīng)用程序。具體的研究?jī)?nèi)容包括如下。
如圖1所示,本系統(tǒng)總體分為數(shù)據(jù)基礎(chǔ)層、技術(shù)支撐層和業(yè)務(wù)邏輯層。數(shù)據(jù)基礎(chǔ)層為整個(gè)系統(tǒng)提供數(shù)據(jù)支撐,其主體是正在運(yùn)行的中國(guó)地震臺(tái)網(wǎng)中心前兆形變數(shù)據(jù)庫(kù),庫(kù)中存有2007年以來(lái)我國(guó)連續(xù)實(shí)時(shí)觀測(cè)的固定形變臺(tái)觀測(cè)資料,也是本系統(tǒng)數(shù)據(jù)獲取程序的目標(biāo)數(shù)據(jù)。技術(shù)支撐層采用計(jì)算機(jī)繪圖技術(shù)對(duì)地形變數(shù)據(jù)進(jìn)行可視化表達(dá),利用C#和網(wǎng)絡(luò)等技術(shù)對(duì)系統(tǒng)總體功能進(jìn)行實(shí)現(xiàn)。業(yè)務(wù)邏輯層的各個(gè)模塊對(duì)應(yīng)本系統(tǒng)的主要功能,包括系統(tǒng)管理模塊、數(shù)據(jù)管理模塊、異常檢查接口和繪圖展示模塊。
圖1 系統(tǒng)總體架構(gòu)Fig.1 System overall framework
1)系統(tǒng)總體架構(gòu)設(shè)計(jì)
在項(xiàng)目前期工作中,經(jīng)過(guò)技術(shù)調(diào)研、需求分析和概略設(shè)計(jì),反復(fù)論證后得以確定該系統(tǒng)的最終架構(gòu)如2.1節(jié)所述,本系統(tǒng)的開發(fā)工作應(yīng)遵循系統(tǒng)架構(gòu)圖指導(dǎo)。
2)功能模塊開發(fā)
本系統(tǒng)中,系統(tǒng)管理模塊、數(shù)據(jù)管理模塊和繪圖展示模塊擬采用.NET平臺(tái)C#語(yǔ)言進(jìn)行開發(fā),層次清晰,效率卓越。繪圖展示模塊擬采用Windows GDI+圖形包進(jìn)行開發(fā),具體技術(shù)實(shí)現(xiàn)請(qǐng)參考3.1節(jié)相關(guān)內(nèi)容。
3)系統(tǒng)集成和測(cè)試
本階段負(fù)責(zé)將系統(tǒng)各功能模塊整合成為統(tǒng)一的桌面軟件系統(tǒng),并進(jìn)行軟件工程意義上的系統(tǒng)測(cè)試,達(dá)到用戶可使用的程度。
本系統(tǒng)采用的技術(shù)涉及數(shù)據(jù)庫(kù)、計(jì)算機(jī)網(wǎng)絡(luò)、計(jì)算機(jī)繪圖、面向?qū)ο笳Z(yǔ)言等多領(lǐng)域。技術(shù)要求范圍廣泛,技術(shù)難度要求較高。本節(jié)結(jié)合系統(tǒng)重要功能的實(shí)現(xiàn),就本系統(tǒng)所應(yīng)用到的關(guān)鍵技術(shù)作簡(jiǎn)單介紹。
GDI在 Windows中定義為 Graphics Device Interface,即圖形設(shè)備接口,是 Windows API(Application Programming Interface)的一個(gè)重要組成部分。GDI使得用戶無(wú)需關(guān)心具體設(shè)備的細(xì)節(jié),而只需在一個(gè)虛擬的環(huán)境(即邏輯設(shè)備)中進(jìn)行操作。GDI+是GDI的增強(qiáng)版,主要提供三類服務(wù):二維矢量圖形、圖像處理、文字顯示[5]。
本模塊利用Windows GDI+繪制地形變數(shù)據(jù)的二維圖像,然后利用ffmpeg開源程序,將已繪制的圖片集轉(zhuǎn)換為動(dòng)畫視頻[6]。圖2為繪圖展示模塊的流程圖:
圖2 繪圖展示模塊流程圖Fig.2 Drawing and showing flow diagram
C#提供了System.Diagnostics中Process類來(lái)專門調(diào)用本地和遠(yuǎn)程的外部程序,下面是調(diào)用ffmpeg的代碼。
Process p=new Process();
p.StartInfo.FileName = @"C:programsffmpeginffmpeg.exe-y-iConPic%%04d.jpg show.mp4";
p.StartInfo.Arguments=Argument;p.StartInfo.UseShellExecute=false;
p.StartInfo.CreateNoWindow=NoWindow;p.Start();
p.WaitForExit();
數(shù)據(jù)獲取主要包括數(shù)據(jù)下載和數(shù)據(jù)處理兩個(gè)功能模塊。首先,系統(tǒng)后臺(tái)與地震前兆形變數(shù)據(jù)庫(kù)進(jìn)行互聯(lián),提出數(shù)據(jù)請(qǐng)求,將庫(kù)中目標(biāo)數(shù)據(jù)進(jìn)行下載;其次,系統(tǒng)將下載得來(lái)的數(shù)據(jù)進(jìn)行轉(zhuǎn)換、歸類、排列等操作,形成繪圖程序模塊所能識(shí)別的可用數(shù)據(jù)。具體實(shí)現(xiàn)流程如圖3、圖4所示。
圖3 數(shù)據(jù)下載流程圖Fig.3 Data download flow diagram
圖4 數(shù)據(jù)處理流程圖Fig.4 Data process flow diagram
前兆數(shù)據(jù)采用Oracle數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)數(shù)據(jù),因此本系統(tǒng)將使用Oracle公司提供的 Oracle Data Provider for.NET(ODP.NET)來(lái)連接和下載數(shù)據(jù),下載是相關(guān)的實(shí)現(xiàn)代碼。
string connstring= "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.1)(PORT=1521))"+"(CONNECT_DATA=(SID=orcl)));User Id=system;Password=test;";
using (OracleConnection conn=new OracleConnection(connstring))
{
conn.Open();
string sql="select*from tablename";
using (OracleCommand comm=new OracleCommand(sql, conn)){
using(OracleDataReader rdr=comm.ExecuteReader())
{while (rdr.Read()){Content+= (rdr.GetString(1) +Environment.NewLine);
}}}
conn.Close();}
通過(guò)對(duì)地震地形變數(shù)據(jù)準(zhǔn)實(shí)時(shí)可視化系統(tǒng)的設(shè)計(jì)和開發(fā),得到地震數(shù)據(jù)可視化方面的相關(guān)初步認(rèn)識(shí):如何獲取海量地震數(shù)據(jù)中的有用隱藏信息是地震預(yù)報(bào)等業(yè)務(wù)的關(guān)鍵實(shí)現(xiàn)途徑之一,數(shù)據(jù)可視化是比較好的選擇。在實(shí)際研發(fā)中,地震數(shù)據(jù)的獲取和通用格式化、可視化樣式的展示方式、可視化的方法原理等也是系統(tǒng)實(shí)現(xiàn)的關(guān)鍵節(jié)點(diǎn)。
[1]周克昌,蔣春花,紀(jì)壽文,等.地震前兆數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)[J].地震,2010,30(2):143-151.ZHOU Ke-chang,JIANG Chun-hua,JI Shou-wen,et al.Precursor database system design[J].Earthquake,2010,30(2):143-151.
[2]李文,葉少珍.多維數(shù)據(jù)可視化技術(shù)及分類器的研究進(jìn)展[J]. 福建電腦,2010,26(5):38-39.LIWen,YE Shao-zhen.Multidimensional data visualization technology and research progress of classifier[J].Fujian Computer,2010,26(5):38-39.
[3]王丹寧.信息安全技術(shù)在涉密辦公網(wǎng)中的應(yīng)用情況分析[J].計(jì)算機(jī)安全,2014(4):44-46.WANG Dan-ning.An analysis of information security technology in application of secret office network[J].Network and Computer Security,2014(4):44-46.
[4]孫鴻雁.基于混編的地震前兆數(shù)據(jù)可視化系統(tǒng)[J].防災(zāi)減災(zāi)學(xué)報(bào),2012,28(3):37-40.SUN Hong-yan.The earthquake precursor data visualization system based on hybrid programming[J].Journal of disaster prevention and Reduction,2012,28(3):37-40.
[5]吳小芳,徐智勇,蔡忠亮,等.基于GDI+的高精度地圖符號(hào)庫(kù)的設(shè)計(jì)與實(shí)現(xiàn)[J].武漢大學(xué)學(xué)報(bào):信息科學(xué)版,2004,29(10):928-932.WU Xiao-fang,XU Zhi-yong,CAI Zhong-liang,et al.Design and implementation of high precision map symbol library based on GDI+[J].Geomatics and Information Science of Wuhan University,2004,29(10):928-932.
[6]李軍廷.利用FFMPEG技術(shù)搭建流媒體服務(wù)器 [J].現(xiàn)代電子技術(shù),2014(18):23-25.LI Jun-ting.Establishing of streaming media server by FFMPEG technology[J].Modern Electronics Technique,2014(18):23-25.