張盛,張明華,任偉,楊燕
(中國(guó)地質(zhì)調(diào)查局發(fā)展研究中心,北京 100037)
重磁勘探方法廣泛應(yīng)用于礦產(chǎn)資源勘探、氣候環(huán)境變化、大地構(gòu)造研究等方面[1]。為了從重磁數(shù)據(jù)資料中獲得研究區(qū)的地質(zhì)解釋結(jié)果,必須利用專業(yè)軟件系統(tǒng)對(duì)重磁數(shù)據(jù)進(jìn)行專業(yè)化數(shù)據(jù)處理和分析[2-5]?,F(xiàn)有重磁數(shù)據(jù)處理軟件以單機(jī)桌面應(yīng)用程序?yàn)橹鳎@些軟件在使用過(guò)程中往往存在以下限制:① 在使用便捷性方面,軟件在Windows、Linux等平臺(tái)之間無(wú)法自由切換使用,并且這些軟件通常授權(quán)給單一終端,很難實(shí)現(xiàn)多用戶跨平臺(tái)協(xié)同工作;② 在軟件的更新維護(hù)方面,軟件開(kāi)發(fā)商在完成更新包之后,單機(jī)軟件用戶需要去主動(dòng)更新應(yīng)用終端程序,這往往需要經(jīng)過(guò)獲取更新軟件包、卸載已有程序、安裝新程序、重新授權(quán)等一系列繁瑣的操作步驟,在這一過(guò)程中還可能遇到諸如動(dòng)態(tài)庫(kù)缺失、版本不兼容等問(wèn)題;③ 在計(jì)算性能方面,隨著航空物探、物聯(lián)網(wǎng)技術(shù)的應(yīng)用,現(xiàn)代物探方法獲取了海量數(shù)據(jù),這些數(shù)據(jù)的存儲(chǔ)計(jì)算對(duì)軟件計(jì)算性能提出新要求,單機(jī)應(yīng)用程序往往受限于宿主計(jì)算機(jī)硬件性能,將會(huì)越來(lái)越難以滿足海量數(shù)據(jù)即時(shí)處理計(jì)算需求[6-7]。
隨著信息技術(shù)的發(fā)展,云計(jì)算這一種新的計(jì)算模式成為當(dāng)今信息技術(shù)發(fā)展主流,該計(jì)算模型的典型特征是將計(jì)算、存儲(chǔ)和網(wǎng)絡(luò)資源作為在線服務(wù)提供給用戶,用戶可以通過(guò)瘦終端與Web瀏覽器一起按需訪問(wèn)[8-10]。云計(jì)算有3種典型服務(wù)模型:IaaS(基礎(chǔ)架構(gòu)即服務(wù)),PaaS(平臺(tái)即服務(wù))和SaaS(軟件即服務(wù))。在云計(jì)算中,應(yīng)用程序或軟件運(yùn)行在云基礎(chǔ)設(shè)施之上,而無(wú)需本地軟件安裝和維護(hù),這能夠有效提高多用戶軟件和硬件基礎(chǔ)設(shè)施利用率,大大降低了用戶本地計(jì)算資源的成本。此外,由于軟件應(yīng)用程序是云托管的,并且沒(méi)有明顯的平臺(tái)限制,因此服務(wù)提供商可以輕松升級(jí)維護(hù)它們。所有用戶都使用相同版本的軟件,這使得用戶之間的協(xié)作更容易,因此軟件版本不匹配等問(wèn)題也可以得到快速修復(fù)。由于上述云計(jì)算帶來(lái)的優(yōu)點(diǎn),在地學(xué)領(lǐng)域已經(jīng)開(kāi)發(fā)了許多在線數(shù)據(jù)處理程序。例如,中石化開(kāi)發(fā)了π-Frame地震數(shù)據(jù)處理平臺(tái),這是一個(gè)用于地球物理數(shù)據(jù)處理和解釋的云平臺(tái)[11]。北京桔燈勘探公司提供全套專業(yè)軟件遠(yuǎn)程桌面服務(wù),而Plotly科學(xué)繪圖軟件提供在線數(shù)據(jù)處理和繪圖服務(wù)等[12]。
網(wǎng)格數(shù)據(jù)廣泛應(yīng)用于重磁數(shù)據(jù)處理、分析和解釋各個(gè)環(huán)節(jié),是最為常用的物探數(shù)據(jù)格式之一。為探索云計(jì)算技術(shù)在地球物理軟件中的應(yīng)用方法、技術(shù)和效果。筆者研發(fā)了一個(gè)網(wǎng)格數(shù)據(jù)在線處理系統(tǒng),通過(guò)對(duì)比分析驗(yàn)證了該系統(tǒng)的正確性和使用的便捷性,為云計(jì)算技術(shù)在地球物理軟件應(yīng)用方面提供技術(shù)儲(chǔ)備。
網(wǎng)格數(shù)據(jù)處理算法是軟件的核心基礎(chǔ)之一,因此有必要對(duì)該系統(tǒng)所采用的數(shù)據(jù)處理算法進(jìn)行簡(jiǎn)要描述。本系統(tǒng)主要集成了常用的滑動(dòng)平均濾波、方向?qū)?shù)計(jì)算、頻率域?yàn)V波、位場(chǎng)解析延拓功能。
滑動(dòng)平均濾波方法對(duì)周期性干擾有良好的抑制作用,平滑度高,適用于濾除高頻干擾和隨機(jī)噪聲。缺點(diǎn)是靈敏度較低,對(duì)偶然出現(xiàn)的脈沖性干擾的抑制作用較差。其計(jì)算方法為:對(duì)M×N個(gè)采樣值的網(wǎng)格數(shù)據(jù),任意網(wǎng)格節(jié)點(diǎn)濾波結(jié)果為計(jì)算點(diǎn)周圍半徑為w方形區(qū)域內(nèi)數(shù)據(jù)點(diǎn)的算術(shù)平均值,按照如下公式進(jìn)行計(jì)算:
(1)
其中:ss(i,j)為濾波結(jié)果,w為濾波窗口半徑,s(ii,jj)為原網(wǎng)格數(shù)據(jù)。
重磁異常的方向?qū)?shù)通常指異常場(chǎng)沿某一特定方向的空間變化,常用于突出異常梯級(jí)帶,區(qū)分不同構(gòu)造走向的疊加重磁異常,進(jìn)而劃分特定地質(zhì)構(gòu)造界線。筆者采用空間域差分算法替代微分近似估算重磁場(chǎng)的方向?qū)?shù),網(wǎng)格數(shù)據(jù)x方向、y方向?qū)?shù)及總水平導(dǎo)數(shù)模計(jì)算公式如下:
(2)
其中:dxi,j為x方向?qū)?shù);dyi,j為y方向?qū)?shù);dti,j為總水平導(dǎo)數(shù)。
為了獲得與地質(zhì)相關(guān)的異常信息,需要對(duì)網(wǎng)格數(shù)據(jù)進(jìn)行濾波處理。頻率域?yàn)V波主要采用如下計(jì)算步驟進(jìn)行:
1) 將網(wǎng)格數(shù)據(jù)進(jìn)行二維FFT變換,獲得頻率域網(wǎng)格數(shù)據(jù);
2) 按照給定截?cái)囝l率和窗函數(shù)(本系統(tǒng)中采用矩形窗),對(duì)頻率域網(wǎng)格數(shù)據(jù)進(jìn)行濾波,得到頻率域?yàn)V波結(jié)果;
3) 對(duì)頻率域?yàn)V波結(jié)果進(jìn)行FFT逆變換即可得到空間域?yàn)V波結(jié)果。
將地面實(shí)測(cè)異常換算到不同高度來(lái)劃分場(chǎng)源深度不同的疊加異常,這種方法叫做重磁異常的解析延拓,實(shí)際工作中常用于壓制噪聲干擾,突出有用異常,重磁異常解析延拓通常有向上延拓和向下延拓兩類。在本研究中主要采用頻率域向上延拓算法[1]和迭代向下延拓算法[13]。頻率域延拓計(jì)算可以看作是一種頻率域?yàn)V波算法,計(jì)算公式如下:
F(u,v,h+Δh)=F(u,v,h)*H(Δh)
(3)
其中:Δh為延拓高度。
在線軟件系統(tǒng)通常采用分層架構(gòu)進(jìn)行設(shè)計(jì),分層架構(gòu)實(shí)現(xiàn)了各個(gè)邏輯功能的解耦,規(guī)范化了各層間的調(diào)用關(guān)系,降低各層之間的依賴關(guān)系,利于各層邏輯重用與更新。我們采用典型的3層架構(gòu)實(shí)現(xiàn)該在線網(wǎng)格數(shù)據(jù)處理系統(tǒng),這3層架構(gòu)分別是展現(xiàn)層、計(jì)算服務(wù)層和邏輯控制層。
展現(xiàn)層又稱為表現(xiàn)層,運(yùn)行于客戶端瀏覽器,用于提供用戶交互操作界面,接受用戶輸入數(shù)據(jù)和數(shù)據(jù)可視化表達(dá)。該層利用Html5+CSS3+JavaScript等web2.0前端技術(shù)進(jìn)行實(shí)現(xiàn)。系統(tǒng)主界面如圖1所示,該軟件界面上部為系統(tǒng)標(biāo)題,左側(cè)為功能菜單,主要包括網(wǎng)格數(shù)據(jù)輸入輸出、繪圖參數(shù)設(shè)置及數(shù)據(jù)處理等操作按鈕,界面右側(cè)為數(shù)據(jù)展示區(qū),采用“Plotly.js”函數(shù)庫(kù)進(jìn)行數(shù)據(jù)可視化,提供等值線、熱度圖以及三維表面圖3種數(shù)據(jù)展示方式。為兼容已有數(shù)據(jù)處理軟件,輸入、輸出數(shù)據(jù)文件采用Surfer 6 明碼及二進(jìn)制格式的grd文件。
圖1 用戶界面Fig.1 Software user interface
計(jì)算服務(wù)層運(yùn)行在服務(wù)器端,用于接收用戶數(shù)據(jù)處理請(qǐng)求并返回?cái)?shù)據(jù)處理計(jì)算結(jié)果,圖2為該層典型的數(shù)據(jù)處理過(guò)程。
圖2 典型的數(shù)據(jù)處理過(guò)程Fig.2 Typical data processing
由于歷史原因,核心數(shù)據(jù)處理程序由C、C++和Fortran等多語(yǔ)言混合開(kāi)發(fā)完成,很難直接作為網(wǎng)絡(luò)應(yīng)用程序直接使用,為此我們將各個(gè)數(shù)據(jù)處理程序生成外部可以直接調(diào)用的獨(dú)立數(shù)據(jù)處理模塊。此外,由于每種數(shù)據(jù)處理算法的輸入輸出數(shù)據(jù)內(nèi)容各不相同,在數(shù)據(jù)處理web API接口必須進(jìn)行一定規(guī)范化處理,因此我們采用PHP語(yǔ)言開(kāi)發(fā)了一個(gè)中間件,用于統(tǒng)一接收用戶數(shù)據(jù)計(jì)算請(qǐng)求并解析數(shù)據(jù)處理算法參數(shù),根據(jù)參數(shù)內(nèi)容啟動(dòng)特定數(shù)據(jù)處理算法模塊處理請(qǐng)求參數(shù)中的數(shù)據(jù)處理任務(wù),待處理程序完成之后,收集數(shù)據(jù)處理結(jié)果并JSON序列化后返回。
邏輯控制層連接展現(xiàn)層與計(jì)算服務(wù)層,運(yùn)行于客戶端瀏覽器,采用JavaScript語(yǔ)言開(kāi)發(fā)。該層主要實(shí)現(xiàn)如下邏輯控制過(guò)程:① 接收用戶在界面提交的數(shù)據(jù)處理請(qǐng)求,對(duì)界面參數(shù)進(jìn)行JSON格式化封裝;② 采用POST方法調(diào)用計(jì)算服務(wù)層統(tǒng)一數(shù)據(jù)處理接口API,接收數(shù)據(jù)處理結(jié)果序列化數(shù)據(jù),為了提高數(shù)據(jù)傳輸效率,兼容大規(guī)模數(shù)據(jù)處理請(qǐng)求,本研究采用JSON格式進(jìn)行數(shù)據(jù)傳輸;③ 根據(jù)數(shù)據(jù)處理結(jié)果,調(diào)用展現(xiàn)層對(duì)應(yīng)模塊進(jìn)行數(shù)據(jù)可視化。該層實(shí)現(xiàn)的邏輯過(guò)程如圖3所示。
圖3 邏輯控制層Fig.3 The logical layer
我們的部署環(huán)境是阿里云ECS服務(wù)器,采用CentOS 7.5 X64操作系統(tǒng),用 Apache服務(wù)器作為中間件,服務(wù)器配置為4核CPU,主頻2.5 GHz,內(nèi)存8 GB,互聯(lián)網(wǎng)帶寬5 MB,測(cè)試端采用谷歌瀏覽器。
我們利用RGIS軟件對(duì)本工具數(shù)據(jù)處理結(jié)果進(jìn)行對(duì)比試驗(yàn)。試驗(yàn)數(shù)據(jù)采用了磁偏角45°,磁傾角45°,球體磁異常正演數(shù)據(jù),為驗(yàn)證數(shù)據(jù)處理效果,在正演數(shù)據(jù)中加入隨機(jī)干擾作為噪聲。該數(shù)據(jù)網(wǎng)格大小為101×101。
利用本系統(tǒng)滑動(dòng)平均濾波、方向?qū)?shù)計(jì)算及向上延拓功能計(jì)算結(jié)果和RGIS軟件計(jì)算結(jié)果進(jìn)行了對(duì)比,結(jié)果如圖4所示,其中藍(lán)色等值線為RGIS[7]軟件處理結(jié)果,紅色虛線等值線為本工具數(shù)據(jù)處理結(jié)果??梢钥闯鏊惴ㄅc現(xiàn)有權(quán)威專業(yè)軟件處理結(jié)果一致,數(shù)據(jù)處理結(jié)果正確可靠。
a—含噪聲球體模型磁異常;b—5×5窗口滑動(dòng)平均濾波;c—y方向一階導(dǎo)數(shù);d—向上延拓10 m磁異常a—magnetic anomaly of a sphere model with white noise;b—5×5window moving average filtering;c—first derivative in y direction;d—upward continuation magnetic anomaly for 10 m
對(duì)于在線應(yīng)用程序而言,用戶體驗(yàn)在很大程度上取決于系統(tǒng)響應(yīng)時(shí)間,這包括數(shù)據(jù)上傳時(shí)間、計(jì)算時(shí)間、結(jié)果下載時(shí)間和數(shù)據(jù)圖形繪制時(shí)間。在實(shí)際環(huán)境中測(cè)試,系統(tǒng)處理101×101規(guī)模數(shù)據(jù)時(shí),總響應(yīng)時(shí)間不超過(guò)1 s;由于瀏覽器本身性能限制,經(jīng)測(cè)試,目前系統(tǒng)支持處理最大900×400規(guī)模網(wǎng)格數(shù)據(jù),滿足常規(guī)數(shù)據(jù)處理性能需求。
我們使用手機(jī)、pad、筆記本電腦在Windows、Linux、安卓等多個(gè)平臺(tái)進(jìn)行數(shù)據(jù)處理測(cè)試。結(jié)果顯示該工具均能正確運(yùn)行數(shù)據(jù)導(dǎo)入、處理和結(jié)果導(dǎo)出功能,該工具具有較好跨平臺(tái)應(yīng)用性能,如圖5為安卓移動(dòng)終端應(yīng)用效果圖。
圖5 移動(dòng)終端應(yīng)用效果Fig.5 Mobile terminal application effect
本研究采用云計(jì)算技術(shù),在通用網(wǎng)格數(shù)據(jù)處理算法基礎(chǔ)上,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)在線網(wǎng)格數(shù)據(jù)處理系統(tǒng),該系統(tǒng)具有對(duì)網(wǎng)格數(shù)據(jù)進(jìn)行滑動(dòng)平均濾波、方向?qū)?shù)計(jì)算、頻率域?yàn)V波以及解析延拓等常見(jiàn)功能。通過(guò)對(duì)比實(shí)驗(yàn)驗(yàn)證了該系統(tǒng)的正確性,通過(guò)不同平臺(tái)應(yīng)用測(cè)試,驗(yàn)證了該工具的跨平臺(tái)適用性。該研究為在線物化探數(shù)據(jù)處理系統(tǒng)的設(shè)計(jì)開(kāi)發(fā)提供了技術(shù)解決方案。目前系統(tǒng)尚處在原型系統(tǒng)開(kāi)發(fā)階段,在投入實(shí)用化之前,建議在以下方面進(jìn)一步研究,例如地球物理數(shù)據(jù)處理算法通常耗時(shí)較長(zhǎng),如何發(fā)揮云計(jì)算優(yōu)勢(shì)高效處理多用戶并發(fā)請(qǐng)求有待進(jìn)一步研究解決;如何有效提高大規(guī)模網(wǎng)格數(shù)據(jù)Web端實(shí)時(shí)渲染可視化急需進(jìn)一步研究。