コード例 #1
0
 def read_density(self, dens_file, contrast=False):
     if self.dens_file_reader is not None: dens = self.dens_file_reader(dens_file)
     else:
         t2c.set_sim_constants(int(self.Lbox*0.7))
         dens = t2c.DensityFile(dens_file).raw_density#cgs_density*u.g/u.cm**3
     self.nGrid = dens.shape[0]
     if contrast: dens = dens/dens.mean() - 1.
     return dens
コード例 #2
0
'''
Created on 16 Apr 2020
@author: Sambit Giri
Setup script
'''
import numpy as np
import matplotlib.pyplot as plt

from sim21cm import extreme_model
import tools21cm as t2c

t2c.set_sim_constants(500)

# Instantaneous simulation
### In this mode, we take one density field and ionize it based on a
### given average ionization fraction

dens_file = '/disk/dawn-1/garrelt/Reionization/C2Ray_WMAP7/500Mpc/coarser_densities/nc300/8.064n_all.dat'
dens = t2c.DensityFile(dens_file).raw_density
xi = [0.3, 0.7]

simoi = extreme_model.OutsideIn()
xhii0 = simoi.run_instant(dens,
                          xi[0],
                          volume_averaged=True,
                          mass_averaged=True,
                          write=False)
xhii1 = simoi.run_instant(dens,
                          xi[1],
                          volume_averaged=True,
                          mass_averaged=True,
コード例 #3
0
ファイル: identify_in_21cm.py プロジェクト: micbia/tools21cm
import numpy as np
import matplotlib.pyplot as plt
import tools21cm as t2c

### Setting the simulation environment
t2c.set_sim_constants(244)

### Reading files
xfrac_filename = '/disk/dawn-1/garrelt/Reionization/C2Ray_WMAP7/244Mpc/244Mpc_f2_0_250/results/xfrac3d_6.418.bin'
dens_filename = '/disk/dawn-1/sgiri/simulations/244Mpc/coarser_densities/nc250/6.418n_all.dat'

xfrac = t2c.read_c2ray_files(xfrac_filename,
                             file_type='xfrac')  # Ionization fraction file
neut = 1 - xfrac  # Neutral fraction file

dens = t2c.read_c2ray_files(dens_filename, file_type='dens')  # Density file

### Redshift from filename.....It can be manually given also
z = float(xfrac_filename.split('_')[-1].split('.b')[0])

### Making 21-cm coeval cube
dt = t2c.calc_dt(xfrac, dens, z)

### Smoothing neutral field to SKA resolution
smt_dt = t2c.smooth_coeval(dt, z)

### Generating the binary field from 21-cm signal using KMeans
bin_xf_sim = t2c.threshold_kmeans_3cluster(dt, upper_lim=True, n_jobs=5)
bin_nf_sim = 1. - bin_xf_sim  # The neutral binary field at Sim-Res

bin_xf_smt = t2c.threshold_kmeans_3cluster(smt_dt, upper_lim=True, n_jobs=5)
コード例 #4
0
path_xi = '/research/prace/64Mpc_f2_8.2pS_256/results/'
path_dens = '/research/prace/sph_smooth_cubepm_130708_8_2048_64Mpc_ext2/nc256/'


out_res = 64
out_dir = './2DlogPk-%dx%d_%s_%dMpc' %(out_res, out_res, datetime.now().strftime('%d%m%y'), sim)
os.makedirs(out_dir)

# interpolate redshift list
redshift_xi = t2c.get_xfrac_redshifts(path_xi)
redshift_dens = t2c.get_dens_redshifts(path_dens)
redshift = SameValuesInArray(redshift_xi, redshift_dens)

print('tot redshift:', redshift.size)
#### Code below this is important
t2c.set_sim_constants(sim)

min_arr = []
max_arr = []

for i in tqdm(range(len(redshift))):
        z = redshift[i]
        xf = t2c.XfracFile('%sxfrac3d_%.3f.bin' %(path_xi, z)).xi
        dn = t2c.DensityFile('%s%.3fn_all.dat' %(path_dens, z)).cgs_density
        dt = t2c.calc_dt(xf, dn, z)
        ps_dt = t2c.power_spectrum_nd(dt)
	if(smt): ps_dt = ndimage.gaussian_filter(ps_dt, 5, mode='wrap')

	for ax in ['x', 'y', 'z']:
		if(ax=='x'):
			rs_dt = np.log10(ps_dt[:, int(mesh/2):int(mesh/2)+out_res, int(mesh/2):int(mesh/2)+out_res])