Day 3 Solutions

[63]:
#loading the required packages
%matplotlib inline
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from scipy.spatial import cKDTree
from astropy.cosmology import FlatLambdaCDM
import glob

[74]:
def get_xyz(ra, dec):
    ra = ra*np.pi/180.
    dec = dec*np.pi/180.
    x = np.cos(dec)*np.cos(ra)
    y = np.cos(dec)*np.sin(ra)
    z = np.sin(dec)
    return x, y, z

[75]:
print(get_xyz(30,60))
(0.43301270189221946, 0.25, 0.8660254037844386)
[64]:
# selection cut on the lens sample
def lens_select(zmin=0.1, zmax=0.33, lammin=55, lammax=100):
    #please check the file path properly
    data = pd.read_csv('/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/redmapper.dat', delim_whitespace=1)
    #sample selection cut
    idx  = (data['lambda']>lammin) & (data['lambda']<=lammax)
    idx  = idx & (data['zred']>zmin) & (data['zred']<=zmax)
    ra   = data['ra'].values[idx]
    dec  = data['dec'].values[idx]
    zred = data['zred'].values[idx]
    #as we have no weights to apply we set them to unity
    wgt  = ra*1.0/ra
    print('number of lenses=%d'%len(ra))
    return ra, dec, zred, wgt

[ ]:

[65]:
# sanity cheaks on the source files
def read_sources(ifil):
    # various columns in sources
    # ragal, decgal, e1gal, e2gal, wgal, rms_egal, mgal, c1gal, c2gal, R2gal, zphotgal
    data = pd.read_csv(ifil, delim_whitespace=1).values
    zphotgal = data[:,-1]
    # sanity checks on the sources data
    idx = (np.sum(np.isnan(data), axis=1)==0) &  (zphotgal>0)
    datagal = np.zeros((np.sum(idx),7))
    datagal[:,:6] = data[idx,:6]
    datagal[:,6]  = data[idx,-1]
    # collects only -  ragal, decgal, e1gal, e2gal, wgal, rms_egal, zphotgal
    return datagal
[66]:
# following surhud's lectures
def get_et(lra, ldec, sra, sdec, se1, se2):
    lra  = lra*np.pi/180
    ldec = ldec*np.pi/180
    sra  = sra*np.pi/180
    sdec = sdec*np.pi/180

    c_theta = np.cos(ldec)*np.cos(sdec)*np.cos(lra - sra) + np.sin(ldec)*np.sin(sdec)
    s_theta = np.sqrt(1-c_theta**2)

    # phi to get the compute the tangential shear
    c_phi   = np.cos(ldec)*np.sin(sra - lra)*1.0/s_theta
    s_phi   = (-np.sin(ldec)*np.cos(sdec) + np.cos(ldec)*np.cos(sra - lra)*np.sin(sdec))*1.0/s_theta
    # tangential shear
    e_t     = - se1*(2*c_phi**2 -1) - se2*(2*c_phi * s_phi)

    return e_t
[67]:
print(get_et(lra=0, ldec=0, sra=0.123, sdec=0.045, se1 = 4.5e-2, se2 = 1.7e-2))
-0.04534629189830734
[70]:
def get_sigma_crit_inv(lzred, szred, cc):
    # some important constants for the sigma crit computations
    gee = 4.301e-9 #km^2 Mpc M_sun^-1 s^-2 gravitational constant
    cee = 3e5 #km s^-1
    # sigma_crit_calculations for a given lense-source pair
    sigm_crit_inv = cc.angular_diameter_distance(lzred).value * cc.angular_diameter_distance_z1z2(lzred, szred).value * (1.0 + lzred)**2 * 1.0/cc.angular_diameter_distance(szred).value
    sigm_crit_inv = sigm_crit_inv * 4*np.pi*gee*1.0/cee**2
    sigm_crit_inv = 1e12*sigm_crit_inv #esd's are in pc not in Mpc

    return sigm_crit_inv
