龔紅蕾,劉俊長,師淑娟,張亞東
(河北省地球物理勘查院,河北 廊坊 065000)
等值線平面圖是物化探成果最主要的一種表達方式,如地球化學圖、視極化率等值線平面圖、△T等值線平面圖等,為更詳細地反映物化探參數的含量及其分布特征,這類等值線圖件通常需要標注極值。目前在常用的等值線圖制作軟件中,具有極值標注功能的有地調局發展中心的GeoExpl、新疆金維的GeoIPAS等,但這些軟件制圖編輯功能相對較弱,使用起來感覺不便。MapGIS具有強大的制圖編輯功能[1],其圖形文件已成為地礦行業最主要的標準格式[2],但其等值線圖沒有極值標注功能。為了實現MapGIS等值線圖極值點的標注,作者利用其組件技術及特有算法,在VB環境下實現了MapGIS等值線圖極值點的自動標注,為廣大地質工作者利用MapGIS制作內容齊全的等值線圖,提供了一個有效途徑。
組件技術是一種面向對象的軟件開發技術,它把對象及其數據和方法進行了封裝,主要包括動態鏈接庫(DLL)和Active控件(OCX)文件。在組件技術框架下,人們開發出功能各異的組件,然后將它們進行適當的組合,實現各種復雜的應用。
為更好地利用MapGIS進行二次開發,武漢中地公司在該套軟件中提供了一系列的組件[3],如基礎組件 MapGISBasCom1.dll、圖形顯示組件MapGISDspCom.dll、圖層管理組件 MapGISLayerCom.dll等。采用Visual Basic語言利用 Map-GIS組件進行二次開發的方法步驟如下[4-6]。
(1)從Visual Basic的Project(工程)菜單中選擇References(引用),References對話框出現后,選中復選框中所需的類型庫,如MapGISBasCom1 1.0Type Library。
(2)聲明和為對象分配內存空間。如

(3)使用對象的方法、屬性。
如:取點工作區中點對象的數目

該算法的基本原理,是所要標注的極值點包含在等值線圖上每一個最小閉合區中,為敘述方便我們將最小閉合區稱為極值區。求取落在極值區內所有點的極值和點位坐標,根據圈閉極值區的等值線的高程值,判斷所要標注極值是極大值還是極小值,按判斷結果進行標注。對所有的極值區進行上述處理,從而完成整張圖的極值點標注。
具體算法是首先讀入原始數據,依據點位坐標形成點工作區PntObj,將觀測值與相應的點進行屬性掛接。調入觀測值的等值線區文件,挑選包含極值的等值線區即上述的極值區,并形成新的工作區MyregObj。將PntObj與MyregObj進行點對區的相交分析,結果存入點工作區KongJianPntO-bj中。該點工作區中每個點的屬性將包含所在極值區的ID和觀測值,求取KongJianPntObj中ID值相同點的觀測值屬性的極大值和極小值,并形成極大值和極小值數組,該數組中包含極值區的ID及極值點的坐標。依據極值區的ID提取包含該區的等值線,將等值線的高程值與極值數組中的極值進行比較,判斷所要標注極值的屬性。如果是極大值,則標注極大值的子圖符號和相應的極值注釋;否則標注極小值的相關內容。處理完所有的ID值,標注工作即告結束。算法流程見圖1。
本算法中的核心算法是挑選極值區到極值區工作區、點對區的相交分析和依據ID提取所圈閉的極值區的等值線的高程值,詳細說明如下。
2.2.1 挑選極值區并形成極值區工作區
為挑選極值區,首先應了解極值區的特點。極值區首先是閉合的獨立區,其內部不能疊合其它的區。圖2顯示了等值線圖中閉合區的類型,共有四種類型的閉合區,它們均由1圈(單環)弧段圈閉,但第4類型不是需要挑選的極值區,顯然由一圈弧段圈閉的閉合區不完全是極值區。從圖2看,1類至3類型的閉合區是我們要挑選的極值區。觀察圈閉閉合區的弧段數,類型1由一條弧段圈閉,類型2由二條弧段圈閉,類型3由三條弧段圈閉,類型4由四條弧段圈閉。從以上分析可以看出由1條至3條弧段構成的單圈弧閉合區是我們所要的極值區,主要代碼如下。

