?

基于Voxler的煤炭地質三維自動可視化應用*

2022-01-22 09:01余永鵬毛興軍馬永祥王嘉文陸愛國
礦山測量 2021年6期
關鍵詞:數據源底板鉆孔

余永鵬,毛興軍,王 貝,馬永祥,王嘉文,陸愛國,譚 浩

(寧夏回族自治區煤炭地質局,寧夏 銀川 750000)

煤炭是關系國民經濟和社會發展的重要能源[1-3]。1965年以來,能源消費結構中煤炭占比始終維持在55%以上[4]。煤炭勘查是煤炭開發利用的先行工作,合理布置勘查工作和利用多源數據進行多維成果展示是相輔相成的,且尤為重要。傳統地質工作中,資料分析或成果展示多數都是對單一方法采用一二維繪圖的方式實現,也有些情況是采用幾種方法的“套合圖”達到綜合分析的目的,都可能存在對地質數據分析不足的缺點。

近年來,越來越多的領域利用三維可視化技術取得了顯著效果[5-8],尤其是醫學領域,三維重建成像技術對病灶的大小、位置、形態的展示更精準[9],極大提高了疾病救治效果。地質三維可視化與醫學三維成像在技術上具有一定的相似性。地質三維可視化模型能以一定比例模擬展示地質情況,使地質人員能以真實視角觀察和分析地質現象,解釋地質規律,研究和部署地質勘查工作,提高地質數據的可視性,更好發揮地質數據價值[10]。

從20世紀80年代開始,前人對地質三維建模技術進行了大量的研究工作。經過近40年的發展,三維地質建模技術在發達國家的使用已較為普遍,很多礦權交易市場都要求申請礦權交易的區塊提供三維地質模型。國內學者開展相關研究工作起步較晚,經過無數科研工作者近30年的努力,近些年有若干功能較為穩定的產品問世,如北京科技大學研制和改進的“礦床三維可視化仿真系統”、中國礦業大學研制開發的“GeoMo3D”、中地數碼公司研發的“MapGIS”等,這些軟件已經相對成熟,在國內占據了一定市場[10-12]。

因勘查數據管理體系的不同和數據的多源性,三維地質可視化技術在煤炭地質領域的成功應用案例還不多見。在一些中小型地質勘查項目中,因建模流程相對繁瑣,不易推廣應用。Voxler軟件是Golden Software公司出品的三維科學繪圖軟件,與Surfer軟件同出一源,其操作邏輯、數據格式等具有相似性和兼容性,近年來在地學領域得到了廣泛應用[13-18]。該軟件提供了豐富的二次開發接口,通過計算機編程或腳本“操作”軟件,定制開發適合自身的建模軟件,能有效降低地質三維可視化模型的建立難度。

本文以寧夏某井田的煤炭地質勘查數據為例,利用Visual C++對Voxler軟件進行二次開發,實現了煤炭地質三維可視化模型的自動建立,說明了該技術的優勢。

1 煤炭地質三維可視化技術

在煤炭勘查中會投入物探、鉆探、測繪等多種方法手段,建立煤炭地質三維可視化模型的目的是通過多源數據的三維分析研究地層的展布、形態、煤層分布等情況。建模過程中重點研究的內容有兩方面:一是鉆孔三維可視化模型建立;二是煤巖層底界三維可視化模型建立[18]。

1.1 鉆孔三維可視化

鉆探是一種直接的地質勘查方法。建立鉆孔三維可視化模型對研究地層和巖性分布規律有重要意義,其主要內容是建立鉆孔的三維軌跡,并在此基礎上展示地層和巖性。

鉆孔三維軌跡是利用一系列離散測點上的孔斜數據(測點深度、傾角、方位角),通過相應的數學計算后獲得。鉆孔軌跡的計算方法有最小曲率法、平均角度法、平衡切線法等數十種方法,不同方法計算得到的結果也存在一定差異,目前應用較多的是最小曲率法[19-20]。得到鉆孔軌跡數據后,與地層和巖層頂底板深度數據進行綜合處理,即可顯示鉆孔柱狀。

建立鉆孔模型所需數據有3類,分別為鉆孔孔口基本數據、測斜數據和地層分層數據,數據格式如表1、表2和表3所示。為了提高柱狀模型可視性和展示效果,巖性由柱狀顏色表示,地層年代由柱狀直徑(粗細)表示。地層和巖性也需采用數字代號代替。建成的鉆孔三維模型效果如圖1所示。

表1 鉆孔孔口基本數據一覽表

表2 鉆孔測斜數據一覽表

表3 鉆孔地層分層數據一覽表

圖1 鉆孔柱狀三維可視化模型示意圖

1.2 煤巖層底界三維可視化

