Ejemplo n.º 1
0
	def process_fisher(self, filenames, prior, shear=True, sp=True, sgp=True, gp=True, sg=False, sec=None, do2d=False, param="sigma8_input"):
		for filename in filenames:
			f = fi.fisher(filename)
			if not sec:
				sec = "nz_shear_errors--bias"

			nparam = str(list(np.unique(f.param))).count(sec)
			sections=[]
			for i in xrange(nparam):
				sections.append(sec+"_%d"%(i+1))
			f.remove_priors(sections, np.array(nparam*[prior]))

			if param not in f.param:
				param="omega_m"
			x, y = fi.photoz_prior_width_plot(f, bias_name=sec, parameter=param)

			err = {param_names[param][0]:y}
			

			if "shear+ggl+pos" in filename:
				self.sgp = [x, err]
			if "shear+pos" in filename:
				self.sp = [x, err]
			if "ggl+pos" in filename:
				self.gp = [x, err]
			if ("shear+ggl" in filename) and ("pos" not in filename):
				self.sg = [x, err]
			if ("ggl" not in filename) and ("pos" not in filename):
				self.shear_shear = [x, err]

			if do2d:
				err1, err2 = {}, {}
				for p1 in f.param:
					for p2 in f.param:
						if p1==p2:
							continue
						else:
							x, err1[(p1,p2)] = fi.photoz_prior_width_plot(f, bias_name=sec, parameter=[p1,p2])
							x, err2[(p2,p1)] = fi.photoz_prior_width_plot(f, bias_name=sec, parameter=[p1,p2])
						if "shear+ggl+pos" in filename:
							self.sgp_2d = [x, err1]
							self.sgp_2d = [x, err2]
						if "shear+pos" in filename:
							self.sp_2d = [x, err1]
							self.sp_2d = [x, err2]
						if "ggl+pos" in filename:
							self.gp_2d = [x, err1]
							self.gp_2d = [x, err2]
						if ("shear+ggl" in filename) and ("pos" not in filename):
							self.sg_2d = [x, err1]
							self.sg_2d = [x, err2]
						if ("ggl" not in filename) and ("pos" not in filename):
							self.shear_shear_2d = [x, err1]
							self.shear_shear_2d = [x, err2]
Ejemplo n.º 2
0
from tools import fisher as f

shear=f.fisher("shear-only-fisher-syst+cos.txt")
sg=f.fisher("shear+ggl-fisher-1dshift-syst+cos.txt")
sp=f.fisher("shear+pos-fisher-1dshift-cut-sys+cos.txt")
sgp=f.fisher("shear+ggl+pos-fisher-1dshift-syst+cos.txt")

shear.reset_priors("delta-priors-shear.ini")
sg.reset_priors("delta-priors-ggl.ini")
sgp.reset_priors("delta-priors-ggl.ini")
sp.reset_priors("delta-priors-ggl.ini")

x2,y = f.photoz_prior_width_plot(shear, lens=False)
x2,ysg = f.photoz_prior_width_plot(sg, lens=False)
x2,ysp = f.photoz_prior_width_plot(sp, lens=False)
x2,ysgp = f.photoz_prior_width_plot(sgp, lens=False, show=True)

x,y = f.photoz_prior_width_plot(shear, lens=True)
x,ysg = f.photoz_prior_width_plot(sg, lens=True)
x,ysp = f.photoz_prior_width_plot(sp, lens=True)
x,ysgp = f.photoz_prior_width_plot(sgp, lens=True)

