Exemplo n.º 1
0
def Counts(gal_id,
           gal_field,
           z,
           R=10**np.linspace(1.2, 3.6, 13),
           delta_z=0.1,
           min_mass=9.415):

    from astropy.coordinates.sky_coordinate import SkyCoord
    from astropy import units as u

    #making a list of galaxies in within a redshift range of given z, in the selected field, and above the mass limit#
    lst_gal = []
    data_tmp = data_flagged[data_flagged['field'] == gal_field]

    #separatign the satellite galaxies into four bins based on mass#
    mask = ((np.abs(data_tmp['z_peak'] - z) <= delta_z) &
            (data_tmp['id'] != gal_id) & (data_tmp['lmass'] >= min_mass))
    lst_gal = data_tmp[mask]
    lst_gal1 = lst_gal[(lst_gal['lmass'] < 9.8)]
    lst_gal2 = lst_gal[((lst_gal['lmass'] < 10.3) & (lst_gal['lmass'] > 9.8))]
    lst_gal3 = lst_gal[((lst_gal['lmass'] < 10.8) & (lst_gal['lmass'] > 10.3))]
    lst_gal4 = lst_gal[((lst_gal['lmass'] < 11.8) & (lst_gal['lmass'] > 10.8))]

    #finding the various aperture radii in arcminutes based on given z#
    kpc_per_arcmin = cosmo.kpc_proper_per_arcmin(z)
    arcmin_per_kpc = kpc_per_arcmin**(-1)
    arcmin = arcmin_per_kpc * (R * u.kpc)

    #retrieving RA and DEC data of given galaxy#
    p1 = data_tmp[(data_tmp['id'] == gal_id)]
    #calculating distance in special ANGLE measure to each galaxy in lst_gal#
    sc0 = SkyCoord(p1['ra'] * u.deg, p1['dec'] * u.deg)
    sc1 = SkyCoord(lst_gal1['ra'] * u.deg, lst_gal1['dec'] * u.deg)
    sc2 = SkyCoord(lst_gal2['ra'] * u.deg, lst_gal2['dec'] * u.deg)
    sc3 = SkyCoord(lst_gal3['ra'] * u.deg, lst_gal3['dec'] * u.deg)
    sc4 = SkyCoord(lst_gal4['ra'] * u.deg, lst_gal4['dec'] * u.deg)
    sep1 = sc0.separation(sc1).to(u.arcmin)
    sep2 = sc0.separation(sc2).to(u.arcmin)
    sep3 = sc0.separation(sc3).to(u.arcmin)
    sep4 = sc0.separation(sc4).to(u.arcmin)

    #finding number of "sep's" within the list 'arcmin' already created#
    nn1 = np.empty(len(R))
    nn2 = np.empty(len(R))
    nn3 = np.empty(len(R))
    nn4 = np.empty(len(R))
    for ii, r in enumerate(arcmin):
        nn1[ii] = np.sum(sep1 <= r)
        nn2[ii] = np.sum(sep2 <= r)
        nn3[ii] = np.sum(sep3 <= r)
        nn4[ii] = np.sum(sep4 <= r)

    #returning four lists of counts pre radius with lower end number for lower mass bin#
    return [nn1, nn2, nn3, nn4]
