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")
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)