NCCOOS Trac Projects: Top | Web | Platforms | Processing | Viz | Sprints | Sandbox | (Wind)

Changeset 65

Show
Ignore:
Timestamp:
01/20/11 17:53:35
Author:
cbc
Message:

Fix Mean Wind Direction.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • sodarplot/trunk/sodarplot/scintec/meanspeed.py

    r64 r65  
    6666  
    6767    nc = pycdf.CDF(ncFile)  
    68   
     68 
    6969    t = nc.var('time')[:]  
    7070    z = nc.var('z')[:]  
     
    7777    mw = np.ma.masked_invalid(w)  
    7878  
    79     umean = mu.mean(axis=0).data  
    80     vmean = mv.mean(axis=0).data  
    81     wmean = mw.mean(axis=0).data  
    82   
    83     ustd = mu.std(axis=0).data  
    84     vstd = mv.std(axis=0).data  
    85     wstd = mw.std(axis=0).data  
     79    mumean = mu.mean(axis=0) 
     80    mvmean = mv.mean(axis=0) 
     81    mwmean = mw.mean(axis=0) 
     82  
     83    mustd = mu.std(axis=0)  
     84    mvstd = mv.std(axis=0)  
     85    mwstd = mw.std(axis=0)  
    8686  
    8787    ucount = mu.count(axis=0)  
     
    9090 
    9191    mrho = np.sqrt((mu**2) + (mv**2)) 
    92     mtheta = 360 * ((np.arctan(mv/mu))/np.pi)  
    93   
    94     rhomean = mrho.mean(axis=0).data 
    95     thetamean = mtheta.mean(axis=0).data 
    96  
    97     rhostd = mrho.std(axis=0).data 
    98     thetastd = mtheta.std(axis=0).data 
     92    mrhomean = mrho.mean(axis=0) 
     93    mrhostd = mrho.std(axis=0) 
     94 
     95    mthetamean = (180 * np.arctan2(mv.mean(axis=0), mu.mean(axis=0))/np.pi) 
     96    thetamean = np.piecewise(mthetamean, 
     97                             (mthetamean <= 90, mthetamean > 90), 
     98                             (lambda x: 90 - x, lambda x: 450 - x)) 
    9999 
    100100    fig = figure()  
     
    109109    ylim(0,200) 
    110110    xticks(fontsize=spt.get_fontsize()*0.6) 
    111     plot(umean,z,label=r'$\bar{u}$')  
    112     plot(vmean,z,label=r'$\bar{v}$')  
    113     plot(wmean,z,label=r'$\bar{w}$') 
     111    plot(mumean.data,z,label=r'$\bar{u}$')  
     112    plot(mvmean.data,z,label=r'$\bar{v}$')  
     113    plot(mwmean.data,z,label=r'$\bar{w}$') 
    114114    legend(loc='best',prop={'size':spt.get_fontsize()*0.6}) 
    115115    grid(True) 
     
    134134    xticks(fontsize=spt.get_fontsize()*0.6) 
    135135    yticks([])  
    136     plot(rhomean,z,label=r'$\bar{\rho}$') 
     136    plot(mrhomean.data,z,label=r'$\bar{\rho}$') 
    137137    legend(loc='best',prop={'size':spt.get_fontsize()*0.6}) 
    138138    grid(True) 
     
    140140    subplot(2,4,4) 
    141141    title('Mean Wind Direction (Polar)',fontsize=spt.get_fontsize()*0.5)  
    142     xlabel('Direction (Degrees from North)',fontsize=spt.get_fontsize()*0.6) 
    143     xlim(-180,180) 
    144     ylim(0,200)  
    145     xticks(range(-180,181,90),fontsize=spt.get_fontsize()*0.6) 
     142    xlabel('Direction (Wind Towards)',fontsize=spt.get_fontsize()*0.6) 
     143    xlim(0,360) 
     144    ylim(0,200)  
     145    xticks(range(0,361,90),['N','E','S','W','N',], 
     146           fontsize=spt.get_fontsize()*0.6) 
    146147    yticks([])  
    147148    plot(thetamean,z,label=r'$\bar{\theta}$') 
     
    156157    ylim(0,200) 
    157158    xticks(fontsize=spt.get_fontsize()*0.6) 
    158     plot(ustd,z,label=r'$\sigma_u$')  
    159     plot(vstd,z,label=r'$\sigma_v$')  
    160     plot(wstd,z,label=r'$\sigma_w$') 
     159    plot(mustd.data,z,label=r'$\sigma_u$')  
     160    plot(mvstd.data,z,label=r'$\sigma_v$')  
     161    plot(mwstd.data,z,label=r'$\sigma_w$') 
    161162    legend(loc='best',prop={'size':spt.get_fontsize()*0.6}) 
    162163    grid(True) 
     
    181182    xticks(fontsize=spt.get_fontsize()*0.6) 
    182183    yticks([])  
    183     plot(rhostd,z,label=r'$\sigma_\rho$') 
    184     legend(loc='best',prop={'size':spt.get_fontsize()*0.6}) 
    185     grid(True) 
    186  
    187     subplot(2,4,8) 
    188     title('Wind Direction Std Dev (Polar)',fontsize=spt.get_fontsize()*0.5)  
    189     xlabel('Std Dev (Degrees)',fontsize=spt.get_fontsize()*0.6) 
    190     xlim(0,360) 
    191     ylim(0,200)  
    192     xticks(range(0,361,90),fontsize=spt.get_fontsize()*0.6) 
    193     yticks([])  
    194     plot(thetastd,z,label=r'$\sigma_\theta$') 
    195     legend(loc='best',prop={'size':spt.get_fontsize()*0.6}) 
    196     grid(True) 
    197   
     184    plot(mrhostd.data,z,label=r'$\sigma_\rho$') 
     185    legend(loc='best',prop={'size':spt.get_fontsize()*0.6}) 
     186    grid(True) 
     187 
    198188    outFile = os.path.join(pngDir,ncFileName + os.extsep + pngExt)  
    199189    print 'Saving', outFile