庫程式是由IDL 開發的一組功能函式,可以被IDL 或者ENVI 命令行調用,由232 個函式或者組件組成,涵蓋了大部分ENVI 功能。分為Batch Mode、檔案輸入與輸出、檔案信息查詢、檔案輸出、讀取圖像檔案、ROI處理、分塊處理(Tiling)、狀態報告、投影處理、界面組件、圖像顯示管理、矢量處理以及其他未分類。
在ENVI幫助文檔WorkingwithENVI-ENVIReferenceGuide -AlphabeticListofENVILibraryRoutines(或ENVIRoutines)中,對每個函式或者組件都有詳細說明,包括語法、關鍵字以及實例程式。
庫程式中的通用關鍵字
庫程式中有幾個關鍵字基本上所有的函式都具有的。這些關鍵字包括了基本檔案的輸人和輸出。
l)DIMS
DIMS關鍵字是一個5維的長整型數組,它定義了處理檔案或數組的空間子集。當需要設定FID關鍵字的候,必須同時使用DIMS關鍵字確定相關檔案的空間子集。
庫程式中有幾個關鍵字基本上所有的函式都具有的。這些關鍵字包括了基本檔案的輸人和輸出。
l)DIMS
DIMS關鍵字是一個5維的長整型數組,它定義了處理檔案或數組的空間子集。當需要設定FID關鍵字的候,必須同時使用DIMS關鍵字確定相關檔案的空間子集。
DIMS[O]:指向一個打開的ROI的FID,這個ROI定義了一個空間子集。其他時候設為-1L。
DIMS[1]:列的起始位置,第一個像素列為0。
DIMS[2]:列的結束位置。
DIMS[3]:行的起始位置,第一個像素行為0。
DIMS[4]:行的結束位置。
當處理整幅圖像,沒有空間子集時候,可以使用以下代碼:
envi_filequery,fid,di=dims
2)FID
檔案ID(FID)是一個大於0的長整型常數,當無效時返回-1。FID作為ENVI程式打開或者選擇一個檔案時命名變數。ENVI程式對該檔案進行的所有操作都是通過FID完成的。FID值常取自“ENVIOPEN_FILE”函式返回R_FID關鍵字的值。如果使用IDL直接讀取檔案時,FID和LUN不是等同的。
3)IN_MEMORY
將處理結果保存在記憶體中。如果不設定這個關鍵字,需要設定OUTNAME關鍵字存儲到本地硬碟中。
4)M_FID
M_FID是一個大於0的長整型常數,當無效時返回-1,用於指定FID的掩膜檔案。FID取自“ENVI_OPEN_FLE”函式(用於打開掩膜檔案)返回R_FID關鍵字的值。
5)M_POS
M_POS是一個大於等於0的長整型常數,用於指定掩膜波段的波段。
6)OUT_BNAME
一組字元,用於指定輸出的波段名。
7)OUT_NAME
一組字元,用於指定輸出檔案名稱。
8)POS
POS關鍵字是長整型的數組,標示用於處理的波段,即標示波譜子集。值從0到波段總數減1,如設定波段從0開始:Band-=0,Band2=1,..例如,要處理多波段檔案的第三波段和第四波段數據,則設定POS=[2.3].
DIMS[2]:列的結束位置。
DIMS[3]:行的起始位置,第一個像素行為0。
DIMS[4]:行的結束位置。
當處理整幅圖像,沒有空間子集時候,可以使用以下代碼:
envi_filequery,fid,di=dims
2)FID
檔案ID(FID)是一個大於0的長整型常數,當無效時返回-1。FID作為ENVI程式打開或者選擇一個檔案時命名變數。ENVI程式對該檔案進行的所有操作都是通過FID完成的。FID值常取自“ENVIOPEN_FILE”函式返回R_FID關鍵字的值。如果使用IDL直接讀取檔案時,FID和LUN不是等同的。
3)IN_MEMORY
將處理結果保存在記憶體中。如果不設定這個關鍵字,需要設定OUTNAME關鍵字存儲到本地硬碟中。
4)M_FID
M_FID是一個大於0的長整型常數,當無效時返回-1,用於指定FID的掩膜檔案。FID取自“ENVI_OPEN_FLE”函式(用於打開掩膜檔案)返回R_FID關鍵字的值。
5)M_POS
M_POS是一個大於等於0的長整型常數,用於指定掩膜波段的波段。
6)OUT_BNAME
一組字元,用於指定輸出的波段名。
7)OUT_NAME
一組字元,用於指定輸出檔案名稱。
8)POS
POS關鍵字是長整型的數組,標示用於處理的波段,即標示波譜子集。值從0到波段總數減1,如設定波段從0開始:Band-=0,Band2=1,..例如,要處理多波段檔案的第三波段和第四波段數據,則設定POS=[2.3].