Exemplo n.º 2
0
def Counts(gal_id, gal_field, z, R = 10**np.linspace(1.2,3.6,13), delta_z = 0.1, min_mass = 9.415):
    
    from astropy.coordinates.sky_coordinate import SkyCoord
    from astropy import units as u
    
    #making a list of galaxies in within a redshift range of given z, in the selected field, and above the mass limit#
    lst_gal = []
    data_tmp = data_flagged[data_flagged['field'] == gal_field]

    #separatign the satellite galaxies into four bins based on mass#
    mask = ((np.abs(data_tmp['z_peak'] - z) <= delta_z) & (data_tmp['id'] != gal_id) & (data_tmp['lmass'] >= min_mass))
    lst_gal = data_tmp[mask]
    lst_gal1 = lst_gal[(lst_gal['lmass'] < 9.8)]
    lst_gal2 = lst_gal[((lst_gal['lmass'] < 10.3) & (lst_gal['lmass'] > 9.8))]
    lst_gal3 = lst_gal[((lst_gal['lmass'] < 10.8) & (lst_gal['lmass'] > 10.3))]
    lst_gal4 = lst_gal[((lst_gal['lmass'] < 11.8) & (lst_gal['lmass'] > 10.8))]

    #finding the various aperture radii in arcminutes based on given z#
    kpc_per_arcmin = cosmo.kpc_proper_per_arcmin(z)
    arcmin_per_kpc = kpc_per_arcmin**(-1)
    arcmin = arcmin_per_kpc*(R*u.kpc)

    #retrieving RA and DEC data of given galaxy#
    p1 = data_tmp[(data_tmp['id'] == gal_id)]
    #calculating distance in special ANGLE measure to each galaxy in lst_gal#
    sc0 = SkyCoord(p1['ra']*u.deg, p1['dec']*u.deg)
    sc1 = SkyCoord(lst_gal1['ra']*u.deg, lst_gal1['dec']*u.deg)
    sc2 = SkyCoord(lst_gal2['ra']*u.deg, lst_gal2['dec']*u.deg)
    sc3 = SkyCoord(lst_gal3['ra']*u.deg, lst_gal3['dec']*u.deg)
    sc4 = SkyCoord(lst_gal4['ra']*u.deg, lst_gal4['dec']*u.deg)
    sep1 = sc0.separation(sc1).to(u.arcmin)
    sep2 = sc0.separation(sc2).to(u.arcmin)
    sep3 = sc0.separation(sc3).to(u.arcmin)
    sep4 = sc0.separation(sc4).to(u.arcmin)
    
    
    #finding number of "sep's" within the list 'arcmin' already created#
    nn1 = np.empty(len(R))
    nn2 = np.empty(len(R))
    nn3 = np.empty(len(R))
    nn4 = np.empty(len(R))
    for ii,r in enumerate(arcmin):
        nn1[ii] = np.sum(sep1 <= r)
        nn2[ii] = np.sum(sep2 <= r)
        nn3[ii] = np.sum(sep3 <= r)
        nn4[ii] = np.sum(sep4 <= r)

    #returning four lists of counts pre radius with lower end number for lower mass bin#
    return [nn1, nn2, nn3, nn4]
Exemplo n.º 3
0
def Counts(gal_id, gal_field, z, R = 10**np.linspace(1.2,3.6,13), delta_z = 0.1, min_mass = 9.415):
    
    from astropy.coordinates.sky_coordinate import SkyCoord
    from astropy import units as u
    
    #making a list of galaxies in within a redshift range of given z, in the selected field, and above the mass limit#
    lst_gal = []
    data_tmp = data_flagged[data_flagged['field'] == gal_field]

    mask = ((np.abs(data_tmp['z_peak'] - z) <= delta_z) & (data_tmp['id'] != gal_id) & (data_tmp['lmass'] >= min_mass))
    lst_gal = data_tmp[mask]

    #finding the various aperture radii in arcminutes based on given z#
    kpc_per_arcmin = cosmo.kpc_proper_per_arcmin(z)
    arcmin_per_kpc = kpc_per_arcmin**(-1)
    arcmin = arcmin_per_kpc*(R*u.kpc)

    #retrieving RA and DEC data of given galaxy#
    p1 = data_tmp[(data_tmp['id'] == gal_id)]
    #calculating distance in special ANGLE measure to each galaxy in lst_gal#
    sc0 = SkyCoord(p1['ra']*u.deg, p1['dec']*u.deg)
    sc = SkyCoord(lst_gal['ra']*u.deg, lst_gal['dec']*u.deg)
    sep = sc0.separation(sc)
    sep = sep.to(u.arcmin)
    
    
    #finding number of "sep's" within the list 'arcmin' already created#
    nn = np.empty(len(R))
    for ii,r in enumerate(arcmin):
        nn[ii] = np.sum(sep <= r)

    return nn
