def calc_all_observables(param): model.param_dict.update(dict(zip(param_names, param))) ##update model.param_dict with pairs (param_names:params) try: model.mock.populate() except: model.populate_mock(halocat) gc.collect() output = [] pos_gals_d = return_xyz_formatted_array(*(model.mock.galaxy_table[ax] for ax in 'xyz'), \ velocity=model.mock.galaxy_table['vz'], velocity_distortion_dimension='z',\ period=Lbox) ##redshift space distorted pos_gals_d = np.array(pos_gals_d,dtype=float) pos_gals = return_xyz_formatted_array(*(model.mock.galaxy_table[ax] for ax in 'xyz'), period=Lbox) pos_gals = np.array(pos_gals,dtype=float) ########one mock, different vpfcens and ptclposes. np.random.rand(num_sphere,3)*250, ptclpos particle_masses = halocat.particle_mass total_num_ptcls_in_snapshot = halocat.num_ptcl_per_dim**3 downsampling_factor = total_num_ptcls_in_snapshot/float(num_ptcls_to_use) vpf = void_prob_func(pos_gals_d, r_vpf, random_sphere_centers=vpf_centers, period=Lbox) ggl = delta_sigma(pos_gals, ptclpos, particle_masses=particle_masses, downsampling_factor=downsampling_factor,\ rp_bins=rp_bins_ggl, period=Lbox)[1]/1e12 ######## # parameter set output.append(param) return output
def calc_all_observables(param): model.param_dict.update(dict( zip(param_names, param))) ##update model.param_dict with pairs (param_names:params) c = Ngal_estimate(halocat, param) n_est = c.ngal_estimate() if n_est < 1e5 and n_est > 7.8e4: try: model.mock.populate() except: model.populate_mock(halocat) gc.collect() output = [] if model.mock.galaxy_table[ 'x'].size < 9.8e4 and model.mock.galaxy_table['x'].size > 8e4: pos_gals = return_xyz_formatted_array(*(model.mock.galaxy_table[ax] for ax in 'xyz'), period=Lbox) pos_gals = np.array(pos_gals, dtype=float) pos_gals_d = return_xyz_formatted_array(*(model.mock.galaxy_table[ax] for ax in 'xyz'), \ velocity=model.mock.galaxy_table['vz'], velocity_distortion_dimension='z',\ period=Lbox) ##redshift space distorted pos_gals_d = np.array(pos_gals_d, dtype=float) #ngals output.append(model.mock.galaxy_table['x'].size) #delta sigma deltasigma = delta_sigma(pos_gals, pos_part, particle_masses=particle_masses, downsampling_factor=downsampling_factor, rp_bins=rp_bins, period=Lbox) output.append(deltasigma[1]) output.append(deltasigma[0]) # wprp output.append(wp(pos_gals_d, r_wp, pi_max, period=Lbox)) # parameter set output.append(param) else: output = 1 return output
def calc_all_observables(param, seed=seed): model.param_dict.update(dict( zip(param_names, param))) ##update model.param_dict with pairs (param_names:params) try: model.mock.populate(seed=seed) except: model.populate_mock(halocat, seed=seed) gc.collect() output = [] pos_gals_d = return_xyz_formatted_array(*(model.mock.galaxy_table[ax] for ax in 'xyz'), \ velocity=model.mock.galaxy_table['vz'], velocity_distortion_dimension='z',\ period=Lbox) ##redshift space distorted pos_gals_d = np.array(pos_gals_d, dtype=float) pos_gals = return_xyz_formatted_array(*(model.mock.galaxy_table[ax] for ax in 'xyz'), period=Lbox) pos_gals = np.array(pos_gals, dtype=float) particle_masses = halocat.particle_mass total_num_ptcls_in_snapshot = halocat.num_ptcl_per_dim**3 downsampling_factor = total_num_ptcls_in_snapshot / float(num_ptcls_to_use) vpf = void_prob_func(pos_gals_d, r_vpf, random_sphere_centers=vpf_centers, period=Lbox) wprp = wp(pos_gals_d, r_wp, pi_max, period=Lbox) Pcic = np.bincount(counts_in_cylinders(pos_gals_d, pos_gals_d, proj_search_radius, \ cylinder_half_length, period=Lbox), minlength=100)[1:71]/float(pos_gals_d.shape[0]) Pcic_40 = np.add.reduceat(Pcic, sum_40) ggl = delta_sigma(pos_gals, ptclpos, particle_masses=particle_masses, downsampling_factor=downsampling_factor,\ rp_bins=rp_bins_ggl, period=Lbox)[1]/1e12 func = np.concatenate((np.array( (pos_gals_d.shape[0] / float(Lbox**3), )), wprp, ggl, vpf, Pcic_40)) output.append(func) # parameter set output.append(param) output.append(np.where(param - fid != 0)[0][0]) return output
def calc_ds(i): ptclpos = downsample_ptclpos(ptcl_accept_rate) num_ptcls_to_use = len(ptclpos) downsampling_factor = total_num_ptcls_in_snapshot / float(num_ptcls_to_use) return delta_sigma(pos_gals, ptclpos, particle_masses=particle_masses, downsampling_factor=downsampling_factor,\ rp_bins=rp_bins_ggl, period=Lbox)[1]/1e12
def get_deltasigma(galaxy_data, particle_data, min_sep=44, max_sep=2e3, binning='log', nbins=20, verbosity=1, downsampling_factor=1): if verbosity>0: print 'Will construct %s - %s \Delta \Sigma profile'%ctype # Decide on an appropriate binning scheme if (binning.lower()=='log'): rbins = np.logspace(np.log10(min_sep), np.log10(max_sep), nbins ) elif (binning.lower()=='linear'): rbins = np.linspace(min_sep, max_sep, nbins ) if verbosity>1: print 'Will use %s binning:'%binning, rbins # Parse the mask #mask1 = tools.choose_cs_mask(data,ctype[0]) #mask2 = tools.choose_cs_mask(data,ctype[1]) pos1 = pretending.return_xyz_formatted_array(particle_data['x'], particle_data['y'], particle_data['z']) #, mask = mask1) pos2 = pretending.return_xyz_formatted_array(galaxy_data['x'], galaxy_data['y'], galaxy_data['z']) #, mask = mask2) R = np.sqrt(np.array(rbins)[1:]*np.array(rbins)[:-1]) rp, DeltaSigma = pretending.delta_sigma(pos2, pos1, particle_data['mass'], downsampling_factor, rbins, info.Lbox, cosmology=info.cosmology, num_threads='max') return rp, DeltaSigma