劉鐘尹 陳小斌 蔡軍濤 崔騰發(fā) 趙國澤 湯 吉 歐陽飚
1)中國地震局地質(zhì)研究所,地震動力學(xué)國家重點(diǎn)實(shí)驗(yàn)室,北京 100029
2)應(yīng)急管理部國家自然災(zāi)害防治研究院,北京 100085
經(jīng)過數(shù)十年的發(fā)展,大地電磁(MT)二維反演技術(shù)已經(jīng)發(fā)展得十分成熟,無論是算法程序還是應(yīng)用軟件都已實(shí)用化。在專業(yè)軟件方面,國外的GeoTools(Compagnie Générale de Géophysique,2013)和WinGLink(Schlumberger,2013)等以及國內(nèi)的MTPioneer(陳小斌等,2004)等在各生產(chǎn)單位、大學(xué)和科研院所都擁有大量用戶。在專業(yè)軟件的幫助下,許多研究得以更順利、更方便地產(chǎn)出成果(蔡軍濤等,2010a,b;葉濤等,2013;陳小斌等,2014,2017b,2019;郭春玲等,2018)。
與二維反演相比,MT三維反演有著數(shù)據(jù)預(yù)處理簡單、模型與實(shí)際情況接近、反演結(jié)果更加可靠和穩(wěn)定等優(yōu)點(diǎn),是當(dāng)前的研究熱點(diǎn)和前沿課題之一,該方法也必將取代當(dāng)前主流的二維反演方法。隨著計(jì)算機(jī)計(jì)算能力的提高和反演技術(shù)的突破(Maddenetal.,1989;Newmanetal.,2000;Siripunvarapornetal.,2005),MT三維反演技術(shù)在近幾年有了很大發(fā)展,從最開始的理論測試研究轉(zhuǎn)變?yōu)楝F(xiàn)在的逐漸應(yīng)用于實(shí)際資料的解釋。Siripunvaraporn等(2005,2009)開發(fā)了基于三維數(shù)據(jù)空間算法(Data Space Occam)的WSINV程序;而后,Kelbert等(2008,2014)實(shí)現(xiàn)了基于非線性共軛梯度(NLCG)的ModEM程序。后者避免了靈敏度矩陣的計(jì)算和儲存,極大地減少了內(nèi)存需求、提高了反演速度,是目前應(yīng)用最為廣泛的三維反演算法程序。由于反演的初始模型從二維提升到三維,測線也提升為測面,三維反演的計(jì)算量非常大,WSINV和ModEM都采用了并行編程,以更好地利用計(jì)算資源,提高反演速度。
依托于目前國內(nèi)互聯(lián)網(wǎng)的良好環(huán)境(網(wǎng)絡(luò)費(fèi)用低廉、網(wǎng)絡(luò)速度快、網(wǎng)絡(luò)覆蓋全),加上各類計(jì)算服務(wù)中心和超算的建立,近年來以互聯(lián)網(wǎng)和并行計(jì)算為支撐的云計(jì)算發(fā)展勢頭迅猛。相比云計(jì)算系統(tǒng),單位自行搭建的計(jì)算服務(wù)器往往存在維護(hù)成本高昂、計(jì)算資源有限等問題,因此石油勘探、天氣預(yù)報(bào)、建模仿真、動畫渲染、科研計(jì)算等計(jì)算量和數(shù)據(jù)量大的行業(yè)逐漸從自建服務(wù)器轉(zhuǎn)移到了云計(jì)算系統(tǒng)。
有別于已基本實(shí)現(xiàn)實(shí)際使用功能的三維反演算法程序,三維反演應(yīng)用還處在早期階段。以目前使用較多的Unsworth團(tuán)隊(duì)開發(fā)的MATLAB腳本集M3DET(Turkoglu,2009)為例,其提供了多個(gè)腳本文件,包括生成反演所需的數(shù)據(jù)、模型和參數(shù)文件,結(jié)果模型和擬合曲線顯示等功能,用戶需要手動調(diào)用腳本生成的所需文件,然后再登陸超算計(jì)算集群,自行上傳數(shù)據(jù)進(jìn)行反演計(jì)算,所有反演流程由多種軟件協(xié)同完成,用戶需要熟練使用多種軟件,并且需掌握Linux命令行的使用,對使用者要求較高。類似于正演試錯(cuò)法,所有流程需自己手動完成,不僅工作量大、操作復(fù)雜,還需考慮長期有效保存和管理種類繁復(fù)的反演數(shù)據(jù),是最原始的云計(jì)算方法。
基于此,我們采用Delphi語言開發(fā)了大地電磁三維反演云計(jì)算系統(tǒng)——toPeak。其由云端和客戶端組成,不僅能實(shí)現(xiàn)數(shù)據(jù)的長效管理,還可通過網(wǎng)絡(luò)自動化連接云端進(jìn)行反演計(jì)算。用戶無需了解與Linux和超算計(jì)算相關(guān)的復(fù)雜命令,即可在Windows平臺通過鼠標(biāo)可視化交互操作完成大地電磁三維反演,實(shí)現(xiàn)反演的云計(jì)算。
我們的設(shè)計(jì)目標(biāo)是實(shí)現(xiàn)一套基于服務(wù)端-客戶端(C/S)的云計(jì)算系統(tǒng)平臺,在完善反演數(shù)據(jù)管理的基礎(chǔ)上,于云端集成現(xiàn)今最前沿的大地電磁三維反演算法程序,通過互聯(lián)網(wǎng)連接實(shí)現(xiàn)大地電磁三維反演的全部功能。該系統(tǒng)應(yīng)具備數(shù)據(jù)長期保存的可靠性、可視化交互操作的便利性、長期運(yùn)行的穩(wěn)定性、功能算法的易于擴(kuò)展性、軟件的可維護(hù)性和生命周期長等特點(diǎn)。
圖1 大地電磁三維反演云計(jì)算系統(tǒng)的結(jié)構(gòu)Fig.1 Structure of the three-dimensional magnetotelluric inversion cloud computing system.
結(jié)合設(shè)計(jì)目標(biāo)和需求分析設(shè)計(jì)整個(gè)系統(tǒng)結(jié)構(gòu),如圖1 所示。服務(wù)端部署于超級計(jì)算機(jī)系統(tǒng)(超算)上,包括大地電磁三維反演算法程序(ModEM、WSINV等),借助超算強(qiáng)大的并行計(jì)算資源,基于接收的反演數(shù)據(jù)進(jìn)行反演任務(wù),并對反演結(jié)果數(shù)據(jù)的儲存進(jìn)行配置和管理。結(jié)合互聯(lián)網(wǎng)連接,服務(wù)端成為計(jì)算云端,可通過網(wǎng)絡(luò)傳輸數(shù)據(jù),進(jìn)行反演云計(jì)算??蛻舳瞬渴鹩赪indows端,由Windows可視化數(shù)據(jù)集成處理軟件和中間件組成,是一個(gè)胖客戶端(thick client)??梢暬浖?shí)現(xiàn)了三維反演的數(shù)據(jù)準(zhǔn)備、模型構(gòu)建、反演計(jì)算控制和結(jié)果管理等功能;中間件基于SSH協(xié)議封裝了客戶端與服務(wù)端之間通過互聯(lián)網(wǎng)連接實(shí)現(xiàn)的命令交互和數(shù)據(jù)傳輸功能。
在任務(wù)分配上,云端用于大計(jì)算量的三維反演并行運(yùn)算,客戶端用于反演數(shù)據(jù)集的管理編輯和連接云端進(jìn)行反演數(shù)據(jù)傳輸以及反演控制。由于不承擔(dān)計(jì)算任務(wù),客戶端對于電腦性能的要求很低,只需要Windows XP及以上版本的系統(tǒng)、保持互聯(lián)網(wǎng)連接且能正常訪問云端即可隨時(shí)隨地進(jìn)行大地電磁三維反演操作。這種 “本地?cái)?shù)據(jù)管理+云端計(jì)算”的模式與當(dāng)前云計(jì)算的趨勢一致。
2.1.1 算法介紹
在部署于超算上的服務(wù)端中,大地電磁三維反演算法程序是服務(wù)端的核心部分,該部分集成了當(dāng)前最先進(jìn)的三維反演并行算法——WSINV和ModEM。
WSINV(數(shù)據(jù)空間Occam反演算法)是Siripunvaraporn等(2005,2009)基于Occam反演算法將目標(biāo)函數(shù)計(jì)算迭代式從模型空間(M×M)變換到數(shù)據(jù)空間(N×N)實(shí)現(xiàn)的。在大部分情況下,數(shù)據(jù)參數(shù)量(N)遠(yuǎn)小于模型參數(shù)量(M),且相差好幾個(gè)數(shù)量級。相比于傳統(tǒng)模型空間的Occam反演算法,數(shù)據(jù)空間的Occam反演算法除繼承了Occam算法穩(wěn)定性好、細(xì)節(jié)分辨率高、收斂次數(shù)少等優(yōu)點(diǎn)之外,還大大減少了運(yùn)算量和內(nèi)存消耗。但是,該算法仍需儲存和計(jì)算全部的靈敏度矩陣,總體而言,內(nèi)存消耗仍然較大。其在一次迭代中需要對測點(diǎn)進(jìn)行數(shù)次正演,測點(diǎn)越多、單次迭代所需計(jì)算量越大。
ModEM(非線性共軛梯度反演算法)是Kelbert等(2008,2014)基于非線性共軛梯度(NLCG)法實(shí)現(xiàn)的反演算法。其采用共軛梯度(CG)方法直接最小化反演目標(biāo)函數(shù),避免計(jì)算和存儲靈敏度矩陣,極大地減小了內(nèi)存存儲消耗和運(yùn)算量。其在一次迭代計(jì)算中僅需2次附加的正演及1次數(shù)據(jù)擬合的正演,總共僅需3次正演。
超算的最大特點(diǎn)是計(jì)算節(jié)點(diǎn)多,并行程序能夠充分利用計(jì)算資源來提高計(jì)算速度。大地電磁正演具有天然的并行性,在正演過程中,不同頻率的正演計(jì)算是完全獨(dú)立的,2種極化源(X極化源和Y極化源)的計(jì)算也是完全獨(dú)立的。無論是WSINV還是ModEM,它們都采用Message Passing Interface(MPI)接口來實(shí)現(xiàn)程序的并行化,程序并行策略都是單個(gè)極化源、單個(gè)頻率用一個(gè)獨(dú)立的進(jìn)程進(jìn)行計(jì)算。如對40個(gè)頻點(diǎn)的觀測數(shù)據(jù)進(jìn)行正演計(jì)算時(shí)需要2個(gè)極化源,則可以采用80個(gè)核同時(shí)并行計(jì)算,再加1個(gè)協(xié)調(diào)處理核,即采用81個(gè)計(jì)算核即可實(shí)現(xiàn)完美的并行計(jì)算。
2.1.2 數(shù)據(jù)結(jié)構(gòu)
在服務(wù)端,除了最核心的計(jì)算程序外,還需要搭建一個(gè)良好的數(shù)據(jù)結(jié)構(gòu)與之配套。三維反演計(jì)算會產(chǎn)生大量的結(jié)果文件,對于服務(wù)端來說,是一個(gè) “一對多”的情況,會有很多用戶連接到同一個(gè)服務(wù)端進(jìn)行三維反演計(jì)算,進(jìn)而產(chǎn)生更多的結(jié)果文件。因此,設(shè)計(jì)搭建一個(gè)合理的數(shù)據(jù)儲存結(jié)構(gòu),是保證服務(wù)端正常運(yùn)行的關(guān)鍵之一。
圖2 顯示了服務(wù)端的數(shù)據(jù)儲存結(jié)構(gòu)。首先,針對不同的用戶賬號設(shè)置不同的用戶文件夾,以保證各個(gè)用戶之間的數(shù)據(jù)互不干擾。其次,針對每個(gè)用戶,在其用戶文件夾下生成一個(gè)數(shù)據(jù)儲存的根目錄,所有的數(shù)據(jù)和參數(shù)文件都存放于該根目錄文件夾下,按照 “數(shù)據(jù)工程—反演作業(yè)—數(shù)據(jù)文件” 3個(gè)層級進(jìn)行存放,層次分明。
圖2 服務(wù)端的數(shù)據(jù)儲存結(jié)構(gòu)Fig.2 Server data storage structure.
至此,服務(wù)端設(shè)計(jì)完畢,它定位于云端的計(jì)算和儲存部分,部署了反演算法程序,用于進(jìn)行三維反演運(yùn)算,并對反演結(jié)果進(jìn)行儲存和管理。
2.2.1 設(shè)計(jì)原理
作為云端兩大組成部分(服務(wù)端和互聯(lián)網(wǎng))之一,互聯(lián)網(wǎng)部分基于當(dāng)今的網(wǎng)絡(luò)環(huán)境,圍繞服務(wù)端進(jìn)行功能封裝,實(shí)現(xiàn)服務(wù)端與客戶端的連接。
從云端的計(jì)算和儲存的定位進(jìn)行分析。針對計(jì)算,互聯(lián)網(wǎng)部分需要實(shí)現(xiàn)控制計(jì)算開始和停止、計(jì)算過程監(jiān)測等功能;針對儲存,互聯(lián)網(wǎng)部分需要實(shí)現(xiàn)數(shù)據(jù)的上傳、下載和刪除等功能。由于互聯(lián)網(wǎng)部分所有功能都要在公開網(wǎng)絡(luò)環(huán)境中進(jìn)行,為了保證數(shù)據(jù)的安全,采用加密的網(wǎng)絡(luò)傳輸協(xié)議SSH。
現(xiàn)行的超算計(jì)算集群均部署了作業(yè)資源管理系統(tǒng),用于管理和分配并行程序的計(jì)算和資源(段新華等,2009),所有計(jì)算控制操作都基于該系統(tǒng)。目前國內(nèi)主流的超算所使用的資源管理系統(tǒng)不盡相同,如“天河1號”和“天河2號”使用SLURM(Yooetal.,2003),“神威太湖之光”使用Sunway(Fuetal.,2016),而小規(guī)模的計(jì)算集群一般采用PBS(Henderson,1995)和SLURM,如中國地震局地質(zhì)研究所自建的計(jì)算集群就采用PBS系統(tǒng)。這些作業(yè)資源管理系統(tǒng)所包含的功能大體一致,都可實(shí)現(xiàn)計(jì)算任務(wù)的提交、查看、停止和刪除,計(jì)算資源的查看和分配等功能,但不同的作業(yè)資源系統(tǒng)具體的操作命令有很大的不同。
至此,從服務(wù)端出發(fā),基于SSH協(xié)議,互聯(lián)網(wǎng)部分針對不同的超算,實(shí)現(xiàn)了控制計(jì)算和數(shù)據(jù)傳輸?shù)墓δ懿ζ溥M(jìn)行封裝,實(shí)現(xiàn)云端的連接部分。服務(wù)端和互聯(lián)網(wǎng)部分共同構(gòu)成了完整的云端。
2.2.2 中間件
上節(jié)提到不同的作業(yè)資源管理系統(tǒng)有不一樣的操作命令。為使互聯(lián)網(wǎng)部分適配不同超算,同時(shí)保證系統(tǒng)的擴(kuò)展性,我們依托于IP WorksSSH控件,以多態(tài)的形式實(shí)現(xiàn)了一個(gè)中間件,針對不同作業(yè)資源管理系統(tǒng)所實(shí)現(xiàn)的控制計(jì)算和數(shù)據(jù)傳輸功能進(jìn)行了抽象和封裝,對外提供一致的API接口函數(shù)(圖3)。
圖3 中間件的封裝與多態(tài)Fig.3 The encapsulation and polymorphism of the middleware.
圖3 中,TInvBase為中間件的基類,其內(nèi)聲明了中間件的所有方法并實(shí)現(xiàn)了一部分,包括開始、停止反演,獲取反演信息,獲取反演作業(yè)列表,上傳、下載反演數(shù)據(jù),獲取計(jì)算集群節(jié)點(diǎn)信息等。斜體字為抽象方法或虛方法,留待派生類中實(shí)現(xiàn)。圖3 第2排列出了從基類派生出的多個(gè)派生類,它們分別對應(yīng)不同的超算、計(jì)算集群,這些計(jì)算集群有不同的架構(gòu),采用了不同的作業(yè)資源管理系統(tǒng),故也采用不同的代碼實(shí)現(xiàn)相同的功能。在具體使用時(shí),只需要聲明一個(gè)基類變量,再根據(jù)實(shí)際情況采用工廠方法模式(Gammaetal.,1994)將其實(shí)例化為不同類型的派生類對象,即可使用一個(gè)變量完成對不同超算、計(jì)算集群的操作。再添加新的超算時(shí),只需要從基類派生,然后實(shí)現(xiàn)指定的基類抽象方法或虛方法,就能完成對新添加超算的控制操作。
通過該中間件,無論針對哪個(gè)超算計(jì)算集群,只需調(diào)用統(tǒng)一的API接口函數(shù),即可實(shí)現(xiàn)控制計(jì)算和數(shù)據(jù)傳輸?shù)墓δ?,非常簡潔方便。中間件默認(rèn)已經(jīng)添加配置了“天河1號”、“ 天河2號”、“神威太湖之光”等超算,這些平臺接入后可直接使用;此外,在接口不變的情況下也可很方便地添加其他超算計(jì)算集群。
客戶端包括Windows可視化數(shù)據(jù)集成處理軟件和中間件。由于前文已經(jīng)介紹了中間件,這里主要介紹Windows可視化數(shù)據(jù)集成處理軟件,即整個(gè)云計(jì)算系統(tǒng)中用戶直接接觸操作的部分。
2.3.1 系統(tǒng)框架
區(qū)別于一般單線流程的算法程序,客戶端軟件在面向?qū)ο蟪绦蛟O(shè)計(jì)思想(Object Oriented Programming,OOP)的基礎(chǔ)上進(jìn)行設(shè)計(jì),它繼承了MTPioneer(簡稱MTP)軟件以數(shù)據(jù)為核心的設(shè)計(jì)思路(陳小斌等,2004),利用數(shù)據(jù)工程對象封裝儲存了所有MT數(shù)據(jù)、處理與解釋結(jié)果。之后圍繞該數(shù)據(jù)工程實(shí)現(xiàn)數(shù)據(jù)處理反演等操作,再利用可視化技術(shù)將這些處理反演的過程及結(jié)果以圖形的形式顯示出來。圖4 直觀地展示了這種思想,同時(shí)也展示了軟件的主要功能,所有操作都圍繞著數(shù)據(jù)工程進(jìn)行。
圖4 客戶端主要的設(shè)計(jì)思想Fig.4 Main design idea of client.
圖5 客戶端的架構(gòu)Fig.5 Structure of client.
從程序設(shè)計(jì)角度來看,遵循 “高內(nèi)聚、低耦合”的原則,客戶端軟件由3部分組成:數(shù)據(jù)層、邏輯層和顯示層(圖5)。其中數(shù)據(jù)層為客戶端的核心部分,包含原始數(shù)據(jù)和所有反演結(jié)果數(shù)據(jù);邏輯層圍繞著數(shù)據(jù)層,包含客戶端軟件的主要處理和反演功能;顯示層為軟件最外層的部分,用于數(shù)據(jù)處理、解釋的過程以及結(jié)果的顯示。
2.3.2 功能介紹
(1)數(shù)據(jù)的儲存與管理
使用客戶端軟件時(shí),需要新建數(shù)據(jù)工程或打開已有的數(shù)據(jù)工程,軟件所有的操作都基于數(shù)據(jù)工程(圖6),能夠很方便地實(shí)現(xiàn)對不同MT數(shù)據(jù)的建立、打開、保存或?qū)С鲂鹿こ痰裙δ?。?shù)據(jù)工程有3種創(chuàng)建途徑,可基于EDI功率譜文件、MTP導(dǎo)出的阻抗傾子文件以及視電阻率相位文件建立。在創(chuàng)建數(shù)據(jù)工程時(shí),可一次建立整個(gè)工程,也可只建立部分測點(diǎn),再根據(jù)需求繼續(xù)添加測點(diǎn)數(shù)據(jù)。
圖6 客戶端的數(shù)據(jù)工程結(jié)構(gòu)Fig.6 Client’s data project structure.
在客戶端軟件中,根據(jù)建立數(shù)據(jù)工程的不同方式,可導(dǎo)入不同類型的數(shù)據(jù)。阻抗傾子以及視電阻率相位均可被導(dǎo)入作為原始數(shù)據(jù),既可兼容只有視電阻率相位的老舊數(shù)據(jù),也能夠使用完備的阻抗傾子數(shù)據(jù)進(jìn)行更多處理操作。數(shù)據(jù)工程包括4個(gè)部分:工程信息、原始數(shù)據(jù)、結(jié)果數(shù)據(jù)和配置文件,每個(gè)數(shù)據(jù)工程就是一個(gè)完備的數(shù)據(jù)集。基于此數(shù)據(jù)集,用戶可持續(xù)性地針對該工區(qū)進(jìn)行數(shù)據(jù)處理、編輯、反演等操作,也可以很方便地把數(shù)據(jù)工程復(fù)制到U盤等設(shè)備或上傳到同步云盤,隨時(shí)開展工作。
(2)云端配置與應(yīng)用
圖7 云端配置與應(yīng)用功能Fig.7 Function of cloud configuration and application.
為便于連接和使用云端進(jìn)行云計(jì)算,客戶端軟件實(shí)現(xiàn)了完整的云端配置與應(yīng)用功能(圖7)。首先,云端配置功能實(shí)現(xiàn)了客戶端對云端超算連接和運(yùn)行參數(shù)的設(shè)置及儲存,用戶可以很方便地添加新的云端信息,使客戶端軟件能夠正常連接云端。其次,基于中間件實(shí)現(xiàn)了查看云端超算計(jì)算節(jié)點(diǎn)資源和計(jì)算設(shè)置等功能,用戶可連接指定的云端,查看上面的計(jì)算資源,然后設(shè)置反演計(jì)算所需要的計(jì)算資源(計(jì)算節(jié)點(diǎn)數(shù)和核數(shù))。最后,仍基于中間件實(shí)現(xiàn)了在云端進(jìn)行反演計(jì)算的功能,包括從客戶端提交反演任務(wù)、上傳數(shù)據(jù)到云端及發(fā)送命令開始反演,計(jì)算并監(jiān)控反演計(jì)算過程,反演結(jié)束后可從云端下載反演結(jié)果。
依托于可視化交互操作界面,用戶可以很方便地對云端配置進(jìn)行管理,除了默認(rèn)的云端配置外,也能手動添加新的云端超算,適用范圍很廣??蛻舳送ㄟ^中間件與云端實(shí)現(xiàn)了連接,由于中間件良好的封裝和多態(tài)設(shè)計(jì),區(qū)別于其他現(xiàn)有軟件輸入命令進(jìn)行云端遠(yuǎn)程操作的模式,用戶只需用鼠標(biāo)點(diǎn)擊相關(guān)按鈕,即可實(shí)現(xiàn)包括提交反演任務(wù)、查看反演流程、停止反演、取回反演數(shù)據(jù)等操作,且所有云端和反演信息都在軟件界面上以圖形直觀地顯示。
圖8 初始模型構(gòu)建功能Fig.8 Function of initial model building.
(3)初始模型構(gòu)建
在大地電磁三維反演中,初始模型是一個(gè)重要的參數(shù)。一個(gè)合適的初始模型能夠使反演收斂速度更快,使反演結(jié)果更合理,而易用的初始模型構(gòu)建功能則能夠幫用戶更容易地構(gòu)建理想的初始模型。客戶端軟件的初始模型構(gòu)建主要包含了4種模型的自動構(gòu)建功能(圖8):構(gòu)建均勻半空間模型、原反演網(wǎng)格模型插值構(gòu)建模型、印模法構(gòu)建模型和構(gòu)建帶地形模型,足以滿足用戶的不同需求。
首先,可實(shí)現(xiàn)最基本的構(gòu)建均勻半空間模型的功能?;谟脩暨x擇的參與反演的測點(diǎn),自動對測點(diǎn)所在區(qū)域進(jìn)行二維網(wǎng)格剖分生成XY平面核心區(qū)域網(wǎng)格,向外按照一定步長延拓生成延展區(qū)網(wǎng)格,向Z軸方向按照一定步長生成垂直網(wǎng)格,所有生成的網(wǎng)格單元的電阻率值都相同。構(gòu)建所用到的參數(shù),包括XY平面核心區(qū)域網(wǎng)格單元大小、延展區(qū)網(wǎng)格數(shù)和增長步長、垂直網(wǎng)格深度分界和增長步長、模型電阻率值等都能任意進(jìn)行修改,模型構(gòu)建非常靈活。
其次,可實(shí)現(xiàn)原反演網(wǎng)格模型插值構(gòu)建模型的功能。一次反演很難得到最終的反演結(jié)果,往往需要將結(jié)果模型作為初始模型重新編輯,再多次反演才能得到最后結(jié)果。在已有反演結(jié)果模型的前提下,可重新設(shè)計(jì)初始模型網(wǎng)格,然后用結(jié)果模型在初始模型網(wǎng)格下進(jìn)行插值,得到新的模型。
再次,可實(shí)現(xiàn)印模法構(gòu)建模型功能。一般情況下,用原反演網(wǎng)格模型插值構(gòu)建得到的初始模型直接進(jìn)行反演是不太推薦的方法,因?yàn)榉囱萁Y(jié)果中可能存在很多局部的小異常和 “掛面條”現(xiàn)象,這些小異常中可能存在假異常,而 “掛面條”現(xiàn)象更會影響反演結(jié)果。印模法選定特定的深度,將印模深度以下的模型設(shè)置為均勻半空間模型,印模深度以上的模型采用加權(quán)求和的方式求得新的電阻率值,至此得到既在淺部保留已有反演結(jié)果主要輪廓、又在深部去除 “掛面條”現(xiàn)象的初始模型。用戶在進(jìn)行印模法操作時(shí)可設(shè)置印模深度、印模電阻率和印模加權(quán)求和方式,其中加權(quán)求和方式有開方加權(quán)、線性加權(quán)和平方加權(quán)3種,從開方到平方加權(quán),對模型的修改依次減小。
最后,可實(shí)現(xiàn)帶地形模型構(gòu)建功能。當(dāng)反演區(qū)域地形起伏變化較大時(shí),用帶地形的初始模型進(jìn)行反演,其結(jié)果要比不帶地形模型的反演更為合理。目前為三維模型添加地形信息是一個(gè)難題,我們實(shí)現(xiàn)的帶地形模型構(gòu)建功能可通過導(dǎo)入規(guī)則網(wǎng)格化的地形信息構(gòu)建帶地形模型,十分簡便。構(gòu)建帶地形模型的前提是要準(zhǔn)備好反演區(qū)域的地形信息,用戶對準(zhǔn)備好的地形信息文件進(jìn)行規(guī)則網(wǎng)格化后,即可將其導(dǎo)入生成帶地形的模型,并以三維顯示的方式查看地形情況。同時(shí)可根據(jù)計(jì)算精度修改模型的地形部分垂直單元網(wǎng)格來調(diào)整地形的垂直分辨率,也可實(shí)現(xiàn)對水體的導(dǎo)入和修改。
除以上4項(xiàng)主要功能外,在初始模型構(gòu)建部分還能通過多種方式對模型進(jìn)行手動微調(diào),結(jié)合這些功能,用戶能很方便地構(gòu)建自己想要的模型,不僅可進(jìn)行反演計(jì)算,也可進(jìn)行正演驗(yàn)證。
(4)多種數(shù)據(jù)圖形的顯示、編輯與輸出
客戶端軟件能夠?qū)Χ喾N數(shù)據(jù)進(jìn)行顯示和編輯,包括測點(diǎn)分布圖(經(jīng)緯度坐標(biāo)和相對直角坐標(biāo))、測點(diǎn)的視電阻率相位數(shù)據(jù)、測點(diǎn)的阻抗傾子數(shù)據(jù)、測點(diǎn)的模型曲線、模型顯示、模型地形信息三維顯示、反演結(jié)果擬合曲線和反演收斂曲線等。用戶可以在客戶端中對數(shù)據(jù)進(jìn)行圖形化并查看,也可以制作或?qū)С鰣D形文本文件,使用其他專業(yè)圖片編輯軟件進(jìn)行修改和編輯。
(5)多種數(shù)據(jù)的輸入、輸出功能
客戶端軟件提供了多種數(shù)據(jù)和模型的輸入、輸出接口:
提供了多種數(shù)據(jù)參數(shù)的輸出接口(原始阻抗傾子、原始視電阻率相位、阻抗傾子響應(yīng)、視電阻率相位響應(yīng)、測點(diǎn)反演模型值、坐標(biāo)轉(zhuǎn)換等),方便用戶導(dǎo)出數(shù)據(jù),使用Surfer或Grapher等專業(yè)軟件繪制圖件。
提供了三維反演結(jié)果模型的輸出接口,輸出模型文件采用4列 “xyzv”模式排列,可輸出經(jīng)緯度模型或相對直角坐標(biāo)的模型,方便用戶采用toPeer(陳小斌等研發(fā)的專門針對大地電磁三維反演結(jié)果的三維可視化繪圖軟件)、Voxler或Tecplot等專業(yè)三維成圖軟件進(jìn)行模型繪制、解釋等后續(xù)操作。
提供了斷層的輸入、輸出接口,用戶可輸入斷層數(shù)據(jù),并在測點(diǎn)分布圖上進(jìn)行顯示,也可裁剪反演區(qū)域內(nèi)的斷層數(shù)據(jù)并輸出,以便在toPeer等軟件中顯示三維反演結(jié)果時(shí)進(jìn)行斷層顯示。
圖9 toPeak操作流程示意圖Fig.9 Workflow of toPeak.
如圖9 所示,使用云計(jì)算系統(tǒng)toPeak進(jìn)行三維MT反演的主要流程包括以下幾步:首先,在客戶端導(dǎo)入數(shù)據(jù)并建立數(shù)據(jù)工程后,根據(jù)測點(diǎn)分布和數(shù)據(jù)質(zhì)量情況,對數(shù)據(jù)進(jìn)行旋轉(zhuǎn)、處理和篩選操作,構(gòu)建出理想的初始模型,完成一系列反演參數(shù)的設(shè)置。之后連接云端,設(shè)計(jì)云計(jì)算的節(jié)點(diǎn)數(shù)和核數(shù),提交反演任務(wù),監(jiān)控反演流程并查看當(dāng)前的反演信息,下載任意次迭代的結(jié)果數(shù)據(jù)。最后,在反演結(jié)果顯示界面查看所有反演情況,包括收斂曲線、單點(diǎn)擬合曲線、平面擬合情況等。對于多次的反演結(jié)果,可選定其中一個(gè)作為反演結(jié)果,將該次反演的所有設(shè)置和結(jié)果導(dǎo)入到客戶端主界面中作為下一次反演時(shí)數(shù)據(jù)篩選和參數(shù)設(shè)置的依據(jù),同時(shí)也可將反演結(jié)果模型以文本文件的形式導(dǎo)出,用其他專業(yè)的三維顯示軟件進(jìn)行查看和解釋。
圖10a、b顯示了測點(diǎn)在經(jīng)緯度下和相對直角坐標(biāo)下的分布情況,通過鼠標(biāo)框選參與反演計(jì)算的測點(diǎn)。在相對直角坐標(biāo)系顯示狀態(tài)下,能對測點(diǎn)坐標(biāo)和阻抗傾子數(shù)據(jù)進(jìn)行旋轉(zhuǎn),盡可能減少構(gòu)建初始模型時(shí)產(chǎn)生的廢網(wǎng)格。
圖10 部分功能的示意圖Fig.10 Software’s functions.a 測點(diǎn)分布經(jīng)緯度顯示;b 測點(diǎn)分布相對直角坐標(biāo)顯示;c 初始模型構(gòu)建;d 地形顯示;e 反演數(shù)據(jù)擬合顯示;f 反演擬合殘差顯示
圖10c 顯示了初始模型構(gòu)建部分中模型電阻率的分布情況。模型在計(jì)算域(每個(gè)單元網(wǎng)格的大小一致)或物理域(每個(gè)單元網(wǎng)格按照實(shí)際大小設(shè)置)下進(jìn)行顯示,用戶可構(gòu)建出均勻半空間模型,也可通過原反演網(wǎng)格模型插值和印模法對模型進(jìn)行修改,還能通過導(dǎo)入地形信息構(gòu)建帶地形的模型,最后也可使用鼠標(biāo)調(diào)整模型的電阻率值。
圖10d 顯示了帶地形模型的地形情況。圖中以3D的形式顯示了模型的地形情況,其內(nèi)也包括測點(diǎn)分布,用戶可以很方便地旋轉(zhuǎn)、拖動、縮放顯示的地形圖像,查看模型的地形是否符合預(yù)期。
圖10e 顯示了反演結(jié)果數(shù)據(jù)的擬合情況。該圖顯示了測點(diǎn)參與計(jì)算頻率的擬合情況(散點(diǎn)表示實(shí)測數(shù)據(jù),曲線表示擬合曲線),通過勾選上面的顯示設(shè)置項(xiàng),可動態(tài)顯示不同測點(diǎn)的擬合情況,查看各個(gè)測點(diǎn)的數(shù)據(jù)擬合質(zhì)量,為下次反演提供數(shù)據(jù)篩選的依據(jù)。
圖10f 顯示了反演結(jié)果界面中數(shù)據(jù)擬合的殘差情況。該圖在平面上顯示了測點(diǎn)的擬合情況,通過勾選上面的顯示設(shè)置項(xiàng),可動態(tài)顯示不同條件下測點(diǎn)的平面擬合情況,可為篩選數(shù)據(jù)進(jìn)行下次反演提供一定的依據(jù)。
圖11 部分功能的示意圖Fig.11 Software’s function.a 選擇云端計(jì)算節(jié)點(diǎn)和計(jì)算核;b 云端任意數(shù)據(jù)工程指定反演任務(wù)的擬合情況;c 當(dāng)前數(shù)據(jù)工程指定反演的實(shí)時(shí)計(jì)算信息
圖11a 顯示了云端計(jì)算節(jié)點(diǎn)和計(jì)算核的選擇情況。在向云端提交反演任務(wù)前,需要設(shè)置反演任務(wù)運(yùn)行所需要的節(jié)點(diǎn)CPU,目前有2種方式可供選擇:整體選擇節(jié)點(diǎn)數(shù)和核數(shù)(每個(gè)節(jié)點(diǎn)參與計(jì)算的核數(shù)相同)以及選擇指定節(jié)點(diǎn)和對應(yīng)的核數(shù)(對每個(gè)節(jié)點(diǎn)參與計(jì)算的核進(jìn)行單獨(dú)設(shè)置)。
圖11b 顯示了云端任意數(shù)據(jù)工程指定反演任務(wù)的擬合情況。用戶通過點(diǎn)擊左側(cè)的云端上已存在的反演任務(wù)名來獲取指定反演任務(wù)的計(jì)算信息。計(jì)算信息包括反演基本信息、RMS擬合曲線、正則化因子λ更新情況和反演日志。
圖11c 顯示了當(dāng)前數(shù)據(jù)工程指定反演的實(shí)時(shí)計(jì)算信息。用戶通過下拉菜單選擇反演任務(wù)來獲取該反演的實(shí)時(shí)計(jì)算信息。計(jì)算信息包括反演基本信息、RMS擬合曲線、正則化因子λ的更新情況和反演日志。通過取回?cái)?shù)據(jù)按鈕可取回迭代結(jié)果,在結(jié)果顯示部分做進(jìn)一步操作。
由于toPeak大大降低了三維反演的門檻,在其研發(fā)成型后,很快得到了推廣應(yīng)用,基于該系統(tǒng)有多個(gè)成果發(fā)表(陳小斌等,2017a;崔騰發(fā),2019;鄧琰,2019;蔡軍濤等,2020;崔騰發(fā)等,2020;趙凌強(qiáng)等,2020),也幫助完成了多個(gè)項(xiàng)目。圖12 展示了某地震構(gòu)造區(qū)的三維反演結(jié)果,從中可以看出明顯的高、低阻交錯(cuò)特征和橫向上殼內(nèi)高導(dǎo)層明顯的不均勻性,可能與該地區(qū)歷史上曾經(jīng)發(fā)生的一次大型構(gòu)造變形運(yùn)動有關(guān)。圖13 展示了某油田大地電磁剖面的三維反演結(jié)果,三維反演解決了該研究中二維反演結(jié)果與已知的地質(zhì)資料矛盾的問題。圖14 展示了已開挖的某鐵路隧道的AMT老數(shù)據(jù)三維反演結(jié)果,反演結(jié)果與已知地質(zhì)資料非常一致。
圖12 某地震地殼的三維電性結(jié)構(gòu)分布圖(崔騰發(fā)等,2020)Fig.12 Three-dimensional electrical structure distribution map of crust of an earthquake(CUI Teng-fa et al.,2020).
圖13 某油田MT剖面的三維反演結(jié)果Fig.13 Three-dimensional inversion result of MT profile of an oilfield.
圖14 某鐵路隧道AMT數(shù)據(jù)的三維反演結(jié)果Fig.14 Three-dimensional inversion result of AMT data of a railway tunnel.
本文介紹了自主研發(fā)的大地電磁三維反演云計(jì)算系統(tǒng)——toPeak。該系統(tǒng)在設(shè)計(jì)過程中充分使用了面向?qū)ο蟮某绦蛟O(shè)計(jì)技巧和模塊化的設(shè)計(jì)風(fēng)格,由客戶端和云端共同構(gòu)成了完整的三維MT反演軟件云系統(tǒng)。以此作為平臺,只需要修改少量代碼,即可掛載各種三維MT反演計(jì)算程序并連接各種超算計(jì)算集群。
作為一款專業(yè)軟件,toPeak以數(shù)據(jù)工程為核心,以可視化操作為包裝,實(shí)現(xiàn)了流程化三維MT反演的全部功能,大大降低了三維MT反演難度,促進(jìn)了三維MT反演的實(shí)用化。
雖然目前toPeak實(shí)現(xiàn)了三維反演操作的全部功能,但還遠(yuǎn)達(dá)不到完善的程度。隨著MT理論不斷深入研究和計(jì)算軟硬件技術(shù)不斷發(fā)展,更多新技術(shù)和新算法將不斷出現(xiàn),我們也將對toPeak進(jìn)行長期的完善維護(hù)和功能升級,以跟上技術(shù)發(fā)展的腳步。
致謝文中使用的三維反演算法程序ModEM由Egbert、Kelbert和Meqbel開發(fā)并授權(quán)下載使用;三維反演算法程序WSINV為趙國澤研究員自該程序作者Siripunvaraporn處購買;長江大學(xué)和中鐵第一勘察設(shè)計(jì)院集團(tuán)有限公司提供了部分三維測試數(shù)據(jù)。在此一并表示感謝!