亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于MapGIS組件技術(shù)實現(xiàn)化探異常參數(shù)的計算

        2012-01-11 08:15:06劉俊長龔紅蕾陳軍威劉軍恒
        物探化探計算技術(shù) 2012年1期
        關(guān)鍵詞:化探控件組件

        劉俊長,龔紅蕾,陳軍威,劉軍恒

        (河北省地球物理勘查院,河北 廊坊 065000)

        基于MapGIS組件技術(shù)實現(xiàn)化探異常參數(shù)的計算

        劉俊長,龔紅蕾,陳軍威,劉軍恒

        (河北省地球物理勘查院,河北 廊坊 065000)

        在Visual Basic環(huán)境中編寫一個求化探異常參數(shù)的程序,程序首先運用MapGIS組件(COM)技術(shù),構(gòu)造了含有元素分析數(shù)據(jù)的點工作區(qū),然后讀入MapGIS異常區(qū)文件(.wp)。通過點對區(qū)的相交分析,提取出異常數(shù)據(jù),進而對數(shù)據(jù)進行計算,求得異常參數(shù)。程序結(jié)果輸出到EXCEL工作表中,非常實用。

        Visual Basic;MapGIS;組件;化探異常參數(shù);計算

        0 前言

        新一輪的區(qū)域化探數(shù)據(jù)更新及各省礦調(diào)工作,獲得了大量的地球化學異常,其中一項重要的工作就是化探異常登記。異常的登記工作包括計算一系列的異常參數(shù),主要有各元素的異常面積、最高值、平均值、襯度、規(guī)模、濃度分帶數(shù)目等。相對于區(qū)域化探中的大量異常,此項工作是一項細致而繁瑣的工作,國內(nèi)、外目前都是從數(shù)據(jù)圖上利用手工逐點輸入元素的異常數(shù)據(jù),從異常圖上得到面積,然后求取各項參數(shù)。手工方法費時費力,且易出錯。作者在本文中利用MapGIS組件技術(shù),在Visual Basic環(huán)境下開發(fā)出一個化探異常參數(shù)的計算程序,該程序能夠自動獲得異常數(shù)據(jù)和異常面積。程序只需輸入EXCEL原始數(shù)據(jù)文件和Map-GIS異常區(qū)文件,即可輸出各元素的化探異常參數(shù),輸出結(jié)果保存在EXCEL中。

        1 MapGIS組件技術(shù)

        MapGIS是地質(zhì)行業(yè)使用最廣泛的GIS平臺[1、2],作為一款優(yōu)秀的 GIS軟件,提供了完備的數(shù)字制圖、數(shù)據(jù)庫管理及空間分析等功能[3]。為了使用戶更方便地使用這一空間信息管理系統(tǒng),MapGIS還提供了二次開發(fā)功能,其中,基于組件技術(shù)的二次開發(fā)可以很好地引入Visual Basic開發(fā)環(huán)境中。

        1.1MapGIS組件介紹

        組件技術(shù),即是組件對象模型(Component Object Model,縮寫COM),是對對象及其數(shù)據(jù)和方法的封裝,是使軟件生產(chǎn)更加符合人類的行為方式而研發(fā)的一種新的軟件開發(fā)技術(shù)。組件有自己的屬性和方法,屬性是組件對象數(shù)據(jù)的特性,方法則是組件對象的行為。在COM構(gòu)架下,人們可以開發(fā)出各種各樣的功能專一的組件,然后將它們按照需要組合起來,構(gòu)成復雜的應用系統(tǒng)。

        MAPGIS以組件的方式提供了完善的GIS功能,包含在若干動態(tài)鏈接庫(DLL)和ActiveX控件(OCX)文件中[4、5],具體如下:

        基礎(chǔ)組件文件:MapGisBasCom1.dll

        基礎(chǔ)控件文件:MapGisBasCtl.dll、MapGis-BasCtl1.dll、MapGisBasCtl2.dll

        圖形顯示組件文件:MapGisDspCom.dll圖層管理組件文件:MapGisLayerCom.dll

        地圖、圖例管理組件文件:MapGisMapCom.dll圖庫管理組件文件:MapGisDBSCom.dll

        圖像分析管理組件文件:MapGisRasterCom.dll圖形編輯控件文件:EditView.ocx工程管理控件文件:MapTree.ocx

        屬性編輯控件文件:AttStruEdit.ocx

        屬性結(jié)構(gòu)編輯控件文件:GisAttEdit.ocx

        1.2 在Visual Basic中使用MapGIS組件

        (1)運行 MapGIS二次開發(fā)包中的setup.exe,或是對需要的組件進行注冊:Windows開始菜單->運行:regsvr32C∶\mapgis67\program\MapGisBasCom1.dll,此處假設(shè)使用 MapGisBas-Com1.dll組件,并且組件位于C∶\mapgis67\program\中。

        (2)在項目中嵌入 MAPGIS對象類型庫[4、5],即從Visual Basic的Project(工程)菜單中選擇References(引用),當References對話框出現(xiàn)后,選中復選框中所需的類型庫,如MapGisBasCom1 1.0Type Library。

        (3)聲明和為對象分配內(nèi)存空間,例如:

        Dim PntObj As PntArea ’聲明點工作區(qū)對象變量PntObj

        Set PntObj=New PntArea ’為PntObj分配內(nèi)存空間

        (4)使用對象的方法、屬性。

        例如,取點工作區(qū)中點對象的數(shù)目:

        Dim n As long ’聲明一個長整型變量n

        n=PntObj.count ’取點工作區(qū)中點對象的數(shù)目

        2 在Visual Basic中使用EXCEL

        目前,在試驗室化探分析數(shù)據(jù)多是以EXCEL電子表格形式提供給地勘單位,因此在Visual Basic直接使用EXCEL電子表格,可省去數(shù)據(jù)格式的轉(zhuǎn)換,使用也非常方便。

        在 Visual Basic中使用EXCEL方法[6、7]如下:

        (1)在Visual Basic中引用EXCEL類型庫Microsoft Excel 11.0Object library。方法與引用MapGisBasCom1 1.0Type Library相似。

        (2)聲明與創(chuàng)建EXCEL應用程序?qū)ο?、工作薄對象、工作表對象?/p>

        Dim MyApp As Excel.Application ’定義應用程序類

        Dim MyBook As Excel.Workbook ’定義工件簿類

        Dim Mysheet As Excel.Worksheet ’定義工作表類

        Set MyApp= CreateObject(“Excel.Application”) ’創(chuàng)建EXCEL應用對象

        Set My Book= My App.Workbooks.Open(dataxls) ’打開EXCEL工作簿,dataxls為工作薄文件

        Set Mysheet= MyBook.Worksheets(1)’打開EXCEL工作表

        (3)在程序中引用工作表單元。

        Dim x

        x=Mysheet.Cells(1,2) ’把工作表中第1行第2列單元中的數(shù)據(jù)賦給x

        3 基本算法及主要實現(xiàn)

        3.1 基本算法

        程序首先創(chuàng)建一個 MapGIS點工作區(qū)[8]PntObj,依著EXCEL工作表所提供的數(shù)據(jù)形式構(gòu)造點工作區(qū)屬性結(jié)構(gòu)。逐點讀入EXCEL工作表數(shù)據(jù),依據(jù)橫坐標(x)、縱坐標(y),向點工作區(qū)PntObj添加點對象xy;依著該點的元素含量構(gòu)造屬性數(shù)據(jù)Myrecord,并把屬性數(shù)據(jù)添加到點工作區(qū)PntObj。依次讀完EXCEL工作表中所有數(shù)據(jù)后,按上述方法,構(gòu)造包含屬性數(shù)據(jù)的點工作區(qū)PntObj。

        接下來建立一個MapGIS區(qū)工作區(qū)RegObj,讀入MapGIS異常區(qū)文件,該文件與MapGIS點工作區(qū)PntObj進行點對區(qū)的相交分析[9~11]。相交分析完成后又形成一個點工作區(qū)PntObj2,該工作區(qū)僅包含異常點位的空間及屬性數(shù)據(jù)。

        以點工作區(qū)PntObj2的屬性數(shù)據(jù)為基礎(chǔ),求取各異常的相關(guān)參數(shù),最后把結(jié)果輸出到EXCEL工作表中。

        算法流程見下頁圖1。

        3.2 主要實現(xiàn)

        (1)構(gòu)造點屬性結(jié)構(gòu)。

        聲明屬性字段信息結(jié)構(gòu)對象fldinf:

        Dim fldinf As New Field_Head

        構(gòu)造需添加的字段信息,其中Mysheet是原始數(shù)據(jù)的EXCEL表對象:

        fldinf.fieldname= Mysheet.Cells(1,i)’EXCEL表中第一行為字段的名稱

        fldinf.fieldtype= gisDOUBLE_TYPE’元素含量定義為雙精度型

        fldinf.point_leng=3 ’小數(shù)點后3位數(shù)據(jù)

        fldinf.msk_leng=15 ’數(shù)據(jù)長為15

        fldinf.edit_enable=1 ’可編輯

        fldinf.ptc_pos= -1 ’字段序號

        向點工作區(qū)添加字段:

        flag=pntObj.att.stru.AppendField(fldinf)’flag為TRUE則成功

        (2)添加一個二維點。

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

        lRes=pntObj.Append(xy,“”,PntInfo)’xy為一個點對象D_Dot,lRes為點號

        (3)構(gòu)造和添加屬性數(shù)據(jù)。

        Dim Myrecord As Rcord’聲明屬性記錄對象

        For i=0To m-1

        Myrecord.Value(i+1)= Mysheet.Cells(k,i) ’給第k點的第i個元素記錄賦值

        Next i

        flag=pntObj.att.Write(k,Myrecord)

        ’寫第k條記錄到工作區(qū),flag為TRUE則成功

        (4)加載異常區(qū)文件。

        Dim RegObj As New RegArea ’聲明并創(chuàng)建區(qū)工作區(qū)對象

        rtl=regObj.Load(ycfile) ’ycfile為異常區(qū)文件,rtl為TRUE則成功

        (5)點對區(qū)的空間相交分析。

        Dim AnaObj As New Analysis ’聲明并創(chuàng)建分析對象

        r=0.01 ’模糊結(jié)點半徑

        Op=gisOVLY_INTER ’迭加操作類型為點對區(qū)相交分析

        rtl= anaObj.OverlayPntReg(pntObj,regObj,pntObj2,r,Op) ’點對區(qū)的分析,結(jié)果在pntobj2中,rtl為TRUE則成功

        (6)異常參數(shù)求取。

        異常面積從MapGIS區(qū)工作區(qū)讀取,并把單位換算為平方公里;

        Dim Myrecord2As Record

        Dim Myregatt As RegAtt

        flag= myregatt.Get(i,myrecord2) ’得到第i點的屬性記錄數(shù)據(jù)

        s= myrecord2.Item(2).Value ’讀面積

        s=s/1000000 ’把單位換算為平方公里

        異常濃度分帶數(shù)的求取:

        fendai=Log(max/xiaxian)/Log(2)+1’max為異常范圍內(nèi)某元素的最大值,xiaxian為異常下限

        Ifendai=Int(fendai) ’將fendai截尾取整即為異常濃度分帶數(shù)

        其它參數(shù)如最大值、平均值、襯度(平均值/異常下限)、規(guī)模(面積×襯度)等實現(xiàn)較為簡單,此略。

        4 程序的使用

        4.1 數(shù)據(jù)準備

        (1)原始數(shù)據(jù)。原始數(shù)據(jù)存放在EXCEL工作薄的第一個工作表中,數(shù)據(jù)格式如下。

        第一行為字段名:橫坐標,縱坐標,元素1、元素2、……、元素m

        第二行為異常下限:空,空,元素1、元素2、……、元素m

        以下各行為相應字段的數(shù)據(jù),其中橫坐標和縱坐標的單位為米。

        (2)異常區(qū)文件。由MapGIS的空間分析模塊形成,僅包含由異常下限圍成的區(qū)域,不需內(nèi)部分帶情況。制作該文件時,橫坐標和縱坐標的單位也為米,以使和點工作區(qū)的單位一致。另外,還需要在MapGIS制圖模塊中修改該文件的屬性結(jié)構(gòu),在最后添加一個YCH字段,為雙精度型,存儲異常號。子異常用小數(shù)表示,如12.1、12.2分別表示第12號異常的1號子異常和2號子異常。

        4.2 程序使用及算例

        該程序界面非常簡潔(見圖2),操作也非常簡單。

        (1)點擊“計算”按鈕,開始計算,見圖2。

        圖2 程序界面Fig.2 Program interface

        (2)彈出對話框,提示“打開原始數(shù)據(jù)工作薄”,打開原始數(shù)據(jù)EXCEL文件。

        (3)依次提示“開始 XX元素的計算!”,見圖3。點擊“確定”,彈出“打開XX元素異常區(qū)文件”對話框,打開異常區(qū)文件,開始計算。

        圖3 開始Ag元素的計算Fig.3Starts the Ag element computation

        (4)在所有元素計算完成后,程序彈出EXCEL界面,顯示各元素以及各個異常的計算結(jié)果。

        圖4是河北省1∶200 000圍場幅Ag、Al2O3、As、Au的計算輸出結(jié)果。

        5 結(jié)論

        程序運用MapGIS組件技術(shù),在Visual Basic中,作者首先構(gòu)造了含有元素分析數(shù)據(jù)的點工作區(qū),然后讀入MapGIS異常區(qū)文件。通過點對區(qū)的相交分析,提取出異常數(shù)據(jù),進而對數(shù)據(jù)進行計算,求得異常參數(shù)。該程序解決了繁瑣的人工挑選,并輸入異常數(shù)據(jù)的工作,計算準確。對于大面積的區(qū)域化探工作,可節(jié)省大量的人力物力,非常實用。

        [1] 劉俊長,龔紅蕾,劉軍恒,等.基于 MapGIS的彩色平剖圖的自動繪制[J].物探與化探,2009,33(5):592.

        [2] 劉俊長,龔紅蕾,張玉領(lǐng),等.用MapGis實現(xiàn)區(qū)域化探數(shù)據(jù)的空間分析[J].物探與化探,2008,32(6):690.

        [3] 中地軟件叢書編委會.MAPGIS地理信息系統(tǒng)參考手冊[M].武漢:武漢大學出版社,2002.

        [4] 武漢中地信息工程有限公司,北京中地時代軟件工程有限公司.MAPGIS組件開發(fā)手冊[M].武漢:武漢大學出版社,2002.

        [5] 劉英才,王宏生,李景春.基于MapGIS組件技術(shù)實現(xiàn)地理信息系統(tǒng)的鷹眼功能[J].地質(zhì)與資源,2009,18(1):77.

        [6] 張強,劉飚.Excel 2007與VBA編程從入門到精通[M].北京:電子工業(yè)出版社,2007.

        [7] 楊本倫.Visual Basic開發(fā)技術(shù)大全[M].北京:清華大學出版社,2010.

        [8] 武漢中地數(shù)碼科技有限公司,北京中地時代軟件工程有限公司.MAPGIS二次開發(fā)培訓教程(VB)[M].武漢:武漢大學出版社,2004.

        [9] 吳信才.MAPGIS地理信息系統(tǒng)[M].北京:電子工業(yè)出版社,2004.

        [10]王家耀.空間信息系統(tǒng)原理[M].北京:科學出版社,2001.

        [11]郭仁忠.空間分析[M].武漢:武漢測繪科技大學出版社,1997.

        圖4 輸出結(jié)果Fig.4 Output result

        TP 317.4

        A

        1001—1749(2012)01—0112—04

        2011-06-13 改回日期:2011-09-07

        劉俊長(1963-),男,本科,高極工程師,從事地質(zhì)礦產(chǎn),地球物理地球化學勘查工作。

        猜你喜歡
        化探控件組件
        無人機智能巡檢在光伏電站組件診斷中的應用
        能源工程(2022年2期)2022-05-23 13:51:50
        西藏熱昌金礦地質(zhì)及物探化探特征
        新型碎邊剪刀盤組件
        重型機械(2020年2期)2020-07-24 08:16:16
        U盾外殼組件注塑模具設(shè)計
        關(guān)于.net控件數(shù)組的探討
        軟件(2018年7期)2018-08-13 09:44:42
        《物探化探計算技術(shù)》2016年1~6期總要目
        風起新一代光伏組件膜層:SSG納米自清潔膜層
        太陽能(2015年11期)2015-04-10 12:53:04
        盲源分離技術(shù)在化探數(shù)據(jù)處理中的思考與探索
        就這樣玩會VBA中常見的自定義控件
        電腦迷(2012年24期)2012-04-29 00:44:03
        英語進行體之語用法的語法化探賾
        中文字幕网伦射乱中文| 一级午夜理论片日本中文在线| 一卡二卡国产av熟女| 亚洲一区二区三区小说| 久久人人爽人人爽人人av| 久久久99精品成人片中文字幕 | 国产一区二区三区在线观看精品| 18禁黄无遮挡免费网站| 白白色发布在线观看视频| 无码熟妇人妻av影音先锋| 久久亚洲精品ab无码播放| 亚洲AV无码乱码精品国产草莓| 韩国一区二区三区黄色录像| 精品无人码麻豆乱码1区2区| 激情偷乱人伦小说视频在线| 亚洲日韩AV无码美腿丝袜| 国产亚洲熟妇在线视频| 亚洲热线99精品视频| 亚洲专区欧美| 丝袜美腿亚洲综合玉足| 国产精品亚洲av无人区一区香蕉| 亚洲精品无码不卡在线播放he| 久久久综合九色合综国产| 久久婷婷国产色一区二区三区| 久久影院午夜理论片无码| 在线va免费看成| av手机天堂| 国产成人国产三级国产精品| 高h纯肉无码视频在线观看| 亚洲天堂99| 日本精品熟妇一区二区三区| 一区二区三区无码高清视频| 亚洲av无码av日韩av网站| 国产av无码专区亚洲草草| 91九色视频在线国产| 精品丰满人妻无套内射| 久久久久久久98亚洲精品| 国产情侣自拍偷拍精品| 岳丰满多毛的大隂户| 免费人成年小说在线观看| 日韩精品有码在线视频|