SWN_tave = np.mean(SWN, axis=0)

xx, yy = np.meshgrid(x, y)
times = np.arange(t2D[0], t2D[-1])
db = 1
#AVERAGING PERIOD IN DAYS
nave = 5

#PW_t = PW_tave[t,:,:]
#PW_t = np.mean(PW_tave[t-nave:t,:,:], axis=0)
#QNTOA_t = QNTOA_tave[t,:,:]
#QNTOA_t = np.mean(QNTOA_tave[t-nave:t,:,:], axis=0)
#QN_t = np.mean(QN_tave[t-nave:t,:,:], axis=0)

PW_blocked = blockave2D(PW_tave, db)
QNTOA_blocked = blockave2D(QNTOA_tave, db)
SWN_blocked = blockave2D(SWN_tave, db)
QN_blocked = blockave2D(QN_tave, db)

PWxy_sorted = blockxysort2D(PW_tave, xx, yy, db)
#fieldxy_sorted = blockxysort2D(field_t, xx, yy, db)

PWsort = PWxy_sorted.keys()
PWxycoords = PWxy_sorted.values()
#fieldsort = fieldxy_sorted.keys()
#fieldxycoords = fieldxy_sorted.values()

mcenter = PWxycoords[-1]

d = raddist(xx, yy, mcenter)
Beispiel #2
0
    #Wvertbar = np.mean(np.mean(W, axis=0),axis=0)
    #Wblock = blockave2D(Wvertbar, db)

    #W500 = varis2D['W500'][t-aveperiod:t,:,:]
    #W500_tave = np.mean(W500, axis=0)
    #W500_block = blockave2D(W500_tave, db)

    #nt3D = t3D.size
    #nz = z.size
    nx = x.size
    ny = y.size
    t3D = varis3D['time'][:]
    nt3D = t3D.size
    vari = varis2D[varname]
    field = np.mean(vari[t - aveperiod:t, :, :], axis=0)
    field = blockave2D(field, db)
    nxprime = nx / db
    nyprime = ny / db

    field = field.flatten()
    #W500_flat = W500_block.flatten()
    W_flat = Wblock.flatten()
    nbins = 100
    #counts, bin_edges = np.histogram(W500_flat, bins=50)
    #PWsum, bin_edges = np.histogram(W500_flat, bins=50, weights=field)
    counts, bin_edges = np.histogram(W_flat, bins=nbins)
    PWsum, bin_edges = np.histogram(W_flat, bins=nbins, weights=field)
    bin_c = (bin_edges[1:] + bin_edges[:-1]) / 2
    PWbar = PWsum / counts

    plt.figure(1)
 aveperiod = 24*nave
 aveperiod3D = 4*nave
 nc_data2D = Dataset(nc_in2D)
 nc_data3D = Dataset(nc_in3D)
 #varis3D = nc_data3D.variables
 varis2D = nc_data2D.variables
 varis3D = nc_data3D.variables
 x = varis2D['x'][:]
 y = varis2D['y'][:]
 #z = varis3D['z'][:]
 #p = varis3D['p'][:]
 #p = p*1e2
 W = varis3D['W'][t-aveperiod3D:t,:,:,:]
 
 Wvertbar = np.mean(np.mean(W, axis=0),axis=0)
 Wblock = blockave2D(Wvertbar, db)
 #W_c=0.5
 Wconvblock = Wblock[Wblock > W_c]
 Wdryblock = Wblock[Wblock < W_c]
 
 #W500 = varis2D['W500'][t-aveperiod:t,:,:]
 #W500_tave = np.mean(W500, axis=0)
 #W500_block = blockave2D(W500_tave, db)
 
 #nt3D = t3D.size
 #nz = z.size
 nx = x.size
 ny = y.size
 t3D = varis3D['time'][:]
 nt3D = t3D.size
 vari = varis2D[varname]
aveperiod2D = nave * ntave2D
aveperiod3D = nave * ntave3D

PW = varis2D['PW'][t - aveperiod2D:t, :, :]

W = varis3D['W'][t - aveperiod3D:t, :, :, :]

W_tave = np.mean(W, axis=0)
W_ztave = np.mean(W_tave, axis=0)

PW_tave = np.mean(PW, axis=0)

db = 1
dbw = 2

W_ztave = blockave2D(W_ztave, dbw)

