Example #1
0
def bias_KSB_weight(Args, gal_hlr):
    """Make plots to analyze CG bias with weight function""" 
    mcg_w_ksb, ccg_w_ksb = [],[] 
    weights=np.linspace(0.5,2, 15)
    rt_g=[[0.005,0.005],[0.01,0.01]]
    gtrue=np.array(rt_g)
    for w in weights:
        input_args = Args
        input_args.shear_est='KSB'
        input_args.sig_w = w*gal_hlr
        input_args.rt_g = rt_g
        gcgw,gnocgw=cg.calc_cg(input_args)
        fit_fin   = np.polyfit(gtrue.T[0],gcgw.T-gnocgw.T,1)
        mcg_w_ksb.append(fit_fin[0])
        ccg_w_ksb.append(fit_fin[1])

    k=0
    plt.rc('legend',**{'fontsize':16})
    plt.figure(figsize=[12,8])
    #plt.subplots_adjust(hspace=0.4)
    #plt.subplots_adjust(wspace = 0.4)
    #plt.subplot(221)
    if Args.telescope is 'Euclid':
        plt.plot(weights,-np.array(mcg_w_ksb).T[k],label='KSB',linewidth=2.5)
        plt.ylabel(r'-$\rm m_{CG}$', size=22)
    else:
        plt.plot(weights,np.array(mcg_w_ksb).T[k],label='KSB',linewidth=2.5)
        plt.ylabel(r'$\rm m_{CG}$', size=22)
        
    plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)    
    plt.xlabel(r'weight function size/galaxy size',size=20)    
    plt.title(r'Dependence of $\rm m_{CG}$ '+'on weight function size for {0}'.format(Args.telescope),
              size=22)
    plt.xticks(fontsize = 16)
    plt.yticks(fontsize = 16)
Example #2
0
def cg_unit_tests():
	""" Sanity checks for cg_fns_reloaded.py 

	Compute the CG bias for various galaxy parameters and test is they match
	expected values. Test only for Euclid for the time being """
	T=6
	# bulge_frac=0
	input_args = cg.Eu_Args(shear_est='REGAUSS', bulge_frac=0.)
	g1,g2 = cg.calc_cg(input_args)
	print 'NO Disk : gcg,gncg'
	print g1.T[0],g2.T[0]
	print 'CG,S bias', (g1/g2-1).T[0]
	range_print((g1/g2-1).T[0],1e-05)
	
	# bulge_frac=1
	input_args = cg.Eu_Args(shear_est='REGAUSS', bulge_frac=1.)
	g1,g2 = cg.calc_cg(input_args)
	print 'NO Bulge:  gcg,gncg'
	print g1.T[0],g2.T[0]
	print 'CG,S bias', (g1/g2-1).T[0]
	range_print((g1/g2-1).T[0],1e-05)

	#bulge disk have same SED
	input_args = cg.Eu_Args(shear_est='REGAUSS', bulge_frac=1.)
	input_args.bulge_SED_name = 'E'
	input_args.disk_SED_name = 'E'
	g1,g2 = cg.calc_cg(input_args)
	print 'NO Bulge:  gcg,gncg'
	print g1.T[0],g2.T[0]
	print 'CG,S bias', (g1/g2-1).T[0]
	range_print((g1/g2-1).T[0],1e-05)


	
	# REGAUSS
	input_args = cg.Eu_Args(shear_est='REGAUSS')
	g1_r,g2_r = cg.calc_cg(input_args)
	print 'Default parameters, REGAUSS : gcg,gncg'
	print g1_r.T[0],g2_r.T[0]
	print 'CG,S bias', (g1_r/g2_r-1).T[0]
	
	# KSB
	input_args = cg.Eu_Args(shear_est='KSB')
	g1_k,g2_k = cg.calc_cg(input_args)
	print 'Default parameters, KSB : gcg,gncg'
	print g1_k.T[0],g2_k.T[0]
	print 'CG,S bias', (g1_k/g2_k-1).T[0]
	val=(g1_r/g2_r-1).T[0]-(g1_k/g2_k-1).T[0]
	range_print(val,1e-02)
	
	# KSB with REGAUSS weight size
	input_args = cg.Eu_Args(shear_est='KSB',sig_w=0.19)
	g1_k,g2_k = cg.calc_cg(input_args)
	print 'With weight sigma = 0.19, KSB : gcg,gncg'
	print g1_k.T[0],g2_k.T[0]
	print 'CG,S bias', (g1_k/g2_k-1).T[0]
	
	# S13 with REGAUSS weight size
	input_args = cg.Eu_Args(shear_est='S13',sig_w=0.19)
	g1_s,g2_s = cg.calc_cg(input_args)
	print 'With weight sigma = 0.19, S13 : gcg,gncg'
	print g1_s.T[0],g2_s.T[0]
	print 'CG,S bias', (g1_s/g2_s-1).T[0]
	val=(g1_s/g2_s-1).T[0]-(g1_k/g2_k-1).T[0]
	range_print(val,1e-02)

	#interchange bulge and disk labels
	input_args = cg.Eu_Args(shear_est='REGAUSS', bulge_frac=0.75,
		                    bulge_n=1.0, disk_n=1.5,
                            disk_HLR=0.17,bulge_HLR=1.2)
	input_args.bulge_SED_name='Im'
	input_args.disk_SED_name='E'
	g1_r2,g2_r2 = cg.calc_cg(input_args)
	val=(g1_r/g2_r-1).T[0]-(g1_r2/g2_r2-1).T[0]
	range_print(val,1e-07)


	#large weight function
	input_args = cg.Eu_Args(shear_est='KSB',sig_w=3.)
	g1_k2,g2_k2 = cg.calc_cg(input_args)
	print 'Large weight, KSB : gcg,gncg'
	print g1_k2.T[0],g2_k2.T[0]
	print 'CG,S bias', (g1_k2/g2_k2-1).T[0]
	val=(g1_k2/g2_k2-1).T[0]
	print('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!')
	#bias must be small and negative
	if (np.all(val<0.) and np.all(val>-1e03)):
		print colored('PASS', 'green')
	else:
		print colored('FAIL', 'red')
	print('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!')