[71]:
from astropy.cosmology import FlatLambdaCDM
cc = FlatLambdaCDM(H0=100, Om0=0.999)
print(get_sigma_crit_inv(lzred=0.33, szred=0.8, cc=cc))
0.00030436585298495184
[1]:

def run_pipe(Omegam=0.315, rmin=0.2, rmax=2.0, nbins=10, zdiff=0.4, outputfile = 'iagrg_dsigma.dat'): #set the cosmology with omegaM parameter cc = FlatLambdaCDM(H0=100, Om0=Omegam) # fixing H0=100 to set units in Mpc h-1 # set the projected radial binning rmin = rmin rmax = rmax nbins = nbins #10 radial bins for our case rbins = np.logspace(np.log10(rmin), np.log10(rmax), nbins + 1) rdiff = np.log10(rbins[1]*1.0/rbins[0]) # initializing arrays for signal compuations sumdsig_num = np.zeros(len(rbins[:-1])) sumdsigsq_num = np.zeros(len(rbins[:-1])) sumwls = np.zeros(len(rbins[:-1])) sumwls_resp = np.zeros(len(rbins[:-1])) # getting the lenses data lra, ldec, lred, lwgt = lens_select(zmin=0.1, zmax=0.33, lammin=55, lammax=100) # convert lense ra and dec into x,y,z cartesian coordinates lx, ly, lz = get_xyz(lra, ldec) # putting kd tree around the lenses lens_tree = cKDTree(np.array([lx, ly, lz]).T) print('lenses tree is ready\n') # setting maximum search radius dcommin = cc.comoving_distance(np.min(lred)).value dismax = (rmax*1.0/(dcommin)) # lets first catch the file list for sources sflist = np.sort(glob.glob('/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/*.dat')) # Ready to pounce on the source data for ifil in sflist: # catching the source data matrix # please have a check for the columns names datagal = read_sources(ifil) Ngal = len(datagal[:,0]) # total number of galaxies in the source file # first two entries are ra and dec for the sources allragal = datagal[:,0] alldecgal = datagal[:,1] # ra and dec to x,y,z for sources allsx, allsy, allsz = get_xyz(allragal, alldecgal) # query in a ball around individual sources and collect the lenses ids with a maximum radius slidx = lens_tree.query_ball_point(np.transpose([allsx, allsy, allsz]), dismax) # various columns in sources # ragal, decgal, e1gal, e2gal, wgal, rms_egal, mgal, c1gal, c2gal, R2gal, zphotgal # looping over all the galaxies for igal in range(Ngal): ragal = datagal[igal,0] decgal = datagal[igal,1] e1gal = datagal[igal,2] e2gal = datagal[igal,3] wgal = datagal[igal,4] rms_egal = datagal[igal,5] zphotgal = datagal[igal,6] # array of lenses indices lidx = np.array(slidx[igal]) # removing sources which doesn't have any lenses around them if len(lidx)==0: continue # selecting a cleaner background zcut = (lred[lidx] < (zphotgal - zdiff)) #only taking the foreground lenses # again skipping the onces which doesn't satisfy the above criteria if np.sum(zcut)==0.0: continue # collecting the data of lenses around individual source lidx = lidx[zcut] # this will catch the array indices for our lenses sra = ragal sdec = decgal l_ra = lra[lidx] l_dec = ldec[lidx] l_zred = lred[lidx] l_wgt = lwgt[lidx] sx, sy, sz = get_xyz(sra,sdec) # individual galaxy ra,dec-->x,y,z lx, ly, lz = get_xyz(l_ra,l_dec) # individual galaxy ra,dec-->x,y,z # getting the radial separations for a lense source pair sl_sep = np.sqrt((lx - sx)**2 + (ly - sy)**2 + (lz - sz)**2) sl_sep = sl_sep * cc.comoving_distance(l_zred).value for ll,sep in enumerate(sl_sep): if sep<rmin or sep>rmax: continue rb = int(np.log10(sep*1.0/rmin)*1/rdiff) # get tangantial components given positions and shapes e_t = get_et(lra = l_ra[ll], ldec = l_dec[ll], sra = sra, sdec = sdec, se1 = e1gal, se2 = e2gal) # sigma_crit_calculations for a given lense-source pair sigm_crit_inv = get_sigma_crit_inv(l_zred[ll], zphotgal, cc) # following equations given in the surhud's lectures w_ls = l_wgt[ll] * wgal * (sigm_crit_inv)**2 w_ls_by_av_sigc_inv = l_wgt[ll] * wgal * sigm_crit_inv # separate numerator and denominator computation sumdsig_num[rb] += w_ls_by_av_sigc_inv * e_t sumdsigsq_num[rb] += (w_ls_by_av_sigc_inv * e_t)**2 sumwls[rb] += w_ls sumwls_resp[rb] += w_ls * (1-rms_egal**2) print(ifil) fout = open(outputfile, "w") fout.write("# 0:rmin/2+rmax/2 1:DeltaSigma 2:SN_ErrDeltaSigma\n") for i in range(len(rbins[:-1])): rrmin = rbins[i] rrmax = rbins[i+1] Resp = sumwls_resp[i]*1.0/sumwls[i] fout.write("%le\t%le\t%le\n"%(rrmin/2.0+rrmax/2.0, sumdsig_num[i]*1.0/sumwls[i]/2./Resp, np.sqrt(sumdsigsq_num[i])*1.0/sumwls[i]/2./Resp)) fout.write("#OK") fout.close() return 0
[61]:
run_pipe()
number of lenses=560
lenses tree is ready