PW_blocked = blockave2D(PW_tave, db)

PWxy_sorted = blockxysort2D(PW_tave, xx, yy, db)
#fieldxy_sorted = blockxysort2D(field_t, xx, yy, db)

PWsort = PWxy_sorted.keys()
PWxycoords = PWxy_sorted.values()
#fieldsort = fieldxy_sorted.keys()
#fieldxycoords = fieldxy_sorted.values()

mcenter = PWxycoords[-1]

d = raddist(xx, yy, mcenter)
Beispiel #5
0
        #Pfield_t = P2D[k2,:,:]
        #wfield_t = wfield[k,:,:,:]
        w = varis3D['W'][k,:,:,:]
        T = varis3D['TABS'][k,:,:,:]
        QV = varis3D['QV'][k,:,:,:]
        QV = QV*1e-3
        nt = T.shape[0]
        p3D = np.zeros((ny, nx, nz))
        p3D[:,:,:] = p
        p3D = p3D.T
        rho = p3D/(T*c.Rd)
        massflux = np.multiply(w, rho)
        massflux_blockave = blockave3D(massflux, db)
        wfield_blockave = blockave3D(w, db)
        QV_blockave = blockave3D(QV, db)
        P_blockave = blockave2D(P[k2,:,:], db)
        #P_blockave = blockave2D(Pfield_t, db)
        massflux_BLave = np.mean(massflux_blockave[:BLi,:,:], axis=0) 
        QV_BLave = np.mean(QV_blockave[:BLi,:,:], axis=0)
        w_BLave = np.mean(wfield_blockave[:BLi,:,:], axis=0)
        
        convBL_points = w_BLave > W_c
        
        massflux_convave = np.mean(massflux_BLave[convBL_points])
        QV_convave = np.mean(QV_BLave[convBL_points])
        P_convave = np.mean(P_blockave[convBL_points])

        qvflux[k] = massflux_convave*QV_convave
        mflux[k] = massflux_convave
        qvBL[k] = QV_convave
        Pconv[k] = P_convave
Beispiel #6
0
        #Pfield_t = P2D[k2,:,:]
        #wfield_t = wfield[k,:,:,:]
        w = varis3D['W'][k, :, :, :]
        T = varis3D['TABS'][k, :, :, :]
        QV = varis3D['QV'][k, :, :, :]
        QV = QV * 1e-3
        nt = T.shape[0]
        p3D = np.zeros((ny, nx, nz))
        p3D[:, :, :] = p
        p3D = p3D.T
        rho = p3D / (T * c.Rd)
        massflux = np.multiply(w, rho)
        massflux_blockave = blockave3D(massflux, db)
        wfield_blockave = blockave3D(w, db)
        QV_blockave = blockave3D(QV, db)
        P_blockave = blockave2D(P[k2, :, :], db)
        #P_blockave = blockave2D(Pfield_t, db)
        massflux_BLave = np.mean(massflux_blockave[:BLi, :, :], axis=0)
        QV_BLave = np.mean(QV_blockave[:BLi, :, :], axis=0)
        w_BLave = np.mean(wfield_blockave[:BLi, :, :], axis=0)

        convBL_points = w_BLave > W_c

        massflux_convave = np.mean(massflux_BLave[convBL_points])
        QV_convave = np.mean(QV_BLave[convBL_points])
        P_convave = np.mean(P_blockave[convBL_points])

        qvflux[k] = massflux_convave * QV_convave
        mflux[k] = massflux_convave
        qvBL[k] = QV_convave
        Pconv[k] = P_convave
 varname = 'W500'
 
 #W = varis2D[varname][:]
 
 W = varis3D['W'][t-nave3D:t,:,:,:]
 
 #W = varis2D[varname][t-aveperiod2D:t,:,:]
 W_tave = np.mean(W, axis=0)
 
 #W_blockave = blockave2D(W_tave, db)
 
 Wlow = np.mean(W_tave[plow_bi:plow_ti,:,:], axis=0)
 Wmid = np.mean(W_tave[plow_ti:phigh_bi,:,:], axis=0)
 Whigh = np.mean(W_tave[phigh_bi:phigh_ti,:,:], axis=0)
 
 Wlow_block = blockave2D(Wlow, db)
 Wmid_block = blockave2D(Wmid, db)
 Whigh_block = blockave2D(Whigh, db)
 
 
 #put code to select W at specific level
 #W_blockave = blockave2D(W_tavez, db)
 
 
 QN = varis3D['QN'][:]
 
 QN_tave = np.mean(QN[t-aveperiod3D:t,:,:,:], axis=0)
 
 cloudfreq = np.sign(QN_tave)
 
 cloudcount = blocksum3D(cloudfreq, db)