在煤炭地質勘查中,通過煤巖層底界形態可以研究地層展布和構造發育情況[11]。在二維圖形中,一般通過繪制煤層底板等高線圖或剖面圖進行研究,存在難以進行立體對比分析的不足。三維模型可以直接展示地層的高低起伏,能“看見”地層的展布形態,對構造等進行直接分析。

煤巖層底界三維模型通過建立數字高程模型(DEM)或規則矩形網格(GRD)實現,即通過鉆孔(或其他勘查方法)提取煤巖層底板上一系列點的三維坐標,然后對離散點進行內插值的方式形成DEM模型或GRD網格,目前有很多軟件和算法可以實現[21-22]。與Voxler兼容較好的軟件是Surfer,該軟件提供了多種網格化的方法[23],其中,平均角度法、平衡切線法、最小曲率法和切線法等方法可以加載斷層或斷裂,生成的GRD文件中可以顯示斷層信息。

2 自動可視化建模方法

2.1 Voxler建模方法

Voxler是一款三維科學可視化軟件,能展示矢量圖、等值面圖、切片圖、流線圖、散點圖、體積渲染圖、鉆孔柱狀等三維圖形,對地質數據進行多種復雜分析和運算。

該軟件對模型采用模塊化的方式管理。模塊基本分為數據源模塊、計算模塊和圖形輸出模塊3類,與此對應的建模步驟也分為數據輸入、數據處理和圖形輸出3步。模塊之間通過“堆積”和“連接”方式實現數據輸入輸出,修改模塊屬性可實現不同功能,如通過修改數據源模塊屬性可以匹配源數據的格式和類型。

2.2 基于Voxler的自動可視化建模流程

通過人工操作方式建模時,通常由操作者判定每一步操作的正確性和合理性。自動可視化建模是通過計算機“操作”和“控制”建模軟件的運行,基本流程操作、模塊屬性修改、圖形修飾工作均由計算機完成。因此,自動可視化建模必須要建立正確合理的流程,在建模過程中無需判定操作的正確性與合理性,最后由操作者判斷模型是否可用,是否有必要進行修飾工作。

通過對煤炭地質三維可視化技術的研究,結合操作流程和Voxler軟件功能特征,建立了煤炭地質三維自動可視化建模流程,如圖2所示。該流程主要由鉆孔三維自動可視化建模和煤巖層底板三維自動可視化建模兩個子流程組成。

圖2 煤炭地質三維自動可視化建模流程圖

鉆孔自動建模中,一次性導入鉆孔建模所需的3類數據后形成相應的數據源模塊,在各數據源模塊中修改相應屬性,以匹配鉆孔數據特有的數據格式后,全部“連接”至“WellData”模塊,對3類數據進行綜合處理計算,然后,通過“WellRender”模塊實現三維可視化展示。

煤巖層底板自動建模中,流程可細分為兩部分:第一部分為一次性批量導入一個或多個底板文件,生成相應的數據源模塊;第二部分是依次用“HeightField”模塊生成三維模型圖??紤]到模塊名稱沖突的問題,需要對每個新建模塊重命名。

每個子流程的最后,都通過軟件進行自動化圖形修飾工作。如圖2所示,在兩個子流程中均加入了“變換”模塊,該模塊可以實現模型在不同方向的比例變換,能提高模型的可視性。在流程管理中,還將常用的參數(如初始文件路徑)存在系統數據庫中,便于程序啟動時直接調用,達到操作便捷的目的。

自動化流程的控制主要有兩種方式:一種是通過預先設置控制條件;另一種是通過程序運行過程中的提示和人機交互控制。多數建模工作類似于“流水線”式的作業,建議采用第一種方式更便捷。

3 自動可視化建模方法實現

3.1 Volxer的Automation技術與對象模型

Voxler提供了對ActiveX Automation技術的支持,并提供了自動化腳本的編程語言和工具(ScripterTM),也能通過使用訪問自動化對象的編程工具對其進行“二次開發”,包括Visual C++,WSH(Windows Scripting Host)等。自動化技術的優勢是可以利用編程技術讓軟件自動執行重復和復雜的任務,能讓使用者無需熟悉Voxler軟件即可訪問Voxler功能。

軟件中的功能都對應相應的對象,每一個對象都具有自己的屬性和方法。用戶通過Automation技術對軟件進行的所有操作,都是對“對象”進行的。Voxler采用層次化的方式組織其自動化對象,其中,應用程序(Application)對象位于層次結構的頂部,所有其他對象都要從應用程序對象直接或間接獲得,各個對象的獲得都需要一層一層的進行,如圖3所示,為Voxler自動化對象層次結構圖。

圖3 Voxler軟件自動化對象層次結構圖

3.2 自動可視化建模方法實現

