亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ndvi_803_eventcb.bak

?? 利用IDL讀取MODIS影像L1B和MOD03數據(HDF格式),計算遙感植被指數NDVI
?? BAK
字號:
;
; IDL Event Callback Procedures
; NDVI_803_eventcb
;
; Generated on:	03/14/2008 13:08.05
;
;-----------------------------------------------------------------
; Notify Realize Callback Procedure.
; Argument:
;   wWidget - ID number of specific widget.
;
;
;   Retrieve the IDs of other widgets in the widget hierarchy using
;       id=widget_info(Event.top, FIND_BY_UNAME=name)

;-----------------------------------------------------------------
pro OnRealize_NDVI_803, wWidget
    InitTable_NDVI,wWidget ;初始化表格
	SetRatioStatus_456, wWidget, 'WID_BUTTON_DefaultSavePath', 1 ;初始的時候默認使用默認存儲方式
	SetComponentSensitive_456, wWidget, 'WID_TEXT_SavePath', 0  ;初始的時候使用于顯示保存文件路徑的Text為不可用
	SetComponentSensitive_456, wWidget, 'WID_BUTTON_SelectSavePath_NDVI', 0  ;初始時使打開指定保存路徑的按鈕為不可用
	SetCheckBoxStatus_456, wWidget, 'WID_BUTTON_AddResult', 0        ;初始時不選中添加結果到圖層管理器中

    System_LogOn_401;用于啟動Envi的批處理程序
end
;-----------------------------------------------------------------
pro InitTable_NDVI, inTopBaseID
	;;說明:需要在創建Table的時候手工添加/NO_ROW_HEADERS參數,刪除行標題

	idTable=WIDGET_INFO(inTopBaseID, FIND_BY_UNAME = 'WID_TABLE_InputFiles'); 獲取表格的ID號

	;set table infos
	GetComponentGeometry_456, inTopBaseID, 'WID_TABLE_InputFiles', otGeometry & iSXSize = otGeometry.SCR_XSIZE
	arrColumnLabels = ['MODIS輸入文件', '狀態'] ;設置表頭
	arrColumnWidths = [0.8 * iSXSize,0.2 * iSXSize];設置表格各列的寬度

	;;在設計時除下述參數外還需要設置以下參數:, /COLUMN_MAJOR
	WIDGET_CONTROL, idTable, COLUMN_LABELS = arrColumnLabels, COLUMN_WIDTHS = arrColumnWidths
	ClearTable_456, inTopBaseID, 'WID_TABLE_InputFiles'
end
;-----------------------------------------------------------------
; Post Create Widget Procedure.
; Argument:
;   wWidget - ID number of specific widget.
;
;   Any keywords passed into the generated widget creation procedure
;       are passed into this procudure.

;   Retrieve the IDs of other widgets in the widget hierarchy using
;       id=widget_info(Event.top, FIND_BY_UNAME=name)

;-----------------------------------------------------------------
pro PostCreation_NDVI_803, wWidget, _EXTRA=_VWBExtra_
    COMPILE_OPT idl2
	FORWARD_FUNCTION ENVIVersionRight_401;判斷ENVI的版本

	IF ENVIVersionRight_401() NE 1 THEN BEGIN;如果不是ENVI4.3或4.4版本的則提示錯誤
		rr = DIALOG_MESSAGE('ENVI版本錯誤,請用4.3及以上版本', /INFORMATION, TITLE = '初始化錯誤')
		OnDestroy_Main, wWidget
		RETURN
	ENDIF

	SetTLBPosition_400, wWidget, /inCenterWindow ;設置窗體顯示位置
end
;-----------------------------------------------------------------
; Kill Notify Callback Procedure.
; Argument:
;   wWidget - ID number of specific widget.
;
;
;   Retrieve the IDs of other widgets in the widget hierarchy using
;       id=widget_info(Event.top, FIND_BY_UNAME=name)

;-----------------------------------------------------------------
pro OnDestroy_NDVI_803, wWidget
    COMPILE_OPT idl2
    System_LogOff_401;退出系統,關閉Envi的批處理程序
end
;-----------------------------------------------------------------
; Activate Button Callback Procedure.
; Argument:
;   Event structure:
;
;   {WIDGET_BUTTON, ID:0L, TOP:0L, HANDLER:0L, SELECT:0}
;
;   ID is the widget ID of the component generating the event. TOP is
;       the widget ID of the top level widget containing ID. HANDLER
;       contains the widget ID of the widget associated with the
;       handler routine.