#time period to look at
#t=-25*ntave3D
#nave=5
#nave2D=5*ntave2D
#nave3D=5*ntave3D
#number of blocks to find PW max
db = 1
print 'calulating max PW, blocked'
#PW_t = np.mean(PW_tave[t-nave:t,:,:], axis=0)
#PW_t = np.mean(PW[t-nave2D:t,:,:], axis=0)

#calculate where the convective center is by using blocked max(PW)
PW_tave = np.mean(PW, axis=0)

PW_blocked = blockave2D(PW_tave, db)
PWxy_sorted = blockxysort2D(PW_tave, xx, yy, db)

PWsort = PWxy_sorted.keys()
PWxycoords = PWxy_sorted.values()

mcenter = PWxycoords[-1]
binwidth = 5e3
rbins = np.arange(0, 1 / np.sqrt(2) * domsize * 1e3, binwidth)

#calculate where the convective 'edge' is by using standard deviation definition
#(other definitions may be better)
PWrbins, PWmeans = radprof(PW_tave, xx, yy, mcenter, rbins)
PWrbin_centers = (PWrbins[1:] + PWrbins[:-1]) / 2.

a = 1.5
SWN_tave = np.mean(SWN, axis=0)

xx, yy = np.meshgrid(x, y)
times = np.arange(t2D[0], t2D[-1])
db=1
#AVERAGING PERIOD IN DAYS
nave=5

#PW_t = PW_tave[t,:,:]
#PW_t = np.mean(PW_tave[t-nave:t,:,:], axis=0)
#QNTOA_t = QNTOA_tave[t,:,:]
#QNTOA_t = np.mean(QNTOA_tave[t-nave:t,:,:], axis=0)
#QN_t = np.mean(QN_tave[t-nave:t,:,:], axis=0)

PW_blocked = blockave2D(PW_tave, db)
QNTOA_blocked=blockave2D(QNTOA_tave, db)
SWN_blocked = blockave2D(SWN_tave, db)
QN_blocked=blockave2D(QN_tave, db)

PWxy_sorted = blockxysort2D(PW_tave, xx, yy, db)
#fieldxy_sorted = blockxysort2D(field_t, xx, yy, db)

PWsort = PWxy_sorted.keys()
PWxycoords = PWxy_sorted.values()
#fieldsort = fieldxy_sorted.keys()
#fieldxycoords = fieldxy_sorted.values()

mcenter = PWxycoords[-1]

d = raddist(xx, yy, mcenter)
     p3D[:,:,:] = p
     p3D = p3D.T
     #p3D = p3D.T
     #p4D = np.tile(p3D[:,:,:, np.newaxis], T.shape[0])
     #p4D = p4D.T
     THETA_tave = T_tave*(p0/p3D)**(c.Rd/c.cp)
     diffTHETA = THETA_tave[1:,:,:] - THETA_tave[:-1,:,:]
     diffz = np.diff(z)
     diffz3D = np.zeros((nz-1, nx, ny))
     diffz3D = diffz3D.T
     diffz3D[:,:,:] = diffz
     diffz3D = diffz3D.T
     THETA_mid = (THETA_tave[1:,:,:] + THETA_tave[:-1,:,:])/2.
     N_tave = (c.g*diffTHETA)/np.multiply(diffz3D, THETA_mid)
     N_tave_vertave = np.mean(N_tave, axis=0)
     field_tave = blockave2D(N_tave_vertave, db)
     
 elif varname == 'URADIAL':
     U_r_p = U_r[plevi,:,:]
     field_tave = blockave2D(U_r_p, db)
     
 
 elif varname == 'SFCSPEED':
     USFC = varis2D['USFC'][t2-nave2D:t2,:,:]
     VSFC = varis2D['VSFC'][t2-nave2D:t2,:,:]
     speed = np.sqrt(np.power(USFC, 2) + np.power(VSFC, 2))
     field_tave = np.mean(speed, axis=0)
     field_tave = blockave2D(field_tave, db)
     
     #look at different levels here 
     #p = varis3D['p'][:]