Exemplo n.º 4
0
def Counts(gal_id, gal_field, z, R = 10**np.linspace(1.2,3.6,13), delta_z = 0.1, min_mass = 9.415):
    
    #making a list of galaxies in within a redshift range of given z, in the selected field, and above the mass limit#
    lst_gal = []
    data_tmp = data[data['field'] == gal_field]

    #separating the potential satellites into star-forming(b) and quiescent(r) bins#
    mask = ((np.abs(data_tmp['z'] - z) <= delta_z) & (data_tmp['id'] != gal_id) & (data_tmp['lmass'] >= min_mass))
    lst_gal = data_tmp[mask]
    lst_galr = lst_gal[(((lst_gal['vj'] < 0.92) & (lst_gal['uv'] > 1.3)) | ((lst_gal['vj'] > 0.8) & (lst_gal['vj'] < 1.6) & (lst_gal['uv'] > (0.88*lst_gal['vj'] +0.49))))]
    lst_galb = lst_gal[(((lst_gal['vj'] < 0.92) & (lst_gal['uv'] < 1.3)) | ((lst_gal['vj'] > 0.8) & (lst_gal['vj'] < 1.6) & (lst_gal['uv'] < (0.88*lst_gal['vj'] +0.49))) | (lst_gal['vj']>1.5))]

    #finding the various aperture radii in arcminutes based on given z#
    kpc_per_arcmin = cosmo.kpc_proper_per_arcmin(z)
    arcmin_per_kpc = kpc_per_arcmin**(-1)
    arcmin = arcmin_per_kpc*(R*u.kpc)

    #retrieving RA and DEC data of given galaxy#
    p1 = data_tmp[(data_tmp['id'] == gal_id)]
    #calculating distance in special ANGLE measure to each galaxy in lst_gal#
    sc0 = SkyCoord(p1['ra']*u.deg, p1['dec']*u.deg)
    sc1 = SkyCoord(lst_galr['ra']*u.deg, lst_galr['dec']*u.deg)
    sc2 = SkyCoord(lst_galb['ra']*u.deg, lst_galb['dec']*u.deg)
    sep1 = sc0.separation(sc1).to(u.arcmin)
    sep2 = sc0.separation(sc2).to(u.arcmin)    
    
    #finding number of "sep's" within the list 'arcmin' already created#
    nnr = np.empty(len(R))
    nnb = np.empty(len(R))
    for ii,r in enumerate(arcmin):
        nnr[ii] = np.sum(sep1 <= r)
        nnb[ii] = np.sum(sep2 <= r)

    return [nnr, nnb]
Exemplo n.º 5
0
def rand_counts(gal_field,
                z,
                R=10**np.linspace(1.2, 3.6, 13),
                delta_z=0.1,
                min_mass=9.415):
    #picking random location for galaxy number density#
    if gal_field == 'AEGIS':
        ra1 = random.uniform(3.746000, 3.756821)
        dec1 = random.uniform(0.920312, 0.925897)
    elif gal_field == 'COSMOS':
        ra1 = random.uniform(2.619737, 2.620718)
        dec1 = random.uniform(0.038741, 0.043811)
    elif gal_field == 'GOODS-N':
        ra1 = random.uniform(3.298072, 3.307597)
        dec1 = random.uniform(1.084787, 1.087936)
    elif gal_field == 'GOODS-S':
        ra1 = random.uniform(0.925775, 0.929397)
        dec1 = random.uniform(-0.487098, -0.483591)
    elif gal_field == 'UDS':
        ra1 = random.uniform(0.59815, 0.602889)
        dec1 = random.uniform(-0.091376, -0.090305)

    from astropy.coordinates.sky_coordinate import SkyCoord
    from astropy import units as u

    #switching ra and dec to degrees#
    ra1 = ra1 * (180.0 / math.pi)
    dec1 = dec1 * (180.0 / math.pi)

    #making a list of galaxies in within a redshift range of given z#
    lst_gal = []
    data_tmp = data_flagged[data_flagged['field'] == gal_field]

    mask = (np.abs(data_tmp['z_peak'] - z) <= delta_z) & (data_tmp['lmass'] >=
                                                          min_mass)
    lst_gal = data_tmp[mask]

    #converting radius R (kpc) to radians at given redshift z#
    kpc_per = cosmo.kpc_proper_per_arcmin(z)
    arcmin_per = kpc_per**(-1)
    arcmin = arcmin_per * (R * u.kpc)

    #retrieving RA and DEC data of given galaxy#
    sc0 = SkyCoord(ra1 * u.deg, dec1 * u.deg)
    sc = SkyCoord(lst_gal['ra'] * u.deg, lst_gal['dec'] * u.deg)
    sep = sc.separation(sc0)
    sep = sep.to(u.arcmin)

    nn = np.empty(len(R))
    for ii, r in enumerate(arcmin):
        nn[ii] = np.sum(sep <= r)

    return nn
