2017賽前輔導遙感應用組05envi二次開發(fā)素材包4-classic_第1頁
2017賽前輔導遙感應用組05envi二次開發(fā)素材包4-classic_第2頁
2017賽前輔導遙感應用組05envi二次開發(fā)素材包4-classic_第3頁
2017賽前輔導遙感應用組05envi二次開發(fā)素材包4-classic_第4頁
2017賽前輔導遙感應用組05envi二次開發(fā)素材包4-classic_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

ENVIClassic二次開發(fā)技術支持郵箱:ENVI-IDL@技術支持熱線:400-819-2881-5官方技術博客:http://www.envi.space官方技術qq群:514396478ENVIClassic函數列表批處理模式——在非GUI下使用ENVI使用IDL工作但偶爾需要用到ENVI的函數;進行大量ENVI處理而不需人工干預(批處理);批處理模式的ENVI和正常模式下基本相同,該模式下要通過調用ENVI的函數庫來執(zhí)行ENVI的功能。ENVIClassic批處理模式啟動ENVI批處理模式envi,/restore_base_save_filesENVI功能分散在大約50個左右的IDLsav文件中,存放在ENVI安裝路徑下的Save目錄中。ENVI的核心sav文件包括ENVI的基本功能函數,動態(tài)運行函數以及ENVI運行所需的內部變量。模式初始化envi_batch_init模式關閉envi_batch_exitENVIClassic批處理模式\03ENVIClassic\test_FX_SegmentOnly_FIDFID是一個長整型的標量。FID用于ENVI程序操作文件,如進行打開或選擇,注意ENVI程序中所有對文件進行的所有操作和處理都通過該FID完成。在進行下一步處理時,要檢查FID是否有效;R_FID和M_FIDENVI程序產生處理的結果將包括一個R_FID,稱為返回FID;如結果數據是存在內存中,R_FID是訪問該數據的唯一方法;進行掩模處理的程序還包括一個M_FID,稱為掩模FID,它用于確定用作掩模波段的文件。ENVIClassic下的常用關鍵字DIMSDIMS關鍵字是一個5個元素長整型數組。它定義了欲處理數據的空間子集。DIMS[0]存儲一個打開的ROI區(qū)域的指針,僅在ROI被定義的時候使用,其它時候設為-1LDIMS[1]采樣的列起始位置SamplestartDIMS[2]采樣的列終止位置SampleendDIMS[3]行的起始位置LinestartDIMS[4]行的結束位置LineendPOSPOS關鍵字定義處理波段位置,是一個長整型數組;波段從0開始,例如,要處理第三波段和第四波段,POS=[2,3]。ENVIClassic下的常用關鍵字文件管理函數ENVI_PICKFILEENVI_SELECTENVI_OPEN_FILEENVI_FILE_MNGENVI_GET_FILE_IDS打開文件函數ENVI_OPEN_DATA_FILEENVIClassic常用函數數據獲取函數ENVI_GET_DATAENVI_GET_SLICE感興趣區(qū)函數ENVI_GET_ROI_DIMS_PTR數據生成函數ENVI_ENTER_DATAENVI_SETUP_HEADENVI_WRITE_ENVI_FILEENVIClassic常用函數調用格式ENVI_DOIT,‘XXXX_DOIT’,FID=FID,R_FID=R_FIDENVIClassic圖像處理接口\03ENVIClassic\test_resize_函數名稱功能描述ENVI_GET_TILE獲取影像分塊數據。ENVI_INIT_TILE初始化分塊處理并返回塊的ID號。ENVI_TILE_DONE分塊處理結束。ENVIClassic圖像分塊處理\03ENVIClassic\test_envi_ENVI組件介紹ENVI提供了以WIDGET_開頭的20多個功能組件來滿足用戶的需要,很多部件都包括“OK”和“Cancel”等按鈕方便用戶進行交互操作。事件管理WIDGET_AUTO_BASE創(chuàng)建頂級baseAUTO_WID_MNG進行事件管理ENVIClassic組件介紹\03ENVIClassic\test_envi_ENVIClassic功能擴展為ENVI添加功能并通過ENVI的菜單進行訪問。用戶能夠添加任意數量的用戶函數,每個函數都可以設置它自己的菜單選項。當用戶通過菜單選擇用戶函數時,將會執(zhí)行這些函數,如同ENVI的其它函數一樣。用戶函數和IDL程序沒有區(qū)別,可以稱為ENVI的程序。擴展補丁-介紹菜單結構包括主菜單和顯示窗口菜單,是由ENVI安裝路徑下的MENU目錄下的envi.men和display.men這兩個ASCII碼文件定義的。Envi.men文件定義了ENVI的主菜單,display.men文件定義了顯示窗口菜單。ENVI啟動時,這兩個文件被讀入并根據它們的內容構建ENVI的菜單條。要在菜單中添加內容,只需在這兩個文件中添加一行,并重新啟動ENVI。擴展補丁-添加菜單ENVI菜單系統(tǒng)結構使用文本編輯器打開envi.men文件。文件結構如下所示:0{File}1{OpenImageFile}{openenvifile}{envi_menu_event}1{OpenVectorFile}{openvectorfile}{envi_menu_event}1{OpenExternalFile}2{Landsat}3{Fast}{openfasttm}{envi_menu_event}每一行開始的數據定義了菜單項的層次。0表示最頂層,1表示一級子菜單,2表示二級子菜單,依次類推。擴展補丁-添加菜單ENVI菜單系統(tǒng)結構{OpenExternalFile}第一個大括號部分定義了顯示在菜單上的內容。{openenvifile}第二個大括號部分定義菜單項所賦給的用戶值。{envi_menu_event}第三個定義了事件響應理程序名稱,即使用的是用戶函數。需要注意:當編寫用戶函數時,大多數情況下,用戶值是沒有用的,這時候,可以將用戶值設為和用戶函數名一致。擴展補丁-添加菜單ENVI菜單修改方法1:修改文件在ENVI\menu\envi.men文件中添加如下部分:0{MyFunctions}0{MyFunctions}1{文件信息查看}{notused}{test_envi_file_info}1{文件多波段存儲}{notused}{test_envi_file_save}方法2:ENVI_DEFINE_MENU_BUTTON函數擴展補丁-添加菜單\03ENVIClassic\envi_file_為ENVI添加擴展工具編寫IDL代碼,實現讀取FY2C的功能為ENVIClassic添加菜單編譯為sav文件拷貝到save_add文件夾,重啟ENVIClassic即可擴展補丁-自動添加菜單\03ENVIClassic\envi_classic_read_植被增強擴展補丁調用IDL和ENVI的函數接口,實現功能ModisMCD12Q1批處理擴展補丁調用ENVI圖像處理接口,實現批處理完全約束最小二乘法混合像元分解利用IDL實現自定義算法,對ENVI進行功能擴展IDLViewer利用IDL組件搭建通用模板,可嵌入自定義功能,快速實現系統(tǒng)開發(fā)五個實例專題:植被增強計算NDVI波段運算得到新的綠波段(ndvigt0.2)*(0.3*nir+0.7*green)+(ndvile0.2)*green波段組合植被增強流程\03_ENVIClassic\envi_vegetation_專題:ModisMCD12Q1批處理定義投影投影轉換批量處理批處理工具功能\03_ENVIClassic\envi_mcd12q1_ENVI功能擴展:完全約束最小二乘法