/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0000.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0001.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0002.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0003.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0004.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0005.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0006.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0007.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0008.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0009.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0010.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0011.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0012.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0013.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0014.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0015.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0016.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0017.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0018.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0019.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0020.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0021.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0022.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0023.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0024.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0025.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0026.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0027.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0028.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0029.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0030.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0031.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0032.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0033.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0034.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0035.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0036.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0037.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0038.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0039.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0040.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0041.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0042.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0043.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0044.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0045.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0046.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0047.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0048.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0049.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0050.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0051.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0052.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0053.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0054.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0055.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0056.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0057.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0058.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0059.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0060.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0061.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0062.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0063.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0064.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0065.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0066.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0067.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0068.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0069.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0070.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0071.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0072.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0073.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0074.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0075.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0076.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0077.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0078.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0079.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0080.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0081.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0082.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0083.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0084.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0085.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0086.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0087.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0088.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0089.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0090.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0091.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0092.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0093.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0094.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0095.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0096.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0097.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0098.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0099.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0100.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0101.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0102.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0103.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0104.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0105.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0106.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0107.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0108.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0109.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0110.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0111.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0112.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0113.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0114.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0115.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0116.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0117.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0118.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0119.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0120.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0121.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0122.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0123.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0124.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0125.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0126.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0127.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0128.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0129.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0130.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0131.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0132.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0133.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0134.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0135.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0136.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0137.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0138.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0139.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0140.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0141.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0142.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0143.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0144.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0145.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0146.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0147.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0148.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0149.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0150.dat
/home/idies/workspace/Storage/divyar/IAGRG_2022/DataStore/hsc/0151.dat
[61]:
0
[62]:
dat = np.loadtxt('iagrg_dsigma.dat')

plt.errorbar(dat[:,0], dat[:,1], yerr=dat[:,2], fmt='.', capsize=3, label='Data')
plt.legend()

plt.xlabel(r'$R[{\rm h^{-1}Mpc}]$')
plt.ylabel(r'$\Delta\Sigma [{\rm h M_\odot pc^{-2}}]$')
plt.xscale('log')
plt.yscale('log')
_images/iagrg_day_3_hands_on_13_0.png
[ ]: