Changeset 233 for trunk/MESOSCALE_DEV/PLOT/PYTHON/scripts
- Timestamp:
- Jul 19, 2011, 2:22:19 AM (14 years ago)
- Location:
- trunk/MESOSCALE_DEV/PLOT/PYTHON/scripts
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/MESOSCALE_DEV/PLOT/PYTHON/scripts/makefig.sh
r225 r233 5 5 file2="$fold/POLAR_THOMAS_ls20/wrfout_d03_2024-01-42_06:00:00" 6 6 file3="$fold/POLAR_THOMAS_ls0/wrfout_d03_2024-01-06_06:00:00" 7 file4="$fold/POLAR_THOMAS_ls10/wrfout_d03_2024-01-19_06:00:00" 7 8 dest="/u/aslmd/WWW/antichambre/thomas/" 8 9 … … 12 13 -v USTM -m 0. -M 0.8 \ 13 14 -v HGT -m 0 -M 0 \ 14 -f $file1 -f $file2 -f $file3 15 -f $file1 -f $file2 -f $file3 -f $file4 \ 16 -d -
trunk/MESOSCALE_DEV/PLOT/PYTHON/scripts/winds.py
r232 r233 23 23 vmax=None,\ 24 24 tile=False,\ 25 zoom=None): 25 zoom=None,\ 26 display=True,\ 27 itstep=None): 26 28 27 29 #################################################################################################################### … … 32 34 from netCDF4 import Dataset 33 35 from myplot import getcoord2d,define_proj,makeplotpng,simplinterv,vectorfield,ptitle,latinterv,getproj,wrfinterv,dumpbdy,\ 34 fmtvar,definecolorvec,getwinds,defcolorb,getprefix,putpoints 36 fmtvar,definecolorvec,defcolorb,getprefix,putpoints,calculate_bounds,errormess,definesubplot,\ 37 zoomset,getcoorddef,getwinddef,whatkindfile,reducefield,bounds,getstralt,getfield 35 38 from mymath import deg,max,min,mean 36 39 from matplotlib.pyplot import contour,contourf, subplot, figure, rcParams, savefig, colorbar, pcolor … … 39 42 from numpy.core.defchararray import find 40 43 41 ###42 #rcParams['text.usetex'] = True43 #rcParams['cairo.format'] = 'svg'44 45 44 ###################### 46 45 ### Load NETCDF object 47 46 nc = Dataset(namefile) 48 49 ################################### 50 ### Recognize predefined file types 51 if 'controle' in nc.variables: typefile = 'gcm' 52 elif 'vert' in nc.variables: typefile = 'mesoapi' 53 elif 'U' in nc.variables: typefile = 'meso' 54 elif 'HGT_M' in nc.variables: typefile = 'geo' 55 else: 56 print "typefile not supported." 57 print nc.variables 58 exit() 59 60 ############################################################## 61 ### Try to guess the projection from wrfout if not set by user 62 if typefile in ['mesoapi','meso','geo']: 63 if proj == None: proj = getproj(nc) 64 ### (il faudrait passer CEN_LON dans la projection ?) 65 elif typefile in ['gcm']: 66 if proj == None: proj = "cyl" 67 ## pb avec les autres (de trace derriere la sphere ?) 68 69 ############################################ 70 #### Choose underlying topography by default 71 if not back: 72 if not var: back = "mola" ## if no var: draw mola 73 elif typefile in ['mesoapi','meso','geo'] \ 74 and proj not in ['merc','lcc','nsper','laea']: back = "molabw" ## if var but meso: draw molabw 75 else: pass ## else: draw None 76 77 #################################################### 78 ### Get geographical coordinates and plot boundaries 79 if typefile in ['mesoapi','meso']: 80 [lon2d,lat2d] = getcoord2d(nc) 81 lon2d = dumpbdy(lon2d) 82 lat2d = dumpbdy(lat2d) 83 elif typefile in ['gcm']: 84 [lon2d,lat2d] = getcoord2d(nc,nlat="latitude",nlon="longitude",is1d=True) 85 elif typefile in ['geo']: 86 [lon2d,lat2d] = getcoord2d(nc,nlat='XLAT_M',nlon='XLONG_M') 47 48 ################################## 49 ### Initial checks and definitions 50 typefile = whatkindfile(nc) ## TYPEFILE 51 if var not in nc.variables: var = False ## VAR 52 if winds: [uchar,vchar,metwind] = getwinddef(nc) ## WINDS 53 if uchar == 'not found': winds = False 54 [lon2d,lat2d] = getcoorddef(nc) ## COORDINATES, could be moved below 55 if proj == None: proj = getproj(nc) ## PROJECTION 56 57 ########################## 58 ### Define plot boundaries 87 59 if proj == "npstere": [wlon,wlat] = latinterv("North_Pole") 88 60 elif proj in ["lcc","laea"]: [wlon,wlat] = wrfinterv(lon2d,lat2d) 89 61 else: [wlon,wlat] = simplinterv(lon2d,lat2d) 90 print wlon 91 print wlat 92 if zoom: 93 dlon = abs(wlon[1]-wlon[0])/2. 94 dlat = abs(wlat[1]-wlat[0])/2. 95 [wlon,wlat] = [ [wlon[0]+zoom*dlon/100.,wlon[1]-zoom*dlon/100.],\ 96 [wlat[0]+zoom*dlat/100.,wlat[1]-zoom*dlat/100.] ] 97 print "zoom %",zoom,wlon,wlat 98 99 ############################################################################## 100 ### Get winds and know if those are meteorological winds (ie. zon, mer) or not 101 if winds: 102 if typefile is 'mesoapi': 103 [u,v] = getwinds(nc) 104 metwind = True ## meteorological (zon/mer) 105 elif typefile is 'gcm': 106 [u,v] = getwinds(nc,charu='u',charv='v') 107 metwind = True ## meteorological (zon/mer) 108 elif typefile is 'meso': 109 [u,v] = getwinds(nc,charu='U',charv='V') 110 metwind = False ## geometrical (wrt grid) 111 print "Beware ! Not using meteorological winds. You trust numerical grid as being (x,y)." 112 elif typefile is 'geo': 113 winds = None 114 115 ##################################################### 116 ### Load the chosen variables, whether it is 2D or 3D 117 if var: 118 if var not in nc.variables: 119 print "not found in file:",var 120 exit() 121 else: 122 dimension = np.array(nc.variables[var]).ndim 123 if dimension == 2: field = nc.variables[var][:,:] 124 elif dimension == 3: field = nc.variables[var][:,:,:] 125 elif dimension == 4: field = nc.variables[var][:,nvert,:,:] 126 fieldcalc = field[ field < 9e+35 ] 127 dev = np.std(fieldcalc)*2.0 128 if vmin is None: zevmin = mean(fieldcalc) - dev 129 else: zevmin = vmin 130 if vmax is None: zevmax = mean(fieldcalc) + dev 131 else: zevmax = vmax 132 if vmin == vmax: 133 zevmin = mean(fieldcalc) - dev ### for continuity 134 zevmax = mean(fieldcalc) + dev ### for continuity 135 print "field ", min(fieldcalc), max(fieldcalc) 136 print "bounds ", zevmin, zevmax 137 ### some already defined colormaps 138 if colorb is True: colorb = defcolorb(var) 139 else: 140 dimension = 0 141 142 ########################### 143 ### Get length of time axis 144 if winds: nt = len(u[:,0,0,0]) 145 elif var: 146 if dimension == 2: nt = 1 147 else : nt = len(field[:,0,0]) 62 if zoom: [wlon,wlat] = zoomset(wlon,wlat,zoom) 148 63 149 64 ######################################### … … 152 67 elif var: basename = var 153 68 elif winds: basename = 'UV' 154 else: exit()155 ###156 if dimension == 4 or winds:157 if typefile is 'meso': stralt = "_lvl" + str(nvert)158 elif typefile is 'mesoapi':159 zelevel = int(nc.variables['vert'][nvert])160 if abs(zelevel) < 10000.: strheight=str(zelevel)+"m"161 else: strheight=str(int(zelevel/1000.))+"km"162 if 'altitude' in nc.dimensions: stralt = "_"+strheight+"-AMR"163 elif 'altitude_abg' in nc.dimensions: stralt = "_"+strheight+"-ALS"164 elif 'bottom_top' in nc.dimensions: stralt = "_"+strheight165 elif 'pressure' in nc.dimensions: stralt = "_"+str(zelevel)+"Pa"166 else: stralt = ""167 69 else: 168 stralt = ""169 ###170 basename = basename + stralt70 print nc.variables 71 errormess("please set at least winds or var") 72 basename = basename + getstralt(nc,nvert) ## can be moved elsewhere for a more generic routine 171 73 172 74 ################################## 173 75 ### Open a figure and set subplots 174 76 fig = figure() 175 rcParams['font.size'] = 12. 176 if typefile in ['geo']: numplot = 1 177 if numplot > 0: 178 if numplot == 4: 179 sub = 221 180 fig.subplots_adjust(wspace = 0.3, hspace = 0.3) 181 rcParams['font.size'] = int( rcParams['font.size'] * 2. / 3. ) 182 elif numplot == 2: 183 sub = 121 184 fig.subplots_adjust(wspace = 0.35) 185 rcParams['font.size'] = int( rcParams['font.size'] * 3. / 4. ) 186 elif numplot == 3: 187 sub = 131 188 fig.subplots_adjust(wspace = 0.5) 189 rcParams['font.size'] = int( rcParams['font.size'] * 1. / 2. ) 190 elif numplot == 6: 191 sub = 231 192 fig.subplots_adjust(wspace = 0.4, hspace = 0.0) 193 rcParams['font.size'] = int( rcParams['font.size'] * 1. / 2. ) 194 elif numplot == 8: 195 sub = 331 #241 196 fig.subplots_adjust(wspace = 0.3, hspace = 0.3) 197 rcParams['font.size'] = int( rcParams['font.size'] * 1. / 2. ) 198 elif numplot == 9: 199 sub = 331 200 fig.subplots_adjust(wspace = 0.3, hspace = 0.3) 201 rcParams['font.size'] = int( rcParams['font.size'] * 1. / 2. ) 202 elif numplot == 1: 203 sub = 99999 204 else: 205 print "supported: 1,2,3,4,6,8,9" 206 exit() 207 ### Prepare time loop 208 if nt <= numplot or numplot == 1: 209 tabrange = [0] 210 numplot = 1 211 else: 212 tabrange = range(0,nt,int(nt/numplot)) #nt-1 213 tabrange = tabrange[0:numplot] 214 else: 215 tabrange = range(0,nt,1) 216 sub = 99999 217 print tabrange 218 77 sub = definesubplot( numplot, fig ) 78 219 79 ################################# 220 80 ### Time loop for plotting device 221 81 found_lct = False 222 for i in tabrange: 82 itime = 0 ## could be an argument 83 nplot = 1 84 error = False 85 if itstep is None: itstep = int(24./numplot) 86 while error is False: 223 87 224 88 ### Which local time ? 225 ltst = ( interv[0] + 0.5*(wlon[0]+wlon[1])/15.) + i*interv[1] 89 print interv[0], interv[1], itime 90 ltst = ( interv[0] + 0.5*(wlon[0]+wlon[1])/15.) + itime*interv[1] 226 91 ltst = int (ltst * 10) / 10. 227 92 ltst = ltst % 24 228 93 229 94 ### General plot settings 230 if numplot > 1: 231 subplot(sub) 95 #print itime, int(ltst), numplot, nplot 96 if numplot >= 1: 97 if nplot > numplot: break 98 if numplot > 1: 99 if typefile not in ['geo']: subplot(sub+nplot-1) 100 232 101 found_lct = True 233 elif numplot == 1: 234 found_lct = True 235 ### If only one local time is requested (numplot < 0) 102 ### If only one local time is requested (numplot < 0) 236 103 elif numplot <= 0: 237 if int(ltst) + numplot != 0: continue 238 else: found_lct = True 104 if int(ltst) + numplot != 0: 105 itime += 1 106 if found_lct is True: break ## because it means LT was found at previous iteration 107 else: continue ## continue to iterate to find the correct LT 108 else: 109 found_lct = True 239 110 240 111 ### Map projection … … 244 115 #### Contour plot 245 116 if var: 246 if typefile in ['mesoapi','meso']: what_I_plot = dumpbdy(field[i,:,:]) 247 elif typefile in ['geo']: what_I_plot = field[0,:,:] 248 elif typefile in ['gcm']: 249 if dimension == 2: what_I_plot = field[:,:] 250 elif dimension == 3: what_I_plot = field[i,:,:] 251 palette = get_cmap(name=colorb) 252 #palette.set_over('b', 1.0) 253 #print np.array(x).shape 254 #print np.array(y).shape 255 #print np.array(what_I_plot).shape 256 if not tile: 257 zelevels = np.linspace(zevmin,zevmax) 258 hole = True 259 if not hole: 260 what_I_plot[ what_I_plot < zevmin ] = zevmin*(1. + 1.e-7) 261 what_I_plot[ what_I_plot > 9e+35 ] = -9e+35 262 what_I_plot[ what_I_plot > zevmax ] = zevmax*(1. - 1.e-7) 263 contourf( x, y, what_I_plot, 10, cmap = palette, levels = zelevels ) 264 else: 265 pcolor( x, y, what_I_plot, cmap = palette, vmin=zevmin, vmax=zevmax ) 266 #putpoints(m,fig) 267 if var in ['HGT']: pass 268 elif colorb: 269 ndiv = 10 270 colorbar(fraction=0.05,pad=0.1,format=fmtvar(var),\ 271 ticks=np.linspace(zevmin,zevmax,ndiv+1),\ 272 extend='max',spacing='proportional') 273 # both min max neither 117 what_I_plot, error = reducefield( getfield(nc,var), d4=itime, d3=nvert ) 118 if not error: 119 if typefile in ['mesoapi','meso']: what_I_plot = dumpbdy(what_I_plot) 120 zevmin, zevmax = calculate_bounds(what_I_plot,vmin=vmin,vmax=vmax) 121 if colorb is True: colorb = defcolorb(var) 122 palette = get_cmap(name=colorb) 123 if not tile: 124 hole = True 125 hole = None 126 if not hole: what_I_plot = bounds(what_I_plot,zevmin,zevmax) 127 zelevels = np.linspace(zevmin,zevmax) 128 contourf( x, y, what_I_plot, zelevels, cmap = palette ) 129 else: 130 pcolor( x, y, what_I_plot, cmap = palette, vmin=zevmin, vmax=zevmax ) 131 #putpoints(m,fig) 132 if var in ['HGT']: pass 133 elif colorb: 134 ndiv = 10 135 colorbar(fraction=0.05,pad=0.1,format=fmtvar(var),\ 136 ticks=np.linspace(zevmin,zevmax,ndiv+1),\ 137 extend='max',spacing='proportional') 138 # both min max neither 139 274 140 ### Vector plot 275 141 if winds: 276 if typefile in ['mesoapi','meso']: 277 [vecx,vecy] = [dumpbdy(u[i,nvert,:,:]), dumpbdy(v[i,nvert,:,:])] 278 key = True 279 elif typefile in ['gcm']: 280 [vecx,vecy] = [ u[i,nvert,:,:] , v[i,nvert,:,:] ] 281 key = False 282 if metwind: [vecx,vecy] = m.rotate_vector(vecx, vecy, lon2d, lat2d) 283 if var == None: colorvec = definecolorvec(back) 284 else: colorvec = definecolorvec(colorb) 285 vectorfield(vecx, vecy,\ 286 x, y, stride=stride, csmooth=2,\ 287 scale=15., factor=300., color=colorvec, key=key) 288 #200. ## or csmooth=stride 289 142 vecx, error = reducefield( getfield(nc,uchar), d4=itime, d3=nvert ) 143 vecy, error = reducefield( getfield(nc,vchar), d4=itime, d3=nvert ) 144 if not error: 145 if typefile in ['mesoapi','meso']: 146 [vecx,vecy] = [dumpbdy(vecx,stag=uchar), dumpbdy(vecy,stag=vchar)] 147 key = True 148 elif typefile in ['gcm']: 149 key = False 150 if metwind: [vecx,vecy] = m.rotate_vector(vecx, vecy, lon2d, lat2d) 151 if var == False: colorvec = definecolorvec(back) 152 else: colorvec = definecolorvec(colorb) 153 vectorfield(vecx, vecy,\ 154 x, y, stride=stride, csmooth=2,\ 155 scale=15., factor=300., color=colorvec, key=key) 156 #200. ## or csmooth=stride 157 290 158 ### Next subplot 291 159 plottitle = basename 292 160 if typefile in ['mesoapi','meso']: 293 if addchar: plottitle = plottitle + addchar + "_LT"+str(ltst)294 else: plottitle = plottitle + "_LT"+str(ltst)161 if addchar: plottitle = plottitle + addchar + "_LT"+str(ltst) 162 else: plottitle = plottitle + "_LT"+str(ltst) 295 163 ptitle( plottitle ) 296 sub += 1 164 itime += itstep 165 nplot += 1 297 166 298 167 ########################################################################## … … 309 178 else: zeplot = target + "/" + zeplot 310 179 ### 311 if found_lct: makeplotpng(zeplot,pad_inches_value=0.35 )180 if found_lct: makeplotpng(zeplot,pad_inches_value=0.35,disp=display) 312 181 else: print "Local time not found" 313 182 … … 315 184 ### Now the end 316 185 return zeplot 186 187 ############################## 188 ### A specific stuff for below 189 def adjust_length (tab, zelen): 190 from numpy import ones 191 if tab is None: 192 outtab = ones(zelen) * -999999 193 else: 194 print zelen, len(tab) 195 if zelen != len(tab): 196 print "not enough or too much values... setting same values all variables" 197 outtab = ones(zelen) * tab[0] 198 else: 199 outtab = tab 200 return outtab 317 201 318 202 ########################################################################################### … … 325 209 from netCDF4 import Dataset 326 210 from myplot import getlschar 327 from numpy import ones328 211 329 212 ############################# 330 213 ### Get options and variables 331 214 parser = OptionParser() 332 parser.add_option('-f', action='append', dest='namefile', type="string", default=None, help='[NEEDED] name of WRF file (append)') 333 parser.add_option('-l', action='store', dest='nvert', type="float", default=0, help='vertical level (def=0)(-i 2: p,mbar)(-i 3,4: z,km)') 334 parser.add_option('-p', action='store', dest='proj', type="string", default=None, help='projection') 335 parser.add_option('-b', action='store', dest='back', type="string", default=None, help='background') 336 parser.add_option('-t', action='store', dest='target', type="string", default=None, help='destination folder') 337 parser.add_option('-s', action='store', dest='stride', type="int", default=3, help='stride vectors (def=3)') 338 parser.add_option('-v', action='append', dest='var', type="string", default=None, help='variable contoured (append)') 339 parser.add_option('-n', action='store', dest='numplot', type="int", default=2, help='number of plots (def=1)(<0: 1 plot of LT -*numplot*)') 340 parser.add_option('-i', action='store', dest='interp', type="int", default=None, help='interpolation method (2: press, 3: z-amr, 4:z-als)') 341 parser.add_option('-c', action='store', dest='colorb', type="string", default=True, help='change colormap') 342 parser.add_option('-x', action='store_false', dest='winds', default=True, help='no wind vectors') 343 parser.add_option('-m', action='append', dest='vmin', type="float", default=None, help='bounding minimum value (append)') 344 parser.add_option('-M', action='append', dest='vmax', type="float", default=None, help='bounding maximum value (append)') 345 parser.add_option('-T', action='store_true', dest='tile', default=False, help='draw a tiled plot (no blank zone)') 346 parser.add_option('-z', action='store', dest='zoom', type="float", default=None, help='zoom factor in %') 347 parser.add_option('-N', action='store_true', dest='nocall', default=False, help='do not recreate api file') 215 parser.add_option('-f', action='append',dest='namefile', type="string", default=None, help='[NEEDED] name of WRF file (append)') 216 parser.add_option('-l', action='store',dest='nvert', type="float", default=0, help='vertical level (def=0)(-i 2: p,mbar)(-i 3,4: z,km)') 217 parser.add_option('-p', action='store',dest='proj', type="string", default=None, help='projection') 218 parser.add_option('-b', action='store',dest='back', type="string", default=None, help='background image (def: None)') 219 parser.add_option('-t', action='store',dest='target', type="string", default=None, help='destination folder') 220 parser.add_option('-s', action='store',dest='stride', type="int", default=3, help='stride vectors (def=3)') 221 parser.add_option('-v', action='append',dest='var', type="string", default=None, help='variable contoured (append)') 222 parser.add_option('-n', action='store',dest='numplot', type="int", default=2, help='number of plots (def=1)(<0: 1 plot of LT -*numplot*)') 223 parser.add_option('-i', action='store',dest='interp', type="int", default=None, help='interpolation method (2: press, 3: z-amr, 4:z-als)') 224 parser.add_option('-c', action='store',dest='colorb', type="string", default=True, help='change colormap') 225 parser.add_option('-x', action='store_false',dest='winds', default=True, help='no wind vectors') 226 parser.add_option('-m', action='append',dest='vmin', type="float", default=None, help='bounding minimum value (append)') 227 parser.add_option('-M', action='append',dest='vmax', type="float", default=None, help='bounding maximum value (append)') 228 parser.add_option('-T', action='store_true',dest='tile', default=False, help='draw a tiled plot (no blank zone)') 229 parser.add_option('-z', action='store',dest='zoom', type="float", default=None, help='zoom factor in %') 230 parser.add_option('-N', action='store_true',dest='nocall', default=False, help='do not recreate api file') 231 parser.add_option('-d', action='store_false',dest='display', default=True, help='do not pop up created images') 232 parser.add_option('-e', action='store',dest='itstep', type="int", default=None, help='stride time (def=4)') 348 233 #parser.add_option('-V', action='store', dest='comb', type="float", default=None, help='a defined combination of variables') 349 234 (opt,args) = parser.parse_args() … … 352 237 exit() 353 238 print "Options:", opt 354 239 240 listvar = '' 355 241 if opt.var is None: 356 pass242 zerange = [-999999] 357 243 else: 358 listvar = ''359 244 zelen = len(opt.var) 360 if zelen == 1: listvar = opt.var[0] + ',' 361 else : 362 for jjj in range(zelen): listvar += opt.var[jjj] + ',' 245 zerange = range(zelen) 246 #if zelen == 1: listvar = opt.var[0] + ',' 247 #else : 248 for jjj in zerange: listvar += opt.var[jjj] + ',' 363 249 listvar = listvar[0:len(listvar)-1] 364 if opt.vmin: 365 if zelen != len(opt.vmin): 366 print "not enough or too much vmin values... setting same values all variables" 367 vmintab = ones(zelen) * opt.vmin[0] 368 else: 369 vmintab = opt.vmin 370 else: 371 vmintab = None 372 if opt.vmax: 373 if zelen != len(opt.vmax): 374 print "not enough or too much vmax values... setting same values all variables" 375 vmaxtab = ones(zelen) * opt.vmax[0] 376 else: 377 vmaxtab = opt.vmax 378 else: 379 vmaxtab = None 250 vmintab = adjust_length (opt.vmin, zelen) 251 vmaxtab = adjust_length (opt.vmax, zelen) 380 252 381 253 for i in range(len(opt.namefile)): … … 395 267 else : zefields = '' 396 268 ### var or no var 397 if opt.var is None : pass398 elif zefields == '': zefields = listvar269 #if opt.var is None : pass 270 if zefields == '' : zefields = listvar 399 271 else : zefields = zefields + "," + listvar 400 272 print zefields … … 409 281 zelevel = 0 ## so that zelevel could play again the role of nvert 410 282 411 if opt.var is None: 283 if opt.var is None: zerange = [-999999] 284 else: zerange = range(zelen) 285 for jjj in zerange: 286 if jjj == -999999: 287 argvar = None 288 argvmin = None 289 argvmax = None 290 else: 291 argvar = opt.var[jjj] 292 if vmintab[jjj] != -999999: argvmin = vmintab[jjj] 293 else: argvmin = None 294 if vmaxtab[jjj] != -999999: argvmax = vmaxtab[jjj] 295 else: argvmax = None 412 296 ############# 413 297 ### Main call 414 298 name = winds (zefile,int(zelevel),\ 415 proj=opt.proj,back=opt.back,target=opt.target,stride=opt.stride,var=opt.var,numplot=opt.numplot,colorb=opt.colorb,winds=opt.winds,\ 416 addchar=lschar,interv=[zehour,zehourin],vmin=opt.vmin,vmax=opt.vmax,tile=opt.tile,zoom=opt.zoom) 299 proj=opt.proj,back=opt.back,target=opt.target,stride=opt.stride,var=argvar,\ 300 numplot=opt.numplot,colorb=opt.colorb,winds=opt.winds,\ 301 addchar=lschar,interv=[zehour,zehourin],vmin=argvmin,vmax=argvmax,\ 302 tile=opt.tile,zoom=opt.zoom,display=opt.display,\ 303 itstep=opt.itstep) 417 304 print 'Done: '+name 418 else:419 for jjj in range(len(opt.var)):420 if vmintab: argvmin = vmintab[jjj]421 else: argvmin = None422 if vmaxtab: argvmax = vmaxtab[jjj]423 else: argvmax = None424 #############425 ### Main call426 name = winds (zefile,int(zelevel),\427 proj=opt.proj,back=opt.back,target=opt.target,stride=opt.stride,var=opt.var[jjj],numplot=opt.numplot,colorb=opt.colorb,winds=opt.winds,\428 addchar=lschar,interv=[zehour,zehourin],vmin=argvmin,vmax=argvmax,tile=opt.tile,zoom=opt.zoom)429 print 'Done: '+name430 305 431 306 #########################################################
Note: See TracChangeset
for help on using the changeset viewer.