Exemplo n.º 6
0
def rand_counts(gal_field, z, R = 10**np.linspace(1.2,3.6,13), delta_z = 0.1, min_mass = 9.415):
    #picking random location for galaxy number density#
    if gal_field == 'AEGIS':
        ra1 = random.uniform(3.746000, 3.756821)
        dec1 = random.uniform(0.920312, 0.925897)
    elif gal_field == 'COSMOS':
        ra1 = random.uniform(2.619737, 2.620718)
        dec1 = random.uniform(0.038741, 0.043811)
    elif gal_field == 'GOODS-N':
        ra1 = random.uniform(3.298072, 3.307597)
        dec1 = random.uniform(1.084787, 1.087936)
    elif gal_field == 'GOODS-S':
        ra1 = random.uniform(0.925775, 0.929397)
        dec1 = random.uniform(-0.487098, -0.483591)
    elif gal_field == 'UDS':
        ra1 = random.uniform(0.59815, 0.602889)
        dec1 = random.uniform(-0.091376, -0.090305)
    
    #switching ra and dec to degrees#
    ra1 = ra1*(180.0/math.pi)
    dec1 = dec1*(180.0/math.pi)
    
    #making a list of galaxies in within a redshift range of given z, in the selected field, and above the mass limit#
    lst_gal = []
    data_tmp = data[data['field'] == gal_field]

    mask = ((np.abs(data_tmp['z'] - z) <= delta_z) & (data_tmp['lmass'] >= min_mass))
    lst_gal = data_tmp[mask]
    lst_galr = lst_gal[(((lst_gal['vj'] < 0.92) & (lst_gal['uv'] > 1.3)) | ((lst_gal['vj'] > 0.8) & (lst_gal['vj'] < 1.6) & (lst_gal['uv'] > (0.88*lst_gal['vj'] +0.49))))]
    lst_galb = lst_gal[(((lst_gal['vj'] < 0.92) & (lst_gal['uv'] < 1.3)) | ((lst_gal['vj'] > 0.8) & (lst_gal['vj'] < 1.6) & (lst_gal['uv'] < (0.88*lst_gal['vj'] +0.49))) | (lst_gal['vj']>1.5))]

    #finding the various aperture radii in arcminutes based on given z#
    kpc_per_arcmin = cosmo.kpc_proper_per_arcmin(z)
    arcmin_per_kpc = kpc_per_arcmin**(-1)
    arcmin = arcmin_per_kpc*(R*u.kpc)

    #calculating distance in special ANGLE measure to each galaxy in lst_gal#
    sc0 = SkyCoord(ra1*u.deg, dec1*u.deg)
    sc1 = SkyCoord(lst_galr['ra']*u.deg, lst_galr['dec']*u.deg)
    sc2 = SkyCoord(lst_galb['ra']*u.deg, lst_galb['dec']*u.deg)
    sep1 = sc0.separation(sc1).to(u.arcmin)
    sep2 = sc0.separation(sc2).to(u.arcmin)
    
    #finding number of "sep's" within the list 'arcmin' already created#
    nn1 = np.empty(len(R))
    nn2 = np.empty(len(R))
    for ii,r in enumerate(arcmin):
        nn1[ii] = np.sum(sep1 <= r)
        nn2[ii] = np.sum(sep2 <= r)

    #nn1 is density list for quiescent, nn2 is for star-forming#
    return [nn1, nn2]
Exemplo n.º 7
0
def listcord2center(coord_list):
    """
    Return the center of a list of coordinates. This is 
    done by averaging cartesian coordinates to avoid 
    looping in RA-Dec.
    
    Parameters
    ----------
    - coord_list (SkyCoord list): list of sky coordinates

    Outputs
    --------
    - center (SkyCoord): SkyCoord object, center of the list
    """

    # Get the cartesian coordinates
    x = coord_list.cartesian.x
    y = coord_list.cartesian.y
    z = coord_list.cartesian.z

    # Average the cartesian coordinates
    x_m = np.mean(x)
    y_m = np.mean(y)
    z_m = np.mean(z)

    # Transform to sky coordinates
    r, lat, lon = cartesian_to_spherical(x_m, y_m, z_m)
    center_guess = SkyCoord(lon, lat, frame='icrs')

    # Perform distance minimisation to make sure it is ok
    def fun(par):
        c = SkyCoord(par[0] * u.deg, par[1] * u.deg, frame='icrs')
        dist = coord_list.separation(c)
        return np.sum(dist.value**2)

    p_guess = np.array(
        [center_guess.ra.to_value('deg'),
         center_guess.dec.to_value('deg')])
    res = minimize(fun, p_guess)
    center = SkyCoord(res.x[0] * u.deg, res.x[1] * u.deg, frame='icrs')

    # Sanity check
    if res.success is not True:
        print('!!! WARNING: not sure I found the coordinates barycenter !!!')
        print('Separation between cartesian center and my center: ')
        print(center.separation(center_guess).to_value('deg'), 'deg')
        print('Center: ')
        print(center)

    return center
