def __init__(self, z=0.3, m200=1e13, c200=5., gammadm=1., mstar=1e11, reff=5., ra=0., dec=0., sources=None, \
                 cosmo=wl_cosmology.default_cosmo):

        self.z = z
        self.cosmo = cosmo
        self.m200 = m200  # halo mass in M_Sun units
        self.mstar = mstar  # central point mass in M_Sun units
        self.rhocrit = wl_cosmology.rhoc(self.z, cosmo=self.cosmo)
        self.r200 = (self.m200 * 3. / 200. / (4. * pi) / self.rhocrit)**(
            1 / 3.)  #r200 in Mpc
        self.c200 = c200
        self.rs = self.r200 / self.c200
        self.reff = reff  # effective radius in kpc
        self.gammadm = gammadm
        self.angD = wl_cosmology.Dang(self.z, cosmo=self.cosmo)
        self.Mpc2deg = np.rad2deg(1. / self.angD)
        self.rs_ang = self.rs * self.Mpc2deg
        self.reff_ang = self.reff * self.Mpc2deg / 1000.
        self.halo_norm = self.m200 / gnfw.fast_M3d(self.r200, self.rs,
                                                   self.gammadm)
        self.S_bulge = self.mstar / self.reff**2 * 1e6
        self.sources = sources

        if ra is not None:
            self.ra = ra
        if dec is not None:
            self.dec = dec
    def __init__(self, z=0.3, m200=1e13, c200=5., mstar=1e11, reff=5., ra=0., dec=0., sources=None, \
                 cosmo=wl_cosmology.default_cosmo):


        self.z = z
        self.cosmo = cosmo
        self.m200 = m200 # halo mass in M_Sun units
        self.mstar = mstar # stellar mass in M_Sun units
        self.rhocrit = wl_cosmology.rhoc(self.z, cosmo=self.cosmo)
        self.r200 = (self.m200*3./200./(4.*pi)/self.rhocrit)**(1/3.) #r200 in Mpc
        self.c200 = c200
        self.rs = self.r200/self.c200
        self.reff = reff # effective radius in kpc
        self.angD = wl_cosmology.Dang(self.z, cosmo=self.cosmo)
        self.Mpc2deg = np.rad2deg(1./self.angD)
        self.rs_ang = self.rs*self.Mpc2deg
        self.reff_ang = self.reff*self.Mpc2deg/1000.
        self.S_s = self.m200/(np.log(1. + self.c200) - self.c200/(1. + self.c200))/(4.*pi*self.rs**2)
        self.S_bulge = self.mstar/self.reff**2*1e6
        self.sources = sources

        if ra is not None:
            self.ra = ra
        if dec is not None:
            self.dec = dec
    def __init__(self, z=0.3, m200=1e13, c200=5., mstar=1e11, reff=5., nser=4., nu=0., ra=0., dec=0., sources=None, \
                 cosmo=wl_cosmology.default_cosmo):

        import adcontr

        self.z = z
        self.cosmo = cosmo
        self.m200 = m200  # halo mass in M_Sun units
        self.mstar = mstar  # stellar mass in M_Sun units
        self.fbar = self.mstar / (self.mstar + self.m200)
        self.rhocrit = wl_cosmology.rhoc(self.z, cosmo=self.cosmo)
        self.r200 = (self.m200 * 3. / 200. / (4. * pi) / self.rhocrit)**(
            1 / 3.)  #r200 in Mpc
        self.c200 = c200
        self.rs = self.r200 / self.c200
        self.reff = reff  # effective radius in kpc
        self.nser = nser  # Sersic index
        self.nu = nu  # adiabatic contraction efficiency parameter
        self.angD = wl_cosmology.Dang(self.z, cosmo=self.cosmo)
        self.Mpc2deg = np.rad2deg(1. / self.angD)
        self.rs_ang = self.rs * self.Mpc2deg
        self.reff_ang = self.reff * self.Mpc2deg / 1000.
        self.S_h = self.m200 / self.rs**2
        self.S_bulge = self.mstar / self.reff**2 * 1e6
        self.sources = sources

        if ra is not None:
            self.ra = ra
        if dec is not None:
            self.dec = dec
    def __init__(self, z=0.3, m200=1e13, c200=5., mstar=1e11, ra=0., dec=0., sources=None, \
                 cosmo=wl_cosmology.default_cosmo):

        self.z = z
        self.cosmo = cosmo
        self.m200 = m200 # halo mass in M_Sun units
        self.mstar = mstar # central point mass in M_Sun units
        self.rhocrit = wl_cosmology.rhoc(self.z, cosmo=self.cosmo)
        self.r200 = (self.m200*3./200./(4.*pi)/self.rhocrit)**(1/3.) #r200 in Mpc
        self.c200 = c200
        self.rs = self.r200/self.c200
        self.angD = wl_cosmology.Dang(self.z, cosmo=self.cosmo)
        self.Mpc2deg = np.rad2deg(1./self.angD)
        self.rs_ang = self.rs*self.Mpc2deg
        self.S_s = self.m200/(np.log(1. + self.c200) - self.c200/(1. + self.c200))/(4.*pi*self.rs**2)
        self.sources = sources

        if ra is not None:
            self.ra = ra
        if dec is not None:
            self.dec = dec
    def __init__(self, z=0.3, m200=1e13, c200=5., alpha=1., mstar=1e11, ra=0., dec=0., sources=None, \
                 cosmo=wl_cosmology.default_cosmo):

        self.z = z
        self.cosmo = cosmo
        self.m200 = m200 # halo mass in M_Sun units
        self.mstar = mstar # central point mass in M_Sun units
        self.rhocrit = wl_cosmology.rhoc(self.z, cosmo=self.cosmo)
        self.r200 = (self.m200*3./200./(4.*pi)/self.rhocrit)**(1/3.) #r200 in Mpc
        self.c200 = c200
        self.r2 = self.r200/self.c200
        self.alpha = alpha
        self.angD = wl_cosmology.Dang(self.z, cosmo=self.cosmo)
        self.Mpc2deg = np.rad2deg(1./self.angD)
        self.r2_ang = self.r2*self.Mpc2deg
        self.halo_norm = self.m200/einasto.M3d(self.r200, self.r2, self.alpha)
        self.sources = sources

        if ra is not None:
            self.ra = ra
        if dec is not None:
            self.dec = dec