;   SELECT is set to 1 if the button was set, and 0 if released.
;       Normal buttons do not generate events when released, so
;       SELECT will always be 1. However, toggle buttons (created by
;       parenting a button to an exclusive or non-exclusive base)
;       return separate events for the set and release actions.

;   Retrieve the IDs of other widgets in the widget hierarchy using
;       id=widget_info(Event.top, FIND_BY_UNAME=name)

;-----------------------------------------------------------------
pro OnButtonPress_OpenFiles_NDVI_803, Event
    wDTIF = WIDGET_INFO(Event.top, FIND_BY_UNAME = 'WID_TABLE_InputFiles')
	WIDGET_CONTROL, wDTIF, GET_VALUE = OldFiles

	;獲取文件路徑名稱
	SelectHdfPathFromDialog_456, otFiles, otPath & IF StrLen(otFiles[0]) LT 1 THEN RETURN

    ;判斷是否為MOD02數據
    MatchMOD02Files_803, Event.Top, otFiles, otPath, OldFiles
end
;-----------------------------------------------------------------
; Activate Button Callback Procedure.
; Argument:
;   Event structure:
;
;   {WIDGET_BUTTON, ID:0L, TOP:0L, HANDLER:0L, SELECT:0}
;
;   ID is the widget ID of the component generating the event. TOP is
;       the widget ID of the top level widget containing ID. HANDLER
;       contains the widget ID of the widget associated with the
;       handler routine.

;   SELECT is set to 1 if the button was set, and 0 if released.
;       Normal buttons do not generate events when released, so
;       SELECT will always be 1. However, toggle buttons (created by
;       parenting a button to an exclusive or non-exclusive base)
;       return separate events for the set and release actions.

;   Retrieve the IDs of other widgets in the widget hierarchy using
;       id=widget_info(Event.top, FIND_BY_UNAME=name)

;-----------------------------------------------------------------
pro OnButtonPress_RemoveFiles_NDVI_803, Event
    RemoveSelectedRowsFromTable_456, Event.Top, 'WID_TABLE_InputFiles';從表格中去除選中的行
end
;-----------------------------------------------------------------
; Activate Button Callback Procedure.
; Argument:
;   Event structure:
;
;   {WIDGET_BUTTON, ID:0L, TOP:0L, HANDLER:0L, SELECT:0}
;
;   ID is the widget ID of the component generating the event. TOP is
;       the widget ID of the top level widget containing ID. HANDLER
;       contains the widget ID of the widget associated with the
;       handler routine.

;   SELECT is set to 1 if the button was set, and 0 if released.
;       Normal buttons do not generate events when released, so
;       SELECT will always be 1. However, toggle buttons (created by
;       parenting a button to an exclusive or non-exclusive base)
;       return separate events for the set and release actions.

;   Retrieve the IDs of other widgets in the widget hierarchy using
;       id=widget_info(Event.top, FIND_BY_UNAME=name)

;-----------------------------------------------------------------
pro OnButtonPress_FilterFiles_NDVI_803, Event
    GetArrayFromTable_456, Event.Top, 'WID_TABLE_InputFiles', otArray
	RemoveBadRowsFromTable_456, Event.Top, 'WID_TABLE_InputFiles' ;從表格中去除狀態為無效的行
end
;-----------------------------------------------------------------
; Activate Button Callback Procedure.
; Argument:
;   Event structure:
;
;   {WIDGET_BUTTON, ID:0L, TOP:0L, HANDLER:0L, SELECT:0}
;
;   ID is the widget ID of the component generating the event. TOP is
;       the widget ID of the top level widget containing ID. HANDLER
;       contains the widget ID of the widget associated with the
;       handler routine.

;   SELECT is set to 1 if the button was set, and 0 if released.
;       Normal buttons do not generate events when released, so
;       SELECT will always be 1. However, toggle buttons (created by
;       parenting a button to an exclusive or non-exclusive base)
;       return separate events for the set and release actions.

;   Retrieve the IDs of other widgets in the widget hierarchy using
;       id=widget_info(Event.top, FIND_BY_UNAME=name)

;-----------------------------------------------------------------
pro OnButtonPress_DefaultSavePath_NDVI_803, Event
    SetComponentSensitive_456, Event.Top, 'WID_TEXT_SavePath', 0 ;使顯示保存路徑的Text不可用
	SetComponentSensitive_456, Event.Top, 'WID_BUTTON_SelectSavePath_NDVI', 0;使指定打開存儲路徑的按鈕不可用
end
;-----------------------------------------------------------------
; Activate Button Callback Procedure.
; Argument:
;   Event structure:
;
;   {WIDGET_BUTTON, ID:0L, TOP:0L, HANDLER:0L, SELECT:0}
;
;   ID is the widget ID of the component generating the event. TOP is
;       the widget ID of the top level widget containing ID. HANDLER
;       contains the widget ID of the widget associated with the
;       handler routine.