筆者在Visual Studio 2019平臺上利用Visual C++語言對Voxler二次開發,實現了煤炭地質三維自動可視化建模程序,程序啟動后的主界面如圖4所示。

圖4 三維自動化建模程序主界面

在建模過程中,需要將原地質數據格式轉換為Voxler軟件兼容的數據格式,但很多單位都有相對固定的地質數據管理體系和數據格式,因此,數據格式的轉換可以通過計算機編程實現,達到地質數據與建模軟件的“無縫銜接”。為了方便管理建模過程中產生的各類“中間”數據,設置相應工作目錄進行存放,并將該目錄保存在圖2所示的系統數據庫中,操作者不再參與數據文件的管理。在程序的一些操作中,程序默認選擇該目錄下的數據文件,而無需手動選擇。

程序的流程控制是通過預先設置條件的方式,即通過設置復選框按鈕的狀態實現。圖中的復選框共有4類,分別為“導入文件”、“生成圖形”、“顏色填充”、“顯示色標”,其中,“導入文件”控制導入數據并生成源數據模塊,“生成圖形”為建立三維模型過程,“顏色填充”和“顯示色標”為圖形修飾內容。4類復選框存在遞進關系,須依次選擇,否則部分復選框為只讀且未選中狀態。

在鉆孔建模部分,界面顯示已經從系統數據庫中讀入了工作目錄路徑,并選中了該目錄下默認的鉆孔數據,如果該數據不存在,則程序運行會報錯,也可以點擊“基礎信息”、“孔斜數據”、“鉆孔柱狀”按鈕,選擇其他路徑下的數據文件。

在底板建模中,通過點擊按鈕可以批量選擇一個或多個底板網格文件導入并建模。在計算機程序中,采用兩個循環實現圖2中底板三維自動可視化流程的兩個部分,即依次導入數據生成數據源模塊和依次建立每個底板網格的三維可視化模型。

模型建立完成后,通過“比例調整”中的按鈕可以實時調整模型在三個方向的顯示比例,也可以在Voxler中通過鼠標實時任意放大、縮小和旋轉模型。

因軟件操作上具有相似性,以下僅展示部分關鍵環節的代碼。

(1)程序調用(啟動)Voxler軟件,定義相關對象,新建Voxler項目工程。

#import "C:Program FilesGolden SoftwareVoxler 4Voxler.exe" no_namespace //調用Voxler前,需先導入Voxler的類型庫

IApplicationPtr pApp; //定義Voxler類相關對象

ICommandApiPtr pDocs; //定義Voxler的CommandApi對象,對程序的所有操作都是基于該對象

IApplicationPtr pApp(__uuidof(Application)); //創建Voxler應用程序對象pDocs = pApp->CommandApi; //訪問Api對象

pDocs->Construct("NewNet"); //通過Construct方法調用“創建新項目”命令

pDocs->Do(); //執行語句,Construct中列出的操作須通過該語句執行

(2)導入鉆孔數據,形成以數據文件名稱命名的數據源模塊,設置屬性以匹配數據格式。

pDocs->Construct("Import"); //通過Construct方法調用“導入數據”命令

pDocs->Option("Path", (_bstr_t)m_holeparapath); //設置導入文件的路徑,變量m_holeparapath中為數據文件的完整路徑,數據文件的名稱為“holepara.dat”

pDocs->Do(); //執行Construct方法后的語句

pDocs->Construct("ModifyModule"); //通過Construct方法調用“修改模塊屬性”命令

pDocs->Option("Module", "holepara.dat"); //要修改的模塊名稱為“holepara.dat”

pDocs->Option("OutputType", "1"); //設置數據源類型,“1”為鉆孔數據

pDocs->Option("WellSheetType", "1"); //設置鉆孔數據的數據類型,“1”為鉆孔孔口基本數據

pDocs->Option("WellColID", "1"); //設置鉆孔孔號為數據文件第1列

…//設置數據各列與軟件匹配

pDocs->Do(); //執行Construct方法后的語句

鉆孔測斜數據和分層數據導入后,生成的數據源模塊名稱分別為“dip.dat”和“holebase.dat”。

(3)創建鉆孔數據模塊(WellData),連接源數據模塊。

pDocs->Construct("CreateModule"); //通過Construct方法調用“創建模塊”命令

pDocs->Option("AutoConnect", "False");//設置創建的模塊不連接數據源

pDocs->Option("Type", "WellData");//設置新建的模塊類型為“WellData”,默認的模塊名稱亦為“WellData”

pDocs->Do();//執行語句

pDocs->Construct("ConnectModules");//通過Construct方法調用“連接模塊”命令

pDocs->Option("SourceModule", "holepara.dat");//連接輸入端模塊的名稱,為“holepara.dat”

