曾文敬,徐長文,肖建華,范衛(wèi)星,趙璇,曾先進,陳建龍
(江西省地震局,江西南昌 330095)
自2012年以來,全球進入大數(shù)據(jù)時代,各行各業(yè)都將可視化技術(shù)作為大數(shù)據(jù)分析、數(shù)據(jù)挖掘的重要手段,讓數(shù)據(jù)說話,讓數(shù)據(jù)看得見。可視化技術(shù)作為解釋大數(shù)據(jù)最有效的手段而率先被科學(xué)與工程計算領(lǐng)域采用,科學(xué)可視化把數(shù)據(jù)轉(zhuǎn)換成多維度、多尺度的時空動態(tài)圖形圖像,給予人們深刻與意想不到的洞察力,幫助公眾理解事物間的深度內(nèi)涵、潛在關(guān)聯(lián)和運行規(guī)律,極大地提高了人腦分析解釋這些數(shù)據(jù)的能力,已在很多領(lǐng)域使科學(xué)家的研究方式發(fā)生了根本性變化。
近年來,地震大數(shù)據(jù)可視化研究和應(yīng)用問題引起了地震行業(yè)有關(guān)專家的極大關(guān)注和思考。張晁軍等(2015)認為大數(shù)據(jù)的核心是積累數(shù)據(jù)、分析數(shù)據(jù)和應(yīng)用數(shù)據(jù),大數(shù)據(jù)有助于提高人們的特殊技能和洞察力,大數(shù)據(jù)分析具有預(yù)測事物發(fā)展趨勢、改變傳統(tǒng)觀念和發(fā)現(xiàn)新事物的功能,并有助于人們從信息中挖掘有價值信息,大數(shù)據(jù)改變著人類探索世界的傳統(tǒng)觀念和方法,尤其是通過了解模型的優(yōu)點和局限性,使數(shù)據(jù)產(chǎn)生知識。王志秋(2018)認為,就目前地震業(yè)務(wù)領(lǐng)域來看,地震大數(shù)據(jù)產(chǎn)出可視化研究和應(yīng)用至少可以包括:測震學(xué)科產(chǎn)出可視化,如震源破裂過程可視化;形變學(xué)科產(chǎn)出可視化,包括重力、傾斜、短水準(zhǔn)、洞體形變、應(yīng)力應(yīng)變、航空觀測、GPS等可視化;電磁學(xué)科產(chǎn)出可視化,包括地電阻率、地磁、電磁波等可視化;流體學(xué)科產(chǎn)出可視化,包括水位、水溫、水氡、水汞、溶解氣、土壤氣等可視化;以及其他學(xué)科和新技術(shù)產(chǎn)出可視化,如地震地質(zhì)構(gòu)造、構(gòu)造運動、地球動力學(xué)、地震活動性、衛(wèi)星、遙感、紅外觀測等可視化。地震行業(yè)利用可視化技術(shù)逐步開展了一些探索和應(yīng)用研究,并取得了可喜的結(jié)果,如:楊應(yīng)召(2020)為研究在地震速報等基于測震數(shù)據(jù)的業(yè)務(wù)場景中,對于地震事件檢測等中間處理結(jié)果的可視化問題,設(shè)計并實現(xiàn)了一套基于實時測震數(shù)據(jù)的可視化系統(tǒng),并得到了實際應(yīng)用,吳珍云等(2020)基于開源GIS技術(shù)研發(fā)的江蘇省地震應(yīng)急信息可視化平臺具有良好的性能體驗,并在地震應(yīng)急工作中起到了較強的輔助決策作用;馬士振等(2015)、羅勇等(2020)、李晨曦等(2021)研發(fā)的基于地震目錄數(shù)據(jù)的可視化服務(wù)系統(tǒng)為地震數(shù)據(jù)服務(wù)提供了一種新模式,提升了地震信息服務(wù)的深度和廣度。此外,很多專業(yè)人員(姚會琴等,2014;潘懷文等,2015;張文蕾等,2018;韓濱等,2021)將地震監(jiān)測信息、監(jiān)控信息通過可視化技術(shù)進行加工處理后,大大提升了地震信息服務(wù)的能力和水平。目前,可視化工具有多種選擇,其中國內(nèi)的可視化庫主要以Echarts為代表,被很多工程師采用(王子毅等,2016;崔蓬,2019;徐欣威,2019)。Echarts可視化庫是完全開源免費的,是由百度公司開發(fā)的開源數(shù)據(jù)圖表可視化技術(shù),是由純JavaScript腳本語言編寫的可視化類庫,兼容目前多種瀏覽器,底層采用ZRender渲染技術(shù),達到美觀、生動的顯示效果,提供豐富的、靈活的數(shù)據(jù)可視化圖表集成接口。
地震目錄是地震行業(yè)產(chǎn)出的最為基礎(chǔ)的地震科學(xué)研究資料。為了進一步挖掘地震數(shù)據(jù)信息,讓地震目錄數(shù)據(jù)的空間、時間信息更好地被人們特別是非專業(yè)人員快速有效的理解,本文根據(jù)江西地震臺的地震目錄數(shù)據(jù),自行設(shè)計了一套前后端分離,并采用Django、Echarts開源框架自主開發(fā)的江西地震目錄數(shù)據(jù)可視化系統(tǒng),旨在幫助非專業(yè)人員能夠通過對地震目錄數(shù)據(jù)的挖掘及時空動態(tài)分析并以可視化的簡易圖表形式,快速了解江西省地震活動時間和空間分布的基本概況。
Django框架是基于Python語言的開源框架。Django框架的設(shè)計模式借鑒了MVC框架的思想,也是分成模型(Model)、視圖(View)和控制器(Controller)三部分,來降低各個部分之間的耦合性。Django框架不同于MVC之處在于它拆分的三部分(見圖1):Model(模型)、Template(模板)和View(視圖),也就是MTV框架。Django框架通過分層設(shè)計,將各層次之間的邏輯結(jié)構(gòu)化,將系統(tǒng)的各個功能模塊進行分離,系統(tǒng)內(nèi)部不同功能模塊之間的訪問通過相互調(diào)用接口實現(xiàn),用一種業(yè)務(wù)邏輯、數(shù)據(jù)、界面顯示分離的方法組織代碼,從而大大降低了系統(tǒng)內(nèi)部功能的復(fù)雜性,實現(xiàn)簡便、快速地開發(fā)數(shù)據(jù)庫驅(qū)動的網(wǎng)站(吳俊鋒,2016)。