plt.plot(x,y/0.82, 'm-', label='WL')
plt.plot(x,ysg/0.82, 'g-', label='WL+ggl')
plt.plot(x,ysp/0.82, 'r-', label='WL+LSS')
plt.plot(x,ysgp/0.82, 'b-', label='WL+ggl+LSS')
plt.xlim(0.,0.06)
plt.legend(loc='upper left')
plt.xlabel("prior width $\Delta \delta z$")
plt.ylabel("fractional error $\Delta \sigma_8 / \sigma_8$")
plt.show()
Ejemplo n.º 3
0
    def prior_plot(self,
                   parameter='sigma8_input',
                   lens=True,
                   dimension=1,
                   bias='bias',
                   bias_2='none',
                   photoz_only=False,
                   plots=(1, 1)):
        labels = {'bias': '\delta z', 's_z': 'S_z', 't_z': 'T_z'}

        colours = {
            'WL': 'm-',
            'WL+ggl': 'g-',
            'WL+LSS': 'r-',
            'WL+ggl+LSS': 'b-'
        }

        import pylab as plt
        import tools.fisher as f
        y = []
        if self.sh:
            shear = f.fisher(self.config['shear']['file'])
            pr = get_option(self.config['shear'], 'priors', default=None)
            if pr:
                shear.reset_priors(pr)

            if photoz_only:
                shear.reset_priors(case='delta')

            print "shear-shear"
            x, ys = f.photoz_prior_width_plot(shear,
                                              lens=lens,
                                              bias_name=bias,
                                              parameter=parameter,
                                              dimension=dimension,
                                              bias_name2=bias_2)
            y += [ys]
        if self.sh_ggl:
            sg = f.fisher(self.config['shear_ggl']['file'])
            pr = get_option(self.config['shear_ggl'], 'priors', default=None)
            if pr:
                sg.reset_priors(pr)
            if photoz_only:
                sg.reset_priors(case='delta')

            print "shear+ggl"
            x, ysg = f.photoz_prior_width_plot(sg,
                                               lens=lens,
                                               bias_name=bias,
                                               parameter=parameter,
                                               dimension=dimension,
                                               bias_name2=bias_2)
            y += [ysg]

        if self.sh_pos:
            sp = f.fisher(self.config['shear_pos']['file'])
            pr = get_option(self.config['shear_pos'], 'priors', default=None)
            if pr:
                sp.reset_priors(pr)
            if photoz_only:
                sp.reset_priors(case='delta')

            print "shear+pos"
            x, ysp = f.photoz_prior_width_plot(sp,
                                               lens=lens,
                                               bias_name=bias,
                                               parameter=parameter,
                                               dimension=dimension,
                                               bias_name2=bias_2)
            y += [ysp]
        if self.sh_ggl_pos:
            sgp = f.fisher(self.config['shear_ggl_pos']['file'])
            pr = get_option(self.config['shear_ggl_pos'],
                            'priors',
                            default=None)
            if pr:
                sgp.reset_priors(pr)
            if photoz_only:
                sgp.reset_priors(case='delta')

            print "shear+ggl+pos"
            x, ysgp = f.photoz_prior_width_plot(sgp,
                                                lens=lens,
                                                bias_name=bias,
                                                parameter=parameter)
            y += [ysgp]
        #import pdb ; pdb.set_trace()

        if parameter == 'sigma8_input':
            f = 0.82
        else:
            f = 1.

        if dimension == 2:
            return x, ys, ysg, ysp, ysgp

        # Statistical error relative to true value
        if plots[0]:
            for i, pl in enumerate(self.plots):
                plt.plot(x, y[i] / f, '%s' % colours[pl], label=pl)

            plt.legend(loc='upper left')
            plt.xlabel("prior width $\Delta %s$" % labels[bias])
            if parameter == 'sigma8_input':
                plt.ylabel("fractional error $\Delta \sigma_8 / \sigma_8$")
            else:
                plt.ylabel("statistical error $\Delta %s$" % parameter)
            plt.show()
            plt.close()

        # degradation in errorbar relative to 0 prior width
        if plots[1]:
            for i, pl in enumerate(self.plots):
                plt.plot(x, y[i] / y[i][0], '%s' % colours[pl], label=pl)

            plt.legend(loc='upper left')
            plt.xlabel("prior width $\Delta %s$" % labels[bias])
            if parameter == 'sigma8_input':
                plt.ylabel(
                    "degradation in statistical error $\Delta \sigma_8 / \Delta \sigma_{8,0}$"
                )
            else:
                plt.ylabel("statistical error $\Delta %s / \Delta %s _0$" %
                           (parameter, parameter))
            plt.show()

            plt.close()
        return 0