pDocs->Option("TargetModule", "WellData");//連接輸出端模塊的名稱,為“WellData”

pDocs->Option("TargetPort", "1");//目標模塊的輸入端口索引號為1,依次為2,3…

pDocs->Do();//執行語句

(4)創建鉆孔數據變換模塊(Transform)和模型輸出模塊(WellRender)?!癟ransform”模塊的輸入模塊為“WellData”模塊,輸出模塊為“WellRender”模塊。

(5)鉆孔模型可視化。通過“WellRender”模塊的屬性實現。

pDocs->Construct("ModifyModule"); //通過Construct方法調用“修改模塊屬性”命令

pDocs->Option("Module", "WellRender"); //要修改的模塊名稱為“WellRender”

pDocs->Option("WellRenderShowPath", "True");//設置顯示鉆孔軌跡

…//設置鉆孔軌跡顏色、柱狀粗細均通過數據展示,分別對應巖性、地層年代。

pDocs->Do();//執行語句

為了實現模型的整體統一比例變換,需要統一修改“變換模塊”的屬性。建模過程中,所有的“變換模塊”名稱保存在一個專門的數組中。模型建立后,每設置一次模型比例,程序獲得比例數值后依次修改“數組”中各“變換模塊”的屬性。

在程序中,通過判斷語句和選擇語句,控制程序運行過程。

4 應用實例

為說明本文研究建立的煤炭地質三維自動可視化建模方法的優勢和效果,以寧夏某井田以往煤炭地質勘查數據為例,利用程序建立了該井田的煤炭地質三維可視化模型,驗證了建模流程。結果表明,自動可視化技術在一定程度上可以替代人工建模。

該模型的模塊聯絡圖如圖5所示,聯絡器中展示了通過自動化程序創建的模塊和連接情況。圖中 “holepara.dat”、“dip.dat”、“holebase.dat”分別為鉆孔井口基礎數據、測斜數據和柱狀分層數據的數據源模塊,模塊“WellData”為鉆孔數據特有的數據處理模塊,“WellRender”模塊為鉆孔三維模型輸出模塊。在煤層底板三維模型中,“**.grd”為**煤層的底板GRD網格文件,右側的模塊“**”為煤層底板的三維模型輸出模塊。聯絡器中的“**_Tr”模塊為數據變換模塊。

圖5 自動化建模形成的模塊聯絡圖

自動化技術建立的井田(局部)煤炭三維可視化模型如圖6所示,圖中完整展示了所有的鉆孔三維軌跡、地層界線、鉆孔見煤情況、煤層底板的三維起伏形態和構造展布等情況。三維可視化模型可以使地質工作者在三維空間中研究地質構造的變化規律和展布形態,布置下一步的地質工作。還可以在此模型上疊加煤質、地溫、水質等數據,并進行其他地質問題的研究。

圖6 自動化建立的煤炭地質三維可視化模型

總體而言,通過自動化技術能點擊一次鼠標完成多個鉆孔或地層三維可視化模型的建立,讓操作者無需再熟悉建模軟件的功能和繁雜的操作。相對傳統人工建模技術,該技術能有效提高建模的效率和質量,降低建模難度,為地質技術人員分析地質資料提供了一種新的途徑,對提高地質勘查質量有促進意義。

5 結 論

(1)通過Voxler軟件及自動化技術可以實現高效、便捷地自動化建模技術,使用者無需熟悉Voxler軟件的功能即可使用Voxler軟件建模。

(2)本文建立的自動化建模流程,基本適合多數情況下的煤炭地質勘查項目,通過一次設置建模參數和點擊一次鼠標,即可實現建模過程的全自動化管理,提高了建模效率和質量,工作量越大,效果越明顯,具有經濟性和推廣價值。

(3)本文只是實現了鉆孔和底板的自動化建模技術,為地質多源數據的三維分析提供了新途徑,研究成果在地質數據分析、地球物理三維成像等多源數據的三—四維分析方面更具價值。

(4)文中僅給出了核心流程、代碼和數據格式,為使用者提供一種思路,可以根據自身工作需要利用計算機編程實現與現有數據管理體系的無縫銜接。

猜你喜歡
數據源底板鉆孔
高應力巖層巷道鉆孔爆破卸壓技術
旋挖鉆孔灌注樁在軟土地基處理中的應用研究
邁步鉆場鉆孔注漿提濃技術研究
一種面向傳感云的數據源質量評估框架
利用屬性集相關性與源誤差的多真值發現方法研究
圖表中的交互 數據鉆取還能這么用
板上疊球
復雜條件下大斷面硐室底板加固技術實踐與應用
數據有增加 圖表自適應
鋁蜂窩復合材料客車底板性能研究及應用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合