圖1 Django框架的MTV模型
江西地震目錄數(shù)據(jù)可視化系統(tǒng)以Django框架為基礎(chǔ),在實現(xiàn)過程中用了Echarts和百度地圖API等多種技術(shù)組合,實現(xiàn)了一站式的地震目錄可視化服務(wù)。為了快速完成系統(tǒng)開發(fā),筆者在Windows10操作系統(tǒng)環(huán)境下,選用Python3.6開發(fā)語言及其Web框架Django3.0、MySQL5.6數(shù)據(jù)庫、Echarts和百度地圖API等工具進行全棧式開發(fā)。系統(tǒng)前端頁面模板文件利用HTML+Div+Css進行渲染,并使用Js+Jquery+Ajax技術(shù)動態(tài)實現(xiàn)與后臺應(yīng)用接口的交互,后臺Python應(yīng)用程序負責(zé)業(yè)務(wù)邏輯處理,并提取MySQL數(shù)據(jù),返回給模板文件,模板文件加載了第三方庫Echarts和百度地圖API,并將后臺返回的數(shù)據(jù)轉(zhuǎn)化為可視化圖表。系統(tǒng)響應(yīng)處理流程圖見圖2。在測試運行階段,筆者使用Windows Server 2016+Apache mod_wsgi+Django的方式進行系統(tǒng)部署和運行。

圖2 系統(tǒng)響應(yīng)處理流程圖
江西地震目錄數(shù)據(jù)可視化系統(tǒng)的主體功能分為三大模塊:實時地震模塊、基于緩沖區(qū)的歷史地震模塊和全省歷史地震統(tǒng)計模塊(見圖3)。其中,實時地震模塊包括最新地震參數(shù)、全省近期地震目錄和震中分布圖3個子模塊;基于緩沖區(qū)的歷史地震模塊包括震中距100 km內(nèi)的震級分組統(tǒng)計、震中距100 km內(nèi)的震級-距離分布圖和震中距100 km內(nèi)的地震序列類型分布圖3個子模塊;全省歷史地震模塊包括全省歷史地震的震級分組隨時間變化統(tǒng)計圖和全省歷史地震的震級隨時間變化圖2個子模塊。這些模塊均通過在模板文件中加載Echarts圖表庫,實現(xiàn)了圖表化的可視化效果,系統(tǒng)展示效果見圖4。

圖3 江西地震目錄數(shù)據(jù)可視化系統(tǒng)功能圖