Exemplo n.º 8
0
def Counts_q(gal_id,
             gal_field,
             z,
             R=10**np.linspace(1.2, 3.6, 13),
             delta_z=0.1,
             min_mass=9.415):

    #making a list of galaxies in within a redshift range of given z, in the selected field, and above the mass limit#
    lst_gal = []
    data_tmp = data1[data1['field'] == gal_field]

    mask = ((np.abs(data_tmp['z'] - z) <= delta_z) & (data_tmp['id'] != gal_id)
            & (data_tmp['lmass'] >= min_mass))
    #making list of satellites in total and list of satellites that are quiescent#
    lst_gal = data_tmp[mask]
    lst_galr = lst_gal[(((lst_gal['vj'] < 0.92) & (lst_gal['uv'] > 1.3)) |
                        ((lst_gal['vj'] > 0.8) & (lst_gal['vj'] < 1.6) &
                         (lst_gal['uv'] > (0.88 * lst_gal['vj'] + 0.49))))]

    #finding the various aperture radii in arcminutes based on given z#
    kpc_per_arcmin = cosmo.kpc_proper_per_arcmin(z)
    arcmin_per_kpc = kpc_per_arcmin**(-1)
    arcmin = arcmin_per_kpc * (R * u.kpc)

    #retrieving RA and DEC data of given galaxy#
    p1 = data_tmp[(data_tmp['id'] == gal_id)]
    #calculating distance in special ANGLE measure to each galaxy in lst_gal#
    sc0 = SkyCoord(p1['ra'] * u.deg, p1['dec'] * u.deg)
    sc1 = SkyCoord(lst_galr['ra'] * u.deg, lst_galr['dec'] * u.deg)
    sc2 = SkyCoord(lst_gal['ra'] * u.deg, lst_gal['dec'] * u.deg)
    sep1 = sc0.separation(sc1).to(u.arcmin)
    sep2 = sc0.separation(sc2).to(u.arcmin)

    #finding number of "sep's" within the list 'arcmin' already created#
    nnr = np.empty(len(R))
    nn = np.empty(len(R))
    for ii, r in enumerate(arcmin):
        nnr[ii] = np.sum(sep1 <= r)
        nn[ii] = np.sum(sep2 <= r)
    lst_q = []
    #calculating quiescent percentage and adding it to a list#
    for i in range(len(nnr)):
        #filtering out (making a 5 that later gets ignored) results that divide by 0#
        if nn[i] == 0:
            lst_q.append(5)
        else:
            lst_q.append(nnr[i] / nnb[i])
    return lst_q
Exemplo n.º 9
0
def rand_counts(gal_field, z, R = 10**np.linspace(1.2,3.6,13), delta_z = 0.1, min_mass = 9.415):
    #picking random location for galaxy number density#
    if gal_field == 'AEGIS':
        ra1 = random.uniform(3.746000, 3.756821)
        dec1 = random.uniform(0.920312, 0.925897)
    elif gal_field == 'COSMOS':
        ra1 = random.uniform(2.619737, 2.620718)
        dec1 = random.uniform(0.038741, 0.043811)
    elif gal_field == 'GOODS-N':
        ra1 = random.uniform(3.298072, 3.307597)
        dec1 = random.uniform(1.084787, 1.087936)
    elif gal_field == 'GOODS-S':
        ra1 = random.uniform(0.925775, 0.929397)
        dec1 = random.uniform(-0.487098, -0.483591)
    elif gal_field == 'UDS':
        ra1 = random.uniform(0.59815, 0.602889)
        dec1 = random.uniform(-0.091376, -0.090305)
    
    from astropy.coordinates.sky_coordinate import SkyCoord
    from astropy import units as u

    #switching ra and dec to degrees#
    ra1 = ra1*(180.0/math.pi)
    dec1 = dec1*(180.0/math.pi)
    
    #making a list of galaxies in within a redshift range of given z#
    lst_gal = []
    data_tmp = data_flagged[data_flagged['field'] == gal_field]

    mask = (np.abs(data_tmp['z_peak'] - z) <= delta_z) & (data_tmp['lmass'] >= min_mass)
    lst_gal = data_tmp[mask]

    #converting radius R (kpc) to radians at given redshift z#
    kpc_per = cosmo.kpc_proper_per_arcmin(z)
    arcmin_per = kpc_per**(-1)
    arcmin = arcmin_per*(R*u.kpc)

    #retrieving RA and DEC data of given galaxy#
    sc0 = SkyCoord(ra1*u.deg, dec1*u.deg)
    sc = SkyCoord(lst_gal['ra']*u.deg, lst_gal['dec']*u.deg)
    sep = sc.separation(sc0)
    sep = sep.to(u.arcmin)
    
    nn = np.empty(len(R))
    for ii,r in enumerate(arcmin):
        nn[ii] = np.sum(sep <= r)
    
    return nn