;   SELECT is set to 1 if the button was set, and 0 if released.
;       Normal buttons do not generate events when released, so
;       SELECT will always be 1. However, toggle buttons (created by
;       parenting a button to an exclusive or non-exclusive base)
;       return separate events for the set and release actions.

;   Retrieve the IDs of other widgets in the widget hierarchy using
;       id=widget_info(Event.top, FIND_BY_UNAME=name)

;-----------------------------------------------------------------
pro OnButtonPress_SpecifySavePath_NDVI_803, Event
    SetComponentSensitive_456, Event.Top, 'WID_TEXT_SavePath', 1 ;使顯示保存路徑的Text可用
	SetComponentSensitive_456, Event.Top, 'WID_BUTTON_SelectSavePath_NDVI', 1 ;使指定打開存儲路徑的按鈕可用
end
;-----------------------------------------------------------------
; Activate Button Callback Procedure.
; Argument:
;   Event structure:
;
;   {WIDGET_BUTTON, ID:0L, TOP:0L, HANDLER:0L, SELECT:0}
;
;   ID is the widget ID of the component generating the event. TOP is
;       the widget ID of the top level widget containing ID. HANDLER
;       contains the widget ID of the widget associated with the
;       handler routine.

;   SELECT is set to 1 if the button was set, and 0 if released.
;       Normal buttons do not generate events when released, so
;       SELECT will always be 1. However, toggle buttons (created by
;       parenting a button to an exclusive or non-exclusive base)
;       return separate events for the set and release actions.

;   Retrieve the IDs of other widgets in the widget hierarchy using
;       id=widget_info(Event.top, FIND_BY_UNAME=name)

;-----------------------------------------------------------------
pro OnButtonPress_SelectSavePath_NDVI_803, Event
    SelectDirectoryFromDialog_456, otDirectory, inTitle = '選擇歸一化植被指數NDVI產品保存位置'
	IF N_ELEMENTS(otDirectory[0]) EQ 0 THEN RETURN
	SetTextCaption_456, Event.Top, 'WID_TEXT_SavePath', otDirectory[0];將保存路徑顯示在text當中
end
;-----------------------------------------------------------------
; Activate Button Callback Procedure.
; Argument:
;   Event structure:
;
;   {WIDGET_BUTTON, ID:0L, TOP:0L, HANDLER:0L, SELECT:0}
;
;   ID is the widget ID of the component generating the event. TOP is
;       the widget ID of the top level widget containing ID. HANDLER
;       contains the widget ID of the widget associated with the
;       handler routine.

;   SELECT is set to 1 if the button was set, and 0 if released.
;       Normal buttons do not generate events when released, so
;       SELECT will always be 1. However, toggle buttons (created by
;       parenting a button to an exclusive or non-exclusive base)
;       return separate events for the set and release actions.

;   Retrieve the IDs of other widgets in the widget hierarchy using
;       id=widget_info(Event.top, FIND_BY_UNAME=name)

;-----------------------------------------------------------------
pro OnButtonPress_Cancel_NDVI_803, Event
    idTLB = WIDGET_INFO(Event.top, FIND_BY_UNAME = 'WID_BASE_NDVI')
	WIDGET_CONTROL, idTLB, /DESTROY
end
;-----------------------------------------------------------------
; Activate Button Callback Procedure.
; Argument:
;   Event structure:
;
;   {WIDGET_BUTTON, ID:0L, TOP:0L, HANDLER:0L, SELECT:0}
;
;   ID is the widget ID of the component generating the event. TOP is
;       the widget ID of the top level widget containing ID. HANDLER
;       contains the widget ID of the widget associated with the
;       handler routine.

;   SELECT is set to 1 if the button was set, and 0 if released.
;       Normal buttons do not generate events when released, so
;       SELECT will always be 1. However, toggle buttons (created by
;       parenting a button to an exclusive or non-exclusive base)
;       return separate events for the set and release actions.

;   Retrieve the IDs of other widgets in the widget hierarchy using
;       id=widget_info(Event.top, FIND_BY_UNAME=name)

