• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于組件GIS的區(qū)域物化探數(shù)據(jù)處理軟件開發(fā)

      2013-03-06 01:03:00韓紹陽吳曲波
      世界核地質(zhì)科學(xué) 2013年1期
      關(guān)鍵詞:物化調(diào)用數(shù)據(jù)處理

      柯 丹, 韓紹陽, 喻 翔, 吳曲波, 李 希

      (1.核工業(yè)北京地質(zhì)研究院,中核集團鈾資源勘查與評價技術(shù)重點實驗室,北京 100029;2.中國核科技信息與經(jīng)濟研究院,北京 100037;3.中國地質(zhì)大學(xué)(北京),北京 100083;)

      區(qū)域物化探數(shù)據(jù)(重力、磁力、放射性和地球化學(xué)等)在斷裂構(gòu)造識別、盆地基底反演、巖體邊界圈定和巖性識別等區(qū)域地質(zhì)成礦環(huán)境分析與研究方面具有重要的作用[1]。GIS技術(shù)的快速發(fā)展,使傳統(tǒng)物化探數(shù)據(jù)處理軟件面臨著巨大挑戰(zhàn),即,要求軟件具有專業(yè)數(shù)據(jù)處理功能的同時,還要具有海量數(shù)據(jù)管理、坐標(biāo)系統(tǒng)變換以及標(biāo)準(zhǔn)的制圖輸出等功能。目前國外軟件廠商也已經(jīng)注意到這一點,在軟件開發(fā)上專為GIS應(yīng)用預(yù)留了接口或開發(fā)了專用的組件 (如Geosoft montaj oasis軟件提供的ArcGIS組件)。但國內(nèi)物化探數(shù)據(jù)軟件在這一方面目前還處于起步階段,因此所開發(fā)出的集基本GIS功能、常規(guī)物化探數(shù)據(jù)處理功能,以及非常規(guī)數(shù)據(jù)處理功能于一體的區(qū)域物化探數(shù)據(jù)處理軟件具有較強的實用性和前瞻性。

      1 軟件功能設(shè)計

      區(qū)域物化探數(shù)據(jù)軟件由基本GIS功能、常規(guī)數(shù)據(jù)處理功能和非常規(guī)數(shù)據(jù)處理功能三大功能模塊組成。各功能模塊共享同一區(qū)域物化探信息數(shù)據(jù)庫,軟件總體結(jié)構(gòu)如圖1所示。

      1.1 基本GIS功能

      基本GIS功能包括視圖管理、矢量數(shù)據(jù)的查詢和檢索、屬性數(shù)據(jù)管理、圖形操作、空間分析和制圖輸出等功能,能夠滿足區(qū)域物化探數(shù)據(jù)處理時對GIS功能的需求(圖2)。

      1.2 常規(guī)數(shù)據(jù)處理功能

      常規(guī)數(shù)據(jù)處理功能包括數(shù)據(jù)預(yù)處理、重磁數(shù)據(jù)處理和放射性數(shù)據(jù)處理3個部分(圖3)。數(shù)據(jù)的預(yù)處理主要有空區(qū)補值及擴邊、滑動平均和正則化濾波等常用功能。重磁數(shù)據(jù)處理功能主要包括解析延拓、化磁極、方向?qū)?shù)和歐拉反褶積反演等常規(guī)處理功能。放射性數(shù)據(jù)處理主要包括鈾富集系數(shù)、變異系數(shù)、U2信息以及空間相關(guān)性分析等功能,為從放射性數(shù)據(jù)中提取出與鈾礦化相關(guān)的各種信息提供了技術(shù)手段。

      1.3 非常規(guī)數(shù)據(jù)處理功能

      非常規(guī)數(shù)據(jù)處理功能包括分形外插、弱信息提取、斷裂分維數(shù)測量和非線性重磁場分解等4個部分(圖4)。分形外插功能可以對重磁數(shù)據(jù)進行空間外插,從而使數(shù)據(jù)滿足頻率域中處理的要求,與傳統(tǒng)方法相比,可以很好地消除插值所引起的邊緣效應(yīng)。弱信息提取功能主要包括弱異常增強、自調(diào)節(jié)濾波和磁場二次差分等方法,可以對一些微弱重磁異常進行提取。斷裂分維數(shù)功能可以快速有效地對單區(qū)或多區(qū)容量維和信息維進行計算,從而可以定量反映斷裂構(gòu)造的復(fù)雜程度,為描述斷裂構(gòu)造的空間分布提供依據(jù)。非線性重磁分解功能主要包括分形奇異值分解、DCT域和FFT域內(nèi)和能譜-面積(SA)分形方法,它們均可以對重磁場進行區(qū)域場和局部場的有效分離。

      2 軟件開發(fā)關(guān)鍵技術(shù)

      2.1 組件GIS技術(shù)

      基于Visual Studio 2005和ArcGIS Engine 9.2平臺進行軟件開發(fā)。

      ArcGIS Engine是一個基于ArcObjects構(gòu)建的可編程的GIS工具包,可以提供常用的GIS功能。ArcGIS Engine主要由控件、工具和對象庫3部分組成。ArcGIS Engine提供了20多個對象庫,用戶可以根據(jù)自己的需要在程序中添加相應(yīng)的庫。利用工具和對象庫可以實現(xiàn)視圖的瀏覽和縮放、圖層的疊加顯示、圖形的編輯、文本標(biāo)注、空間分析和制圖輸出等基本GIS功能。

      2.2 混合編程技術(shù)

      混合編程采用多種編程語言進行組合編程,相互調(diào)用,共享數(shù)據(jù)結(jié)構(gòu)和信息。它集各種語言的優(yōu)點于一身,從而避免了使用單獨一種語言的不足[2]??梢栽谳^短時間內(nèi)對現(xiàn)有的由不同語言編寫的程序代碼進行修改,形成新的應(yīng)用程序,縮短了開發(fā)周期、節(jié)約成本、提高效益。函數(shù)命名約定和參數(shù)傳遞方式是混合編程時需要注意的兩個方面。命名約定是為了解決不同語言對名稱標(biāo)識符(如變量名、參數(shù)名、過程名和函數(shù)名等)的不同處理,對目標(biāo)文件名的不同長度進行限制的約定。參數(shù)傳遞方式的一致性直接影響到程序調(diào)用的正確性,因此,發(fā)送參數(shù)的方式和接收參數(shù)的方式要完全一致。

      混合編程的實現(xiàn)可以分為以下3個步驟:

      (1)將由高級語言編寫的區(qū)域物化探數(shù)據(jù)處理方法的計算機程序改寫為動態(tài)鏈接庫,并在動態(tài)鏈接庫中設(shè)置相應(yīng)的處理函數(shù)接口,以供Visual C#語言調(diào)用。

      (2)利用Visual C#完成程序界面、參數(shù)對話框和功能菜單的設(shè)計。

      (3)將模塊中各個菜單項與相應(yīng)的數(shù)據(jù)處理方法相連接,通過單擊菜單項可以實現(xiàn)各種數(shù)據(jù)處理功能的調(diào)用。

      2.3 動態(tài)鏈接庫文件的生成與調(diào)用

      在混合編程實現(xiàn)的過程中,動態(tài)鏈接庫的生成是關(guān)鍵之一。下面重點介紹VC++和Fortran動態(tài)鏈接庫的生成,以及Visual C#對Matlab的調(diào)用。

      2.3.1 VC++庫文件的生成

      以化磁極程序為例,說明VC++動態(tài)鏈接庫的生成,具體實現(xiàn)過程分為如下3個步驟:

      (1)新建一個名稱為MagRTP的動態(tài)鏈接庫項目(MFC AppWizard(dll)), 并為項目添加一個成員函數(shù) (Add Member Function),函數(shù)類型為void,聲明為:

      MagRTP (float D, float I, char FileIn [],char FileOut[])

      其中變量D為磁偏角,I為磁傾角,F(xiàn)ileIn[]為輸入數(shù)據(jù)文件名,F(xiàn)ileOut[]為輸出數(shù)據(jù)文件名。

      在項目的FileView一欄的Source Files中找到文件MagRTP.def,在EXPORTS的下面一行加入要輸出的函數(shù)名稱,即MagRTP。這樣就完成了動態(tài)鏈接庫項目的建立及導(dǎo)出函數(shù)的聲明。

      (2) 在 MagRTP (float D, float I, char FileIn[], char FileOut[])函數(shù)中輸入實現(xiàn)化磁極的程序代碼(由于文章篇幅限制,此處程序代碼省略)。

      (3)將輸出文件設(shè)置為發(fā)行版,即在Build菜單下選擇Set Active Project Configuration菜單項,將它的值設(shè)置為Win32 Release。然后對程序進行編譯、連接、執(zhí)行,在項目所在目錄的Release文件夾中可以找到編譯后的動態(tài)鏈接庫文件MagRTP.dll,庫中的導(dǎo)出函數(shù)為MagRTP。

      2.3.2 Fortran庫文件的生成

      以解析延拓程序為例,說明Fortran動態(tài)鏈接庫的生成,具體實現(xiàn)過程分為如下3個步驟:

      (1)在Fortran PowerStation 4.0開發(fā)環(huán)境中創(chuàng)建一個類型為動態(tài)鏈接庫(Dynamic-Link Library)的項目(名稱為 Continuation), 將需要改寫的源文件Continuation.for加入該項目文件,并將源文件另存為Continuation.f 90,在項目中刪去文件Continuation.for,并導(dǎo)入文件Continuation.f 90。

      (2)對文件Continuation.f 90進行改寫。改寫后的用于定義輸出參數(shù)的程序代碼如下:

      程序代碼第一行中的 “DLLEXPORT::CONTINUATION”表示導(dǎo)出函數(shù)為“CONTINUATION”。在Avenue語言中,調(diào)用導(dǎo)出函數(shù) “CONTINUATION”時所用的具體名稱(大小寫),需要根據(jù)Fortran的調(diào)用約定來確定,默認(rèn)情況下導(dǎo)出函數(shù)名稱全部為大寫;當(dāng)調(diào)用約定為C或STDCALL時,導(dǎo)出函數(shù)名稱全部為小寫。為了調(diào)用方便,利用 “!MS $ ATTRIBUTES ALIAS:'Continuation'::CONTINUATION”語句,強制規(guī)定“CONTINUATION”函數(shù)被調(diào)用時的名稱為“Continuation”。 通過修飾符 VALUE和REFERENCE控制參數(shù)的傳遞類型,VALUE表示參數(shù)的傳遞方式是值傳遞;REFERENCE表示參數(shù)的傳遞方式是地址傳遞,F(xiàn)ortran PowerStation中默認(rèn)的參數(shù)傳遞方式是地址傳遞。

      (3)對改寫后的程序文件進行編譯(Compile)、 連接(Link), 并生成 Continuation.dll文件,從庫中導(dǎo)出的函數(shù)為Continuation。

      2.3.3 Matlab庫文件的生成

      首先利用Matlab自帶的 COM組件編譯工具COM Builder將以.m文件編寫的數(shù)值計算函數(shù)編譯為COM組件(DLL文件),然后利用VS.NET友好的GUI功能和組件調(diào)用能力調(diào)用Matlab生成組件,從而達到綜合利用兩種軟件平臺優(yōu)勢的目的,并且使軟件開發(fā)達到更好的模塊化。

      2.3.3.1 Matlab下COM組件的生成

      (1)創(chuàng)建工程。在 COM Builder窗口中的Component name文本框中設(shè)置組件(DLL文件)的名稱。

      (2)添加M文件和編譯創(chuàng)建組件。將.m文件添加到工程中,點擊 Build/COM object,生成所需的頭文件、源文件、接口描述文件、動態(tài)鏈接庫文件等,在右側(cè)的 Build status顯示框中顯示編譯的過程和信息。

      (3)打包和分發(fā)組件。點擊ComponentAdd component將文件打包。打包后新建 distrib和src文件夾,包含調(diào)用所需文件、庫、資源、接口等。

      2.3.3.2 VS.NET調(diào)用COM組件

      (1)添加引用。在 VS.NET環(huán)境下,點擊“項目/添加引用”菜單。在該對話框中,選擇中間選項卡COM,如果COM組件在系統(tǒng)中已注冊,則可在列表中找到該組件。選擇生成組件,并添加到項目中。打開.NET對象瀏覽器窗口,可看到由Matlab生成的COM類已添加到工程項目中。

      (2)實例化COM引用。完成添加后,可在.NET代碼中使用COM組件。VS.NET創(chuàng)建的名稱空間與原來的COM組件有同樣的名稱,由COM組件提供的類放在該名稱空間中,則可與使用C#固有對象相同的語言來創(chuàng)建其引用,并實例化和調(diào)用COM對象的包裝。

      3 軟件功能開發(fā)

      3.1 軟件界面設(shè)計

      軟件界面按照Windows界面風(fēng)格進行設(shè)計,主界面由菜單、工具條、圖例內(nèi)容表、視圖和狀態(tài)欄5部分組成(圖5)。主要包括文件、視圖管理、查詢檢索、屬性管理、圖形操作、空間分析、數(shù)據(jù)預(yù)處理、常規(guī)處理、弱信息提取、非線性分解、斷裂分形維和放射性處理等菜單。

      3.2 基本GIS功能開發(fā)

      軟件中基本GIS功能大部分可以直接通過ArcGIS Engine提供的工具按鈕來實現(xiàn),不需要進行任何編程,但是還有一些功能,如網(wǎng)格專題的添加、空間和屬性查詢、圖例編輯等等都是需要通過編程來實現(xiàn)的。

      3.3 物化探數(shù)據(jù)處理功能開發(fā)

      常規(guī)與非常規(guī)數(shù)據(jù)處理功能開發(fā)的思路相同,就是先把需要處理的網(wǎng)格專題圖層(GRID Files)轉(zhuǎn)換成文本文件,然后再調(diào)用動態(tài)鏈接庫中的數(shù)據(jù)處理函數(shù)對文本文件進行處理,最后再將處理得到的結(jié)果文本文件轉(zhuǎn)換成柵格圖層,并導(dǎo)入到軟件的當(dāng)前視圖中進行其他分析。

      4 結(jié) 論

      基于組件GIS技術(shù)開發(fā)的專業(yè)應(yīng)用軟件,具有開發(fā)方式靈活、開發(fā)周期短、更專注于專業(yè)功能等優(yōu)點。開發(fā)的區(qū)域物化探數(shù)據(jù)處理軟件界面友好、操作簡單、功能實用,高效地將基本GIS功能、常規(guī)數(shù)據(jù)處理功能,以及非常規(guī)數(shù)據(jù)處理功能集成在一起。該軟件在桃山—諸廣鈾成礦帶、內(nèi)蒙古滿洲里鈾及多金屬成礦帶得到了應(yīng)用,取得了較好的應(yīng)用效果,并成功獲得了國家版權(quán)局頒發(fā)的計算機軟件著作權(quán)登記證書。

      [1]柯 丹.花崗巖型鈾礦勘查中區(qū)域物化探方法技術(shù)研究[D].北京:核工業(yè)北京地質(zhì)研究院,2011.

      [2]劉乃琦.IBM PC混合語言編程技術(shù)[M].北京:電子工業(yè)出版社,1990.

      猜你喜歡
      物化調(diào)用數(shù)據(jù)處理
      認(rèn)知診斷缺失數(shù)據(jù)處理方法的比較:零替換、多重插補與極大似然估計法*
      ILWT-EEMD數(shù)據(jù)處理的ELM滾動軸承故障診斷
      核電項目物項調(diào)用管理的應(yīng)用研究
      LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
      基于系統(tǒng)調(diào)用的惡意軟件檢測技術(shù)研究
      物的人化與人的物化——當(dāng)代舞臺美術(shù)的表演
      基于希爾伯特- 黃變換的去噪法在外測數(shù)據(jù)處理中的應(yīng)用
      檔案:一種物化的文化形態(tài)
      拋物化Navier-Stokes方程的降維仿真模型
      計算物理(2014年1期)2014-03-11 17:00:18
      利用RFC技術(shù)實現(xiàn)SAP系統(tǒng)接口通信
      青川县| 武功县| 西昌市| 聂荣县| 达尔| 漳浦县| 日喀则市| 延川县| 东丽区| 潼南县| 长岛县| 禹州市| 巴林右旗| 乐昌市| 余干县| 绥化市| 泽州县| 翼城县| 乾安县| 锦屏县| 交口县| 新宾| 龙岩市| 华阴市| 尼玛县| 巴楚县| 涡阳县| 阿鲁科尔沁旗| 繁昌县| 晋宁县| 麦盖提县| 磴口县| 淄博市| 平潭县| 镇赉县| 高密市| 八宿县| 江口县| 大竹县| 南溪县| 赤壁市|