Exemplo n.º 10
0
    def _trace_back_obj(self, o, c, t):
        """
		computes minimum time and distance of object trajectory with that of c
		Arguments:
		o: object, SkyCoord
		c: object, SkyCoord, presumably cluster center
		t: time vector in years over which to perform calculations
		Returns:
			dict with keys: d_min, t_min and tol
		Referenct:
		https://arxiv.org/pdf/2005.04762.pdf 
		"""

        #function to constrain dec between -90 and 90 (argument in radians)
        fix_lat = np.vectorize(lambda x:  x if x <= np.pi/2.0 else \
         ( np.pi-x if x <=3.0*np.pi/2.0 else  x-2.0*np.pi))

        # get the ra's and dec's of the two objects at time t
        # relying on astropy.units to do proper conversion to degrees
        o_ra = (o.ra + o.pm_ra_cosdec * t).wrap_at(360 * u.degree)
        c_ra = (c.ra + c.pm_ra * t).wrap_at(360 * u.degree)

        o_dec = coord.Angle(
            fix_lat((o.dec + o.pm_dec * t).radian % (2.0 * np.pi)) * u.radian)
        c_dec = coord.Angle(
            fix_lat((c.dec + c.pm_dec * t).radian % (2.0 * np.pi)) * u.radian)

        #sky coords at time t for both, using constant distance:
        o_t = SkyCoord(ra=o_ra, dec=o_dec, distance=o.distance)
        c_t = SkyCoord(ra=c_ra, dec=c_dec, distance=c.distance)

        #angular separation as function of time
        sep = o_t.separation(c_t)

        #find minimum separation and time
        min_i = sep.argmin()
        d_min = o_t[min_i].separation(c_t[min_i])
        t_min = t[min_i]

        #calculate the tolerance (see equation 1 in reference)
        tol = 10 + 1.3 * c.separation(o) / (1 * u.degree)

        return {
            "t_min": t_min,
            "d_min": d_min,
            "tol": tol,
            'tracesback': (d_min / (1.0 * u.arcminute)) <= tol
        }
Exemplo n.º 11
0
def Counts_q(gal_id, gal_field, z, R=10 ** np.linspace(1.2, 3.6, 13), delta_z=0.1, min_mass=9.415):

    # making a list of galaxies in within a redshift range of given z, in the selected field, and above the mass limit#
    lst_gal = []
    data_tmp = data1[data1["field"] == gal_field]

    mask = (np.abs(data_tmp["z"] - z) <= delta_z) & (data_tmp["id"] != gal_id) & (data_tmp["lmass"] >= min_mass)
    # making list of satellites in total and list of satellites that are quiescent#
    lst_gal = data_tmp[mask]
    lst_galr = lst_gal[
        (
            ((lst_gal["vj"] < 0.92) & (lst_gal["uv"] > 1.3))
            | ((lst_gal["vj"] > 0.8) & (lst_gal["vj"] < 1.6) & (lst_gal["uv"] > (0.88 * lst_gal["vj"] + 0.49)))
        )
    ]

    # finding the various aperture radii in arcminutes based on given z#
    kpc_per_arcmin = cosmo.kpc_proper_per_arcmin(z)
    arcmin_per_kpc = kpc_per_arcmin ** (-1)
    arcmin = arcmin_per_kpc * (R * u.kpc)

    # retrieving RA and DEC data of given galaxy#
    p1 = data_tmp[(data_tmp["id"] == gal_id)]
    # calculating distance in special ANGLE measure to each galaxy in lst_gal#
    sc0 = SkyCoord(p1["ra"] * u.deg, p1["dec"] * u.deg)
    sc1 = SkyCoord(lst_galr["ra"] * u.deg, lst_galr["dec"] * u.deg)
    sc2 = SkyCoord(lst_gal["ra"] * u.deg, lst_gal["dec"] * u.deg)
    sep1 = sc0.separation(sc1).to(u.arcmin)
    sep2 = sc0.separation(sc2).to(u.arcmin)

    # finding number of "sep's" within the list 'arcmin' already created#
    nnr = np.empty(len(R))
    nn = np.empty(len(R))
    for ii, r in enumerate(arcmin):
        nnr[ii] = np.sum(sep1 <= r)
        nn[ii] = np.sum(sep2 <= r)
    lst_q = []
    # calculating quiescent percentage and adding it to a list#
    for i in range(len(nnr)):
        # filtering out (making a 5 that later gets ignored) results that divide by 0#
        if nn[i] == 0:
            lst_q.append(5)
        else:
            lst_q.append(nnr[i] / nnb[i])
    return lst_q