for line in lines[1:]:
    line = line.split()
    name = line[0]

    zd = float(line[1])
    zs_here = float(line[2])
    zs.append(zs_here)

    tein_here = float(line[3])
    tein_obs.append(tein_here)
    tein_err.append(0.1 * tein_here)

    lmchab_obs.append(float(line[6]))
    lmchab_err.append(float(line[7]))

    dd = wl_cosmology.Dang(zd)
    ds = wl_cosmology.Dang(zs_here)
    dds = wl_cosmology.Dang(zs_here, zd)

    arcsec2kpc = np.deg2rad(1. / 3600.) * dd * 1000.
    rhoc.append(wl_cosmology.rhoc(zd))

    rein_phys_here = tein_here * arcsec2kpc
    rein_phys.append(rein_phys_here)

    s_cr = c**2 / (4. * np.pi * G) * ds / dds / dd / Mpc / M_Sun * kpc**2

    mein_here = np.pi * rein_phys_here**2 * s_cr

    reff1 = float(line[4])
    nser1 = float(line[5])
 def S_cr(self, z):
     Ds = wl_cosmology.Dang(z, cosmo=self.cosmo)
     Dds = wl_cosmology.Dang(z, self.z, cosmo=self.cosmo)
     return c**2/(4.*pi*G)*Ds/Dds/self.angD*Mpc/M_Sun
Beispiel #8
0
from scipy.interpolate import splrep, splev
from astropy.io import fits as pyfits

calib_dir = '/Users/sonnen/hsc_weaklensing/hsc-unblinded-Aug2017/'