圖4 江西地震目錄數(shù)據(jù)可視化系統(tǒng)界面
(1)通過EQIM 協(xié)議實時監(jiān)聽江西地震臺EQIM 服務(wù)端的實時速報地震信息,當(dāng)獲取到符合要求的江西省內(nèi)M≥2.0地震時,即向后臺數(shù)據(jù)庫寫入該地震目錄。同時更新頁面最新地震三要素參數(shù),以文本的形式展現(xiàn)在網(wǎng)頁上,滿足了用戶快速獲取地震三要素信息的需求。(2)從數(shù)據(jù)庫中獲取最新的目錄進行滾動列表播放,滿足了用戶快速了解近期省內(nèi)地震目錄基本參數(shù)信息的需求。(3)通過在模板文件中加載GeoJson地圖接口,從數(shù)據(jù)庫中獲取最新的地震目錄,將地震經(jīng)緯度數(shù)據(jù)以地理地圖的形式在網(wǎng)頁中間位置進行展示,突顯了可視化震情地圖效果,該模塊滿足了用戶將數(shù)字形式的震中位置轉(zhuǎn)換為地圖形式的震中位置的需求,幫助用戶快速高效了解江西地震空間分布特征。此外,當(dāng)鼠標(biāo)滑過震中圖標(biāo)時,系統(tǒng)會給出該地震的有關(guān)提示信息。同時借助Echarts地理地圖庫提供的工具,實現(xiàn)了地圖縮放和平移功能等。
(1)根據(jù)距離最新地震100 km范圍內(nèi)的歷史地震目錄,按震級M2、M3、M4、M5和M6進行分組統(tǒng)計,并以柱狀圖的形式顯示在頁面,滿足了用戶快速了解最新地震震中距100 km 范圍內(nèi)的歷史地震震級總體分布情況。(2)根據(jù)距離最新地震100 km 范圍內(nèi)的歷史地震目錄,計算各地震距離最新地震的距離,并以震級為縱軸、發(fā)震時間為橫軸作震級隨時間變化的散點圖顯示在頁面,滿足了用戶快速了解最新地震震中距100 km內(nèi)的最大歷史地震和最近歷史地震的距離和時間分布情況。(3)根據(jù)距離最新地震100 km 范圍內(nèi)的地震序列類型數(shù)據(jù),分別統(tǒng)計“主余型”“震群型”“孤立型”“前主余型”等序列類型分布情況,滿足了用戶根據(jù)震中周圍歷史序列類型統(tǒng)計結(jié)果,快速判別最新地震可能序列類型。
(1)根據(jù)全省范圍內(nèi)最近3年M≥2.0的歷史地震目錄,先按年度作為一級分組統(tǒng)計后,再按震級檔M2、M3、M4、M5和M6進行二次分組統(tǒng)計,并以柱狀圖形式顯示在頁面,滿足用戶了解全省歷史地震的震級隨時間變化的情況。(2)根據(jù)全省范圍內(nèi)1970年以來M≥2.0的歷史地震目錄,以震級為縱軸、發(fā)震時間為橫軸作震級隨時間變化的散點圖顯示在頁面,滿足用戶快速了解全省歷史地震隨時間分布情況。
借助Django框架前后端分層分離的機制實現(xiàn)B/S架構(gòu),筆者在較短周期內(nèi)完成了江西地震目錄數(shù)據(jù)可視化系統(tǒng)開發(fā)。系統(tǒng)的主要特色與優(yōu)點為:(1)系統(tǒng)通過地理空間數(shù)據(jù)可視化方法和關(guān)系數(shù)據(jù)可視化方法,利用Echarts可視化庫和web前端技術(shù),將江西地震活動情況以多圖單頁的方式實時動態(tài)展示出來,達到了使用感知代替認知、減少人的記憶負擔(dān)和增強吸引力的效果,幫助用戶快速、高效地了解江西地震活動的主要時、空、強特征;(2)系統(tǒng)能夠?qū)崟r動態(tài)展示最新地震震中距100 km 內(nèi)的歷史地震情況,如最大歷史地震的震中距和發(fā)震時間,最近顯著地震的震中距和發(fā)震時間,以及震中距100 km 內(nèi)地震序列類型情況等。
系統(tǒng)自2020年試運行以來,多次服務(wù)于江西地震臺向系統(tǒng)外領(lǐng)導(dǎo)來臺調(diào)研考察活動,幫助非專業(yè)人士快速了解江西震情特點。系統(tǒng)另一個可應(yīng)用的情景為地震應(yīng)急響應(yīng)提供震中距100 km 內(nèi)的震情信息。在試運行過程中,我們也發(fā)現(xiàn)系統(tǒng)還存在一些不足,如:(1)由于頁面加載了一些國外較新的開源js,用戶端瀏覽器局限于使用基于chrome內(nèi)核的瀏覽器或Firefox瀏覽器;(2)系統(tǒng)功能較為單一,僅僅利用地震目錄數(shù)據(jù)可視化,下一步可增加地震監(jiān)控、監(jiān)測信息方面的內(nèi)容,以擴大應(yīng)用范圍以及服務(wù)對象。