圖1 算法流程圖Fig.1 Algorithm flow chart

圖2 閉合區類型示意圖Fig.2 Diagram for the closed section types

2.2.2 點對區的空間相交分析[7]
點對區的空間相交分析是地理信息系統的特有功能[8-9],能夠把空間上與特定區重合的點從眾多的點中分離出來,所提取的點同時具有點和重合區的屬性[10],為從不同的極值區內求得觀測值的極值提供了方便。

2.2.3 提取所圈閉極值區的等值線的高程值
為確定所要標注的極值區內的極值是極大值還是極小值,需要提取圈閉該極值區的等值線的高程屬性值,由該屬性值與求得的極值進行比較,從而確定所需標注極值的特性。極值點位于閉合區內,離極值點最近的線就是圈閉極值區的等值線,該等值線必須是由工作區提取的。


(1)原始數據:原始數據存放在EXCEL工作薄的第一個工作表中,數據格式如下:
第一行為字段名:橫坐標,縱坐標,元素1、元素2、…、元素m。
以下各行為相應字段的數據,其中橫坐標和縱坐標的單位為與制作等值線圖的橫坐標和縱坐標的單位一致。
(2)異常區文件:是由MapGIS的空間分析模塊形成的等值線區文件,并且在繪制等值線時選擇數據范圍與原始數據一致。
程序界面如圖3所示,如選中“保存粘點文件(含屬性)”,程序將提示保存原始數據點文件,該文件已掛接點位及觀測值等屬性。
(1)點擊“開始”按鈕,開始計算,見圖3。
(2)彈出對話框,提示“打開原始數據工作薄”,打開原始數據EXCEL文件。這里如果打開的是網格化的點位數據,在標注極值時將標注網格化的數據,可靈活選擇。
(3)依次提示“開始 XX 元素的計算!”,見圖4。點擊“確定”,彈出“打開XX元素異常區文件”對話框,打開異常區文件,開始計算。
(4)所有元素計算完成后,退出程序界面。圖5是河北省某1∶200 000幅Fe2O3的計算實例。



圖5 計算實例Fig.5 Calculation example
該程序通過構造MapGIS點數據工作區,利用點與挑選的等值線極值區進行點對區的相交分析,提取出極值區內的數據。應用求取的極值與極值區邊線的高程值,進行比較確定所標注極值的性質,進而完成計算。該程序解決了MapGIS繪制等值線圖進行極值自動標注的問題,為使MapGIS制作的物化探等值線圖更全面地表達觀測值的特性提供了方便,如地球化學圖通常要求標注極值,有了本程序可更好地發揮MapGIS的作用。
[1]中地軟件叢書編委會.MAPGIS地理信息系統參考手冊[M].武漢:武漢大學出版社,2002.
[2]劉俊長,龔紅蕾,劉軍恒,等.基于 MapGIS的彩色平剖圖的自動繪制[J].物探與化探,2009,33(5):592-594.
[3]武漢中地信息工程有限公司,北京中地時代軟件工程有限公司.MAPGIS組件開發手冊[M].武漢:武漢大學出版社,2002.
[4]楊本倫.Visual Basic開發技術大全[M].北京:清華大學出版社,2010.
[5]劉俊長,龔紅蕾,陳軍威,等.基于MapGIS組件技術實現化探異常參數的計算[J].物探化探計算技術,2012,34(1):112-115.
[6]武漢中地數碼科技有限公司,北京中地時代軟件工程有限公司.MAPGIS二次開發培訓教程(VB)[M].武漢:武漢大學出版社,2004.
[7]劉俊長,龔紅蕾,張玉領,等.用MapGIS實現區域化探數據的空間分析[J].物探與化探,2008,32(6):690-692.
[8]郭仁忠.空間分析[M].武漢:武漢測繪科技大學出版社,1997.
[9]王家耀.空間信息系統原理[M].北京:科學出版社,2001.
[10]吳信才.MAPGIS地理信息系統[M].北京:電子工業出版社,2004.