Ejemplo n.º 1
0
def Main_Fun(rundate, gamma, flux_s):
     
    
     #output times
     if rundate == "Nov302013":     
          dump_time_list, Times = Make_Timelists(1, 900, 28800)
          Times = np.array(Times)
     else:
          dump_time_list, Times = Make_Timelists(1, 600, 28800)
          Times = np.array(Times)
     

     #class for pulling data files
     files = For_Plots(rundate)

     #Create lists of variable lists
     #TODO: need to test Deltatheta
     first_theta_file = files.get_file(dump_time_list[0], "theta_bar")
     theta_file_list = [files.get_file(dump_time, "theta_bar") for dump_time in dump_time_list]
     press_file_list = [files.get_file(dump_time, "press") for dump_time in dump_time_list]
     flux_file_list = [files.get_file(dump_time, "wvelthetapert") for dump_time in dump_time_list]
     height_file = files.get_file("0000000600", "heights")

     AvProfLims = []
     invrinos = []
     #loop over text files files
     for i in range(len(theta_file_list)):
         print i, theta_file_list[i]
         theta0=np.genfromtxt(first_theta_file)
         theta = np.genfromtxt(theta_file_list[i])
         print theta.shape
         height = np.genfromtxt(height_file)
    
         press = np.genfromtxt(press_file_list[i])
         rhow = nc.calc_rhow(press, height, theta[0])
         wvelthetapert = np.genfromtxt(flux_file_list[i])
         
         #only need up to 1900meters
         if rundate == "Jan152014_1":
             top_index = np.where(abs(2000 - height) < 26.)[0][0] #may need to be higher (e.g. for 60/2.5)
         else:
             top_index = np.where(abs(1700 - height) < 26.)[0][0] #may need to be higher (e.g. for 60/2.5)
           
         print height.shape, press.shape, theta.shape, wvelthetapert.shape, gamma, top_index

         #function for calcuating heights
         [elbot_dthetadz, h, eltop_dthetadz, elbot_flux ,h_flux  ,eltop_flux, deltatheta, Deltatheta, mltheta]= nc.Get_CBLHeights(height, press, theta, theta0, wvelthetapert, gamma, flux_s, top_index)

         print elbot_dthetadz, h, eltop_dthetadz, elbot_flux ,h_flux  ,eltop_flux, deltatheta, mltheta
         
         delta_h=eltop_dthetadz - elbot_dthetadz
         
         [rino, invrino, wstar, S, pi3, pi4] =  nc.calc_rino(h, mltheta, 1.0*flux_s/(rhow[0]*1004), deltatheta, gamma, delta_h)

         AvProfLims.append([elbot_dthetadz, h, eltop_dthetadz, elbot_flux, h_flux, eltop_flux, deltatheta, Deltatheta, mltheta])
         tau = 1.0*h/wstar
         invrinos.append([rino, invrino, wstar, S, tau, mltheta, deltatheta, pi3, pi4])

     files.save_file(np.array(AvProfLims), "AvProfLims")
     files.save_file(np.array(invrinos), "invrinos")
Ejemplo n.º 2
0
    
    BLheights0.append(height[dtheta_index_b])
    BLheights1.append(height[dtheta_index_t])    

    BLheights10.append(height[flux_index_b])
    BLheights11.append(height[flux_index_t])
           
    theta_jump.append(theta[dtheta_index_t]-theta[dtheta_index_b])
    theta_ml.append(np.mean(theta[0:dtheta_index_b]))    
       
    #plt.legend(loc = 'upper right', prop={'size':8})
    #wtheta_s = 1.0*60*scsp.erf(Times[i]/(2.5*np.sqrt(2)))/(1004*rhow[0])
    wtheta_s = 150/(1004*rhow[0])
    #print 'rhow', rhow[0], 1.0*60*scsp.erf(Times[i]/(2.5*np.sqrt(2)))
    print BLheights[i], theta_ml[i], wtheta_s, theta_jump[i]
    rino, invrino, wstar, S =  nc.calc_rino(BLheights[i], theta_ml[i], wtheta_s, theta_jump[i], gamma)
    invrinos.append(invrino)
    wstars.append(wstar)
    wthetas_s.append(wtheta_s)
    maxrmwsqs.append(maxrmwsq)
    rmwsqs_at_h.append(rmwsq_at_h)

    if np.mod(i+1, 6)==0:
        #print maxrmwsq, wstar, 1.0*maxrmwsq/wstar
        Ax1.plot(rmwsq, 1.0*height/BLheights[i],label = str(Times[i]) + 'hrs')
        Ax2.plot(1.0*rmwsq/wstar, 1.0*height/BLheights[i], label = str(Times[i]) + 'hrs')
    #plt.legend(loc = 'upper right', prop={'size':8})

        
    
    #TODO: Need to make sure sfc flux is ok (w'theta'0)