Exemplo n.º 12
0
def Counts(gal_id,
           gal_field,
           z,
           R=10**np.linspace(1.2, 3.6, 13),
           delta_z=0.1,
           min_mass=9.415):

    from astropy.coordinates.sky_coordinate import SkyCoord
    from astropy import units as u

    #making a list of galaxies in within a redshift range of given z, in the selected field, and above the mass limit#
    lst_gal = []
    data_tmp = data_flagged[data_flagged['field'] == gal_field]

    mask = ((np.abs(data_tmp['z_peak'] - z) <= delta_z) &
            (data_tmp['id'] != gal_id) & (data_tmp['lmass'] >= min_mass))
    lst_gal = data_tmp[mask]

    #finding the various aperture radii in arcminutes based on given z#
    kpc_per_arcmin = cosmo.kpc_proper_per_arcmin(z)
    arcmin_per_kpc = kpc_per_arcmin**(-1)
    arcmin = arcmin_per_kpc * (R * u.kpc)

    #retrieving RA and DEC data of given galaxy#
    p1 = data_tmp[(data_tmp['id'] == gal_id)]
    #calculating distance in special ANGLE measure to each galaxy in lst_gal#
    sc0 = SkyCoord(p1['ra'] * u.deg, p1['dec'] * u.deg)
    sc = SkyCoord(lst_gal['ra'] * u.deg, lst_gal['dec'] * u.deg)
    sep = sc0.separation(sc)
    sep = sep.to(u.arcmin)

    #finding number of "sep's" within the list 'arcmin' already created#
    nn = np.empty(len(R))
    for ii, r in enumerate(arcmin):
        nn[ii] = np.sum(sep <= r)

    return nn
Exemplo n.º 13
0
def rand_counts(gal_field,
                z,
                R=10**np.linspace(1.2, 3.6, 13),
                delta_z=0.1,
                min_mass=9.415):
    #picking random location for galaxy number density#
    if gal_field == 'AEGIS':
        ra1 = random.uniform(3.746000, 3.756821)
        dec1 = random.uniform(0.920312, 0.925897)
    elif gal_field == 'COSMOS':
        ra1 = random.uniform(2.619737, 2.620718)
        dec1 = random.uniform(0.038741, 0.043811)
    elif gal_field == 'GOODS-N':
        ra1 = random.uniform(3.298072, 3.307597)
        dec1 = random.uniform(1.084787, 1.087936)
    elif gal_field == 'GOODS-S':
        ra1 = random.uniform(0.925775, 0.929397)
        dec1 = random.uniform(-0.487098, -0.483591)
    elif gal_field == 'UDS':
        ra1 = random.uniform(0.59815, 0.602889)
        dec1 = random.uniform(-0.091376, -0.090305)

    from astropy.coordinates.sky_coordinate import SkyCoord
    from astropy import units as u

    #switching ra and dec to degrees#
    ra1 = ra1 * (180.0 / math.pi)
    dec1 = dec1 * (180.0 / math.pi)

    #making a list of galaxies in within a redshift range of given z, in the selected field, and above the mass limit#
    lst_gal = []
    data_tmp = data_flagged[data_flagged['field'] == gal_field]

    #binning the satellites based on mass#
    mask = ((np.abs(data_tmp['z_peak'] - z) <= delta_z) &
            (data_tmp['lmass'] >= min_mass))
    lst_gal = data_tmp[mask]
    lst_gal1 = lst_gal[(lst_gal['lmass'] < 9.8)]
    lst_gal2 = lst_gal[((lst_gal['lmass'] < 10.3) & (lst_gal['lmass'] > 9.8))]
    lst_gal3 = lst_gal[((lst_gal['lmass'] < 10.8) & (lst_gal['lmass'] > 10.3))]
    lst_gal4 = lst_gal[((lst_gal['lmass'] < 11.8) & (lst_gal['lmass'] > 10.8))]

    #finding the various aperture radii in arcminutes based on given z#
    kpc_per_arcmin = cosmo.kpc_proper_per_arcmin(z)
    arcmin_per_kpc = kpc_per_arcmin**(-1)
    arcmin = arcmin_per_kpc * (R * u.kpc)

    #calculating distance in special ANGLE measure to each galaxy in lst_gal#
    sc0 = SkyCoord(ra1 * u.deg, dec1 * u.deg)
    sc1 = SkyCoord(lst_gal1['ra'] * u.deg, lst_gal1['dec'] * u.deg)
    sc2 = SkyCoord(lst_gal2['ra'] * u.deg, lst_gal2['dec'] * u.deg)
    sc3 = SkyCoord(lst_gal3['ra'] * u.deg, lst_gal3['dec'] * u.deg)
    sc4 = SkyCoord(lst_gal4['ra'] * u.deg, lst_gal4['dec'] * u.deg)
    sep1 = sc0.separation(sc1).to(u.arcmin)
    sep2 = sc0.separation(sc2).to(u.arcmin)
    sep3 = sc0.separation(sc3).to(u.arcmin)
    sep4 = sc0.separation(sc4).to(u.arcmin)

    #finding number of "sep's" within the list 'arcmin' already created#
    nn1 = np.empty(len(R))
    nn2 = np.empty(len(R))
    nn3 = np.empty(len(R))
    nn4 = np.empty(len(R))
    for ii, r in enumerate(arcmin):
        nn1[ii] = np.sum(sep1 <= r)
        nn2[ii] = np.sum(sep2 <= r)
        nn3[ii] = np.sum(sep3 <= r)
        nn4[ii] = np.sum(sep4 <= r)

    #returning four lists of counts per radius with low end number for low mass bin#
    return [nn1, nn2, nn3, nn4]
