def map_dbt_lightcone(): for i in range(0, len(redshifts)): # print 'filename: setup_dirs.resultsdir()+'map_dbt_lightcone_'+str('%.3f' % redshifts[i])+'.dat' filename = setup_dirs.resultsdir() + "map_dbt_lightcone_" + str("%.3f" % redshifts[i]) + ".dat" temp_filename = setup_dirs.path() + "Temper3D_" + str("%.3f" % redshifts[i]) + ".bin" xfrac_filename = setup_dirs.path() + "xfrac3d_" + str("%.3f" % redshifts[i]) + ".bin" if i % 2 == 0: density_filename = ( "/research/prace/244Mpc_RT/244Mpc_f2_8.2pS_250/coarser_densities/" + str("%.3f" % redshifts[i]) + "n_all.dat" ) else: density_filename = ( "/research/prace/244Mpc_RT/244Mpc_f2_8.2pS_250/coarser_densities/" + str("%.3f" % redshifts[i - 1]) + "n_all.dat" ) tfile = c2t.TemperFile(temp_filename) xfile = c2t.XfracFile(xfrac_filename).xi if ss == " ": dfile = c2t.DensityFile(density_filename).cgs_density else: dfile = np.ones(ss ** 3).reshape(ss, ss, ss) * 1.981e-10 * (1 + redshifts[i]) ** 3 dT_box = c2t.calc_dt_full_lightcone(xfile, tfile, dfile, redshifts[i]) IO.writemap(dT_box, filename) print "Written map to " + filename
def scatter_contour(): for i in range(start,len(redshifts)): print "Doing redshift " + str(redshifts[i])+"..." xfrac_filename = setup_dirs.path()+'xfrac3d_'+str('%.3f' % redshifts[i]) + '.bin' xfrac = c2t.XfracFile(xfrac_filename).xi.flatten() print "Read ionized fraction" temp_filename = setup_dirs.path() + 'Temper3D_'+str('%.3f' % redshifts[i]) + '.bin' temperature = c2t.TemperFile(temp_filename).temper.flatten() print "Read Temperature" print "Generating plots..." plot_scatter_contour(xfrac,temperature,"contour_scatter_xfrac_temperature","Temperature (K)","Ionised Fraction",i)
def xfrac_histogram(): '''plot hisograms''' for i in range(1,len(redshifts)):#max(1,start),len(redshifts)): print redshifts[i] xfrac_filename = setup_dirs.path()+'xfrac3d_'+str('%.3f' % redshifts[i]) + '.bin' xfrac_HI = c2t.XfracFile(xfrac_filename).xi xfracHe1_filename = setup_dirs.path()+'xfrac3dHe1_'+str('%.3f' % redshifts[i]) + '.bin' xfrac_He1 = c2t.XfracFile(xfracHe1_filename).xi xfracHe2_filename = setup_dirs.path()+'xfrac3dHe2_'+str('%.3f' % redshifts[i]) + '.bin' xfrac_He2 = c2t.XfracFile(xfracHe2_filename).xi plot_3_log_histograms(xfrac_HI[len(xfrac_HI[:,0,0])/2,:,:],xfrac_He1[len(xfrac_HI[:,0,0])/2,:,:],xfrac_He2[len(xfrac_HI[:,0,0])/2,:,:],"Ionised Fraction, Redshift:" +str('%.3f' % redshifts[i]),"loghist_xfrac_"+str(i+10)+'_'+str('%.3f' % redshifts[i]),"Ionised Fraction")
def map_temp(): for i in range(start, len(redshifts)): filename = setup_dirs.resultsdir() + "map_temper_" + str("%.3f" % redshifts[i]) + ".dat" temp_filename = setup_dirs.path() + "Temper3D_" + str("%.3f" % redshifts[i]) + ".bin" tfile = c2t.TemperFile(temp_filename) IO.writemap(tfile.temper, filename) print "Writen map to " + filename
def lightcone_xfrac(rsd=''): filenames = ["" for x in range(len(redshifts))] if rsd!='': vel_files=["" for x in range(len(redshifts)/2)]#]'/research/prace/sph_smooth_cubepm_130329_10_4000_244Mpc_ext2_test/global/so/nc250'+'%.3fv_all.dat'%z for z in redshifts] dens_files=["" for x in range(len(redshifts)/2)]#]'/research/prace/sph_smooth_cubepm_130329_10_4000_244Mpc_ext2_test/global/so/nc250'+'%.3fv_all.dat'%z for z in redshifts] # filenames[0] = len(redshifts) mini = -457 maxi=83 for i in range(len(filenames)): #filenames[i] = setup_dirs.path() + 'lightcone_temp/Temper3D_'+str('%.3f' % redshifts[i]) + '.bin' filenames[i] = filename = setup_dirs.path()+'xfrac3d_'+str('%.3f' % redshifts[i]) + '.bin' if i%2==0 and rsd!='': vel_files[i/2]='/research/prace/sph_smooth_cubepm_130329_10_4000_244Mpc_ext2_test/global/so/nc250/'+str('%.3f' % redshifts[i])+'v_all.dat' dens_files[i/2]='/research/prace/sph_smooth_cubepm_130329_10_4000_244Mpc_ext2_test/global/so/nc250/%.3fn_all.dat'%redshifts[i] noreds=10 # redshifts_many = np.zeros(len(redshifts)*noreds) # for i in range(len(redshifts)-1): # for j in range(noreds): # redshifts_many[i+j]=redshifts[i]-(redshifts[i+1]-redshifts[i])*j/noreds print filenames im,z=c2t.make_lightcone(filenames)#,interpolation='step_cell') if rsd!='': vel_lightcone, z = c2t.make_velocity_lightcone(vel_files, dens_files)#,redshifts[0], redshifts[len(redshifts)-1]) rsd_xfrac = c2t.get_distorted_dt(im, vel_lightcone, z, \ num_particles=30, los_axis=2, velocity_axis=0, \ periodic=False) im=np.asarray(rsd_xfrac) plot_lightcone(im[125,:,::-1],i,"Ionised Fraction","lightcone_rsd_xfrac",mini,maxi,z,cmap='Blues_r') else: im=np.asarray(im) plot_lightcone(im[125,:,::-1],i,"Ionised Fraction","lightconexfrac",mini,maxi,z,cmap='Blues_r')
def temp_histrogram(): for i in range(start,len(redshifts)): temp_filename = setup_dirs.path() + 'Temper3D_'+str('%.3f' % redshifts[i]) + '.bin' data = c2t.TemperFile(temp_filename).temper data = data.flatten() print len(data), 250**3 plot_log_histogram(data,"loghist_temper_shortrange_"+str(i+10)+'_'+str('%.3f' % redshifts[i]),"Temperature(K)","Redshift:" +str('%.3f' % redshifts[i]),"loghist_temper_shortrange_"+str(i+10)+'_'+str('%.3f' % redshifts[i]),"Temperature(K)")
def mean_xfrac(id): file = open(setup_dirs.resultsdir()+'mean_xfrac'+id+'.dat', 'w') for i in range(len(redshifts)): xfrac_filename = setup_dirs.path()+'xfrac3d'+id+'_'+str('%.3f' % redshifts[i]) + '.bin' xfile = c2t.XfracFile(xfrac_filename) file.write(str(np.mean(xfile.xi)) + '\n') file.close() print "Written mean xfrac to "+setup_dirs.resultsdir()+'mean_xfrac'+id+'.dat'
def plotxfrac(id): for i in range(start,len(redshifts)): print "Doing redshift " + str(redshifts[i])+"..." xfrac_filename = setup_dirs.path()+'xfrac3d'+id+'_'+str('%.3f' % redshifts[i]) + '.bin' xfrac = c2t.XfracFile(xfrac_filename).xi maxi = 1.0 mini = 0.000199999994948 plot(xfrac[mesh/2,:,:],i,id + "Ionised Fraction","xfrac"+id,mini,maxi,cmap='Blues_r',type='log')
def min_temp(): file = open(setup_dirs.resultsdir()+'min_temp.dat', 'w') for i in range(len(redshifts)): filename = setup_dirs.path()+'Temper3D_'+str('%.3f' % redshifts[i]) + '.bin' data = c2t.TemperFile(filename) file.write(str(np.amin(data.temper)) + '\n') file.close() print "Written mean Temperature to "+setup_dirs.resultsdir()+'min_temp.dat'
def map_xfrac(id): # for i in range(len(redshifts)-6,len(redshifts)-4): print len(redshifts) for i in range(start, len(redshifts)): filename = setup_dirs.resultsdir() + "map_xfrac" + id + "_" + str("%.3f" % redshifts[i]) + ".dat" xfrac_filename = setup_dirs.path() + "xfrac3d" + id + "_" + str("%.3f" % redshifts[i]) + ".bin" xfile = c2t.XfracFile(xfrac_filename) IO.writemap(xfile.xi, filename) print "Written map to " + filename
def plottemp(): for i in range(start,len(redshifts)): print "Doing redshift " + str(redshifts[i])+"..." temp_filename = setup_dirs.path() + 'Temper3D_'+str('%.3f' % redshifts[i]) + '.bin' temperature = c2t.TemperFile(temp_filename).temper mini=0.0 maxi = 14300.0 # if (i == (len(redshifts)-25)): # maxi = findmax(temperature)/2.0 plot(temperature[mesh/2,:,:],i,"Temperature (K)","temp",mini,maxi)
def map_dbt(): for i in range(start, len(redshifts)): filename = setup_dirs.resultsdir() + "map_dbt_" + str("%.3f" % redshifts[i]) + ".bin" temp_filename = setup_dirs.path() + "Temper3D_" + str("%.3f" % redshifts[i]) + ".bin" xfrac_filename = setup_dirs.path() + "xfrac3d_" + str("%.3f" % redshifts[i]) + ".bin" if i % 2 == 0: density_filename = ( "/research/prace/244Mpc_RT/244Mpc_f2_8.2pS_250/coarser_densities/" + str("%.3f" % redshifts[i]) + "n_all.dat" ) else: density_filename = ( "/research/prace/244Mpc_RT/244Mpc_f2_8.2pS_250/coarser_densities/" + str("%.3f" % redshifts[i - 1]) + "n_all.dat" ) tfile = c2t.TemperFile(temp_filename) xfile = c2t.XfracFile(xfrac_filename).xi if ss != " ": abu_he = 0.074 G_grav = 6.674e-11 pc = 3.086e16 Mpc = 1e6 * pc H0 = 0.7 * 100.0 * 1.0e5 / Mpc rho_crit_0 = 3.0 * H0 * H0 / (8.0 * np.pi * G_grav) Omega_B = 0.044 mu = (1.0 - abu_he) + 4.0 * abu_he m_p = 1.672661e-24 dfile = np.ones(ss ** 3).reshape(ss, ss, ss) dfile = dfile * rho_crit_0 * Omega_B / (mu * m_p) * (1.0 + redshifts[i]) ** 3 dfile = dfile * 1.23581719037e-35 else: dfile = c2t.DensityFile(density_filename).cgs_density dT_box = c2t.calc_dt_full(xfile, tfile, dfile, redshifts[i]) # IO.writemap(dT_box,filename) IO.writebin(dT_box, filename) print "Written map to " + filename
def mean_dbt_hightemp(): file = open(setup_dirs.resultsdir()+'mean_dbt_hightemp.dat','w') for i in range(len(redshifts)): filename = setup_dirs.resultsdir()+'map_dbt_hightemp'+str('%.3f' % redshifts[i])+'.dat' temp_filename = setup_dirs.path()+'Temper3D_'+str('%.3f' % redshifts[i]) + '.bin' xfrac_filename = setup_dirs.path() +'xfrac3d_'+str('%.3f' % redshifts[i]) + '.bin' if i%2==0: density_filename='/research/prace/244Mpc_RT/244Mpc_f2_8.2pS_250/coarser_densities/' + str('%.3f' % redshifts[i]) + 'n_all.dat' else: density_filename='/research/prace/244Mpc_RT/244Mpc_f2_8.2pS_250/coarser_densities/' + str('%.3f' % redshifts[i-1]) + 'n_all.dat' tfile = c2t.TemperFile(temp_filename) xfile = c2t.XfracFile(xfrac_filename).xi if ss!=' ': dfile = np.ones(ss**3).reshape(ss,ss,ss)*1.981e-10*(1+redshifts[i])**3 else: dfile = c2t.DensityFile(density_filename).cgs_density dT_box = c2t.calc_dt(xfile, dfile, redshifts[i]) #returned in micro kelvin! update plots file.write(str(np.mean(dT_box))+'\n') print "Written mean dbt to " + setup_dirs.resultsdir()+'mean_dbt_hightemp.dat'
def mean_temp_igm(): file = open(setup_dirs.resultsdir()+'mean_temp_igm.dat', 'w') file2= open(setup_dirs.resultsdir()+'fraction_ionised.dat','w') for i in range(len(redshifts)): filename = setup_dirs.path()+'Temper3D_'+str('%.3f' % redshifts[i]) + '.bin' data = c2t.TemperFile(filename) xfrac_filename = setup_dirs.path()+'xfrac3d_'+str('%.3f' % redshifts[i]) + '.bin' xfile = c2t.XfracFile(xfrac_filename) igm_data=[] ionisedpoints=0 for i in range(len(data.temper[1,:,1])): for j in range(len(data.temper[1,:,1])): for k in range(len(data.temper[1,:,1])): if xfile.xi[i,j,k] < 1e3: igm_data.append(data.temper[i,j,k]) else: ionisedpoints=ionisedpoints+1 file.write(str(np.mean(igm_data)) + '\n') file.write(str(ionisedpoints/250**3)) file.close() print "Written mean Temperature to "+setup_dirs.resultsdir()+'mean_temp_igm.dat'
def blurtemp(): for z in range(start,len(redshifts)): print "Doing redshift " + str(redshifts[z])+"..." temp_filename = setup_dirs.path() + 'Temper3D_'+str('%.3f' % redshifts[z]) + '.bin' T = c2t.TemperFile(temp_filename).temper Tb=np.zeros(10**3).reshape(10,10,10) nobins=20 for i in range(len(T[:,1,1])): for j in range(len(T[:,1,1])): for k in range(len(T[:,1,1])): Tb[i/20,j/20,k/20]=Tb[i/20,j/20,k/20]+T[i,j,k] Tb=Tb/20**3 IO.writebin(Tb,"tests/blurred/temp_"+str(redshifts[z])+".bin") print "written to tests/blurred/temp_"+str(redshifts[z])+".bin"
def equation_of_state(): print redshifts for i in range(start,len(redshifts)): print "Doing redshift " + str(redshifts[i])+"..." if nosteps == 2 or i<nosteps: density_filename='/research/prace/244Mpc_RT/244Mpc_f2_8.2pS_250/coarser_densities/' + str('%.3f' % redshifts[i-i%nosteps]) + 'n_all.dat' print "density filename: "+ str('%.3f' % redshifts[i-(i)%nosteps]) + 'n_all.dat' else: density_filename='/research/prace/244Mpc_RT/244Mpc_f2_8.2pS_250/coarser_densities/' + str('%.3f' % redshifts[i-i%nosteps-1]) + 'n_all.dat' print "density filename: "+ str('%.3f' % redshifts[i-(i)%nosteps-1]) + 'n_all.dat' density = c2t.DensityFile(density_filename).cgs_density.flatten() print "Read density file" temp_filename = setup_dirs.path() + 'Temper3D_'+str('%.3f' % redshifts[i]) + '.bin' temperature = c2t.TemperFile(temp_filename).temper.flatten() print "Read temperature" print "Generating plots..." plot_scatter_contour(density,temperature,"equation_of_state","Temperature (K)","Density ($\mathrm{\Omega}$)",i)
def compare_hisograms_temperature(): for i in range(12,len(redshifts)): temp_filename = setup_dirs.path() + 'Temper3D_'+str('%.3f' % redshifts[i]) + '.bin' data = c2t.TemperFile(temp_filename).temper data = data.flatten() #need to import other dataset and put in right format
def temp_power_spectrum(): for i in range(len(redshifts)): print "Doing redshift: " + str(redshifts[i]) data=c2t.TemperFile(setup_dirs.path()+"Temper3D_"+str('%.3f' % redshifts[i])+".bin").temper powerspec=ps.power_spectrum_1d(data,100) IO.write2data(powerspec[0],powerspec[1],setup_dirs.resultsdir()+'/powerSpectra_temp_'+str('%.3f' % redshifts[i])+'.dat',setup_dirs.resultsdir()+'/powerSpectraFrequencies_dbt_100b_'+str('%.3f' % redshifts[i])+'.dat')
def xfrac_power_spectrum(id): for i in range(len(redshifts)): print "Doing redshift: " + str(redshifts[i]) data=c2t.XfracFile(setup_dirs.path()+"xfrac3d"+id+'_'+str('%.3f' % redshifts[i])+".bin").xi powerspec=ps.power_spectrum_1d(data,100) IO.write2data(powerspec[0],powerspec[1],setup_dirs.resultsdir()+'/powerSpectra_xfrac_'+id+'_'+str('%.3f' % redshifts[i])+'.dat',setup_dirs.resultsdir()+'/powerSpectraFrequencies_dbt_100b_'+str('%.3f' % redshifts[i])+'.dat')