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

        ?

        面向?yàn)?zāi)害識(shí)別的專(zhuān)題波譜庫(kù)設(shè)計(jì)與開(kāi)發(fā)

        2013-06-26 13:15:42王克曉李顯巨陳偉濤
        地理空間信息 2013年2期
        關(guān)鍵詞:波譜災(zāi)害數(shù)據(jù)庫(kù)

        王克曉,李顯巨,陳偉濤

        (1. 中國(guó)地質(zhì)大學(xué)(武漢)信息工程學(xué)院,湖北 武漢 430074;2. 中國(guó)地質(zhì)大學(xué)(武漢)計(jì)算機(jī)學(xué)院,湖北 武漢 430074)

        高光譜遙感在災(zāi)害監(jiān)測(cè)領(lǐng)域扮演重要的角色?;诟吖庾V數(shù)據(jù)的災(zāi)害精細(xì)識(shí)別和分類(lèi),需要災(zāi)害相關(guān)地物波譜庫(kù)支持。1980年以來(lái),國(guó)內(nèi)相繼建立了10余個(gè)地物波譜庫(kù)[1]。王錦地等人在光譜庫(kù)的基礎(chǔ)上,緊密結(jié)合高光譜影像,實(shí)現(xiàn)了融遙感信息提取為一體的波譜知識(shí)庫(kù)[2]。但國(guó)內(nèi)外尚未公開(kāi)出版與災(zāi)害相關(guān)的地物波譜庫(kù),不能滿(mǎn)足防災(zāi)減災(zāi)工作需求;尤其是在我國(guó)已經(jīng)成功發(fā)射環(huán)境與減災(zāi)衛(wèi)星的背景下,災(zāi)害專(zhuān)題波譜庫(kù)的建設(shè)更是意義重大。

        1 災(zāi)害專(zhuān)題波譜庫(kù)的設(shè)計(jì)

        1.1 基本原則

        波譜數(shù)據(jù)采集嚴(yán)格遵循地物波譜測(cè)量標(biāo)準(zhǔn)規(guī)范,波譜庫(kù)的目標(biāo)是為遙感圖像信息提取提供地面波譜參考,因此所采用的運(yùn)行環(huán)境應(yīng)該直接服務(wù)于圖像處理過(guò)程。基于此,本文設(shè)計(jì)的災(zāi)害專(zhuān)題波譜庫(kù)具有以下特征:①采用VB.NET2005編寫(xiě)界面,操作數(shù)據(jù)庫(kù);②采用SQL Server 2005管理數(shù)據(jù)庫(kù),可實(shí)現(xiàn)客戶(hù)端遠(yuǎn)程連接,系統(tǒng)采用C/S模式,應(yīng)用程序登陸窗口有一個(gè)配置按鈕,把連接服務(wù)器數(shù)據(jù)庫(kù)信息寫(xiě)入ini文件;③充分利用IDL7.0的圖形功能,實(shí)現(xiàn)波譜數(shù)據(jù)的處理和可視化,并可以集成ENVI軟件中常用的函數(shù);④3種語(yǔ)言跨平臺(tái)集成,實(shí)現(xiàn)各語(yǔ)言?xún)?yōu)勢(shì)互補(bǔ)。

        1.2 基本功能

        災(zāi)害專(zhuān)題波譜庫(kù)可視化程序設(shè)計(jì),實(shí)現(xiàn)了用戶(hù)管理、波譜預(yù)處理、數(shù)據(jù)庫(kù)管理和波譜顯示等功能。

        1)用戶(hù)管理模塊。使用SQL Server 2005建立波譜數(shù)據(jù)庫(kù)時(shí),包含2個(gè)表:用戶(hù)信息表和波譜信息表。波譜信息表各字段及其釋義參照地物波譜測(cè)量標(biāo)準(zhǔn)規(guī)范。用戶(hù)信息表包含用戶(hù)ID、登陸密碼和用戶(hù)權(quán)限3個(gè)字段。

        2)波譜預(yù)處理模塊。其功能由VB.NET 2005分別調(diào)用ENVI二次開(kāi)發(fā)函數(shù)實(shí)現(xiàn)。ASD采集的波譜不能直接用作端元,需要進(jìn)行包括波譜平均、去陡峭、噪聲消除和波譜指數(shù)統(tǒng)計(jì)等預(yù)處理。波譜平均:對(duì)同一測(cè)量環(huán)境下相同樣品的n(n≥10)條波譜進(jìn)行算術(shù)平均,獲取1條近似真實(shí)的地物波譜。去陡峭:ASD儀器采集波譜時(shí)在1 000 nm、1 750 nm等波長(zhǎng)處會(huì)產(chǎn)生反射率陡然增加的現(xiàn)象,可根據(jù)陡峭位置采用相應(yīng)的系數(shù)法消除這些陡峭現(xiàn)象。噪聲去除:根據(jù)波譜噪聲在測(cè)量波長(zhǎng)區(qū)間的分布狀況,采用窗口濾波法消除ASD野外采集的波譜噪聲。波譜指數(shù)計(jì)算:計(jì)算吸收谷左右肩部、谷底值及相應(yīng)的波長(zhǎng)位置、吸收深度、吸收寬度、吸收谷總面積和對(duì)稱(chēng)度。

        3)數(shù)據(jù)庫(kù)管理模塊。實(shí)質(zhì)上是對(duì)數(shù)據(jù)庫(kù)中波譜信息表的操作,包括查看/添加波譜數(shù)據(jù)以及修改波譜數(shù)據(jù)3個(gè)子模塊?!安榭础蹦K實(shí)現(xiàn)波譜信息屬性表的顯示;“添加”模塊實(shí)現(xiàn)把經(jīng)過(guò)預(yù)處理的波譜及其相關(guān)信息錄入數(shù)據(jù)庫(kù);“修改”模塊實(shí)現(xiàn)對(duì)波譜信息的修改、刪除和追加操作,為管理員權(quán)限。該模塊功能采用VB.NET結(jié)合SQL Server實(shí)現(xiàn),見(jiàn)圖1。

        圖1 修改波譜屬性數(shù)據(jù)窗口

        4)波譜曲線顯示模塊。由VB.NET調(diào)用IDL組件COM_idl_connectlib及相應(yīng)函數(shù)實(shí)現(xiàn),實(shí)現(xiàn)原始波譜曲線及處理后波譜曲線的顯示。圖2和圖3是用ASD采集的大同盆地土壤鹽堿化原始波譜與預(yù)處理后的波譜。

        圖2 大同盆地土壤鹽堿化原始波譜

        圖3 波譜平均與去陡峭后的原始波譜

        2 災(zāi)害專(zhuān)題波譜庫(kù)實(shí)現(xiàn)過(guò)程

        2.1 C/S模式遠(yuǎn)程連接

        配置SQL Server2005,開(kāi)啟遠(yuǎn)程連接功能。連接服務(wù)器數(shù)據(jù)庫(kù)字符串由用戶(hù)配置到ini文件,然后再讀取。連接服務(wù)器數(shù)據(jù)庫(kù)字符串包括:Data Source=服務(wù)器IP地址,Initial Catalog=數(shù)據(jù)庫(kù)名,User Id=訪問(wèn)數(shù)據(jù)庫(kù)用戶(hù)名,Password=訪問(wèn)數(shù)據(jù)庫(kù)用戶(hù)的密碼。為了保護(hù)數(shù)據(jù)庫(kù)信息,專(zhuān)門(mén)設(shè)置了用戶(hù)密碼。

        2.2 ini文件操作方法

        先引入2個(gè)API函數(shù),然后自定義讀寫(xiě)配置文件函數(shù) GetINI和WriteINI。

        '定義讀取配置文件函數(shù)

        Public Function GetINI(ByVal Section As String,ByVal AppName As String, ByVal lpDefault As String,ByVal FileName As String) As String

        Dim Str As String = LSet(Str, 256)

        GetPrivateProfi leString(Section, AppName, lpDefault,Str, Len(Str), FileName)

        Return Microsoft.VisualBasic.Left(Str, InStr(Str,Chr(0)) - 1)

        End Function

        '定義寫(xiě)入配置文件函數(shù)

        Public Function WriteINI(ByVal Section As String,ByVal AppName As String, ByVal lpDefault As String,ByVal FileName As String) As Long

        WriteINI = WritePrivateProfileString(Section,AppName, lpDefault, FileName)

        End Function

        2.3 數(shù)據(jù)文件格式

        本系統(tǒng)的數(shù)據(jù)文件格式采用ENVI影像格式。柵格影像數(shù)據(jù)以二進(jìn)制數(shù)據(jù)流方式按BSQ、BIL或是BIP的存儲(chǔ)順序存儲(chǔ)。文件中只有影像數(shù)據(jù),頭信息沒(méi)有嵌入到文件中。ENVI格式的影像文件可使用任意名稱(chēng),無(wú)需擴(kuò)展名。每一個(gè)二進(jìn)制文件都伴隨有一個(gè)ASCⅡ格式的頭文件,描述影像的基本特征以及附加信息。為了ENVI能夠識(shí)別這個(gè)頭文件,它必須和影像文件具有同樣的文件名,并以.hdr作為擴(kuò)展名[3]。

        2.4 VB.NET操作SQL Server

        VB.NET數(shù)據(jù)庫(kù)編程主要利用的是ADO.NET。ADO.NET有2個(gè)核心組件:DataSet類(lèi)和.net數(shù)據(jù)提供程序,可以實(shí)現(xiàn)從數(shù)據(jù)操作中分解出數(shù)據(jù)訪問(wèn)。ADO.NET的數(shù)據(jù)存取,API提供3種數(shù)據(jù)訪問(wèn)方式:通過(guò)ODBC相連訪問(wèn)支持早期ODBC協(xié)議的數(shù)據(jù)庫(kù);通過(guò)OLEDB相連訪問(wèn)SOL Server6.5、Microsoft Access、Oracle或者其他有提供OLE DB連接能力的數(shù)據(jù)庫(kù);使用SqlConnection直接與SQL Server7.0、SQL Server2000以及SQL Server2005相連[4-6]。本文使用SQL Connection直接連接SQL Server2005數(shù)據(jù)庫(kù)。

        1)填充數(shù)據(jù)。運(yùn)用數(shù)據(jù)適配器da把表征波譜信息的數(shù)據(jù)填充到數(shù)據(jù)集ds中,然后再把ds中的數(shù)據(jù)顯示在datagridview中,實(shí)現(xiàn)信息的可視化。

        Dim ds as dataset

        Dim da as sqlclient.sqldataadapter

        Dim sql as string =”select * from 波譜信息”

        Da=new sqldataadapter(sql,con)

        Da.fi ll(ds)

        Datagridview1.datasource=ds.tables(0)

        2)刪除數(shù)據(jù)記錄。方法與添加數(shù)據(jù)記錄相似,只不過(guò)SQL語(yǔ)句不同。

        Dim sql As String= “DELETE FROM 表where 字段=某textbox的text”

        3)修改數(shù)據(jù)記錄。方法與添加數(shù)據(jù)記錄相似,只不過(guò)SQL語(yǔ)句不同。

        Dim sql as string= “UPDATE 表SET 字段= ” ” “

        2.5 VB.NET調(diào)用IDL程序

        2.5.1 IDL接口

        為了使Windows用戶(hù)能夠用通用開(kāi)發(fā)語(yǔ)言C、C++、Visual Basic和Fortran等集成IDL功能,IDL提供了ActiveX 控件IDLDrawWidget和COM組件COM_IDL_Cconnect 2種方式[7]。本系統(tǒng)使用COM_IDL_Connect組件實(shí)現(xiàn)VB.NET和IDL的連接。

        2.5.2 調(diào)用IDL接口的方法

        首先要在VB.NET中添加對(duì)COM_IDL_Cconnect的引用。在外部程序中調(diào)用IDL 主要有4 個(gè)環(huán)節(jié):初始化IDL、編譯IDL代碼、執(zhí)行IDL命令和釋放IDL。

        1)初始化IDL。

        Dim ostock As New COM_IDL_connectLib.COM_IDL_connect

        Try

        ostock.CreateObject(0, 0, 0)

        Catch ex As Exception

        MessageBox.Show(ostock.GetLastError())

        Return

        End Try

        AddHandler ostock.OnIDLOutput, AddressOf evOutput

        2)編譯IDL代碼。

        ostock.ExecuteString(".COMPILE main.pro")

        對(duì)于直接編譯好的sav代碼,則應(yīng)為:ostock.ExecuteString("restore,’main.sav’ ")

        3)執(zhí)行IDL命令。

        Dim FilePathName As String = "FilePathName"

        Dim WorkingDirectory As String = "CD, '" +Application.StartupPath + "'"

        ostock.ExecuteString(WorkingDirectory)

        ostock.SetIDLVariable("FilePathName", fi lepath)

        ostock.ExecuteString("main,FilePathName")

        4)釋放IDL。

        ostock.DestroyObject()

        在調(diào)用IDL過(guò)程中,程序運(yùn)行信息的可視化由下面的過(guò)程實(shí)現(xiàn):

        Sub evOutput(ByVal ss As String)

        IDL_Output_Box.Text = IDL_Output_Box.Text + ss

        End Sub

        2.6 IDL調(diào)用ENVI函數(shù)進(jìn)行二次開(kāi)發(fā)

        1)ENVI初始化。在IDL程序中調(diào)用ENVI函數(shù)時(shí),首先要初始化ENVI批處理模式,添加代碼:

        ENVI, /RESTORE_BASE_SAVE_FILES

        ENVI_BATCH_INIT

        2)ENVI函數(shù)。文件管理:ENVI_PICKFILE函數(shù)產(chǎn)生一個(gè)提示用戶(hù)選擇文件的對(duì)話(huà)框;ENVI_SELECT產(chǎn)生對(duì)話(huà)框提示用戶(hù)從ENVI中已經(jīng)打開(kāi)的文件中選擇一個(gè)文件;ENVI_OPEN_FILE 函數(shù)返回一個(gè)文件的FID;ENVI_GET_DATA從一個(gè)打開(kāi)的文件中獲取影像數(shù)據(jù),它每次只返回某一波段的數(shù)據(jù)。

        3)ENVI處理程序的通用關(guān)鍵字。

        FID:FID為ENVI的程序員提供一個(gè)命名變量,可以被數(shù)個(gè)ENVI程序使用,用來(lái)打開(kāi)或選擇文件。ENVI對(duì)該文件進(jìn)行的所有操作都是通過(guò)FID完成的。

        R_FID和M_FID:如果結(jié)果存在內(nèi)存中,設(shè)置R_FID關(guān)鍵字是訪問(wèn)該數(shù)據(jù)的唯一方法。掩膜處理程序還包括一個(gè)M_FID,用于確定用作掩膜波段的文件。

        DIMS關(guān)鍵字是一個(gè)5個(gè)元素長(zhǎng)整型數(shù)組,它定義了處理數(shù)據(jù)的空間子集。DIMS[0]:用于存儲(chǔ)指向一個(gè)打開(kāi)的ROI區(qū)域的指針,僅在ROI被定義時(shí)使用,其他時(shí)候設(shè)為-1;DIMS[1]:采樣的起始位置;DIMS[2]:采樣的終止位置;DIMS[3]:行的起始位置;DIMS[4]:行的結(jié)束位置。

        POS關(guān)鍵字定義了用于處理的波段位置,如要處理多波段文件的第三波段和第四波段數(shù)據(jù),POS=[2,3]。

        3 結(jié) 語(yǔ)

        本文采用VB.NET2005、SQL Server 2005和IDL7.0集成的可視化程序設(shè)計(jì)方法,開(kāi)發(fā)了災(zāi)害專(zhuān)題波譜庫(kù)。它既包含了IDL語(yǔ)言強(qiáng)大的科學(xué)計(jì)算能力、矩陣數(shù)據(jù)分析和可視化功能,又具備了VB.NET語(yǔ)言便捷的界面設(shè)計(jì)和控制管理優(yōu)勢(shì),更具備了SQL Server高效地組織和管理數(shù)據(jù)的優(yōu)勢(shì)。該設(shè)計(jì)方法是有效管理災(zāi)害專(zhuān)題波譜庫(kù)的新途徑。

        [1]田慶久, 宮鵬. 地物波譜數(shù)據(jù)庫(kù)研究現(xiàn)狀與發(fā)展趨勢(shì)[J]. 遙感信息, 2002(3): 2-7

        [2]王錦地, 張立新, 柳欽火, 等. 中國(guó)典型地物波譜知識(shí)庫(kù)[M].北京:科學(xué)出版社, 2009

        [3]航天星圖(北京)有限公司. ENVI二次開(kāi)發(fā)指南[M]. 航天星圖(北京)有限公司, 2006

        [4]曹萌萌, 李響. VB.NET訪問(wèn)SQL SERVER 2000數(shù)據(jù)庫(kù)的方法[J]. 農(nóng)業(yè)圖書(shū)情報(bào)學(xué)刊, 2007, 19(1): 110-112

        [5]鄭偉. VB.NET程序設(shè)計(jì)與軟件項(xiàng)目實(shí)訓(xùn)[M]. 北京: 清華大學(xué)出版社, 2009

        [6]楊湖,李鳳蕾,等. SQL Server 2005數(shù)據(jù)庫(kù)系統(tǒng)開(kāi)發(fā)案例精選[M]. 北京: 人民郵電出版社, 2007

        [7]闡緩坷, 朱利東, 張瑞軍. 基于IDL和.NET的可視化程序設(shè)計(jì)[J]. 計(jì)算機(jī)應(yīng)用研究, 2007, 24(9): 149-151

        猜你喜歡
        波譜災(zāi)害數(shù)據(jù)庫(kù)
        河南鄭州“7·20”特大暴雨災(zāi)害的警示及應(yīng)對(duì)
        我省汛期常見(jiàn)氣象災(zāi)害及防御
        推動(dòng)災(zāi)害防治工作實(shí)現(xiàn)新跨越
        琥珀酸美托洛爾的核磁共振波譜研究
        數(shù)據(jù)庫(kù)
        美國(guó)波譜通訊系統(tǒng)公司
        數(shù)據(jù)庫(kù)
        數(shù)據(jù)庫(kù)
        數(shù)據(jù)庫(kù)
        波譜法在覆銅板及印制電路板研究中的應(yīng)用
        91精品久久久老熟女91精品| 国产女人水真多18毛片18精品| 日本另类αv欧美另类aⅴ| 熟妇熟女乱妇乱女网站| 48久久国产精品性色aⅴ人妻| 99精品国产一区二区| 国产成年女人特黄特色毛片免| 国产69精品久久久久9999| 色94色欧美sute亚洲线路二| 国产九色AV刺激露脸对白| 久久青草亚洲AV无码麻豆| 精品国产亚洲av麻豆尤物| 青青自拍视频成人免费观看| 在线观看一区二区三区视频| 少妇人妻精品久久888| 午夜一区二区三区观看| 神马影院午夜dy888| 成人乱码一区二区三区av| 精品成人av一区二区三区| 亚洲综合精品成人| 日韩精品视频在线观看免费| 在线观看国产精品自拍| 少妇特殊按摩高潮对白| av免费在线国语对白| 不卡一区二区视频日本| 日本一区二区三区爆乳| 亚洲av美国av产亚洲av图片| 亚洲乱码中文字幕综合| 2019年92午夜视频福利| 婷婷色国产精品视频一区| 日本一区二区三区啪啪| 青青草绿色华人播放在线视频| 日本人妻系列中文字幕| 中国国产不卡视频在线观看| 国产精品毛片无遮挡| 国产亚洲午夜高清国产拍精品| 永久免费无码av在线网站| 亚洲韩国在线| 青青草视频网站免费看| 亚洲女人的天堂网av| 黑人大群体交免费视频|