| 7 | 1/1 | 返回列表 |
| 查看: 2371 | 回復(fù): 6 | ||
zzahkj木蟲(chóng) (著名寫(xiě)手)
龍
|
[求助]
IDL批量求取某坐標(biāo)點(diǎn)DN值 已有3人參與
|
|
我的數(shù)據(jù)如下: TIFF格式——含有很多波段 我自己試著寫(xiě)的代碼如下 運(yùn)行出現(xiàn)下列錯(cuò)誤 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$ 代碼寫(xiě)得好像也不對(duì),哪位大神幫我改改?非常感謝! |

銅蟲(chóng) (初入文壇)
銅蟲(chóng) (初入文壇)
木蟲(chóng) (著名寫(xiě)手)
龍

木蟲(chóng) (著名寫(xiě)手)
龍

新蟲(chóng) (小有名氣)
|
;不會(huì),我這里有一個(gè)批處理模板,你看著修改下 ;--------------------------------------------------------------- ;+ ; escription:; ENVI二次開(kāi)發(fā)的批處理模版 ; 默認(rèn)為數(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 ;事件響應(yīng)函數(shù) PRO ENVI_BATCH_TEMPLATE_EVENT,event COMPILE_OPT idl2 WIDGET_CONTROL,event.TOP, get_UValue = pState ;關(guān)閉事件 IF TAG_NAMES(event, /Structure_Name) EQ 'WIDGET_KILL_REQUEST' THEN BEGIN ; status = DIALOG_MESSAGE('關(guān)閉?',/Question) IF status EQ 'No' THEN RETURN ;銷(xiāo)毀指針 ; PTR_FREE, pState WIDGET_CONTROL, event.TOP,/Destroy RETURN; ENDIF ;根據(jù)系統(tǒng)的uname進(jìn)行判斷點(diǎn)擊的組件 uName = WIDGET_INFO(event.ID,/uName) ; CASE uname OF ;打開(kāi)文件 'open': BEGIN files = DIALOG_PICKFILE(/MULTIPLE_FILES, $ title = !SYS_Title+' 打開(kāi)文件', $ path = (*pState).ORIROOT) IF N_ELEMENTS(files) EQ 0 THEN RETURN ;設(shè)置顯示文件 WIDGET_CONTROL, (*pState).WLIST, set_value = files (*pState).INPUTFILES = PTR_NEW(files) (*pState).ORIROOT = FILE_DIRNAME(files[0]) ;重置進(jìn)度條進(jìn)度 IDLITWDPROGRESSBAR_SETVALUE,(*pState).PRSBAR,0 END ;退出 'exit': BEGIN status = DIALOG_MESSAGE('關(guān)閉?',$ title = !SYS_Title, $ /Question) IF status EQ 'No' THEN RETURN WIDGET_CONTROL, event.TOP,/Destroy END ;關(guān)于 'about': BEGIN void = DIALOG_MESSAGE(!SYS_Title+' V1.0'+STRING(13b)+'歡迎使用,問(wèn)題討論請(qǐng)去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,'.') ;查找文件名中點(diǎn)的位置 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+'文件讀取錯(cuò)誤',$ title = !sys_title, /error) CONTINUE ENDIF ;文件信息 ENVI_FILE_QUERY, fid, dims=dims, nb=nb,bnames = bnames ;設(shè)置tiff文件輸出參數(shù) ;如果波段小于3個(gè) 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 ;設(shè)置進(jìn)度條 IDLITWDPROGRESSBAR_SETVALUE,(*pState).PRSBAR,(i+1)*per ENDFOR void = DIALOG_MESSAGE('處理完成 ',title = !sys_title,/infor) ;關(guān)閉ENVI二次開(kāi)發(fā)模式 ENVI_BATCH_EXIT END ELSE: ENDCASE END ; ;-------------------------- ;ENVI二次開(kāi)發(fā)批處理模版 PRO ENVI_BATCH_TEMPLATE ; COMPILE_OPT idl2 ;初始化組件大小 sz = [600,400] ;設(shè)置系統(tǒng)變量,可方便修改系統(tǒng)標(biāo)題 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 ='打開(kāi)數(shù)據(jù)文件', $ uName = 'open') fExit = WIDGET_BUTTON(fMenu, value = '退出', $ uName = 'exit',/Sep) eMenu = WIDGET_BUTTON(mBar,value ='功能',/Menu) wButton = WIDGET_BUTTON(eMenu,$ value ='運(yùn)行批處理', $ uName = 'execute') hMenu = WIDGET_BUTTON(mBar, value ='幫助',/Menu) hHelp = WIDGET_BUTTON(hmenu, value = '關(guān)于', $ 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) ;輸出路徑設(shè)置 wLabel= WIDGET_LABEL(tlb, $ value ='輸出參數(shù)設(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 ='打開(kāi)數(shù)據(jù)文件', $ uName = 'open') wButton = WIDGET_BUTTON(wExecuteBase,$ value ='運(yùn)行批處理', $ uName = 'execute') ;狀態(tài)欄,僅顯示進(jìn)度條 wStatus = WIDGET_BASE(tlb,/align_right) prsbar = IDLITWDPROGRESSBAR( wExecuteBase ,$ title ='進(jìn)度', $ 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 |
銅蟲(chóng) (小有名氣)

| 7 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 求材料,環(huán)境專(zhuān)業(yè)調(diào)劑 +3 | 18567500178 2026-03-18 | 3/150 |
|
|---|---|---|---|---|
|
[考研] 一志愿河北工業(yè)大學(xué)0817化工278分求調(diào)劑 +7 | jhybd 2026-03-23 | 11/550 |
|
|
[考研] 336化工調(diào)劑 +4 | 王大坦1 2026-03-23 | 5/250 |
|
|
[考研] 291 求調(diào)劑 +4 | 化工2026屆畢業(yè)?/a> 2026-03-21 | 5/250 |
|
|
[考研] 269專(zhuān)碩求調(diào)劑 +6 | 金恩貝 2026-03-21 | 6/300 |
|
|
[基金申請(qǐng)] 山東省面上項(xiàng)目限額評(píng)審 +4 | 石瑞0426 2026-03-19 | 4/200 |
|
|
[考研] 初試 317 +7 | 半拉月丙 2026-03-20 | 7/350 |
|
|
[考研] 材料工程專(zhuān)碩 348分求調(diào)劑 +3 | 冬辭. 2026-03-17 | 5/250 |
|
|
[考研] 297求調(diào)劑 +3 | 喜歡還是不甘心 2026-03-20 | 3/150 |
|
|
[考研] 332求調(diào)劑 +3 | 鳳凰院丁真 2026-03-20 | 3/150 |
|
|
[考研] 材料工程(專(zhuān))一志愿985 初試335求調(diào)劑 +3 | hiloiy 2026-03-17 | 4/200 |
|
|
[考研] 二本跨考鄭大材料306英一數(shù)二 +3 | z1z2z3879 2026-03-17 | 3/150 |
|
|
[考研] 085700資源與環(huán)境308求調(diào)劑 +12 | 墨墨漠 2026-03-18 | 13/650 |
|
|
[考研] 一志愿 西北大學(xué) ,070300化學(xué)學(xué)碩,總分287,雙非一本,求調(diào)劑。 +3 | 晨昏線與星海 2026-03-18 | 3/150 |
|
|
[考研] 296求調(diào)劑 +6 | www_q 2026-03-18 | 10/500 |
|
|
[考研] 308求調(diào)劑 +3 | 阿姐阿姐家啊 2026-03-18 | 3/150 |
|
|
[考研] 一志愿西南交通 專(zhuān)碩 材料355 本科雙非 求調(diào)劑 +5 | 西南交通專(zhuān)材355 2026-03-19 | 5/250 |
|
|
[考研]
|
簡(jiǎn)木ChuFront 2026-03-19 | 8/400 |
|
|
[考研] 一志愿南理工085701環(huán)境302求調(diào)劑院校 +3 | 葵梓衛(wèi)隊(duì) 2026-03-20 | 3/150 |
|
|
[考研] 招收調(diào)劑碩士 +4 | lidianxing 2026-03-19 | 12/600 |
|