Exemplo n.º 14
0
def rand_counts(gal_field, z, R = 10**np.linspace(1.2,3.6,13), delta_z = 0.1, min_mass = 9.415):
    #picking random location for galaxy number density#
    if gal_field == 'AEGIS':
        ra1 = random.uniform(3.746000, 3.756821)
        dec1 = random.uniform(0.920312, 0.925897)
    elif gal_field == 'COSMOS':
        ra1 = random.uniform(2.619737, 2.620718)
        dec1 = random.uniform(0.038741, 0.043811)
    elif gal_field == 'GOODS-N':
        ra1 = random.uniform(3.298072, 3.307597)
        dec1 = random.uniform(1.084787, 1.087936)
    elif gal_field == 'GOODS-S':
        ra1 = random.uniform(0.925775, 0.929397)
        dec1 = random.uniform(-0.487098, -0.483591)
    elif gal_field == 'UDS':
        ra1 = random.uniform(0.59815, 0.602889)
        dec1 = random.uniform(-0.091376, -0.090305)
    
    from astropy.coordinates.sky_coordinate import SkyCoord
    from astropy import units as u

    #switching ra and dec to degrees#
    ra1 = ra1*(180.0/math.pi)
    dec1 = dec1*(180.0/math.pi)
    
    #making a list of galaxies in within a redshift range of given z, in the selected field, and above the mass limit#
    lst_gal = []
    data_tmp = data_flagged[data_flagged['field'] == gal_field]

    #binning the satellites based on mass#
    mask = ((np.abs(data_tmp['z_peak'] - z) <= delta_z) & (data_tmp['lmass'] >= min_mass))
    lst_gal = data_tmp[mask]
    lst_gal1 = lst_gal[(lst_gal['lmass'] < 9.8)]
    lst_gal2 = lst_gal[((lst_gal['lmass'] < 10.3) & (lst_gal['lmass'] > 9.8))]
    lst_gal3 = lst_gal[((lst_gal['lmass'] < 10.8) & (lst_gal['lmass'] > 10.3))]
    lst_gal4 = lst_gal[((lst_gal['lmass'] < 11.8) & (lst_gal['lmass'] > 10.8))]

    #finding the various aperture radii in arcminutes based on given z#
    kpc_per_arcmin = cosmo.kpc_proper_per_arcmin(z)
    arcmin_per_kpc = kpc_per_arcmin**(-1)
    arcmin = arcmin_per_kpc*(R*u.kpc)

    #calculating distance in special ANGLE measure to each galaxy in lst_gal#
    sc0 = SkyCoord(ra1*u.deg, dec1*u.deg)
    sc1 = SkyCoord(lst_gal1['ra']*u.deg, lst_gal1['dec']*u.deg)
    sc2 = SkyCoord(lst_gal2['ra']*u.deg, lst_gal2['dec']*u.deg)
    sc3 = SkyCoord(lst_gal3['ra']*u.deg, lst_gal3['dec']*u.deg)
    sc4 = SkyCoord(lst_gal4['ra']*u.deg, lst_gal4['dec']*u.deg)
    sep1 = sc0.separation(sc1).to(u.arcmin)
    sep2 = sc0.separation(sc2).to(u.arcmin)
    sep3 = sc0.separation(sc3).to(u.arcmin)
    sep4 = sc0.separation(sc4).to(u.arcmin)
    
    #finding number of "sep's" within the list 'arcmin' already created#
    nn1 = np.empty(len(R))
    nn2 = np.empty(len(R))
    nn3 = np.empty(len(R))
    nn4 = np.empty(len(R))
    for ii,r in enumerate(arcmin):
        nn1[ii] = np.sum(sep1 <= r)
        nn2[ii] = np.sum(sep2 <= r)
        nn3[ii] = np.sum(sep3 <= r)
        nn4[ii] = np.sum(sep4 <= r)

    #returning four lists of counts per radius with low end number for low mass bin#
    return [nn1, nn2, nn3, nn4]