Ejemplo n.º 4
0
	def prior_plot(self, parameter='sigma8_input', lens=True, dimension=1, bias='bias', bias_2= 'none',photoz_only=False, plots=(1,1)):
		labels={'bias': '\delta z', 's_z': 'S_z', 't_z': 'T_z'}

		colours={'WL':'m-', 'WL+ggl':'g-', 'WL+LSS':'r-', 'WL+ggl+LSS':'b-'}

		import pylab as plt
		import tools.fisher as f
		y=[]
		if self.sh:
			shear=f.fisher(self.config['shear']['file'])
			pr =  get_option(self.config['shear'], 'priors', default=None)
			if pr:
				shear.reset_priors(pr)

			if photoz_only:
				shear.reset_priors(case='delta')

                        print "shear-shear"
			x,ys = f.photoz_prior_width_plot(shear, lens=lens, bias_name=bias, parameter=parameter, dimension = dimension, bias_name2 = bias_2)
			y+=[ys]		
		if self.sh_ggl:
			sg=f.fisher(self.config['shear_ggl']['file'])
			pr =  get_option(self.config['shear_ggl'], 'priors', default=None)
			if pr:
				sg.reset_priors(pr)
			if photoz_only:
				sg.reset_priors(case='delta')
		
                        print "shear+ggl"
			x,ysg = f.photoz_prior_width_plot(sg, lens=lens, bias_name=bias, parameter=parameter, dimension = dimension, bias_name2 = bias_2)
			y+=[ysg]

		if self.sh_pos:
			sp=f.fisher(self.config['shear_pos']['file'])
			pr =  get_option(self.config['shear_pos'], 'priors', default=None)
			if pr:
				sp.reset_priors(pr)
			if photoz_only:
				sp.reset_priors(case='delta')

                        print "shear+pos"
			x,ysp = f.photoz_prior_width_plot(sp, lens=lens, bias_name=bias, parameter=parameter, dimension = dimension, bias_name2 = bias_2)
			y+=[ysp]
		if self.sh_ggl_pos:
			sgp=f.fisher(self.config['shear_ggl_pos']['file'])
			pr =  get_option(self.config['shear_ggl_pos'], 'priors', default=None)
			if pr:
				sgp.reset_priors(pr)
			if photoz_only:
				sgp.reset_priors(case='delta')

                        print "shear+ggl+pos"
			x,ysgp = f.photoz_prior_width_plot(sgp, lens=lens, bias_name=bias, parameter=parameter)
			y+=[ysgp]
		#import pdb ; pdb.set_trace()

		if parameter=='sigma8_input':
			f=0.82
		else:
			f=1.

		if dimension==2:
			return x, ys, ysg, ysp, ysgp


		# Statistical error relative to true value
                if plots[0]:
			for i, pl in enumerate(self.plots):
				plt.plot(x,y[i]/f, '%s'%colours[pl], label=pl )

			plt.legend(loc='upper left')
			plt.xlabel("prior width $\Delta %s$"%labels[bias])
			if parameter=='sigma8_input':
				plt.ylabel("fractional error $\Delta \sigma_8 / \sigma_8$")
			else:
				plt.ylabel("statistical error $\Delta %s$"%parameter)
			plt.show()
			plt.close()

		# degradation in errorbar relative to 0 prior width
		if plots[1]:
			for i, pl in enumerate(self.plots):
				plt.plot(x,y[i]/y[i][0], '%s'%colours[pl], label=pl)

			plt.legend(loc='upper left')
			plt.xlabel("prior width $\Delta %s$"%labels[bias])
			if parameter=='sigma8_input':
				plt.ylabel("degradation in statistical error $\Delta \sigma_8 / \Delta \sigma_{8,0}$")
			else:
				plt.ylabel("statistical error $\Delta %s / \Delta %s _0$"%(parameter,parameter))
			plt.show()

			plt.close()
		return 0
Ejemplo n.º 5
0
from tools import fisher as f

shear = f.fisher("shear-only-fisher-syst+cos.txt")
sg = f.fisher("shear+ggl-fisher-1dshift-syst+cos.txt")
sp = f.fisher("shear+pos-fisher-1dshift-cut-sys+cos.txt")
sgp = f.fisher("shear+ggl+pos-fisher-1dshift-syst+cos.txt")

shear.reset_priors("delta-priors-shear.ini")
sg.reset_priors("delta-priors-ggl.ini")
sgp.reset_priors("delta-priors-ggl.ini")
sp.reset_priors("delta-priors-ggl.ini")

x2, y = f.photoz_prior_width_plot(shear, lens=False)
x2, ysg = f.photoz_prior_width_plot(sg, lens=False)
x2, ysp = f.photoz_prior_width_plot(sp, lens=False)
x2, ysgp = f.photoz_prior_width_plot(sgp, lens=False, show=True)

x, y = f.photoz_prior_width_plot(shear, lens=True)
x, ysg = f.photoz_prior_width_plot(sg, lens=True)
x, ysp = f.photoz_prior_width_plot(sp, lens=True)
x, ysgp = f.photoz_prior_width_plot(sgp, lens=True)

plt.plot(x, y / 0.82, 'm-', label='WL')
plt.plot(x, ysg / 0.82, 'g-', label='WL+ggl')
plt.plot(x, ysp / 0.82, 'r-', label='WL+LSS')
plt.plot(x, ysgp / 0.82, 'b-', label='WL+ggl+LSS')
plt.xlim(0., 0.06)
plt.legend(loc='upper left')
plt.xlabel("prior width $\Delta \delta z$")
plt.ylabel("fractional error $\Delta \sigma_8 / \sigma_8$")
plt.show()