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]
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()
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
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
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()