Beispiel #1
0
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
Beispiel #2
0
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
Beispiel #3
0
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
Beispiel #4
0
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
Beispiel #5
0

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