Changeset 418


Ignore:
Timestamp:
Nov 23, 2011, 4:39:01 PM (13 years ago)
Author:
acolaitis
Message:

PYTHON. Moved the nolow mode to an option (--nolow) and re-arranged the way -H worked in planetoplot, by introducing a new function (hole_bounds). Bounds is called in normal cases and hole_bounds in -H cases. Minor corrections in mcs.py for missing values comming from zrecast.

Location:
trunk/UTIL/PYTHON
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/UTIL/PYTHON/mcs.py

    r417 r418  
    6060                    fields  = varznames, \
    6161                    predifined = 'mcs')[0]
    62 
     62   else:filename=opt.file
    6363   # Files
    6464
     
    122122   for zn in varznames:
    123123       load=getfield(nc,zn)
    124        if opt.zrecast:
    125           load=np.ma.masked_where(load < -1.e-30,load)
    126           load.set_fill_value([np.NaN])
    127           load=load.filled()
     124       load=np.ma.masked_where(load < -1.e-20,load)
     125       load.set_fill_value([np.NaN])
     126       load=load.filled()
     127       load=np.ma.masked_invalid(load)
     128       load.set_fill_value([np.NaN])
     129       load=load.filled()
    128130       varz.append(load)
     131       load=0.
    129132       print "Found: "+zn+" with dimensions: "
    130133       print np.array(varz[n]).shape
     
    193196              varchk[vv,:,:,:,:]=variable[istart:istop+1,:,:,:]
    194197           vv=vv+1
     198       varchk=np.ma.masked_invalid(varchk)
     199       varchk.set_fill_value([np.NaN])
    195200       varchktime=time[istart:istop+1]
    196201       ndays=np.floor(varchktime[len(varchktime)-1])-np.floor(varchktime[0])
     
    199204       ntmichk=ntimemin[i,:,:]
    200205       ntmachk=ntimemax[i,:,:]
    201        dtmichk.set_fill_value(np.NaN)
    202        dtmachk.set_fill_value(np.NaN)
    203        ntmichk.set_fill_value(np.NaN)
    204        ntmachk.set_fill_value(np.NaN)
     206       dtmichk.set_fill_value([np.NaN])
     207       dtmachk.set_fill_value([np.NaN])
     208       ntmichk.set_fill_value([np.NaN])
     209       ntmachk.set_fill_value([np.NaN])
    205210       dtmichk=dtmichk.filled()
    206211       dtmachk=dtmachk.filled()
     
    215220       vartmpnight=np.zeros([nzvar,ndays,nz,ny,nx])
    216221       vartmpday=np.zeros([nzvar,ndays,nz,ny,nx])
     222       vartmpnight=np.ma.masked_invalid(vartmpnight)
     223       vartmpday=np.ma.masked_invalid(vartmpday)
     224       vartmpnight.set_fill_value([np.NaN])
     225       vartmpday.set_fill_value([np.NaN])
     226
    217227       nd=0
    218228       print "     .time indices MCS grid -> diagfi grid."
     
    239249                       vartmpday[vv,nd,:,iy,ix]=np.NaN
    240250                   elif nitdtmichk > nitdtmachk:
    241                        vartmpday[vv,nd,:,iy,ix]=(np.mean(varchk[vv,daystart+nitdtmichk:daystop+1,:,iy,ix],axis=0)+np.mean(varchk[vv,daystart:daystart+nitdtmachk+1,:,iy,ix],axis=0))/2.
     251                       vartmpday[vv,nd,:,iy,ix]=(np.ma.mean(varchk[vv,daystart+nitdtmichk:daystop+1,:,iy,ix],axis=0)+np.ma.mean(varchk[vv,daystart:daystart+nitdtmachk+1,:,iy,ix],axis=0))/2.
    242252                   else:
    243                        vartmpday[vv,nd,:,iy,ix]=np.mean(varchk[vv,daystart+nitdtmichk:daystart+nitdtmachk+1,:,iy,ix],axis=0)
     253                       vartmpday[vv,nd,:,iy,ix]=np.ma.mean(varchk[vv,daystart+nitdtmichk:daystart+nitdtmachk+1,:,iy,ix],axis=0)
    244254                   if ((nitntmichk is np.NaN) or (nitntmachk is np.NaN)):
    245255                       vartmpnight[vv,nd,:,iy,ix]=np.NaN
    246256                   elif nitntmichk > nitntmachk:
    247                        vartmpnight[vv,nd,:,iy,ix]=(np.mean(varchk[vv,daystart+nitntmichk:daystop+1,:,iy,ix],axis=0)+np.mean(varchk[vv,daystart:daystart+nitntmachk+1,:,iy,ix],axis=0))/2.
     257                       vartmpnight[vv,nd,:,iy,ix]=(np.ma.mean(varchk[vv,daystart+nitntmichk:daystop+1,:,iy,ix],axis=0)+np.ma.mean(varchk[vv,daystart:daystart+nitntmachk+1,:,iy,ix],axis=0))/2.
    248258                   else:                                                           
    249                        vartmpnight[vv,nd,:,iy,ix]=np.mean(varchk[vv,daystart+nitntmichk:daystart+nitntmachk+1,:,iy,ix],axis=0)
     259                       vartmpnight[vv,nd,:,iy,ix]=np.ma.mean(varchk[vv,daystart+nitntmichk:daystart+nitntmachk+1,:,iy,ix],axis=0)
    250260                iy=iy+1
    251261             ix=ix+1
     
    256266       vartmpdaymasked=np.ma.masked_invalid(vartmpday)
    257267       vartmpnightmasked=np.ma.masked_invalid(vartmpnight)
     268       vartmpdaymasked.set_fill_value([np.NaN])
     269       vartmpnightmasked.set_fill_value([np.NaN])
    258270       for vv in np.arange(nzvar):
    259271          vardayout[vv,i,:,:,:]=np.ma.mean(vartmpdaymasked[vv,:,:,:,:],axis=0)
  • trunk/UTIL/PYTHON/myplot.py

    r409 r418  
    651651    return what_I_plot
    652652
     653
     654## Author : AC
     655def hole_bounds(what_I_plot,zevmin,zevmax):
     656    import numpy as np
     657    zi=0
     658    for i in what_I_plot:
     659        zj=0
     660        for j in i:
     661            if ((j < zevmin) or (j > zevmax)):what_I_plot[zi,zj]=np.NaN
     662            zj=zj+1
     663        zi=zi+1
     664
     665    return what_I_plot
     666
    653667## Author: AS
    654668def zoomset (wlon,wlat,zoom):
  • trunk/UTIL/PYTHON/myscript.py

    r409 r418  
    1616    parser.add_option('-M', '--max',    action='append',dest='vmax',     type="float",   default=None,  help='bounding maximum value (append)')
    1717    parser.add_option('-H', '--hole',   action='store_true',dest='hole',                 default=False, help='holes above max and below min')
     18    parser.add_option('--nolow',        action='store_true',dest='nolow',                default=False, help='plot only minima and maxima [false]')
    1819
    1920    ### VERTICAL INTERPOLATION
  • trunk/UTIL/PYTHON/planetoplot.py

    r407 r418  
    5252           yintegral=False,\
    5353           blat=None,\
    54            tsat=False):
     54           tsat=False,\
     55           nolow=False):
    5556
    5657
     
    6465                       fmtvar,definecolorvec,defcolorb,getprefix,putpoints,calculate_bounds,errormess,definesubplot,\
    6566                       zoomset,getcoorddef,getwinddef,whatkindfile,reducefield,bounds,getstralt,getfield,smooth,nolow,\
    66                        getname,localtime,polarinterv,getsindex,define_axis,determineplot,readslices,bidimfind,getlschar
     67                       getname,localtime,polarinterv,getsindex,define_axis,determineplot,readslices,bidimfind,getlschar,hole_bounds
    6768    from mymath import deg,max,min,mean,get_tsat,writeascii
    6869    import matplotlib as mpl
     
    323324               ##### 2D field
    324325               if len(what_I_plot.shape) is 2:
     326                 if hole: what_I_plot = hole_bounds(what_I_plot,zevmin,zevmax)
     327                 else: what_I_plot = bounds(what_I_plot,zevmin,zevmax)
     328                 if nolow:  what_I_plot = nolow(what_I_plot)
    325329                 if not tile:
    326                      if not hole: what_I_plot = bounds(what_I_plot,zevmin,zevmax)
    327330                     #zelevels = np.linspace(zevmin*(1. + 1.e-7),zevmax*(1. - 1.e-7)) #,num=20)
    328331                     zelevels = np.linspace(zevmin,zevmax,num=ticks)
     
    330333                     elif mapmode == 0:     contourf( x, y, what_I_plot, zelevels, cmap = palette)
    331334                 else:
    332                      if hole:  what_I_plot = nolow(what_I_plot)
    333335                     if mapmode == 1:       m.pcolor( x, y, what_I_plot, cmap = palette, vmin=zevmin, vmax=zevmax )
    334336                     elif mapmode == 0:     pcolor( x, y, what_I_plot, cmap = palette, vmin=zevmin, vmax=zevmax )
  • trunk/UTIL/PYTHON/pp.py

    r409 r418  
    135135                ope=opt.operat,fileref=reffile,minop=opt.vminope,maxop=opt.vmaxope,titleref=opt.titref,\
    136136                invert_y=opt.inverty,xaxis=zexaxis,yaxis=zeyaxis,ylog=opt.logy,yintegral=opt.column,\
    137                 blat=opt.blat,tsat=opt.tsat)
     137                blat=opt.blat,tsat=opt.tsat,nolow=opt.nolow)
    138138        print 'DONE: '+name
    139139        system("rm -f to_be_erased")
Note: See TracChangeset for help on using the changeset viewer.