;-----------------------------------------------------------------
pro OnButtonPress_OK_NDVI_803, Event
    idTable = WIDGET_INFO(Event.top, FIND_BY_UNAME = 'WID_TABLE_InputFiles') & IF idTable EQ 0 THEN RETURN
	WIDGET_CONTROL, idTable, Get_UValue = pUVale ;獲取表格當中的輸入文件
	IF pUVale.RowCount EQ 0 THEN BEGIN ;如果無輸入文件則提示輸入文件消息
		rr = Dialog_message('請設置正確的輸入文件', /ERROR) & RETURN
	ENDIF

	GetRatioStatus_456, Event.top, 'WID_BUTTON_SpecifySavePath', otStatus
	IF otStatus EQ 1 THEN BEGIN ;如果使用指定路徑進行保存的話
		GetTextCaption_456, Event.top, 'WID_TEXT_SavePath', otTextCaption ;則從text當中獲取保存的路徑
		IF N_ELEMENTS(otTextCaption) EQ 0 THEN BEGIN
			rr = Dialog_message('請設置保存路徑', /ERROR) & RETURN
		ENDIF ELSE savePath = otTextCaption
	ENDIF

	GetArrayFromTable_456, Event.top, 'WID_TABLE_InputFiles', otTableArray
	RemoveBadRowsFromArray_456, otTableArray, otGoodCount

	IF otGoodCount EQ 0 THEN BEGIN
		rr = Dialog_message('當前輸入文件沒有可執行的文件', /ERROR) & RETURN
	ENDIF

    ;計算歸一化植被指數NDVI
	NDVIMulti_803, otTableArray[*, 0],  inSavePath = savePath, otSaveNames
	success = dialog_message( '歸一化植被指數NDVI計算完成!', TITLE = '處理結果', /INFORMATION)
end
;-----------------------------------------------------------------
; Activate Button Callback Procedure.
; Argument:
;   Event structure:
;
;   {WIDGET_BUTTON, ID:0L, TOP:0L, HANDLER:0L, SELECT:0}
;
;   ID is the widget ID of the component generating the event. TOP is
;       the widget ID of the top level widget containing ID. HANDLER
;       contains the widget ID of the widget associated with the
;       handler routine.

;   SELECT is set to 1 if the button was set, and 0 if released.
;       Normal buttons do not generate events when released, so
;       SELECT will always be 1. However, toggle buttons (created by
;       parenting a button to an exclusive or non-exclusive base)
;       return separate events for the set and release actions.

;   Retrieve the IDs of other widgets in the widget hierarchy using
;       id=widget_info(Event.top, FIND_BY_UNAME=name)

;-----------------------------------------------------------------
pro OnButtonPress_ImportFiles_NDVI_803, Event