Beispiel #11
0
    LWN_tave = np.mean(LWN, axis=0)
    SWNC_tave = np.mean(SWNC, axis=0)
    LWNC_tave = np.mean(LWNC, axis=0)

    xx, yy = np.meshgrid(x, y)
    times = np.arange(t2D[0], t2D[-1])
    db = 1
    #AVERAGING PERIOD IN DAYS

    #PW_t = PW_tave[t,:,:]
    #PW_t = np.mean(PW_tave[t-nave:t,:,:], axis=0)
    #QNTOA_t = QNTOA_tave[t,:,:]
    #QNTOA_t = np.mean(QNTOA_tave[t-nave:t,:,:], axis=0)
    #QN_t = np.mean(QN_tave[t-nave:t,:,:], axis=0)

    PW_blocked = blockave2D(PW_tave, db)
    QNTOA_blocked = blockave2D(QNTOA_tave, db)
    SWN_blocked = blockave2D(SWN_tave, db)
    LWN_blocked = blockave2D(LWN_tave, db)
    QN_blocked = blockave2D(QN_tave, db)
    SWNC_blocked = blockave2D(SWNC_tave, db)
    LWNC_blocked = blockave2D(LWNC_tave, db)

    PWxy_sorted = blockxysort2D(PW_tave, xx, yy, db)
    #fieldxy_sorted = blockxysort2D(field_t, xx, yy, db)

    PWsort = PWxy_sorted.keys()
    PWxycoords = PWxy_sorted.values()
    #fieldsort = fieldxy_sorted.keys()
    #fieldxycoords = fieldxy_sorted.values()
xx, yy = np.meshgrid(x, y)
times = np.arange(t3D[0], np.max(t3D))

PW = ds2D['PW'][:]

#2D fields
ntrunc = PW.shape[0]%ntave2D
PW = PW[ntrunc:,:,:]
#PW_tmp = PW.reshape(nt2D/ntave2D, ntave2D, nx, ny)
#PW_tave = np.mean(PW_tmp, axis=1)

#time period to look at
t=-25*ntave3D
nave=5
nave2D=5*ntave2D
nave3D=5*ntave3D
#number of blocks to find PW max
db=1
print 'calulating max PW, blocked'
#PW_t = np.mean(PW_tave[t-nave:t,:,:], axis=0)
PW_t = np.mean(PW[t-nave2D:t,:,:], axis=0)
PW_blocked = blockave2D(PW_t, db)
PWxy_sorted = blockxysort2D(PW_t, xx, yy, db)

PWsort = PWxy_sorted.keys()
PWxycoords = PWxy_sorted.values()

mcenter = PWxycoords[-1]

