黃太山
(福建省國土測繪院,福建廈門 361012)
隨著計算機與遙感技術及其應用的發展,利用航空攝影測量方法進行大比例尺測圖,在鐵路、公路、電力等線路的選線測量、地質礦區建設測量、城市規劃建設測量以及地籍測量中得到了廣泛應用[1]。如何將航測地形圖最有效地轉換至常用地形測繪軟件,為用戶提供可讀性強的數據,是測繪行業中的一個難題。本文通過以武漢航天遠景測繪軟件MapMatrix為例,通過研究其數據格式,利用Excel中簡單的VBA編程,實現其數據有效的轉換至南方測繪軟件CASS格式。
VBA(Visual Basic for Application)是微軟開發的、在其桌面應用程序中執行通用的自動化(OLE)任務的編程語言[2]。VBA最大特點和最大優點是利用面向對象(oop)的ActiveXAutomation技術,使語言的引擎在技術上與開發環境分離。它的功能在很大程度上依賴于它的客戶顯露的Automation接口。同時,由于VBA是基于ActiveXAutomation技術,它可以使用任何Automation技術的應用程序共同工作[3]。
MapMatrix測制的圖形文件格式為*.xml,為了能夠更好地研究其數據組織的格式,以一個一般矩形房屋為基本單元列出其數據形式,從表1中可以看出MapMatrix中的各類幾何要素是按照“<Feature>…</Feature>”的形式表示各要素的,每個要素的地物名稱、坐標點分別以FID、VERTEXES標簽進行識別,必須保留這兩個關鍵標簽。

MapMatrix 表1
熟悉南方CASS的讀者都知道,CASS可以通過簡碼識別功能,調用*.dat文件實現地形圖的自動展繪。格式如表2所示。

CASS 表2
表1中第三行中的一般房屋與表2中第一行的202分別代表兩種軟件下的地物名稱和對應代碼。表1中的<VERTEXES>…</VERTEXES>則對應表 2中后三個字段來表示坐標值。
因此,首要任務就是將表1形式的數據轉換成表2成果,然后保存成*.dat文件,利用CASS的編碼識別功能實現地形圖的自動展繪。
用Excel打開MapMatrix的xml文件,出現圖1打開方式選擇提示窗,此處選擇“作為XML表(T)”打開,打開后圖形數據將按照各類標簽進行分列,如圖2所示。上文已經提到,FID、VERTEXES標簽是轉換數據的關鍵字段,其他不相關字段則可提前刪除。由于篇幅限制,本文主要對主要代碼段進行介紹,涉及自定義函數只做功能說明。

圖1 打開文件提示窗界面

圖2 轉換前圖形數據的排列

圖3 轉換后圖形數據的排列
通過VBA的宏運行后,可發現原始數據已經被轉換成如圖3的格式,而自動生成的*.dat文件則為表2的形式,可直接在CASS中直接調用,從而實現自動轉繪的功能。


表Shthcsj是XML文件打開后的地形數據表,Shtbmdyb是MapMatrxi的地物名稱與CASS相應地物的編碼對應表。通過宏的運行,一個完整的dat文件即被自動保存至相應的文件夾中。打開南方CASS成圖軟件,利用其編碼識別功能調用該dat文件,自動轉繪后的圖形文件就基本保留了MapMatrix的地形地貌信息,最為有效的實現航測數據轉換。
通過對數據組成格式的研究和程序代碼的編寫,實現了航天遠景航測軟件MapMatrix向南方測繪軟件CASS成圖軟件的有效轉換,形成以下結論:
(1)各類測繪軟件的地物編碼不盡一致,通過編碼對應表的制作,可以實現測繪軟件之間的數據共享。
(2)為了保證航測數據最有效地轉換至常用測繪軟件中,利用程序轉換和自動展繪后,必須對兩個圖件進行適當對照。
(3)轉換后的圖形數據必須進行一定的圖形整飾,達到地形圖美觀的基本要求。
[1]袁書明,孫楓,劉光軍等.重力圖形匹配技術在水下導航中的應用[J].天津:中國慣性技術學報,2004,12(2):13~17
[2]伍云輝等編.Excel VBA辦公應用開發詳解[M].北京:電子工業出版社,2008
[3]趙志東.Excel VBA基礎入門[M].北京:人民郵電出版社,2006
[4]張祖勛,張劍清.數字攝影測量學[M].武漢:武漢大學出版社,1997
[5]韓玲,李斌,顧俊凱等.航空與航天攝影技術[M].武漢:武漢大學出版社,2008
[6]陳永明.航空與航天攝影技術[M].北京:中國建筑工業出版社,2003