# reads in the shear calibration info
calib_file = h5py.File(calib_dir + 'hsc_16a_mandelbaum_shear.hdf5', 'r')

rmax = 0.5  # maximum radius for the WL analysis, in Mpc (physical)
rmin = 0.03  # minimum radius for the WL analysis, in Mpc (physical)

nz = 1001
zd_grid = np.linspace(0.01, 1., nz)
dd_grid = 0. * zd_grid
for i in range(nz):
    dd_grid[i] = wl_cosmology.Dang(zd_grid[i])

dd_spline = splrep(zd_grid, dd_grid)

# reads in the shape measurement and photo-z table
wl_table = h5py.File(
    '/gdrive/projects/hsc_weaklensing/HSC_S16A_2.0_minimal.hdf5', 'r')

# reads in the lens sample catalog
f = open('sdss_legacy_hscoverlap_mcut11.0.cat', 'r')
ra, dec, zd, mstar, mstar_err = np.loadtxt(f,
                                           usecols=(0, 1, 2, 3, 4),
                                           unpack=True)
f.close()

ngal = len(ra)
# defines the stellar profile
ein_frac = sersic.M2d(rein, nser, reff)


def bulge_M2d(R):
    return sersic.M2d(R, nser, reff * arcsec2kpc)


def bulge_Sigma(R):
    return sersic.Sigma(R, nser, reff * arcsec2kpc)


lmchab_obs = float(line[6])
lmchab_err = float(line[7])

dd = wl_cosmology.Dang(zd)
ds = wl_cosmology.Dang(zs)
dds = wl_cosmology.Dang(zs, zd)

rhoc = wl_cosmology.rhoc(
    zd)  # critical density of the Universe in M_Sun/Mpc**3

s_cr = c**2 / (
    4. * np.pi * G
) * ds / dds / dd / Mpc / M_Sun * kpc**2  # critical surface mass density in M_Sun/kpc**2

arcsec2kpc = arcsec2rad * dd * 1000.
rein_phys = rein * arcsec2kpc  # Einstein radius in kpc

nm200 = 30
nmstar = 30
 def S_cr(self, z):  # critical surface mass density in M_Sun/Mpc^2
     Ds = wl_cosmology.Dang(z, cosmo=self.cosmo)
     Dds = wl_cosmology.Dang(z, self.z, cosmo=self.cosmo)
     return c**2 / (4. * pi * G) * Ds / Dds / self.angD * Mpc / M_Sun
Beispiel #11
0
lnser_samp = nser_mu + nser_beta * (lmchab_samp - mchab_piv)
lreff_samp = reff_mu + reff_nu * (lnser_samp - np.log10(4.)) + reff_beta * (
    lmchab_samp - mchab_piv)

# prepares arrays to store values of theta_ein and the lensing cross-section for each point of the sample
tein_samp = np.zeros(nsamp)
crosssect_samp = np.zeros(nsamp)

for i in range(nsamp):  # loops over the sample

    if zs_samp[i] < zd_samp[i] + 0.01:
        # source is in front of the lens
        tein_samp[i] = 0.
        crosssect_samp[i] = 0.
    else:
        dd = wl_cosmology.Dang(zd_samp[i])
        rhoc = wl_cosmology.rhoc(
            zd_samp[i])  # critical density of the Universe in M_Sun/Mpc**3

        arcsec2kpc = arcsec2rad * dd * 1000.

        ds = wl_cosmology.Dang(zs_samp[i])
        dds = wl_cosmology.Dang(zs_samp[i], zd_samp[i])

        s_cr = c**2 / (
            4. * np.pi * G
        ) * ds / dds / dd / Mpc / M_Sun * kpc**2  # critical surface mass density, in M_Sun/kpc**2

        r200 = (10.**lm200_samp[i] * 3. / 200. /
                (4. * np.pi) / rhoc)**(1. / 3.) * 1000.
        c200 = 10.**lc200_samp[i]