| 7 | 1/1 | 返回列表 |
| 查看: 2376 | 回復: 6 | ||
zzahkj木蟲 (著名寫手)
龍
|
[求助]
IDL批量求取某坐標點DN值 已有3人參與
|
|
我的數(shù)據(jù)如下: TIFF格式——含有很多波段 我自己試著寫的代碼如下 運行出現(xiàn)下列錯誤 txtpoints pointArray(curBand).data = ENVI_GET_DATA(fid=fid, dims=dims, pos=curBand) ^ % Syntax error. At: C:\Users\BDQS\Desktop\txtpoints.pro, Line 17 % 1 Compilation error(s) in module TXTPOINTS. % Attempt to call undefined procedure/function: 'TXTPOINTS'. % Execution halted at: $MAIN$ 代碼寫得好像也不對,哪位大神幫我改改?非常感謝! |

銅蟲 (初入文壇)
銅蟲 (初入文壇)
木蟲 (著名寫手)
龍

木蟲 (著名寫手)
龍

新蟲 (小有名氣)
|
;不會,我這里有一個批處理模板,你看著修改下 ;--------------------------------------------------------------- ;+ ; escription:; ENVI二次開發(fā)的批處理模版 ; 默認為數(shù)據(jù)格式轉(zhuǎn)換為tiff格式 ; ; Author: DYQ ;- ;析構(gòu)函數(shù) PRO ENVI_BATCH_TEMPLATE_CLEANUP,tlb WIDGET_CONTROL,tlb,get_UValue = pState PTR_FREE,pState END ;事件響應函數(shù) PRO ENVI_BATCH_TEMPLATE_EVENT,event COMPILE_OPT idl2 WIDGET_CONTROL,event.TOP, get_UValue = pState ;關閉事件 IF TAG_NAMES(event, /Structure_Name) EQ 'WIDGET_KILL_REQUEST' THEN BEGIN ; status = DIALOG_MESSAGE('關閉?',/Question) IF status EQ 'No' THEN RETURN ;銷毀指針 ; PTR_FREE, pState WIDGET_CONTROL, event.TOP,/Destroy RETURN; ENDIF ;根據(jù)系統(tǒng)的uname進行判斷點擊的組件 uName = WIDGET_INFO(event.ID,/uName) ; CASE uname OF ;打開文件 'open': BEGIN files = DIALOG_PICKFILE(/MULTIPLE_FILES, $ title = !SYS_Title+' 打開文件', $ path = (*pState).ORIROOT) IF N_ELEMENTS(files) EQ 0 THEN RETURN ;設置顯示文件 WIDGET_CONTROL, (*pState).WLIST, set_value = files (*pState).INPUTFILES = PTR_NEW(files) (*pState).ORIROOT = FILE_DIRNAME(files[0]) ;重置進度條進度 IDLITWDPROGRESSBAR_SETVALUE,(*pState).PRSBAR,0 END ;退出 'exit': BEGIN status = DIALOG_MESSAGE('關閉?',$ title = !SYS_Title, $ /Question) IF status EQ 'No' THEN RETURN WIDGET_CONTROL, event.TOP,/Destroy END ;關于 'about': BEGIN void = DIALOG_MESSAGE(!SYS_Title+' V1.0'+STRING(13b)+'歡迎使用,問題討論請去bbs.esrichina-bj.cn!' ,/information) END ; ;路徑選擇按鈕 'filepathsele': BEGIN WIDGET_CONTROL, event.ID,get_value = value WIDGET_CONTROL,(*pState).WSELE, Sensitive= value WIDGET_CONTROL,(*pState).OUTPATH, Sensitive= value END ;選擇輸出路徑 'selePath' : BEGIN outroot = DIALOG_PICKFILE(/dire,title = !SYS_Title) WIDGET_CONTROL,(*pState).OUTPATH,set_value = outRoot END ;功能執(zhí)行 'execute': BEGIN ;獲取選擇的方法 WIDGET_CONTROL,(*pState).BGROUP, get_Value = mValue IF PTR_VALID((*pState).INPUTFILES) EQ 0 THEN RETURN ;初始化ENVI ENVI, /restore_base_save_files ENVI_BATCH_INIT,/NO_Status_Window ;獲取文件名 files = *((*pState).INPUTFILES) per = 100./N_ELEMENTS(files) ;判斷是否需要選擇路徑 IF mValue NE 0 THEN BEGIN ;構(gòu)建輸出文件名 WIDGET_CONTROL, (*pState).OUTPATH,get_value= outfiledir IF (outfiledir[0] EQ ' ') THEN outfiledir = DIALOG_PICKFILE(/dire, title =!SYS_Title+' 輸出路徑') ENDIF ELSE outfiledir = FILE_DIRNAME(files[0]) FOR i=0,N_ELEMENTS(files)-1 DO BEGIN ;構(gòu)建輸出文件名 fileName = FILE_BASENAME(files) pointPos = STRPOS(fileName,'.') ;查找文件名中點的位置 IF pointPos[0] NE -1 THEN BEGIN fileName= STRMID(fileName,0,pointPos) ENDIF out_name = outfiledir+PATH_SEP()+fileName+'.tiff' ENVI_OPEN_FILE, files, r_fid=fid IF (fid EQ -1) THEN BEGIN tmp = DIALOG_MESSAGE(files+'文件讀取錯誤',$ title = !sys_title, /error) CONTINUE ENDIF ;文件信息 ENVI_FILE_QUERY, fid, dims=dims, nb=nb,bnames = bnames ;設置tiff文件輸出參數(shù) ;如果波段小于3個 IF nb LE 3 THEN bandList = INDGEN(nb)ELSE $ bandList = [3,2,1] ;調(diào)用ENVI功能函數(shù)另存數(shù)據(jù) ENVI_OUTPUT_TO_EXTERNAL_FORMAT,fid = fid,dims = dims, out_name=out_name,pos = bandList, $ out_bname=bnames[bandlist],/TIFF ;輸出完成 ENVI_FILE_MNG, id=fid, /remove ;設置進度條 IDLITWDPROGRESSBAR_SETVALUE,(*pState).PRSBAR,(i+1)*per ENDFOR void = DIALOG_MESSAGE('處理完成 ',title = !sys_title,/infor) ;關閉ENVI二次開發(fā)模式 ENVI_BATCH_EXIT END ELSE: ENDCASE END ; ;-------------------------- ;ENVI二次開發(fā)批處理模版 PRO ENVI_BATCH_TEMPLATE ; COMPILE_OPT idl2 ;初始化組件大小 sz = [600,400] ;設置系統(tǒng)變量,可方便修改系統(tǒng)標題 DEFSYSV,'!SYS_Title','ENVI批處理模版' ;創(chuàng)建界面的代碼 tlb = WIDGET_BASE(MBAR= mBar, $ /COLUMN , $ title = !SYS_Title, $ /Tlb_Kill_Request_Events, $ tlb_frame_attr = 1, $ Map = 0) ;創(chuàng)建菜單 fMenu = WIDGET_BUTTON(mBar, value ='文件',/Menu) wButton = WIDGET_BUTTON(fMenu,value ='打開數(shù)據(jù)文件', $ uName = 'open') fExit = WIDGET_BUTTON(fMenu, value = '退出', $ uName = 'exit',/Sep) eMenu = WIDGET_BUTTON(mBar,value ='功能',/Menu) wButton = WIDGET_BUTTON(eMenu,$ value ='運行批處理', $ uName = 'execute') hMenu = WIDGET_BUTTON(mBar, value ='幫助',/Menu) hHelp = WIDGET_BUTTON(hmenu, value = '關于', $ uName = 'about',/Sep) ;上面的輸入base wInputBase = WIDGET_BASE(tlb, $ xSize =sz[0], $ /Frame, $ /Align_Center,$ /Column) wLabel= WIDGET_LABEL(wInputBase, $ value ='文件列表') wList = WIDGET_LIST(wInputBase, $ YSize = sz[1]/(2*15),$ XSize = sz[0]/8) ;輸出路徑設置 wLabel= WIDGET_LABEL(tlb, $ value ='輸出參數(shù)設置') ;輸出參數(shù)控制界面 wSetBase = WIDGET_BASE(tlb, $ xSize =sz[0], $ /Row) values = ['源文件路徑', $ '另選擇路徑'] bgroup = CW_BGROUP(wSetBase, values, $ /ROW, /EXCLUSIVE, $ /No_Release, $ SET_VALUE=1, $ uName = 'filepathsele', $ /FRAME) outPath = WIDGET_TEXT(wSetBase, $ value =' ', $ xSize =30, $ /Editable, $ uName = 'outroot') wSele = WIDGET_BUTTON(wSetBase, $ value ='選擇路徑', $ uName ='selePath') ; ;執(zhí)行按鈕base wExecuteBase = WIDGET_BASE(tlb,$ /align_center,$ /row) wButton = WIDGET_BUTTON(wExecuteBase, $ ysize =40,$ value ='打開數(shù)據(jù)文件', $ uName = 'open') wButton = WIDGET_BUTTON(wExecuteBase,$ value ='運行批處理', $ uName = 'execute') ;狀態(tài)欄,僅顯示進度條 wStatus = WIDGET_BASE(tlb,/align_right) prsbar = IDLITWDPROGRESSBAR( wExecuteBase ,$ title ='進度', $ CANCEL =0) ;結(jié)構(gòu)體傳遞參數(shù) state = {wButton:wButton, $ tlb : tlb, $ oriRoot: '', $ outPath: outPath, $ wSele : wSele, $ bgroup : bgroup , $ inputFiles : PTR_NEW(), $ prsbar : prsbar , $ wList : WLIST } pState = PTR_NEW(state,/no_copy) ;操作界面居中 CENTERTLB,tlb ; WIDGET_CONTROL, tlb,/Realize,/map,set_uValue = pState XMANAGER,'ENVI_Batch_Template',tlb,/No_Block,$ cleanup ='ENVI_Batch_Template_Cleanup' END |
銅蟲 (小有名氣)

| 7 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 321求調(diào)劑 +4 | Ymlll 2026-03-24 | 4/200 |
|
|---|---|---|---|---|
|
[考研] 081700 調(diào)劑 267分 +9 | 迷人的哈哈 2026-03-23 | 9/450 |
|
|
[考研] 【雙一流院校新能源、環(huán)境材料,材料加工與模擬招收大量調(diào)劑】 +4 | Higraduate 2026-03-22 | 7/350 |
|
|
[考研] 求調(diào)劑 +7 | 十三加油 2026-03-21 | 7/350 |
|
|
[考研] 085600材料與化工調(diào)劑 +7 | A-哆啦Z夢 2026-03-23 | 12/600 |
|
|
[考研] 327求調(diào)劑 +5 | prayer13 2026-03-23 | 5/250 |
|
|
[考研] 328求調(diào)劑,英語六級551,有科研經(jīng)歷 +7 | 生物工程調(diào)劑 2026-03-17 | 12/600 |
|
|
[考研] 一志愿中國石油大學(華東) 本科齊魯工業(yè)大學 +4 | 石能偉 2026-03-17 | 4/200 |
|
|
[考研] 316求調(diào)劑 +7 | 梁茜雯 2026-03-19 | 7/350 |
|
|
[考研] 北科281學碩材料求調(diào)劑 +8 | tcxiaoxx 2026-03-20 | 9/450 |
|
|
[考研] 285求調(diào)劑 +6 | ytter 2026-03-22 | 6/300 |
|
|
[考研] 材料學碩333求調(diào)劑 +3 | 北道巷 2026-03-18 | 3/150 |
|
|
[考研] 求助 +5 | 夢里的無言 2026-03-21 | 6/300 |
|
|
[考研] 307求調(diào)劑 +3 | 余意卿 2026-03-18 | 3/150 |
|
|
[考研] 初始318分求調(diào)劑(有工作經(jīng)驗) +3 | 1911236844 2026-03-17 | 3/150 |
|
|
[考研] 一志愿重慶大學085700資源與環(huán)境專碩,總分308求調(diào)劑 +3 | 墨墨漠 2026-03-18 | 3/150 |
|
|
[考研] 308求調(diào)劑 +3 | 阿姐阿姐家啊 2026-03-18 | 3/150 |
|
|
[考研] 中南大學化學學碩337求調(diào)劑 +3 | niko- 2026-03-19 | 6/300 |
|
|
[考研] 一志愿福大288有機化學,求調(diào)劑 +3 | 小木蟲200408204 2026-03-18 | 3/150 |
|
|
[考研] 材料考研調(diào)劑 +3 | xwt。 2026-03-19 | 3/150 |
|