孫立城
(河北工程大學(xué)信息與電氣工程學(xué)院,河北 邯鄲 056038)
由于AutoCAD 具有圖形繪制、編輯、處理能力強的特點,礦圖一直采用AutoCAD 軟件繪制。隨著礦測工程逐步采用地理空間技術(shù),ArcGIS軟件在煤礦行業(yè)的應(yīng)用成熟并廣泛使用, 因此AutoCAD 與ArcGIS 兩個不同平臺的數(shù)據(jù)同步成為需要解決的問題。文獻[1]提出了將WCF 分布式框架運用到礦圖數(shù)據(jù)轉(zhuǎn)換,通過二次開發(fā)跨平臺實現(xiàn)礦圖數(shù)據(jù)同步更新。文獻[2]利用開源DWGDirect類庫整合ArcEngine 組件實現(xiàn)CAD 數(shù)據(jù)到GIS 數(shù)據(jù)同步,但對于不同平臺數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換并不完整。文獻[3]探討了CAD 圖層與GIS 圖層對應(yīng)關(guān)系、注記轉(zhuǎn)換、擴展性轉(zhuǎn)換等問題,基于單一FME 技術(shù)實現(xiàn)CAD 數(shù)據(jù)與GIS 平臺的數(shù)據(jù)轉(zhuǎn)換與同步。
以上方式雖然也實現(xiàn)了數(shù)據(jù)同步轉(zhuǎn)換,但是都存在不同程度的問題:一是對于分布式框架的二次開發(fā)必須有專業(yè)人員,要對程序開發(fā)掌握并且對礦圖轉(zhuǎn)換規(guī)則清楚,礦井一般技術(shù)員達不到要求;二是通過調(diào)用庫來進行數(shù)據(jù)的同步轉(zhuǎn)換,因為庫的完成度直接影響了數(shù)據(jù)轉(zhuǎn)換的正確性,依靠單一庫并不能很好地實現(xiàn)數(shù)據(jù)同步。
基于以上問題,本文基于MicroStation 和FME技術(shù)結(jié)合的方案,彌補了單一FME 技術(shù)的缺點,成功實現(xiàn)了礦圖數(shù)據(jù)的準確、快速轉(zhuǎn)換。
MicroStation 是美國Bentley 公司推出的一種功能非常強大的優(yōu)秀輔助設(shè)計工具軟件,在國外廣泛應(yīng)用于建筑設(shè)計、土木工程、交通、地理信息系統(tǒng)等方面,它是一個可互操作的、強大的CAD 平臺,集二維繪圖、三維建模和工程可視化于一體的完整解決方案[4]。運用對MicroStation 平臺的二次開發(fā)將源數(shù)據(jù)(DWG 格式文件)進行預(yù)處理,實現(xiàn)預(yù)處理后數(shù)據(jù)的“無損轉(zhuǎn)換”。MicroStation 可以直接讀寫AutoCAD 的DWG 格式文件,與其DGN 格式文件可以互操作。由DWG 格式轉(zhuǎn)存為DGN 格式僅將源數(shù)據(jù)的塊(block)變成了單元(cell),轉(zhuǎn)存后的數(shù)據(jù)主要由點、線、單元、共享單元和文本注記組成。DGN 格式文件通過圖層來存儲數(shù)據(jù),同一類地理要素存在同一圖層中。憑借MicroStation可以直接對DWG 格式文件進行操作,可以實現(xiàn)保存為MicroStation 的DGN 格式,最大程度上保證源文件屬性信息的完整性。
因源數(shù)據(jù)(DWG 格式數(shù)據(jù))屬性信息描述少,而且存儲在擴展數(shù)據(jù)(Xdata)中的數(shù)據(jù)也不滿足ArcGIS 對數(shù)據(jù)的要求。MicroStation 擁有獨立外掛數(shù)據(jù)庫,對圖形屬性信息進行處理,處理后的圖形屬性信息可以存在獨立外掛數(shù)據(jù)庫中。MicroStation利用數(shù)據(jù)庫的接口通過OBDC 實現(xiàn)圖形數(shù)據(jù)與屬性信息的連接。
本文就礦圖數(shù)據(jù)同步將CAD 的DWG 文件同步到GIS 所識別的文件,達到數(shù)據(jù)統(tǒng)一、同步。MicroStation 作為數(shù)據(jù)預(yù)處理的平臺,實現(xiàn)以下功能:
(1)進行編碼的轉(zhuǎn)化以及對屬性信息賦值;
(2)對數(shù)據(jù)信息的查詢與修改;
(3)清除文件的非法元素;
(4)多邊形元素轉(zhuǎn)換;
(5)將文本標記與圖形要素關(guān)聯(lián);
(6)提取關(guān)鍵的屬性信息;
(7)拓撲檢查。
通過應(yīng)用MicroStation 數(shù)據(jù)預(yù)處理平臺,對點線數(shù)據(jù)進行預(yù)處理,包括屬性要素和圖形要素。屬性要素包括檢查礦井要素編碼的正確性、提取圖形要素的關(guān)鍵信息;圖形要素處理包括多邊形轉(zhuǎn)線、注記組合、拓撲檢查等。MicroStation 數(shù)據(jù)預(yù)處理平臺結(jié)構(gòu)如圖1。
FME(Feature Manipulate Engine, 簡 稱FME) 是加拿大Safe Software 公司開發(fā)的空間數(shù)據(jù)轉(zhuǎn)換處理系統(tǒng),它是完整的空間ETL 解決方案。該方案基于OpenGIS 組織提出的新的數(shù)據(jù)轉(zhuǎn)換理念“語義轉(zhuǎn)換”[5],對相互轉(zhuǎn)換的數(shù)據(jù)進行了結(jié)構(gòu)重建,從而建立了多種不同格式之間的數(shù)據(jù)轉(zhuǎn)換,提供了效率高、語義準、開發(fā)簡單的數(shù)據(jù)轉(zhuǎn)換工具。FME 通過核心語義文件轉(zhuǎn)換引擎完成數(shù)據(jù)間的轉(zhuǎn)換過程,通過語義映射文件注冊表對轉(zhuǎn)換時語義映射文件進行管理,最終由自動語義轉(zhuǎn)換生成器完成FME 轉(zhuǎn)換操作。采用FME 語義映射的方式,對源數(shù)據(jù)進行轉(zhuǎn)換、變換、分類整合。基于語義映射的原理是映射關(guān)系的對應(yīng),通過重新構(gòu)造映射關(guān)系來轉(zhuǎn)換數(shù)據(jù)對應(yīng)結(jié)構(gòu)。FME 語義轉(zhuǎn)化是將源數(shù)據(jù)不同層面上的屬性和內(nèi)容通過符合要求的映射關(guān)系,實現(xiàn)數(shù)據(jù)的轉(zhuǎn)換。從CAD 數(shù)據(jù)到GIS 數(shù)據(jù)轉(zhuǎn)換過程中,F(xiàn)ME 將DGN(MicroStation 轉(zhuǎn)換后的數(shù)據(jù))和Shape 數(shù)據(jù)(ArcGIS數(shù)據(jù))在映射中形成正確的對應(yīng)關(guān)系,實現(xiàn)要素信息的一一對應(yīng)。CAD 數(shù)據(jù)與GIS 數(shù)據(jù)轉(zhuǎn)換模型如圖2。
圖1 Microstration 數(shù)據(jù)預(yù)處理平臺
圖2 CAD 與GIS 轉(zhuǎn)換模型
FME 通過豐富的數(shù)據(jù)轉(zhuǎn)換模型,通過自定義輸入和輸出數(shù)據(jù)結(jié)構(gòu),實現(xiàn)了數(shù)據(jù)結(jié)構(gòu)的重新構(gòu)造。如圖3 所示,語義轉(zhuǎn)換過程中,數(shù)據(jù)模型m 和n 分別經(jīng)過語義映射“寬通道”,即語義映射文件,實現(xiàn)數(shù)據(jù)自由的轉(zhuǎn)入、轉(zhuǎn)出,并且將已有轉(zhuǎn)換模型嵌入到其他自定義模型中。
圖3 語義數(shù)據(jù)轉(zhuǎn)換模型
FME 需要通過FME Workbench 建立自身的映射文件模板,源數(shù)據(jù)為DGN 格式,目標文件格式為Shape。FME 可以產(chǎn)生一個對應(yīng)關(guān)系從DGN 格式到Shape 格式,由建立的映射文件模板并不能準確地進行轉(zhuǎn)換,需要根據(jù)轉(zhuǎn)換的實際情況,重新定義映射關(guān)系。源數(shù)據(jù)經(jīng)過MicroStation 預(yù)處理后,需要將存儲在外部數(shù)據(jù)庫的屬性信息通過igds_linkage 格式屬性連接到幾何圖形,選擇Format Attributes 將相關(guān)屬性信息顯現(xiàn),下面以點線面為例闡述數(shù)據(jù)轉(zhuǎn)換細節(jié)[6]。
MicroStation 將旋轉(zhuǎn)矩陣角度寫入字符串2,通過查找并調(diào)用字符串2,并返回字符串2 的索引號,將輸出端口添加索引號到指定元素列表的屬性要素,從而將字符串2 上的角度信息提取出來。角度讀取過程如圖4。
關(guān)聯(lián)信息使用了字符串3 以及其后的字符串,因此字符串2、字符串3 之間通過使用ListSearcher轉(zhuǎn)換器進行字符串3 的查找,采用ListSearcher 轉(zhuǎn)換器打散成單獨的數(shù)據(jù)元素,使得原始列表屬性與分解后的屬性存入列表中。通過ListSearcher 轉(zhuǎn)換器從打散的字符串中提取string X、string Y,然后調(diào)用Tester 轉(zhuǎn)換器對打散的內(nèi)容進行檢查,由此得到關(guān)聯(lián)的文本信息和相對坐標信息。關(guān)聯(lián)提取過程如圖5。
圖4 角度讀取過程
圖5 關(guān)聯(lián)提取過程
在完成對角度的提取和對關(guān)聯(lián)信息的提取后,進而與FeatureMerger 轉(zhuǎn)換器的Requestor 端口連接,Supplier 端口與對照表文件連接,通過線數(shù)據(jù)屬性與對照表中的字段對應(yīng)實現(xiàn)圖形數(shù)據(jù)與屬性數(shù)據(jù)的匹配。
面數(shù)據(jù)輸出端口與轉(zhuǎn)換器FeatureMerger_2 的Requestor 端口連接,F(xiàn)eatureMerger_2 轉(zhuǎn)換器的Supplier 端口與對照表連接,通過面數(shù)據(jù)屬性與對照表中的字段對應(yīng)實現(xiàn)圖形數(shù)據(jù)與屬性數(shù)據(jù)的匹配[7]。
將轉(zhuǎn)換器SubstringExtractor 末端字符寫入線屬性中,轉(zhuǎn)換器GeometryFilter 將要素發(fā)送到輸出端口,在GeometryFilter 的輸出端口通過設(shè)置相應(yīng)的測試條件過濾掉錯誤的點、線、面,轉(zhuǎn)換器AttributeFilter 依據(jù)要素的屬性值把要素發(fā)送到不同的輸出端口,并輸出到對應(yīng)的圖層。
FME 語義映射文件用于將預(yù)處理后的DGN 數(shù)據(jù)轉(zhuǎn)換為Shape 數(shù)據(jù),如圖6,經(jīng)過轉(zhuǎn)換前后的對比分析,從點、線、面幾何要素以及文本注記能夠正確還原初始數(shù)據(jù)。利用MicroStation 與FME 兩種技術(shù)相結(jié)合的方案,解決了傳統(tǒng)直接進行轉(zhuǎn)換時映射不對應(yīng)的問題。通過MicroStation 進行數(shù)據(jù)預(yù)處理,將DWG 格式的問題轉(zhuǎn)變?yōu)镈GN 格式,保證格式之間轉(zhuǎn)換正確性,進而使用FME 語義映射技術(shù)構(gòu)造完善的映射條件,實現(xiàn)DGN 格式到Shape格式的相對無損同步轉(zhuǎn)換,比傳統(tǒng)轉(zhuǎn)換更加準確的基礎(chǔ)上,轉(zhuǎn)換形式更加穩(wěn)定。基于FME 語義映射技術(shù)的礦圖轉(zhuǎn)換與同步,解決了傳統(tǒng)礦圖格式轉(zhuǎn)換信息丟失導(dǎo)致更新同步慢的問題。本文結(jié)合實例,詳細闡述了轉(zhuǎn)換原理和過程,對于礦圖格式轉(zhuǎn)換和更新具有一定的參考價值。
圖6 轉(zhuǎn)換前后數(shù)據(jù)對比