混合像元分解ENVI提供了線性混合像元分解(LinearSpectralUnmixing),此工具只能進行一個約束條件,即分解豐度圖結果的和(一般情況下設為1)。但是得到的豐度圖經常會出現負值的情況,這是不合理的。理論上來講,一個像元內每種端元的豐度圖DN值范圍在0~1之間,并且和為1。這是兩個約束條件,因此可以利用完全約束最小二乘法進行混合像元分解,即擴展工具采用的算法。擴展工具采用均方根誤差(RootMeanSquareError,RMSE)對端元提取和混合像元分解結果進行精度評價,會保存在輸出結果的最后一個波段,波段名為RMSError。背景介紹本擴展工具的功能和技術亮點如下:采用了ENVI分塊技術,對于輸入文件的大小沒有限制;采用ENVI自帶的端元光譜收集面板(EndmemberCollection),操作便捷;在每一次循環(huán)時,對分塊數據進行混合像元分解和RMS的計算,效率最優(yōu);對于所有波段值全為0的像元不進行分解和計算RMS,保持為0,起到掩膜效果。功能特點功能演示混合像元分解結果核心算法實現首先利用IDL編寫完全約束最小二乘法混合像元分解算法(FCLS_Doit),此算法調用了其他幾個核心函數,包含HYPERFCLS、INV、FCLS_MEAN等由于在算法實現過程中,考慮到輸入數據的大小,所以采用了ENVIClassic分塊處理技術,用到了如下接口:ENVI_GET_TILE:獲取影像分塊中的一塊。ENVI_INIT_TILE:初始化分塊處理并返回塊的ID號。ENVI_TILE_DONE:分塊處理結束。實現過程(1)用戶界面構建為了工具具有更好的通用性,選擇了如下接口:ENVI_SLECT:選擇輸入文件的組件。ENVI_COLLECT_SPECTRA:端元波譜收集界面,極大地降低了用戶界面的構建難度,并且保留了ENVI的操作習慣。WIDGET_OUTF:選擇輸出文件的組件。ENVI_REPORT_INC:設置ENVI進度提示界面狀態(tài)。ENVI_REPORT_INIT:ENVI進度提示初始化和結束。ENVI_REPORT_STAT:ENVI進度提示百分比或進度更新。實現過程(2)菜單定制與工具箱擴展同時采用了ENVIClassic與ENVI5菜單定制與工具箱擴展的接口,這樣的好處是可以同時在ENVIClassic和ENVI5中使用此工具。在ENVI5的Toolbox/Extensions文件夾下加入FCLSSpectralUnmixing工具在ENVIClassic中,將工具菜單添加到主菜單→Spectra

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論