nbins=[100, z]
    t = -1

    db = 16

    nxprime = nx // db

    varname = 'W500'

    W = varis2D[varname][:]

    #W = varis3D['W'][t-nave3D:t,:,:,:]

    W = varis2D[varname][t - aveperiod2D:t, :, :]
    W_tave = np.mean(W, axis=0)

    W_blockave = blockave2D(W_tave, db)

    #put code to select W at specific level
    #W_blockave = blockave2D(W_tavez, db)

    QN = varis3D['QN'][:]

    QN_tave = np.mean(QN[t - aveperiod3D:t, :, :, :], axis=0)

    cloudfreq = np.sign(QN_tave)

    cloudcount = blocksum3D(cloudfreq, db)

    cloudfrac = cloudcount / (db * db)

    plow_ti = np.where(p > 680)[0][-1]
 t = -1
 
 db=16
 
 nxprime = nx // db
 
 varname = 'W500'
 
 W = varis2D[varname][:]
 
 #W = varis3D['W'][t-nave3D:t,:,:,:]
 
 W = varis2D[varname][t-aveperiod2D:t,:,:]
 W_tave = np.mean(W, axis=0)
 
 W_blockave = blockave2D(W_tave, db)
 
 
 #put code to select W at specific level
 #W_blockave = blockave2D(W_tavez, db)
 
 
 QN = varis3D['QN'][:]
 
 QN_tave = np.mean(QN[t-aveperiod3D:t,:,:,:], axis=0)
 
 cloudfreq = np.sign(QN_tave)
 
 cloudcount = blocksum3D(cloudfreq, db)
 
 cloudfrac = cloudcount/(db*db)
 aveperiod = 24*nave
 aveperiod3D = 4*nave
 nc_data2D = Dataset(nc_in2D)
 nc_data3D = Dataset(nc_in3D)
 #varis3D = nc_data3D.variables
 varis2D = nc_data2D.variables
 varis3D = nc_data3D.variables
 x = varis2D['x'][:]
 y = varis2D['y'][:]
 #z = varis3D['z'][:]
 #p = varis3D['p'][:]
 #p = p*1e2
 W = varis3D['W'][t-aveperiod3D:t,:,:,:]
 
 Wvertbar = np.mean(np.mean(W, axis=0),axis=0)
 Wblock = blockave2D(Wvertbar, db)
 
 #W500 = varis2D['W500'][t-aveperiod:t,:,:]
 #W500_tave = np.mean(W500, axis=0)
 #W500_block = blockave2D(W500_tave, db)
 
 #nt3D = t3D.size
 #nz = z.size
 nx = x.size
 ny = y.size
 t3D = varis3D['time'][:]
 nt3D = t3D.size
 vari = varis2D[varname]
 field = np.mean(vari[t-aveperiod:t,:,:], axis=0)
 field = blockave2D(field, db)
 nxprime = nx / db
 #PW_tmp = PW.reshape(nt2D/ntave2D, ntave2D, nx, ny)
 #PW_tave = np.mean(PW_tmp, axis=1)
 
 #time period to look at
 #t=-25*ntave3D
 #nave=5
 #nave2D=5*ntave2D
 #nave3D=5*ntave3D
 #number of blocks to find PW max
 db=16
 print 'calulating max PW, blocked'
 #PW_t = np.mean(PW_tave[t-nave:t,:,:], axis=0)
 #PW_t = np.mean(PW[t-nave2D:t,:,:], axis=0)
 PW_tave = np.mean(PW, axis=0)
 
 PW_blocked = blockave2D(PW_tave, db)
 PWxy_sorted = blockxysort2D(PW_tave, xx, yy, db)
 
 PWsort = PWxy_sorted.keys()
 PWxycoords = PWxy_sorted.values()
 
 mcenter = PWxycoords[-1]
 binwidth=5e3
 rbins = np.arange(0, domsize*1e3, binwidth)
 
 #FIND BL TOP
 
 dthetadz = (theta_tave[1:]-theta_tave[:-1])/np.diff(z)
 dRHdz = (RELH_tave[1:] - RELH_tave[:-1])/np.diff(z)
 
 dthetadz_crit = 1e-3
 #Wvertbar = np.mean(np.mean(W, axis=0),axis=0)
 #Wblock = blockave2D(Wvertbar, db)
 
 #W500 = varis2D['W500'][t-aveperiod:t,:,:]
 #W500_tave = np.mean(W500, axis=0)
 #W500_block = blockave2D(W500_tave, db)
 
 #nt3D = t3D.size
 #nz = z.size
 nx = x.size
 ny = y.size
 t3D = varis3D['time'][:]
 nt3D = t3D.size
 vari = varis2D[varname]
 field = np.mean(vari[t-aveperiod:t,:,:], axis=0)
 field = blockave2D(field, db)
 nxprime = nx / db
 nyprime = ny / db
 
 field = field.flatten()
 #W500_flat = W500_block.flatten()
 W_flat = Wblock.flatten()
 nbins=100
 #counts, bin_edges = np.histogram(W500_flat, bins=50)
 #PWsum, bin_edges = np.histogram(W500_flat, bins=50, weights=field)
 counts, bin_edges = np.histogram(W_flat, bins=nbins)
 PWsum, bin_edges = np.histogram(W_flat, bins=nbins, weights=field)
 bin_c = (bin_edges[1:] + bin_edges[:-1])/2
 PWbar = PWsum/counts
     
 plt.figure(1)
    y = varis2D['y'][:]
    times = varis2D['time'][:]
    daytimes=np.arange(0, times[-1]+1)
    #print 'domain size ({:3.0f} km)^2 fields averaged at day {:2.0f} over previous {:2.1f} days'.format(domsize[i], times[t], ndays)
    nx = x.size
    ny = y.size
    nxprime = nx / db
    nyprime = ny / db
    totpointsprime = nxprime*nyprime
    xx, yy = np.meshgrid(x, y)
    PW = varis2D['PW'][t-nave:t,:,:]
    W500 = varis2D['W500'][t-nave:t,:,:]
    P = varis2D['Prec'][t-nave:t,:,:]
    PWtave= np.mean(PW, axis=0)
    W500tave = np.mean(W500, axis=0)
    W500block = blockave2D(W500tave, db)
    Ptave = np.mean(P, axis=0)
    #fracA_Prec= fracclusterarea('Prec', varis2D, nave, t, a)
    fracA_PW = fracclusterarea('PW', varis2D, nave, t, a)
    W500crit = 0.01
   # fracA_W500  = fracclusterarea('W500', varis2D, nave, t, a, W500crit)
    totpoints=nx*ny
    fracA_W500 = len(W500block[W500block >= W500crit])/(1.*totpointsprime)
   

    fracA_Phat = fracclusterarea('PrecNEW', varis2D, nave, t)
    PWcrit = np.mean(PWtave) + a*np.std(PWtave)
    Pcrit = np.mean(Ptave) + a*np.std(Ptave)
 
    
    print 'moist edge PW threshold {:2.1f} (mm), mean PW = {:2.1f}, std PW = {:2.1f}'.format(PWcrit, np.mean(PWtave), np.std(PWtave))
