伍偉斌紀(jì)洪廣曹善忠
(1.北京科技大學(xué)土木與環(huán)境工程學(xué)院;2.中礦金業(yè)股份有限公司)
基于ArcGISEngine的Flac數(shù)值模型剖切及云圖自動(dòng)構(gòu)建方法*
伍偉斌1紀(jì)洪廣1曹善忠2
(1.北京科技大學(xué)土木與環(huán)境工程學(xué)院;2.中礦金業(yè)股份有限公司)
為了實(shí)現(xiàn)Flac3D的云圖查看功能,基于ArcGISEngine二次開發(fā)技術(shù),在模型單元信息基礎(chǔ)上,提出了一種適合于六面塊體網(wǎng)格單元類型的剖切算法,沿3個(gè)坐標(biāo)軸方向?qū)崿F(xiàn)剖切并且快速生成彩色云圖。利用此方法,可在ArcGISEngine二次開發(fā)軟件中對數(shù)值模型剖切實(shí)現(xiàn)快速查看礦區(qū)3個(gè)坐標(biāo)軸方向的應(yīng)力狀況。
ArcGISEngine 剖切算法 云圖
GIS以其管理空間信息的獨(dú)特優(yōu)越性,已經(jīng)廣泛應(yīng)用于城市規(guī)劃、資源管理、巖土工程等各個(gè)領(lǐng)域和行業(yè)。眾所周知,我國處于基礎(chǔ)建設(shè)高速發(fā)展時(shí)期,大規(guī)模的基礎(chǔ)建設(shè)使巖土工程領(lǐng)域積累的數(shù)據(jù)急劇增多,出現(xiàn)了所謂的“資料數(shù)據(jù)爆炸性增長”。因此,如何有效地存儲(chǔ)、管理、交流從而充分利用(包括多次開發(fā)利用和綜合開發(fā)利用)這些數(shù)據(jù),已成為國內(nèi)巖土工程工作者共同關(guān)心的問題。顯然,利用計(jì)算機(jī)技術(shù)建立起巖土工程數(shù)據(jù)庫系統(tǒng),使顯示、儲(chǔ)存、管理和利用巖土工程數(shù)據(jù)信息效果最好,也是最經(jīng)濟(jì)合理的途徑。目前國內(nèi)外已較廣泛地開展了GIS技術(shù)和數(shù)據(jù)庫技術(shù)相結(jié)合的巖土工程數(shù)據(jù)庫系統(tǒng)的開發(fā)和研究工作,并取得了可喜的成績[1]。
在礦山開采中,單憑一種預(yù)測方法難以準(zhǔn)確預(yù)測、預(yù)報(bào),需要將開采過程中的各種信息綜合分析,由此需要將各種工程信息存儲(chǔ)到統(tǒng)一的數(shù)據(jù)庫中,ArcGIS的空間數(shù)據(jù)庫能滿足此條件。Flac3D具有強(qiáng)大的后處理功能,可以輸出包括云圖、矢量圖、動(dòng)畫等各種格式的結(jié)果,但是Flac3D軟件本身對于工程中需要的一些別的分析功能卻不能實(shí)現(xiàn),所以一套針對礦山開采過程中危險(xiǎn)性分析的軟件顯得尤其重要。為了實(shí)現(xiàn)Flac3D的某些后處理功能,如云圖的輸出,本研究利用ArcGISEngine提供的嵌入式組件庫,在Visual C++開發(fā)環(huán)境下實(shí)現(xiàn)ArcGIS Engine的二次開發(fā),完成對Flac數(shù)值模型剖切及剖切平面應(yīng)力云圖的自動(dòng)構(gòu)建。
在ArcGISEngine環(huán)境下存儲(chǔ)數(shù)據(jù)有多種方式,其常見的數(shù)據(jù)格式包括Shapefile、Coverage、Geodatabase、Tin、Raster、CAD以及RDBMS[2-3]。分析這幾種存儲(chǔ)方式后發(fā)現(xiàn),Tin只能保存三角面片,Raster是四角網(wǎng)格數(shù)據(jù),RDBMS存儲(chǔ)的只是屬性信息;只有Shapefile和Geodatabase才能兼容多種數(shù)據(jù)類型,所以這兩者才符合本系統(tǒng)的要求。其中,Geodatabase數(shù)據(jù)的整合程度很高,Shapefile的讀寫、顯示速度相對較快。而在Geodatabase的2種子類型中,Personal Geodatabase只需安裝Access就可以使用ArcGIS引擎直接讀寫;Enterprise Geodatabase卻不僅需要安裝大型數(shù)據(jù)庫軟件,還必須同時(shí)安裝Arc SDE運(yùn)行模塊,并且要為數(shù)據(jù)服務(wù)器與數(shù)據(jù)庫間建立連接。前者配置簡單且對機(jī)器的要求偏低,但數(shù)據(jù)容量受到Access數(shù)據(jù)庫系統(tǒng)的嚴(yán)格限制。后者安裝、配置較為復(fù)雜而且對機(jī)器性能要求較高,不過數(shù)據(jù)的容量幾乎不受數(shù)據(jù)庫系統(tǒng)的限制。本系統(tǒng)采用的數(shù)據(jù)庫是Personal Geodatabase,只需要安裝Access就可以滿足系統(tǒng)要求。
Flac數(shù)值模型計(jì)算結(jié)果經(jīng)過Flac3D軟件處理后得到單元信息、單元6個(gè)方向應(yīng)力信息和單元最大最小主應(yīng)力信息,以log文件形式保存。單元基本信息包括ID、Type、Model、Group、Centroid(X,Y,Z),單元6個(gè)方向應(yīng)力信息包括ID、S-XX、S-YY、SZZ、S-XY、S-XZ、S-YZ,單元最大最小主應(yīng)力信息包括ID、Maximum、Intermediate、Minimum。
根據(jù)以上3種文件格式,編寫讀取數(shù)據(jù)接口程序,把3種文件數(shù)據(jù)以ID為關(guān)聯(lián)屬性,保存于Access數(shù)據(jù)庫中。數(shù)據(jù)保存格式見表1。
表1 Flac數(shù)值計(jì)算數(shù)據(jù)保存格式
Flac3D軟件網(wǎng)格模型有六面塊體網(wǎng)格、楔形體網(wǎng)格、四面體網(wǎng)格等多種網(wǎng)格模型,本研究主要以六面塊體網(wǎng)格為對象,以垂直于X、Y、Z 3個(gè)方向的平面對模型進(jìn)行剖切。設(shè)六面塊體網(wǎng)格ABCD-A′B′C′D′的型心為O,垂直于Z軸平面為EFGH,O點(diǎn)到平面EFGH的距離為d,見圖1。
圖1 單元網(wǎng)格
以平面EFGH為剖切平面對數(shù)值模型進(jìn)行剖切,以Z方向剖切為例,沿Z方向單元長度取平均值r,當(dāng)單元型心O到剖切平面EFGH的距離d小于r/2時(shí),則認(rèn)為該單元被平面剖切到。只要計(jì)算數(shù)據(jù)庫中所有單元型心到平面EFGH的距離,當(dāng)距離小于r/2時(shí)視為滿足條件,把滿足條件的所有單元選取出來就能得到被剖切平面所切到的所有單元。根據(jù)此原理編寫程序,把所有選中的單元輸出生成一個(gè)臨時(shí)txt文件,該txt文件的字段名與表1所示一致。
DEM即數(shù)字高程模型,主要包括規(guī)則格網(wǎng)模型(GRID)和不規(guī)則三角網(wǎng)模型(TIN)2種形式,其中,GRID通常是正方形,也可以是矩形、三角形等規(guī)則網(wǎng)格。TIN模型根據(jù)區(qū)域有限個(gè)點(diǎn)集將區(qū)域劃分為相連的三角形網(wǎng)格,區(qū)域中任意點(diǎn)落在三角形的頂點(diǎn)、邊上或三角形內(nèi)[4]。ArcGIS提供了RASTER和TIN 2個(gè)類型的數(shù)據(jù),它們分別對應(yīng)GRID和TIN數(shù)據(jù),本研究以TIN為基礎(chǔ)顯示云圖。
在剖切過程中生成了一個(gè)臨時(shí)txt文件,保存了被剖切到的單元信息,利用ArcGIS Engine的接口IWorkspaceFactory的OpenFromFile函數(shù)打開該臨時(shí)文件txt所在的文件夾得到IWorkspace指針,然后利用IWorkspace打開txt文件得到數(shù)據(jù)集。具體數(shù)據(jù)操作流程見圖2。
圖2 數(shù)據(jù)操作流程
通過圖2所示的數(shù)據(jù)操作后得到IFeatureClass指針,指向txt文件數(shù)據(jù)集,利用IFeatureClass指針構(gòu)建Tin,然后選擇高程字段,調(diào)用接口ITinEdit的函數(shù)AddFromFeatureClass將高程信息增加到Tin中,獲得帶有高程信息的Tin在主界面中顯示。
將本方法運(yùn)用于山東招遠(yuǎn)市中礦金業(yè)集團(tuán)玲南礦區(qū),該礦區(qū)的數(shù)值模型計(jì)算結(jié)果已經(jīng)保存在Arc-GIS空間數(shù)據(jù)庫中,依據(jù)本次所提出的方法可以快速地查看某個(gè)水平剖面的單元屬性云圖的情況。軟件所產(chǎn)生的某一位置水平方向S-YY應(yīng)力狀況與利用Flac3D軟件讀取模型后產(chǎn)生的S-YY應(yīng)力狀況見圖3、圖4。從2幅云圖可以看出,本次所提出的方法得到的云圖與利用Flac3D軟件所產(chǎn)生的云圖是一致的。
圖3 水平方向S-YY應(yīng)力狀況
圖4 Flac3D中水平方向S-YY應(yīng)力狀況
利用本研究所提的方法在ArcGIS Engine二次開發(fā)軟件中所得到的云圖與Flac3D軟件所得到的云圖基本一致,由此可以看出此方法是可行的。本次所提方法的不足之處是在剖切算法中模型單元長度經(jīng)常是不一致的,導(dǎo)致單元長度平均值r的取值可能會(huì)出現(xiàn)偏差,由此會(huì)影響剖切結(jié)果。
[1]郭 明.GIS在巖土工程領(lǐng)域的應(yīng)用[J].西部探礦工程,2006(7):7-10.
[2]賈 寧.工程安全監(jiān)測信息的空間表達(dá)與分析方法研究[D].北京:北京科技大學(xué),2008.
[3]黃 云.MapGIS向ArcGIS數(shù)據(jù)格式轉(zhuǎn)換方法探討[J].地礦測繪,2010,26(1):33-35.
[4]韓 鵬,徐占華,褚海峰,等.地理信息系統(tǒng)開發(fā)——ArcObjects方法[M].武漢:武漢大學(xué)出版社,2005.
Cutting M ethod and Automatic Generating Image of Numerical M odel of Flac Based on ArcGIS Engine
Wu Weibin1Ji Hongguang1Cao Shanzhong2
(1.School of Civil and Environmental Engineering,University of Science and Technology Beijing;2.Zhongkuang Gold Limited by Share Ltd.)
Based on secondary development of ArcGISEngine,a cutting algorithm suitable for grid cells of six-sided block was proposed on the foundation of zone information of models in order to achieve the function of cloud picture view.The algorithm can achieve cutting model along three axis directions and quickly generate color cloud picture.According to themethod,the stress condition of three axis direction can be quickly showed by cutting numericalmodels based on secondary development of ArcGISEngine.
ArcGISEngine,Cutting algorithm,Cloud picture
2013-07-22)
* 國家重大基礎(chǔ)研究發(fā)展計(jì)劃(973計(jì)劃)項(xiàng)目(編號(hào):2010CB226803,2010CB731501),國家自然科學(xué)基金項(xiàng)目(編號(hào):51174015),“十二五”國家科技支撐計(jì)劃項(xiàng)目(編號(hào):2012BAK09B07)。
伍偉斌(1986—),男,博士研究生,100083北京市海淀區(qū)學(xué)院路30號(hào)。