end
;
; Empty stub procedure used for autoloading.
;
pro NDVI_803_eventcb
end

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品免费久久久久| 欧美一区二区三区在线观看视频| 午夜精品影院在线观看| ㊣最新国产の精品bt伙计久久| 亚洲精品一区二区三区影院 | 久久综合999| 精品精品国产高清一毛片一天堂| 91精品欧美一区二区三区综合在| 91麻豆精品91久久久久同性| 91精品国产综合久久久蜜臀粉嫩 | 午夜精品久久久久影视| 天堂va蜜桃一区二区三区漫画版| 午夜精彩视频在线观看不卡| 日本不卡高清视频| 久久超级碰视频| 国产sm精品调教视频网站| 91在线播放网址| 欧美人与z0zoxxxx视频| 日韩女优av电影在线观看| 久久久.com| 亚洲综合在线第一页| 蜜桃一区二区三区在线观看| 国产精品18久久久久| 91社区在线播放| 日韩一级二级三级| 欧美激情一区二区三区在线| 亚洲一区二区三区在线| 精品亚洲成a人| 91丨porny丨中文| 欧美一区二区三区在线电影| 国产精品福利一区| 日韩av不卡在线观看| 国产成人午夜视频| 欧美日韩二区三区| 亚洲国产成人一区二区三区| 亚洲一二三四在线观看| 国产乱码精品一区二区三区忘忧草 | 成人一区二区三区在线观看| 色爱区综合激月婷婷| 日韩欧美综合在线| 亚洲欧美一区二区久久| 精品一区二区在线视频| 91啪九色porn原创视频在线观看| 日韩欧美一区在线观看| 专区另类欧美日韩| 激情深爱一区二区| 欧美精品一卡二卡| 亚洲日本免费电影| 韩国一区二区在线观看| 欧美日韩中文国产| 日韩一区有码在线| 国产在线精品一区二区三区不卡 | 亚洲国产精品ⅴa在线观看| 日韩国产精品91| 一本一道久久a久久精品| 国产日韩精品视频一区| 看片的网站亚洲| 欧美精品九九99久久| 亚洲激情图片一区| 99视频精品全部免费在线| 久久精品在这里| 狠狠色丁香九九婷婷综合五月 | 国产在线播放一区| 日韩一区二区视频在线观看| 五月综合激情网| 欧美午夜精品理论片a级按摩| 亚洲日本在线天堂| 99视频在线精品| 亚洲日本在线a| 色婷婷精品久久二区二区蜜臀av| 国产精品久久久久久久久免费桃花| 国产美女娇喘av呻吟久久 | 91麻豆123| 亚洲欧美偷拍卡通变态| 不卡电影一区二区三区| 中文字幕在线视频一区| 91丨九色丨黑人外教| 伊人开心综合网| 欧美视频一区二区三区在线观看| 亚洲综合在线观看视频| 欧美日韩一区二区三区在线| 亚洲国产精品久久人人爱| 欧美喷潮久久久xxxxx| 爽好久久久欧美精品| 日韩视频一区二区在线观看| 老司机免费视频一区二区三区| 日韩欧美国产一区二区在线播放| 看片的网站亚洲| 国产欧美日韩在线| 色综合久久久久综合体桃花网| 亚洲影院免费观看| 欧美一区二区三区色| 国产老妇另类xxxxx| 亚洲女同女同女同女同女同69| 一本到不卡精品视频在线观看| 亚洲国产精品久久不卡毛片| 欧美一区二区三区视频免费播放| 另类中文字幕网| 国产精品女同一区二区三区| 在线精品视频一区二区| 蜜桃一区二区三区在线观看| 国产亚洲欧美激情| 欧洲av一区二区嗯嗯嗯啊| 日韩综合一区二区| 国产欧美一区二区三区网站| 色综合一个色综合| 久热成人在线视频| 亚洲精品ww久久久久久p站| 欧美日韩一级视频| 经典三级视频一区| 一区二区久久久久| 久久色.com| 欧美日韩久久不卡| 99久免费精品视频在线观看| 日本午夜一本久久久综合| 日本一区二区在线不卡| 欧美日韩亚洲综合一区| 成人综合在线网站| 香蕉久久夜色精品国产使用方法| 久久精品亚洲国产奇米99| 91久久一区二区| 国产成人免费av在线| 日韩福利视频网| 亚洲免费在线电影| 国产欧美日韩综合精品一区二区| 色综合天天天天做夜夜夜夜做| 激情国产一区二区| 亚洲成av人片在www色猫咪| 国产精品色在线观看| 日韩欧美一级特黄在线播放| 欧美无砖专区一中文字| 成人高清在线视频| 精品中文字幕一区二区| 亚洲一区在线观看免费 | 亚洲国产综合在线| 国产精品高潮呻吟| 欧美韩国日本综合| 精品国产一区二区三区久久影院 | 午夜精品123| 亚洲综合另类小说| 国产精品三级av| 久久日韩粉嫩一区二区三区| 欧美精选午夜久久久乱码6080| 欧美亚洲免费在线一区| 色哦色哦哦色天天综合| 色呦呦一区二区三区| 成人激情小说网站| av电影在线观看不卡| av成人动漫在线观看| 91一区二区三区在线观看| av在线不卡网| 一本大道久久a久久精品综合| 97久久超碰国产精品| 丁香五精品蜜臀久久久久99网站| 另类综合日韩欧美亚洲| 国内精品不卡在线| 国产成人精品影视| eeuss鲁片一区二区三区| 成人动漫一区二区三区| 99re亚洲国产精品| 91传媒视频在线播放| 欧美色国产精品| 日韩三级电影网址| 久久影院视频免费| 日本一区二区三区在线观看| 欧美国产97人人爽人人喊| 日韩美女久久久| 性做久久久久久免费观看欧美| 青青草视频一区| 国产一区二区主播在线| 成人av电影在线播放| 91美女在线观看| 欧美一区在线视频| 国产欧美精品一区二区三区四区 | 中文字幕五月欧美| 一区二区成人在线| 美女被吸乳得到大胸91| 懂色av一区二区三区免费观看| 99久久er热在这里只有精品66| 欧洲av一区二区嗯嗯嗯啊| 精品欧美一区二区三区精品久久| 国产女人水真多18毛片18精品视频| 综合网在线视频| 麻豆视频观看网址久久| www.成人在线| 日韩一区二区三区视频在线 | 欧美mv日韩mv亚洲| 综合中文字幕亚洲| 美女网站色91| 在线观看欧美日本| 国产日韩欧美不卡在线| 天堂蜜桃91精品| 成人18精品视频| 精品免费日韩av| 亚洲国产成人精品视频| 国产电影一区在线| 日韩免费看网站| 亚洲一区二区在线观看视频| 免费欧美在线视频| 欧美亚洲免费在线一区|