爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4903|回复: 0

[脚本编辑] 运行idl时出现下标超出范围的问题,但此程序以前能用的,向各位大神求解

[复制链接]
发表于 2014-5-26 20:16:54 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
源程序:pro LSTinversion_avg_VIRR_p ;************************
;****锟斤拷取影锟斤拷锟斤拷锟斤拷锟街?***
  ;************************

COMPILE_OPT IDL2
ENVI, /RESTORE_BASE_SAVE_FILES
ENVI_BATCH_INIT, LOG_FILE = 'batch.log' ;
;锟斤拷锟斤拷锟斤拷锟斤拷前锟斤拷锟饺斤拷锟斤拷锟斤拷锟斤拷莶锟斤拷谐锟斤拷锟紽Y锟斤拷锟酵?拷锟斤拷小
;锟斤拷1锟斤拷锟斤拷锟斤拷图锟斤拷3锟斤拷锟斤拷锟斤拷图
;data_file=dialog_pickfile(path="f:\JS_20120211_0250.hdf",title='Pick classify Files',GET_PATH=openpath)       ;gai
data_file=dialog_pickfile(path="E:\temperature\test4-15\FY3_process\xizang\zuhe\fy_landcover\",title='Pick classify Files',filter='*.hdf',/MULTIPLE_FILES,GET_PATH=openpath)   ;zeng
savepath=DIALOG_PICKFILE(PATH="E:\temperature\test4-15\FY3_process\xizang\lst\",TITLE="Choose save data directory",/DIRECTORY)                           ;zeng
;Get file numbers for cycle                                               ;zeng
filenum=size(data_file,/n_elements)                                        ;zeng

openw,outunit,'E:\log_all.txt',/GET_LUN
;printf,outunit,' count,max (R_VIRR5)  min (Cov_MERSI5), emiss='
printf,outunit,'end for i_classificaiton, R, C, emissivity='
;printf,outunit,'count,R,C,emissivity=',count,R,C,emis[*,2,i_classification]
close,outunit
FREE_LUN,outunit


para=fltarr(6,2)

;;parameters for winter inversion model
para[*,0]= [0.7973, 0.166, -0.329, 4.074, 5.146, -13.978] ; for VIRR4-VIRR5
;;para[*,1]= [-0.7988, 0.154, -0.263, 3.359, 6.914, -9.216] ; for MERSI5-VIRR5
;;para[*,0]= [-0.5783, 0.212, 0.23, -2.781, -7.109, -3.996] ; for MODIS29-MODIS31
;
;;parameters for xizang winter inversion model
;para[*,0]= [0.5392, 0.163, -0.033, 7.75, -18.158, -45.533] ; for VIRR4-VIRR5
;;parameters for xizang winter inversion model 2
;para[*,0]= [11.059, 0.131, -0.064, 16.281, 10.584, -5.718] ; for VIRR4-VIRR5
;;parameters for xizang winter inversion model 3
;para[*,0]= [0.1751, 0.088, -0.058, 10.216, 13.699, 8.932] ; for VIRR4-VIRR5

;;parameters for summer inversion model
;para[*,0]= [-0.143, 0.122, -0.061, 5.393, 7.702, -3.876] ; for VIRR4-VIRR5
;para[*,0]= [-38.814, 0.36, 0, -37.098, -202.608, 52.332] ; for MODIS29-MODIS31

;;parameters for xizang summer inversion model
;para[*,0]= [0.6621, 0.154, -0.087, 4.606, 13.142, 0] ; for VIRR4-VIRR5
;;parameters for xizang summer inversion model 2
;para[*,0]= [3.2722, 0.115, -0.057, 31.07, 28.995, -14.669] ; for VIRR4-VIRR5


;water_emis锟斤拷锟斤拷
;         0                1               2
;0 water_VIRR4_min water_VIRR5_min water_MERSI5_min
;1 water_VIRR4_max water_VIRR5_max water_MERSI5_max
;2 water_VIRR4_old water_VIRR5_old water_MERSI5_old
;3 water_VIRR4_new water_VIRR5_new water_MERSI5_new

emis=fltarr(3,3,17)
emis[*,0,0]=[0.99,0.991,0.99]
emis[*,1,0]=[0.993,0.995,0.995]



emis[*,0,1]=[0.975,0.978,0.975]
emis[*,1,1]=[0.992,0.994,0.994]

emis[*,0,2]=[0.975,0.978,0.975]
emis[*,1,2]=[0.995,0.995,0.995]

emis[*,0,3]=[0.975,0.977,0.975]
emis[*,1,3]=[0.992,0.993,0.993]

emis[*,0,4]=[0.949,0.958,0.949]
emis[*,1,4]=[0.992,0.99,0.99]

emis[*,0,5]=[0.975,0.98,0.975]
emis[*,1,5]=[0.996,0.997,0.997]

emis[*,0,6]=[0.949,0.949,0.949]
emis[*,1,6]=[0.995,0.995,0.995]

emis[*,0,7]=[0.924,0.932,0.924]
emis[*,1,7]=[0.987,0.993,0.993]

emis[*,0,8]=[0.974,0.978,0.974]
emis[*,1,8]=[0.993,0.996,0.996]

emis[*,0,9]=[0.95,0.95,0.95]
emis[*,1,9]=[0.99,0.99,0.99]

emis[*,0,10]=[0.949,0.958,0.949]
emis[*,1,10]=[0.995,0.997,0.997]

emis[*,0,11]=[0.95,0.95,0.95]
emis[*,1,11]=[0.99,0.99,0.99]

emis[*,0,12]=[0.95,0.95,0.95] ; for crop land
emis[*,1,12]=[0.996,0.996,0.996] ; for crop land

emis[*,0,13]=[0.95,0.95,0.95]
emis[*,1,13]=[0.99,0.99,0.99]

emis[*,0,14]=[0.95,0.95,0.95]
emis[*,1,14]=[0.996,0.996,0.996]

emis[*,0,15]=[0.95,0.95,0.95]
emis[*,1,15]=[0.996,0.996,0.996]

emis[*,0,16]=[0.95,0.95,0.95]
emis[*,1,16]=[0.996,0.996,0.996]

;openu,outunit,'E:\log_all.txt',/append,/GET_LUN
;printf,outunit,'end for i_classificaiton=',i_classification
;printf,outunit,'count,R,C,emissivity=',count,R,C,emis[*,2,i_classification]
;close,outunit
;FREE_LUN,outunit
for i=0, filenum-1 do begin                           ;zeng
if (data_file eq '') then return                   ;zeng
;open file                                              ;zeng
envi_open_file, data_file, r_fid=fid;              ;zeng
if (fid eq -1) then return                            ;zeng
;query file attributes                                  ;zeng
envi_file_query, fid, dims=dims, ns=ns, nl=nl;        ;zeng
print,data_file                                       ;zeng

;;锟街憋拷锟斤拷锟?锟斤拷图锟斤拷                                                                                   ;gai
;envi_open_file, data_file, r_fid=fid;             ;gai
;if (fid eq -1) then return                        ;gai
;envi_file_query, fid, dims=dims, ns=ns, nl=nl;     ;gai
;;print,classify;                                    ;gai
data_classify=envi_get_data(fid=fid,dims=dims,pos=0)

;TB_MERSI5=envi_get_data(fid=fid,dims=dims,pos=1)
;TB_VIRR4=envi_get_data(fid=fid,dims=dims,pos=2)
;TB_VIRR5=envi_get_data(fid=fid,dims=dims,pos=3)
TB_VIRR4=envi_get_data(fid=fid,dims=dims,pos=1)
TB_VIRR5=envi_get_data(fid=fid,dims=dims,pos=2)
map_info=envi_get_map_info(fid=fid)
;print,data_classify
;print,TB_MERSI5
;print,TB_VIRR4
;print,TB_VIRR5
;ns锟斤拷nl锟斤拷
size_data=size(data_classify)
ns=size_data[1]
nl=size_data[2]
;锟斤拷锟斤拷5锟斤拷锟斤拷锟介,锟斤拷锟斤拷确锟斤拷锟斤拷锟铰讹拷
E_VIRR4=fltarr(ns,nl)
E_VIRR5=fltarr(ns,nl)
;E_MERSI5=fltarr(ns,nl)
Ts1=fltarr(ns,nl)
;Ts2=fltarr(ns,nl)



;***锟斤拷一锟斤拷锟斤拷铮??拷锟?A,NO1为水锟斤拷锟斤拷图锟斤拷锟叫碉拷锟斤拷锟叫猴拷

FOR i_classification = 0, 16 do begin
;FOR i_classification = 12, 12 do begin

;emis[*,2,i_classification]=emis[*,0,i_classification]
emis[*,2,i_classification]=(emis[*,0,i_classification]+emis[*,1,i_classification])/2
;emis[*,3,i_classification]=emis[*,0,i_classification]

;NO1=where((data_classify GT i_classification - 0.5) AND (data_classify LT i_classification + 0.5))
;NO1=where((data_classify eq i_classification) and (TB_MERSI5 gt 270) and (TB_VIRR4 gt 270) and (TB_VIRR5 gt 270))
;NO1=where((data_classify eq i_classification) and (TB_VIRR4 gt 200) and (TB_VIRR5 gt 200) and (TB_VIRR4 lt 400) and (TB_VIRR5 lt 400))
;NO1=where((data_classify eq i_classification) and (TB_VIRR4 gt 290) and (TB_VIRR5 gt 290))
NO1=where((data_classify eq i_classification) and (TB_VIRR4 gt 240) and (TB_VIRR5 gt 240))
n_pixels = size(NO1,/n_elements)
;print,'n_pixels'
;print,n_pixels


;;new
;emis[*,2,0]=[0.991,0.986,emis[2,2,0]]
;emis[*,2,1]=[0.989,0.991,emis[2,2,1]]
;emis[*,2,2]=[0.987,0.990,emis[2,2,2]]
;emis[*,2,3]=[0.986,0.988,emis[2,2,3]]
;emis[*,2,4]=[0.968,0.971,emis[2,2,4]]
;emis[*,2,15]=[0.998,0.977,emis[2,2,0]]


;data_classify[NO1] =255


;ENVI_WRITE_ENVI_FILE, data_classify, out_name='h:\land_temperature.img' ;锟斤拷ENVI锟借定锟斤拷锟斤拷锟斤拷募锟斤拷锟斤拷写锟斤拷锟接帮拷锟?

count=0
;
;;锟斤拷循锟斤拷锟斤拷直锟斤拷2锟介发锟斤拷锟绞讹拷锟斤拷锟斤拷锟斤拷锟斤拷锟?.001锟节的凤拷围
;  ;repeat begin
;
;  ; water_emis[*,2]=water_emis[*,3]
;  ;锟揭碉拷VIRR4锟斤拷驯确锟斤拷锟斤拷锟?
;    ;num_emis_VIRR4=(emis[0,1,i_classification]- emis[0,0,i_classification])/0.0001
;    E_VIRR5[NO1] = emis[1,2,i_classification]
;    E_MERSI5[NO1] = emis[2,2,i_classification]
;
;       ;R_VIRR4 = fltarr(num_emis_VIRR4+1)
;       ;Cov_VIRR4 = fltarr(num_emis_VIRR4+1)
;
;
;       ;for i=0,num_emis_VIRR4 do begin
;
;           ;E_VIRR4[NO1]=emis[0,0,i_classification]+0.0001*i
;            E_VIRR4[NO1]=emis[0,2,i_classification]
;           ;calculate Land Surface Temperature us virr4/5
;           A = para[0,0]
;           E_mean = (E_VIRR4[NO1] +E_VIRR5[NO1])/2
;           E_deta = E_VIRR4[NO1] -E_VIRR5[NO1]
;
;           p = 1+para[1,0]*(1- E_mean)/E_mean + para[2,0]*E_deta/E_mean/E_mean
;           M = para[3,0] + para[4,0] * (1-E_mean)/E_mean + para[5,0] * E_deta/E_mean/E_mean
;           Ts1[NO1]= A+P*(TB_VIRR4[NO1]+TB_VIRR5[NO1])/2+M*(TB_VIRR4[NO1]-TB_VIRR5[NO1])/2
;
;           ;calculate Land Surface Temperature using VIRR4 and MERSI5
;           A = para[0,1]
;           E_mean = (E_VIRR4 [NO1] + E_MERSI5 [NO1])/2
;           E_deta = E_VIRR4 [NO1] - E_MERSI5 [NO1]
;
;           p = 1+para[1,1]*(1- E_mean)/E_mean + para[2,1]*E_deta/E_mean/E_mean
;           M = para[3,1] + para[4,1] * (1-E_mean)/E_mean + para[5,1] * E_deta/E_mean/E_mean
;           Ts2[NO1]= A+P*(TB_VIRR4[NO1]+TB_MERSI5[NO1])/2+M*(TB_VIRR4[NO1] - TB_MERSI5[NO1])/2
;
;
;           ;R_VIRR4 = CORRELATE(Ts1[NO1], Ts2[NO1])
;           ;temp = 0
;           ;for i_pixels = 0, n_pixels - 1 do begin
;
;                ;temp = temp + (Ts1[NO1[i_pixels]]-Ts2[NO1[i_pixels]])*(Ts1[NO1[i_pixels]]-Ts2[NO1[i_pixels]])
;
;           ;endfor

           ;Cov_VIRR4 = sqrt(temp/(n_pixels - 1))

      ;     print, 'i,correlation,cov,ts1,ts2=',i,R_VIRR4,Cov_VIRR4,Ts1[360,250],Ts2[360,250]

      ; endfor

     ;i_R_sub = where(R_VIRR4 ge 0.9)
     ;print,R_VIRR4
     ;print,i_R_sub

     ;num_R_sub = size(i_R_sub,/n_elements)
     ;print,'num_R_sub; maximal correlation'
     ;print,num_R_sub
     ;if i_R_sub gt 0 then print,R_VIRR4[i_R_sub]
     ;print,R_VIRR4

     ;if i_R_sub[0] ge 0 then  begin
     ;    i_emis_minCov = where(Cov_VIRR4 eq min (Cov_VIRR4))
     ;    emis[0,3,i_classification] = emis[0,0,i_classification]+0.0001*i_emis_minCov[0]  ;锟斤拷锟杰筹拷锟街讹拷锟斤拷锟斤拷锟斤拷锟叫?
     ;endif  else begin
     ;    i_emis_maxR = where(R_VIRR4 eq max (R_VIRR4))
         ;i_emis_minCov = where(Cov_VIRR4 eq min(Cov_VIRR4));锟斤拷锟杰筹拷锟街讹拷锟斤拷锟斤拷系锟斤拷锟斤拷龋锟斤拷锟斤拷锟叫?
         ;emis[0,3,i_classification] =  emis[0,0,i_classification]+0.0001*i_emis_minCov[0]
     ;endelse


    ;openu,outunit,'E:\log.txt',/append,/GET_LUN
    ;printf,outunit,'R,C=',R_VIRR4,Cov_VIRR4
    ;printf,outunit, count, max (R_VIRR4), R_VIRR4[i_emis_minCov[0]],Cov_VIRR4[i_emis_minCov[0]],emis[*,3,i_classification]
    ;close,outunit
    ;FREE_LUN,outunit
    ;print, 'maximal correlation and mininal cov'
    ;print, max (R_VIRR4)
    ;print,min (Cov_VIRR4)

;锟揭碉拷VIRR5锟斤拷驯确锟斤拷锟斤拷锟?
    ;num_emis_VIRR5=(emis[1,1,i_classification]- emis[1,0,i_classification])/0.0001
;    E_VIRR4[NO1] = emis[0,3,i_classification]
;    E_MERSI5[NO1] = emis[2,3,i_classification]
;
;       R_VIRR5 = fltarr(num_emis_VIRR5+1)
;       Cov_VIRR5 = fltarr(num_emis_VIRR5+1)
;
;
;       for i=0,num_emis_VIRR5 do begin
;           ;循锟斤拷锟斤拷VIRR5锟斤拷锟轿比凤拷锟斤拷锟斤拷
;           E_VIRR5[NO1]=emis[1,0,i_classification]+0.001*i
;
;           ;锟斤拷一锟斤拷锟斤拷式VIRR4-E_VIRR5
;           A = para[0,0]
;           E_mean = (E_VIRR4[NO1] +E_VIRR5[NO1])/2
;           E_deta = E_VIRR4[NO1] -E_VIRR5[NO1]
;
;           p = 1+para[1,0]*(1- E_mean)/E_mean + para[2,0]*E_deta/E_mean/E_mean
;           M = para[3,0] + para[4,0] * (1-E_mean)/E_mean + para[5,0] * E_deta/E_mean/E_mean
;           Ts1[NO1]= A+P*(TB_VIRR4[NO1]+TB_VIRR5[NO1])/2+M*(TB_VIRR4[NO1]-TB_VIRR5[NO1])/2
;
;           ;锟节讹拷锟斤拷锟斤拷式VIRR4 - MERSI5
;           A = para[0,1]
;           E_mean = (E_VIRR4 [NO1] + E_MERSI5 [NO1])/2
;           E_deta = E_VIRR4 [NO1] - E_MERSI5 [NO1]
;
;           p = 1+para[1,1]*(1- E_mean)/E_mean + para[2,1]*E_deta/E_mean/E_mean
;           M = para[3,1] + para[4,1] * (1-E_mean)/E_mean + para[5,1] * E_deta/E_mean/E_mean
;           Ts2[NO1]= A+P*( TB_VIRR4 [NO1]+ TB_MERSI5 [NO1])/2+M*( TB_VIRR4 [NO1]- TB_MERSI5 [NO1])/2
;
;           R_VIRR5 = CORRELATE(Ts1[NO1], Ts2[NO1])
;           temp = 0
;           for i_pixels = 0, n_pixels - 1 do begin
;
;                temp = temp + (Ts1[NO1[i_pixels]]-Ts2[NO1[i_pixels]])*(Ts1[NO1[i_pixels]]-Ts2[NO1[i_pixels]])
;
;           endfor
;           Cov_VIRR5 = sqrt(temp/(n_pixels - 1))
;
;       endfor
;
;     i_R_sub = where(R_VIRR5 ge 0.9)
;     num_R_sub = size(i_R_sub,/n_elements)
;
;     ;print,'num_R_sub; maximal correlation'
;     ;print,num_R_sub
;     ;if i_R_sub gt 0 then print,R_VIRR5[i_R_sub]
;
;     ;if i_R_sub[0] gt 0 then  begin
;     ;    i_emis_minCov = where(Cov_VIRR5 eq min (Cov_VIRR5))
;     ;    emis[1,3,i_classification] = emis[1,0,i_classification]+0.0001*i_emis_minCov[0]
;     ;endif  else begin
;     ;    i_emis_maxR = where(R_VIRR5 eq max (R_VIRR5))
;         i_emis_minCov = where(Cov_VIRR5 eq min(Cov_VIRR5))
;
;         emis[1,3,i_classification] = emis[1,0,i_classification]+0.0001*i_emis_minCov[0]
;
;     ;endelse
;
;
;     ;   print, 'maximal correlation and mininal cov'
;    ;print, max (R_VIRR5)
;    ;print,min (Cov_VIRR5)
;    ;openu,outunit,'E:\log.txt',/append,/GET_LUN
;    ;printf,outunit,'R,C=',R_VIRR5,Cov_VIRR5
;    ;printf,outunit, count, max (R_VIRR5), R_VIRR5[i_emis_minCov[0]],Cov_VIRR5[i_emis_minCov[0]],emis[*,3,i_classification]
;    ;close,outunit
;    ;FREE_LUN,outunit
;
;
;
;    ;锟揭碉拷MERSI锟斤拷驯确锟斤拷锟斤拷锟?
;    num_emis_MERSI5=(emis[2,1,i_classification]- emis[2,0,i_classification])/0.0001
;    E_VIRR4[NO1] = emis[0,3,i_classification]
;    E_VIRR5[NO1] = emis[1,3,i_classification]
;
;       R_MERSI5 = fltarr(num_emis_MERSI5+1)
;       Cov_MERSI5 = fltarr(num_emis_MERSI5+1)
;
;
;       for i=0,num_emis_MERSI5 do begin
;           ;循锟斤拷锟斤拷VIRR5锟斤拷锟轿比凤拷锟斤拷锟斤拷
;           E_MERSI5[NO1]=emis[2,0,i_classification]+0.0001*i
;
;           ;锟斤拷一锟斤拷锟斤拷式VIRR4-E_ MERSI 5
;           A = para[0,0]
;           E_mean = (E_VIRR4[NO1] +E_VIRR5[NO1])/2
;           E_deta = E_VIRR4[NO1] -E_VIRR5[NO1]
;
;           p = 1+para[1,0]*(1- E_mean)/E_mean + para[2,0]*E_deta/E_mean/E_mean
;           M = para[3,0] + para[4,0] * (1-E_mean)/E_mean + para[5,0] * E_deta/E_mean/E_mean
;           Ts1[NO1]= A+P*(TB_VIRR4[NO1]+TB_VIRR5[NO1])/2+M*(TB_VIRR4[NO1]-TB_VIRR5[NO1])/2
;
;           ;锟节讹拷锟斤拷锟斤拷式VIRR4 - MERSI5
;           A = para[0,1]
;           E_mean = (E_VIRR4 [NO1] + E_MERSI5 [NO1])/2
;           E_deta = E_VIRR4 [NO1] - E_MERSI5 [NO1]
;
;           p = 1+para[1,1]*(1- E_mean)/E_mean + para[2,1]*E_deta/E_mean/E_mean
;           M = para[3,1] + para[4,1] * (1-E_mean)/E_mean + para[5,1] * E_deta/E_mean/E_mean
;           Ts2[NO1]= A+P*( TB_VIRR4 [NO1]+ TB_MERSI5 [NO1])/2+M*( TB_VIRR4 [NO1]- TB_MERSI5 [NO1])/2
;
;           R_MERSI5 = CORRELATE(Ts1[NO1], Ts2[NO1])
;           temp = 0
;           for i_pixels = 0, n_pixels - 1 do begin
;
;                temp = temp + (Ts1[NO1[i_pixels]]-Ts2[NO1[i_pixels]])*(Ts1[NO1[i_pixels]]-Ts2[NO1[i_pixels]])
;
;           endfor
;           Cov_MERSI5 = sqrt(temp/(n_pixels - 1))
;
;       endfor
;
;     i_R_sub = where(R_MERSI5 ge 0.9)
;     num_R_sub = size(i_R_sub,/n_elements)
;
;     ;print,'num_R_sub; maximal correlation'
;     ;print,num_R_sub
;     ;if i_R_sub gt 0 then print,R_MERSI5[i_R_sub]
;
;     ;if i_R_sub[0] gt  0 then  begin
;     ;    i_emis_minCov = where(Cov_MERSI5 eq min (Cov_MERSI5))
;     ;    emis[2,3,i_classification] = emis[2,0,i_classification]+0.0001*i_emis_minCov[0]
;     ;endif  else begin
;     ;    i_emis_maxR = where(R_MERSI5 eq max (R_MERSI5))
;         i_emis_minCov = where(Cov_MERSI5 eq min(Cov_MERSI5))
;         emis[2,3,i_classification] = emis[2,0,i_classification]+0.0001*i_emis_minCov[0]
;
;     ;endelse
;
;    ;print, 'maximal correlation and mininal cov'
;    ;print, max (R_MERSI5)
;    ;print,min (Cov_MERSI5)
;
;
;      ;前锟斤拷锟斤拷锟斤拷锟街得匡拷锟斤拷确锟斤拷锟斤拷示锟叫★拷锟?.001
;      temp = emis[*,3,i_classification] - emis[*,2,i_classification]
;
;      temp = abs(temp)
;      Dvalue_out = where(temp le 0.005)
;      Dvalue_num=size(Dvalue_out,/n_elements)
;
;
;
;      ;print, 'count=',count
;      ;print, 'Dvalue_num=',Dvalue_num
;
;    ;openu,outunit,'E:\log.txt',/append,/GET_LUN
;    ;Printf,outunit,'R,C=',R_MERSI5,Cov_MERSI5
;    ;printf,outunit, count, max (R_MERSI5), R_MERSI5[i_emis_minCov[0]],Cov_MERSI5[i_emis_minCov[0]],emis[*,3,i_classification]
;   ; close,outunit
;    ;FREE_LUN,outunit
;
;
;      ;printf,2,' count,max (R_VIRR5)  min (Cov_MERSI5), emiss=', count, max (R_MERSI5), min (Cov_MERSI5),emis[*,3,i_classification]
;      ;PRINT,'EMISSIVITY=',emis[*,3,i_classification]
;
;        count= count + 1
;        emis[*,2,i_classification] = emis[*,3,i_classification]

  ;ENDREP UNTIL ((Dvalue_num eq 3) and (R_MERSI5[i_emis_minCov] gt 0.9) )
; ENDREP UNTIL ((Dvalue_num eq 3) )

      E_VIRR4[NO1] = emis[0,2,i_classification]
      E_VIRR5[NO1] = emis[1,2,i_classification]
      ;E_MERSI5[NO1] = emis[2,2,i_classification]

      ;锟斤拷一锟斤拷锟斤拷式VIRR4-E_VIRR5
           A = para[0,0]
           E_mean = (E_VIRR4[NO1] + E_VIRR5[NO1])/2
           E_deta = E_VIRR4[NO1] - E_VIRR5[NO1]

           p = 1+para[1,0]*(1- E_mean)/E_mean + para[2,0]*E_deta/E_mean/E_mean
           M = para[3,0] + para[4,0] * (1-E_mean)/E_mean + para[5,0] * E_deta/E_mean/E_mean
           Ts1[NO1]= A+P*(TB_VIRR4[NO1]+TB_VIRR5[NO1])/2+M*(TB_VIRR4[NO1]-TB_VIRR5[NO1])/2
         ;锟节讹拷锟斤拷锟斤拷式VIRR4 - MERSI5
;           A = para[0,1]
;           E_mean = (E_VIRR4 [NO1] + E_MERSI5 [NO1])/2
;           E_deta = E_VIRR4 [NO1] - E_MERSI5 [NO1]
;
;           p = 1+para[1,1]*(1- E_mean)/E_mean + para[2,1]*E_deta/E_mean/E_mean
;           M = para[3,1] + para[4,1] * (1-E_mean)/E_mean + para[5,1] * E_deta/E_mean/E_mean
;           Ts2[NO1]= A+P*( TB_VIRR4 [NO1]+ TB_MERSI5 [NO1])/2+M*( TB_VIRR4 [NO1]- TB_MERSI5 [NO1])/2

;           R = CORRELATE(Ts1[NO1], Ts2[NO1])
;           temp = 0
;           for i_pixels = 0, n_pixels - 1 do begin
;
;                temp = temp + (Ts1[NO1[i_pixels]]-Ts2[NO1[i_pixels]])*(Ts1[NO1[i_pixels]]-Ts2[NO1[i_pixels]])
;
;           endfor
;           C = sqrt(temp/(n_pixels - 1))


           openu,outunit,'E:\log_all.txt',/append,/GET_LUN
;           printf,outunit,'end for i_classificaiton=',i_classification
;           printf,outunit,'count,R,C,emissivity=',count,R,C,emis[*,2,i_classification]
;           printf,outunit,i_classification,R,C,emis[*,2,i_classification]
           close,outunit
           FREE_LUN,outunit

endfor   ;for 17 types of land cover



;**********************
;*****锟斤拷锟斤拷一锟斤拷影锟斤拷*****
;**********************
; Create the image array

;a

;ENVI_WRITE_ENVI_FILE, Ts1, out_name='f:\JS_20120613_0230_avg_tsm.hdf',map_info=map_info ;锟斤拷ENVI锟借定锟斤拷锟斤拷锟斤拷募锟斤拷锟斤拷写锟斤拷锟接帮拷锟?                                  ;gai
;ENVI_WRITE_ENVI_FILE, Ts2, out_name='f:\hb_20120211_avg_ts2.hdf',map_info=map_info;锟斤拷ENVI锟借定锟斤拷锟斤拷锟斤拷募锟斤拷锟斤拷写锟斤拷锟接帮拷锟?

pose= STRPOS(data_file, '\', /REVERSE_SEARCH)                    ;zeng
pose1=STRPOS(data_file, '.hdf', /REVERSE_SEARCH)                 ;zeng
postname=strmid(data_file,pose+1,pose1-pose-1)                   ;zeng
out_name=savepath+postname+"_avg_ts.hdf"                            ;zeng

ENVI_WRITE_ENVI_FILE, Ts1, out_name=out_name,map_info=map_info;       ;zeng

;print,num
;showEnd=dialog_message(string(num))
endfor   ;zeng
end
问题是D:\15ᅱᅵ￐ᄀᄑ£\FY3A_VIRR_20120211_1410.hdf
Attempt to subscript E_VIRR4 with NO1 is out of range.
Execution halted at: LSTINVERSION_AVG_VIRR_P  432 D:\12ᅱᅵ￐ᄀᄑ£\chengxu\lstinversion_avg_virr_p.pro
                     $MAIN$          问题行我已标出


密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表