Changeset 205 for trunk/procs/ybinx.pro
- Timestamp:
- 01/26/10 10:46:13 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/procs/ybinx.pro
r203 r205 28 28 bin_plt = [2*bin_plt[0]-bin_plt[1], bin_plt[0:nbins-2], 2*bin_plt[nbins-2]-bin_plt[nbins-3]] 29 29 30 IF debug_w THEN print, ' bin_plt= ', bin_plt 31 IF debug_w THEN print, ' nbins= ', nbins 30 IF debug_w THEN BEGIN 31 print, ' bin_plt= ', bin_plt 32 print, ' nbins= ', nbins 33 ENDIF 32 34 33 35 ; 3rd field to bin regression ? 34 36 35 IF var3_ybinx NE "" THEN sw3 = 1 ELSE sw3 = 0 37 IF var3_ybinx NE "" THEN BEGIN 38 sw3 = 1 39 ENDIF ELSE BEGIN 40 sw3 = 0 41 ENDELSE 36 42 37 43 ; mask fields with valmask for regression computation … … 39 45 IF sw3 THEN BEGIN 40 46 idxmsk = where(fld GT valmask/10.) 41 IF idxmsk[0] NE -1 THEN fld[idxmsk] = valmask 42 IF idxmsk[0] NE -1 THEN fld3[idxmsk] = valmask 47 IF idxmsk[0] NE -1 THEN BEGIN 48 fld[idxmsk] = valmask 49 ENDIF 50 IF idxmsk[0] NE -1 THEN BEGIN 51 fld3[idxmsk] = valmask 52 ENDIF 43 53 ENDIF 44 54 … … 47 57 idxmskpn = where(finite(fld, /nan)) 48 58 idxmskpn2 = where(finite(fld2, /nan)) 49 IF idxmskpn[0] NE -1 THEN fld[idxmskpn] = valmask 50 IF idxmskpn2[0] NE -1 THEN fld2[idxmskpn2] = valmask 59 IF idxmskpn[0] NE -1 THEN BEGIN 60 fld[idxmskpn] = valmask 61 ENDIF 62 IF idxmskpn2[0] NE -1 THEN BEGIN 63 fld2[idxmskpn2] = valmask 64 ENDIF 51 65 52 66 idxmskpn = where(fld GT valmask/10.) 53 67 idxmskpn2 = where(fld2 GT valmask/10.) 54 IF idxmskpn[0] NE -1 THEN fld2[idxmskpn] = valmask 55 IF idxmskpn2[0] NE -1 THEN fld[idxmskpn2] = valmask 68 IF idxmskpn[0] NE -1 THEN BEGIN 69 fld2[idxmskpn] = valmask 70 ENDIF 71 IF idxmskpn2[0] NE -1 THEN BEGIN 72 fld[idxmskpn2] = valmask 73 ENDIF 56 74 57 75 ; print min/max of field for debug 58 76 idxmskp = where(fld LE valmask/10.) 59 IF debug_w THEN print, ' Min/max fld= ', min(fld[idxmskp]), max(fld[idxmskp]) 60 IF debug_w THEN print, ' Min/max fld2= ', min(fld2[idxmskp]), max(fld2[idxmskp]) 77 IF debug_w THEN BEGIN 78 print, ' Min/max fld= ', min(fld[idxmskp]), max(fld[idxmskp]) 79 print, ' Min/max fld2= ', min(fld2[idxmskp]), max(fld2[idxmskp]) 80 ENDIF 61 81 62 82 ; remove mean seasonal cycle if required … … 64 84 IF cmd.trend GT 0 THEN BEGIN 65 85 fld = trends(fld, cmd.trend, 'xyt') 66 IF sw3 THEN fld3 = trends(fld3, cmd.trend, 'xyt') 86 IF sw3 THEN BEGIN 87 fld3 = trends(fld3, cmd.trend, 'xyt') 88 ENDIF 67 89 ENDIF 68 90 IF cmd2.trend GT 0 THEN BEGIN … … 82 104 fldn = (fld)[*, *, reform(idxm[0,*], njpt)] 83 105 fld2n = (fld2)[*, *, reform(idxm[0,*], njpt)] 84 IF sw3 THEN fld3n = (fld3)[*, *, reform(idxm[0,*], njpt)] 106 IF sw3 THEN BEGIN 107 fld3n = (fld3)[*, *, reform(idxm[0,*], njpt)] 108 ENDIF 85 109 86 110 FOR imth = 1, nmth-1 DO BEGIN … … 88 112 fldn = [fldn, (fld)[*, *, reform(idxm[imth,*], njpt)]] 89 113 fld2n = [fld2n, (fld2)[*, *, reform(idxm[imth,*], njpt)]] 90 IF sw3 THEN fld3n = [fld3n, (fld3)[*, *, reform(idxm[imth,*], njpt)]] 114 IF sw3 THEN BEGIN 115 fld3n = [fld3n, (fld3)[*, *, reform(idxm[imth,*], njpt)]] 116 ENDIF 91 117 92 118 ENDFOR … … 95 121 fld = fldn 96 122 fld2 = fld2n 97 IF sw3 THEN fld3 = fld3n 123 IF sw3 THEN BEGIN 124 fld3 = fld3n 125 ENDIF 98 126 ENDIF 99 127 … … 116 144 binpop[ib] = n_elements(indices) 117 145 idxb[ib, 0:binpop[ib]-1] = where(fld2 GT bin_interval[ib-1] AND fld2 LE bin_interval[ib]) 118 IF debug_w THEN print, ' Size of bin[i] ', ib, binpop[ib] 146 IF debug_w THEN BEGIN 147 print, ' Size of bin[i] ', ib, binpop[ib] 148 ENDIF 119 149 120 150 ib = ib + 1 … … 133 163 max_idx = max(binpop) 134 164 135 IF debug_w THEN print, ' Max bin size ', max_idx 136 IF debug_w THEN print, ' Number of bins ', nbins 165 IF debug_w THEN BEGIN 166 print, ' Max bin size ', max_idx 167 print, ' Number of bins ', nbins 168 ENDIF 137 169 fldy = fltarr(nbins+1, max_idx) 138 170 fldy[*, *] = !values.f_nan … … 159 191 WHILE ib LE nbins DO BEGIN 160 192 161 IF debug_w THEN print, 'bin = ', ib 193 IF debug_w THEN BEGIN 194 print, 'bin = ', ib 195 ENDIF 162 196 binsz = binpop[ib] 163 197 IF binsz GT 1 THEN BEGIN 164 198 fldy[ib, 0:binsz-1] = fld[idxb[ib, 0:binsz-1]] 165 IF debug_w THEN print, 'fld[idxb[ib, 0:binsz-1]] =',fld[idxb[ib, 0:binsz-1]] 199 IF debug_w THEN BEGIN 200 print, 'fld[idxb[ib, 0:binsz-1]] =',fld[idxb[ib, 0:binsz-1]] 201 ENDIF 166 202 fldys[ib, 0:binsz-1] = flds[idxb[ib, 0:binsz-1]] 167 203 surfb[ib, 0:binsz-1] = surf[idxb[ib, 0:binsz-1]] 168 IF sw3 THEN fldy2[ib, 0:binsz-1] = fld3[idxb[ib, 0:binsz-1]] 204 IF sw3 THEN BEGIN 205 fldy2[ib, 0:binsz-1] = fld3[idxb[ib, 0:binsz-1]] 206 ENDIF 169 207 ENDIF 170 208 ib = ib + 1 … … 196 234 197 235 ; print bin info 198 IF ib GT 0 AND ib LT nbins THEN print, ' Bin size, occurence, average: ', bin_interval[ib-1], bin_interval[ib], binpop[ib], (binpop[ib]/total(binpop))*100., yplt[ib] 199 IF ib EQ 0 THEN print, ' Bin size, occurence, average: min' , bin_interval[ib], binpop[ib], (binpop[ib]/total(binpop))*100. , yplt[ib] 200 IF ib EQ nbins THEN print, ' Bin size, occurence, average: ', bin_interval[ib-1],' max ', binpop[ib], (binpop[ib]/total(binpop))*100. , yplt[ib] 201 ENDIF ELSE yplt[ib] = !values.f_nan 236 IF ib GT 0 AND ib LT nbins THEN BEGIN 237 print, ' Bin size, occurence, average: ', bin_interval[ib-1], bin_interval[ib], binpop[ib], (binpop[ib]/total(binpop))*100., yplt[ib] 238 ENDIF 239 IF ib EQ 0 THEN BEGIN 240 print, ' Bin size, occurence, average: min' , bin_interval[ib], binpop[ib], (binpop[ib]/total(binpop))*100. , yplt[ib] 241 ENDIF 242 IF ib EQ nbins THEN BEGIN 243 print, ' Bin size, occurence, average: ', bin_interval[ib-1],' max ', binpop[ib], (binpop[ib]/total(binpop))*100. , yplt[ib] 244 ENDIF 245 ENDIF ELSE BEGIN 246 yplt[ib] = !values.f_nan 247 ENDELSE 202 248 203 249 ib = ib + 1 … … 237 283 238 284 ; print bin info 239 IF ib GT 0 AND ib LT nbins THEN print, ' Bin size, occurence, regress.: ', bin_interval[ib-1], bin_interval[ib], binpop[ib], (binpop[ib]/total(binpop))*100., yplt[ib] 240 IF ib EQ 0 THEN print, ' Bin size, occurence, regress.: min' , bin_interval[ib], binpop[ib], (binpop[ib]/total(binpop))*100. , yplt[ib] 241 IF ib EQ nbins THEN print, ' Bin size, occurence, regress.: ', bin_interval[ib-1],' max ', binpop[ib], (binpop[ib]/total(binpop))*100. , yplt[ib] 242 243 ENDIF ELSE yplt[ib] = !values.f_nan 285 IF ib GT 0 AND ib LT nbins THEN BEGIN 286 print, ' Bin size, occurence, regress.: ', bin_interval[ib-1], bin_interval[ib], binpop[ib], (binpop[ib]/total(binpop))*100., yplt[ib] 287 ENDIF 288 IF ib EQ 0 THEN BEGIN 289 print, ' Bin size, occurence, regress.: min' , bin_interval[ib], binpop[ib], (binpop[ib]/total(binpop))*100. , yplt[ib] 290 ENDIF 291 IF ib EQ nbins THEN BEGIN 292 print, ' Bin size, occurence, regress.: ', bin_interval[ib-1],' max ', binpop[ib], (binpop[ib]/total(binpop))*100. , yplt[ib] 293 ENDIF 294 295 ENDIF ELSE BEGIN 296 yplt[ib] = !values.f_nan 297 ENDELSE 244 298 245 299 ib = ib + 1 … … 269 323 270 324 printf, nulhis, strcompress(pltcmd) 271 IF debug_w THEN print, ' ', pltcmd 325 IF debug_w THEN BEGIN 326 print, ' ', pltcmd 327 ENDIF 272 328 res = execute(pltcmd) 273 329 … … 279 335 res = execute(pltcmd) 280 336 281 IF debug_w THEN print, " ... Exit ybinx" 337 IF debug_w THEN BEGIN 338 print, " ... Exit ybinx" 339 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.