for name1, alm1, c1 in zip(nameList, almList, np.arange(count)): for name2, alm2, c2 in zip(nameList, almList, np.arange(count)): if c1 > c2: continue l, ps = so_spectra.get_spectra(alm1, alm2, spectra=spectra) spec_name = '%sx%s' % (name1, name2) lb, Db_dict[spec_name] = so_spectra.bin_spectra(l, ps, binning_file, lmax, type=type, mbb_inv=mbb_inv, spectra=spectra) spec_name_list += [spec_name] so_spectra.write_ps('%s/spectra_%s.dat' % (spectraDir, spec_name), lb, Db_dict[spec_name], type=type, spectra=spectra) if c1 == c2: print('auto %dx%d' % (c1, c2)) for s1 in spectra: Db_dict_auto[s1] += [Db_dict[spec_name][s1]] else: print('cross %dx%d' % (c1, c2)) for s1 in spectra: Db_dict_cross[s1] += [Db_dict[spec_name][s1]] for s1 in spectra: Db_dict_auto[s1] = np.mean(Db_dict_auto[s1], axis=0) Db_dict_cross[s1] = np.mean(Db_dict_cross[s1], axis=0)
else: nl_hm1[spec]=np.zeros(len(lth)) nl_hm2[spec]=np.zeros(len(lth)) nl_mean[spec]=np.zeros(len(lth)) np.savetxt('%s/noise_T_hm1_%s_%sx%s_%s.dat'%(ps_model_dir,experiment,freq1,experiment,freq2), np.transpose([lth,nl_hm1['TT']])) np.savetxt('%s/noise_P_hm1_%s_%sx%s_%s.dat'%(ps_model_dir,experiment,freq1,experiment,freq2), np.transpose([lth,nl_hm1['EE']])) np.savetxt('%s/noise_T_hm2_%s_%sx%s_%s.dat'%(ps_model_dir,experiment,freq1,experiment,freq2), np.transpose([lth,nl_hm2['TT']])) np.savetxt('%s/noise_P_hm2_%s_%sx%s_%s.dat'%(ps_model_dir,experiment,freq1,experiment,freq2), np.transpose([lth,nl_hm2['EE']])) np.savetxt('%s/noise_T_mean_%s_%sx%s_%s.dat'%(ps_model_dir,experiment,freq1,experiment,freq2), np.transpose([lth,nl_mean['TT']/2])) np.savetxt('%s/noise_P_mean_%s_%sx%s_%s.dat'%(ps_model_dir,experiment,freq1,experiment,freq2), np.transpose([lth,nl_mean['EE']/2])) np.savetxt('%s/noise_T_th_mean_%s_%sx%s_%s.dat'%(ps_model_dir,experiment,freq1,experiment,freq2), np.transpose([lth,nlth['TT']/2])) np.savetxt('%s/noise_P_th_mean_%s_%sx%s_%s.dat'%(ps_model_dir,experiment,freq1,experiment,freq2), np.transpose([lth,nlth['EE']/2])) spec_name_noise_hm1='hm1_%s_%sx%s_%s_noise'%(experiment,freq1,experiment,freq2) spec_name_noise_hm2='hm2_%s_%sx%s_%s_noise'%(experiment,freq1,experiment,freq2) spec_name_noise_mean='mean_%s_%sx%s_%s_noise'%(experiment,freq1,experiment,freq2) so_spectra.write_ps(ps_model_dir+'/%s.dat'%spec_name_noise_hm1,lth,nl_hm1,type,spectra=spectra) so_spectra.write_ps(ps_model_dir+'/%s.dat'%spec_name_noise_hm2,lth,nl_hm2,type,spectra=spectra) so_spectra.write_ps(ps_model_dir+'/%s.dat'%spec_name_noise_mean,lth,nl_mean,type,spectra=spectra)
spec_name = "%s_%s_%s_%dx%s_%s_%d_%05d" % ( type, exp1, f1, s1, exp2, f2, s2, iii) lb, ps = so_spectra.bin_spectra(l, ps_master, binning_file, lmax, type=type, mbb_inv=mbb_inv, spectra=spectra) if write_all_spectra: so_spectra.write_ps(specDir + "/%s.dat" % spec_name, lb, ps, type, spectra=spectra) for count, spec in enumerate(spectra): if (s1 == s2) & (exp1 == exp2): if count == 0: print( "auto %s_%s split%d X %s_%s split%d" % (exp1, f1, s1, exp2, f2, s2)) ps_dict[spec, "auto"] += [ps[spec]] else: if count == 0: print( "cross %s_%s split%d X %s_%s split%d" % (exp1, f1, s1, exp2, f2, s2))
else: Dl_interpolate[spec] = np.zeros(len(l)) if (spec == 'TT' or spec == 'EE' or spec == 'BB') & (f1 == f2) & (exp1 == exp2): Nl = scipy.interpolate.interp1d( lb, Nb[spec], fill_value='extrapolate') Nl_interpolate[spec] = np.array([Nl(i) for i in l]) Nl_interpolate[spec][:30] = 0 Nl_interpolate[spec] *= bl1 * bl2 else: Nl_interpolate[spec] = np.zeros(len(l)) spec_name_combined = '%s_%s_%sx%s_%s_cross' % (type, exp1, f1, exp2, f2) so_spectra.write_ps(ps_model_dir + '/%s.dat' % spec_name_combined, l, Dl_interpolate, type, spectra=spectra) spec_name_noise = '%s_%s_%sx%s_%s_noise' % (type, exp1, f1, exp2, f2) so_spectra.write_ps(ps_model_dir + '/%s.dat' % spec_name_noise, l, Nl_interpolate, type, spectra=spectra)
prefix="%s/%s_%sx%s_%s" % (mcm_dir, sv1, ar1, sv2, ar2), spin_pairs=spin_pairs) # we compute the power spectra of the sim (with and without the k-space filter applied) for filt in ["filter", "nofilter"]: l, ps_master = so_spectra.get_spectra_pixell( master_alms[sv1, ar1, filt], master_alms[sv2, ar2, filt], spectra=spectra) lb, ps = so_spectra.bin_spectra(l, ps_master, binning_file, lmax, type=type, mbb_inv=mbb_inv, spectra=spectra) so_spectra.write_ps( tf_dir + "/%s_%s_%s_%05d.dat" % (spec_name, filt, scenario, iii), lb, ps, type, spectra=spectra) print("sim number %05d done in %.02f s" % (iii, time.time() - t0))
freqs2 = d["freqs_%s" % exp2] for id_f2, f2 in enumerate(freqs2): if (id_exp1 == id_exp2) & (id_f1 > id_f2): continue if (id_exp1 > id_exp2): continue spec_name = "%s_%sx%s_%s" % (exp1, f1, exp2, f2) for iii in isims: spec_name_cross = "spectra/%s_%s_cross_%05d.dat" % ( type, spec_name, iii) l, ps = so_spectra.read_ps(spec_name_cross, spectra=spectra) so_spectra.write_ps("%s/%s_%s_%05d.dat" % (like_dir, type, spec_name, iii), l, ps, type, spectra=spectra) prefix = "%s/%s" % (mcm_dir, spec_name) mbb_inv, Bbl = so_mcm.read_coupling(prefix=prefix, spin_pairs=spin_pairs) Bbl_TT = Bbl["spin0xspin0"] Bbl_TE = Bbl["spin0xspin2"] Bbl_EE = Bbl["spin2xspin2"][:Bbl_TE.shape[0], :Bbl_TE.shape[1]] np.savetxt("%s/Bbl_%s_TT.dat" % (like_dir, spec_name), Bbl_TT) np.savetxt("%s/Bbl_%s_TE.dat" % (like_dir, spec_name), Bbl_TE) np.savetxt("%s/Bbl_%s_EE.dat" % (like_dir, spec_name), Bbl_EE)
mcm_inv, mbb_inv, Bbl = so_mcm.read_coupling( prefix=prefix, spin_pairs=spin_pairs, unbin=True) l, ps = so_spectra.get_spectra(alms[hm1, freq1], alms[hm2, freq2], spectra=spectra) spec_name = '%s_%sx%s_%s-%sx%s' % (experiment, freq1, experiment, freq2, hm1, hm2) l, cl, lb, Db = planck_utils.process_planck_spectra( l, ps, binning_file, lmax, type=type, mcm_inv=mcm_inv, spectra=spectra) spec_name_list += [spec_name] so_spectra.write_ps('%s/spectra_%s.dat' % (spectraDir, spec_name), lb, Db, type=type, spectra=spectra) so_spectra.write_ps('%s/spectra_unbin_%s.dat' % (spectraDir, spec_name), l, cl, type=type, spectra=spectra)
mcm_inv, mbb_inv, Bbl = so_mcm.read_coupling( prefix=prefix, spin_pairs=spin_pairs, unbin=True) l, ps = so_spectra.get_spectra(alms[hm1, freq1], alms[hm2, freq2], spectra=spectra) spec_name = "%s_%sx%s_%s-%sx%s" % (exp, freq1, exp, freq2, hm1, hm2) l, cl, lb, Db = planck_utils.process_planck_spectra( l, ps, binning_file, lmax, mcm_inv=mcm_inv, spectra=spectra) spec_name_list += [spec_name] so_spectra.write_ps("%s/sim_spectra_%s_%04d.dat" % (sims_dir, spec_name, iii), lb, Db, type=type, spectra=spectra) so_spectra.write_ps("%s/sim_spectra_unbin_%s_%04d.dat" % (sims_dir, spec_name, iii), l, cl, type=type, spectra=spectra) print("sim %04d take %.02f seconds to compute" % (iii, time.time() - t0))
if (spec == "TT" or spec == "EE" or spec == "BB") & (f0 == f1): bl_hm1 = bl[f0, "hm1", spec] bl_hm2 = bl[f0, "hm2", spec] nth_hm1 = ps_dict_auto1[spec] * bl_hm1**2 - ps_dict_cross[ spec] * bl_hm1 * bl_hm2 nth_hm2 = ps_dict_auto2[spec] * bl_hm2**2 - ps_dict_cross[ spec] * bl_hm1 * bl_hm2 lb, nb_hm1 = planck_utils.binning(l, nth_hm1, lmax, size=8) lb, nb_hm2 = planck_utils.binning(l, nth_hm2, lmax, size=8) nb_mean = (nb_hm1 + nb_hm2) / 4 nl_interpol_mean = scipy.interpolate.interp1d( lb, nb_mean, fill_value="extrapolate") nl_mean = np.array([nl_interpol_mean(i) for i in lth]) else: nl_mean = np.zeros(len(lth)) nl_sim_mean[spec] += [nl_mean] for spec in spectra: nl_sim_mean[spec] = np.mean(nl_sim_mean[spec], axis=0) so_spectra.write_ps(ps_model_dir + "/%s_%s_noise.dat" % (spec_name_noise_mean, name), lth, nl_sim_mean, type, spectra=spectra)
lmax, type=type, mbb_inv=mbb_inv, spectra=spectra) if writeAll: if hdf5: so_spectra.write_ps_hdf5(spectra_hdf5, spec_name, lb, Db, spectra=spectra) else: so_spectra.write_ps(specDir + '/%s.dat' % spec_name, lb, Db, type, spectra=spectra) for spec in spectra: if (s1 == s2) & (exp1 == exp2): if spec == 'TT': print( 'auto %s_%s split%d X %s_%s split%d' % (exp1, f1, s1, exp2, f2, s2)) Db_dict[exp1, f1, exp2, f2, spec, 'auto'] += [Db[spec]] else: if spec == 'TT': print( 'cross %s_%s split%d X %s_%s split%d' %
prefix=prefix, spin_pairs=spin_pairs, unbin=True) l, ps = so_spectra.get_spectra(alms[hm1, freq1], alms[hm2, freq2], spectra=spectra) spec_name = '%s_%sx%s_%s-%sx%s' % ( experiment, freq1, experiment, freq2, hm1, hm2) l, cl, lb, Db = planck_utils.process_planck_spectra( l, ps, binning_file, lmax, type=type, mcm_inv=mcm_inv, spectra=spectra) spec_name_list += [spec_name] so_spectra.write_ps('%s/sim_spectra_%s_%04d.dat' % (simSpectraDir, spec_name, iii), lb, Db, type=type, spectra=spectra) so_spectra.write_ps('%s/sim_spectra_unbin_%s_%04d.dat' % (simSpectraDir, spec_name, iii), l, cl, type=type, spectra=spectra) print('sim %04d take %.02f seconds to compute' % (iii, time.time() - t0))
plt.plot(lth, nl_dict[spec], label="interpolate", color="lightblue") else: nl_dict[spec] = np.zeros(len(lth)) plt.plot(lb, nbs_mean, ".", label="%s %sx%s" % (sv, ar1, ar2), color="red") plt.legend(fontsize=20) plt.savefig("%s/noise_interpolate_%sx%s_%s_%s.png" % (plot_dir, ar1, ar2, sv, spec), bbox_inches="tight") plt.clf() plt.close() spec_name_noise_mean = "mean_%sx%s_%s_noise" % (ar1, ar2, sv) so_spectra.write_ps(ps_model_dir + "/%s.dat" % spec_name_noise_mean, lth, nl_dict, type, spectra=spectra)
(mcm_dir, scan, run)) alm = {} for split in split_list: alm[split] = sph_tools.get_alms(sim[split], window, niter, lmax) for c0, s0 in enumerate(split_list): for c1, s1 in enumerate(split_list): if c1 > c0: continue spec_name = "%s_%sx%s_%s" % (scan, s0, s1, run) l, ps = so_spectra.get_spectra(alm[s0], alm[s1], spectra=spectra) lb, Db_dict[spec_name] = so_spectra.bin_spectra( l, ps, binning_file, lmax, type="Dl", mbb_inv=mbb_inv, spectra=spectra) so_spectra.write_ps("%s/spectra_%s.dat" % (spectra_dir, spec_name), lb, Db_dict[spec_name], type="Dl", spectra=spectra)
l, ps_filt = so_spectra.get_spectra(alm0_filt, alm1_filt, spectra=spectra) lb, Db_dict = so_spectra.bin_spectra(l, ps, binning_file, lmax, type=type, mbb_inv=mbb_inv, spectra=spectra) lb, Db_dict_filt = so_spectra.bin_spectra(l, ps_filt, binning_file, lmax, type=type, mbb_inv=mbb_inv, spectra=spectra) so_spectra.write_ps('%s/spectra_%03d.dat' % (spectraDir, iii), lb, Db_dict, type=type, spectra=spectra) so_spectra.write_ps('%s/spectra_filt_%03d.dat' % (spectraDir, iii), lb, Db_dict_filt, type=type, spectra=spectra) print(time.time() - t0)