Beispiel #19
0
    varname = 'W500'

    #W = varis2D[varname][:]

    W = varis3D['W'][t - nave3D:t, :, :, :]

    #W = varis2D[varname][t-aveperiod2D:t,:,:]
    W_tave = np.mean(W, axis=0)

    #W_blockave = blockave2D(W_tave, db)

    Wlow = np.mean(W_tave[plow_bi:plow_ti, :, :], axis=0)
    Wmid = np.mean(W_tave[plow_ti:phigh_bi, :, :], axis=0)
    Whigh = np.mean(W_tave[phigh_bi:phigh_ti, :, :], axis=0)

    Wlow_block = blockave2D(Wlow, db)
    Wmid_block = blockave2D(Wmid, db)
    Whigh_block = blockave2D(Whigh, db)

    #put code to select W at specific level
    #W_blockave = blockave2D(W_tavez, db)

    QN = varis3D['QN'][:]

    QN_tave = np.mean(QN[t - aveperiod3D:t, :, :, :], axis=0)

    cloudfreq = np.sign(QN_tave)

    cloudcount = blocksum3D(cloudfreq, db)

    cloudfrac = cloudcount / (db * db)
Beispiel #20
0
    aveperiod = 24 * nave
    aveperiod3D = 4 * nave
    nc_data2D = Dataset(nc_in2D)
    nc_data3D = Dataset(nc_in3D)
    #varis3D = nc_data3D.variables
    varis2D = nc_data2D.variables
    varis3D = nc_data3D.variables
    x = varis2D['x'][:]
    y = varis2D['y'][:]
    #z = varis3D['z'][:]
    #p = varis3D['p'][:]
    #p = p*1e2
    W = varis3D['W'][t - aveperiod3D:t, :, :, :]

    Wvertbar = np.mean(np.mean(W, axis=0), axis=0)
    Wblock = blockave2D(Wvertbar, db)

    #W500 = varis2D['W500'][t-aveperiod:t,:,:]
    #W500_tave = np.mean(W500, axis=0)
    #W500_block = blockave2D(W500_tave, db)

    #nt3D = t3D.size
    #nz = z.size
    nx = x.size
    ny = y.size
    t3D = varis3D['time'][:]
    nt3D = t3D.size
    vari = varis2D[varname]
    field = np.mean(vari[t - aveperiod:t, :, :], axis=0)
    field = blockave2D(field, db)
    nxprime = nx / db
    corr_netSWcld = (hfhatprime*netSWcldprime)
    corr_netLWcld = (hfhatprime*netLWcldprime)
    corr_netSWC = (hfhatprime*netSWCprime)
    corr_netLWC = (hfhatprime*netLWCprime)
    
    print 'CRH block sorting'
    #CRH_SEFsort = blocksort2D(CRH[i,:,:], corr_SEF, db)
    #CRH_netLWsort = blocksort2D(CRH[i,:,:], corr_netLW, db)
    #CRH_netSWsort = blocksort2D(CRH[i,:,:], corr_netSW, db)
    #CRH_netSWcldsort = blocksort2D(CRH[i,:,:], corr_netSWcld, db)
    #CRH_netLWcldsort = blocksort2D(CRH[i,:,:], corr_netLWcld, db)
    #CRH_netSWCsort = blocksort2D(CRH[i,:,:], corr_netSWC, db)
    #CRH_netLWCsort = blocksort2D(CRH[i,:,:], corr_netLWC, db)
    #CRH_hfhatprimesort = blocksort2D(CRH[i, :, :], hfhatprime, db)
    
    CRHblock = blockave2D(CRH[i,:,:], db).flatten()
    CRH_SEFblock = blockave2D(corr_SEF, db).flatten()
    CRH_netLWblock = blockave2D(corr_netLW, db).flatten()
    CRH_netSWblock = blockave2D(corr_netSW, db).flatten()
    CRH_netSWcldblock = blockave2D(corr_netSWcld, db).flatten()
    CRH_netLWcldblock = blockave2D(corr_netLWcld, db).flatten()
    CRH_netSWCblock = blockave2D( corr_netSWC, db).flatten()
    CRH_netLWCblock = blockave2D(corr_netLWC, db).flatten()
    CRH_hfhatprimeblock = blockave2D(hfhatprime, db).flatten()
    
    
        
            
    
        
