Ejemplo n.º 1
0
def r200_match(i, index, mock, obs):

    dists = astro.ang_sep((mock.ra[i], mock.dec[i]), (obs.ra[index], obs.dec[index])) * 60.0

    new_index = np.where((dists - (1.0 * mock.r200[i])) <= 0.0)[0]

    if len(new_index) > 0:
        return index[new_index], dists[new_index]
    else:
       return [False], [False]
Ejemplo n.º 2
0
def r200_match(i, index, mock, obs):

    dists = astro.ang_sep((mock.ra[index], mock.dec[index]), (obs.ra[i], obs.dec[i])) * 60.0

    new_index = np.where((dists - (1.0 * mock.r200[index])) <= 0.0)[0]

    if len(new_index) > 0:
        dist_data = 1.0 - (dists[new_index] / mock.r200[index[new_index]]) ** 2  
        return index[new_index], comp.scale(dist_data, 0.0, np.sum(dist_data))
    else:
        return [], []
Ejemplo n.º 3
0
    def get_size(self, centre=None):

        if centre is None:
            centre = self.m_centre

        d_ang = np.mean(
            astro.ang_sep((self.mem.ra, self.mem.dec), (centre[0], centre[1])))

        self.size_arcm = d_ang * 60.0
        self.area_arcm = np.pi * self.size_arcm**2

        self.size_mpc = np.mean(self.mem.r)
        self.area_mpc = np.pi * self.size_mpc**2
Ejemplo n.º 4
0
    def get_size(self, centre = None):

        if centre is None:
            centre = self.m_centre
        
        d_ang = np.mean(astro.ang_sep((self.mem.ra, self.mem.dec),
                                      (centre[0], centre[1])))

        self.size_arcm = d_ang * 60.0
        self.area_arcm = np.pi * self.size_arcm ** 2

        self.size_mpc = np.mean(self.mem.r)
        self.area_mpc = np.pi * self.size_mpc ** 2
Ejemplo n.º 5
0
# read cluster file
data = np.genfromtxt(sys.argv[1], unpack = True,
                             dtype = 'float')
cluster = np.genfromtxt(sys.argv[2], unpack = True,
                             dtype = 'float')
cluster_num = float(sys.argv[3])
sncl = data[8, data[0] == cluster_num]

index = cluster[0] == cluster_num

# cluster properties
racl = np.median(cluster[4, index])
decl = np.median(cluster[5, index])
zcl = np.median(cluster[6, index])
dists = astro.ang_sep([cluster[4, index], cluster[5, index]], [racl,  decl]) * 60.0
area = np.pi * np.mean(dists) ** 2 # arcmin^2

# Mpc per arcmin scale
da = cosmo2.d_angdi(zcl, omega_m, omega_l) * cosmo2.d_H(h0)
mpca = astro.deg2rad(da / 60.0)

# coordinates wrt cluster center
gx = 60. * (racl - cluster[4, index]) * np.cos(astro.deg2rad(cluster[5, index]))
gy = 60. * (cluster[5, index] - decl)   # arcmin      

# adaptive kernel density map
gadk = ss.gaussian_kde(np.vstack([gx * mpca, gy * mpca]), bw_method = 'silverman')

xedges = np.linspace(-0.6, 0.6, 100)
yedges = np.linspace(-1.0, 1.0, 100)
Ejemplo n.º 6
0
for i in range(cluster.size):
    c_bin_count[c_rich_bin_index[i], c_z_bin_index[i]] += 1
for i in range(mock.size):
    m_bin_count[m_rich_bin_index[i], m_z_bin_index[i]] += 1
    if m_match_flag[i] == -1:
        #Find clusters that match primary matching conditions.
        index1 = np.where((c_match_flag == -1) &
                          (np.fabs(mock.z[i] - cluster.z) <= (z_factor * opts.delta_z * (1 + mock.z[i]))) &
                        (cluster.ra >= mock.minra[i]) & (cluster.ra <= mock.maxra[i]) &
                        (cluster.dec >= mock.mindec[i]) & (cluster.dec <= mock.maxdec[i]))[0]
        if len(index1) > 0:
            #Calculate the projected distance to halo centre for these clusters.
            dists = []
            for j in index1:
                dist = astro.ang_sep((mock.ra[i],  mock.dec[i]), (cluster.ra[j],cluster.dec[j])) * 60.0
                dists.extend([dist])
            dists = np.array(dists)
            #Find clusters within r200.
            index2 = np.where(dists <= mock.r200[i])[0]
            if len(index2) > 0:
                dists = dists[index2]
                index1 = index1[index2]
                #Check if any of these have the same N_gal value.
                index3 = np.where(cluster.rich[index1] == cluster.rich[index1[0]])[0]
                if len(index3) > 0:
                    dists = dists[index3]
                    index1 = index1[index3]
                    #Choose the cluster closest to the halo.
                    index4 = np.argmin(dists)
                    index1 = index1[index4]
Ejemplo n.º 7
0
for i in range(cluster.size):                                           
    c_bin_count[c_rich_bin_index[i], c_z_bin_index[i]] += 1
for i in range(mock.size):
    m_bin_count[m_rich_bin_index[i], m_z_bin_index[i]] += 1
    if m_match_flag[i] == -1:
        #Find clusters that match primary matching conditions.
        index1 = np.where((c_match_flag == -1) &
                          (np.fabs(mock.z[i] - cluster.z) <= (z_factor * opts.delta_z * (1 + mock.z[i]))) &
                        (cluster.ra >= mock.minra[i]) & (cluster.ra <= mock.maxra[i]) &
                        (cluster.dec >= mock.mindec[i]) & (cluster.dec <= mock.maxdec[i]))[0]
        if len(index1) > 0:       
            #Calculate the projected distance to halo centre for these clusters.
            dists = []
            for j in index1:
                dist = astro.ang_sep((mock.ra[i],  mock.dec[i]), (cluster.ra[j],cluster.dec[j])) * 60.0
                dists.extend([dist])
            dists = np.array(dists)
            #Find clusters within r200.            
            index2 = np.where(dists <= mock.r200[i])[0]
            if len(index2) > 0:
                dists = dists[index2]
                index1 = index1[index2]
                #Check if any of these have the same N_gal value.
                index3 = np.where(cluster.rich[index1] == cluster.rich[index1[0]])[0]
                if len(index3) > 0:
                    dists = dists[index3]
                    index1 = index1[index3]
                    #Choose the cluster closest to the halo.
                    index4 = np.argmin(dists)
                    index1 = index1[index4]