Beispiel #22
0
     p3D[:,:,:] = p
     p3D = p3D.T
     #p3D = p3D.T
     #p4D = np.tile(p3D[:,:,:, np.newaxis], T.shape[0])
     #p4D = p4D.T
     THETA_tave = T_tave*(p0/p3D)**(c.Rd/c.cp)
     diffTHETA = THETA_tave[1:,:,:] - THETA_tave[:-1,:,:]
     diffz = np.diff(z)
     diffz3D = np.zeros((nz-1, nx, ny))
     diffz3D = diffz3D.T
     diffz3D[:,:,:] = diffz
     diffz3D = diffz3D.T
     THETA_mid = (THETA_tave[1:,:,:] + THETA_tave[:-1,:,:])/2.
     N_tave = (c.g*diffTHETA)/np.multiply(diffz3D, THETA_mid)
     N_tave_vertave = np.mean(N_tave, axis=0)
     field_tave = blockave2D(N_tave_vertave, db)
     
 elif varname == 'URADIAL':
     U_r_p = U_r[plevi,:,:]
     field_tave = blockave2D(U_r_p, db)
     
 
 elif varname == 'SFCSPEED':
     USFC = varis2D['USFC'][t2-nave2D:t2,:,:]
     VSFC = varis2D['VSFC'][t2-nave2D:t2,:,:]
     speed = np.sqrt(np.power(USFC, 2) + np.power(VSFC, 2))
     field_tave = np.mean(speed, axis=0)
     field_tave = blockave2D(field_tave, db)
     
     #look at different levels here 
     #p = varis3D['p'][:]
Beispiel #23
0
    aveperiod = 24 * nave
    aveperiod3D = 4 * nave
    nc_data2D = Dataset(nc_in2D)
    nc_data3D = Dataset(nc_in3D)
    #varis3D = nc_data3D.variables
    varis2D = nc_data2D.variables
    varis3D = nc_data3D.variables
    x = varis2D['x'][:]
    y = varis2D['y'][:]
    #z = varis3D['z'][:]
    #p = varis3D['p'][:]
    #p = p*1e2
    W = varis3D['W'][t - aveperiod3D:t, :, :, :]

    Wvertbar = np.mean(np.mean(W, axis=0), axis=0)
    Wblock = blockave2D(Wvertbar, db)
    #W_c=0.5
    Wconvblock = Wblock[Wblock > W_c]
    Wdryblock = Wblock[Wblock < W_c]

    #W500 = varis2D['W500'][t-aveperiod:t,:,:]
    #W500_tave = np.mean(W500, axis=0)
    #W500_block = blockave2D(W500_tave, db)

    #nt3D = t3D.size
    #nz = z.size
    nx = x.size
    ny = y.size
    t3D = varis3D['time'][:]
    nt3D = t3D.size
    vari = varis2D[varname]