def plot_gf_pix(x, y, ichip, gf1, gf2, gf, gf1_scale, gf2_scale,gf_scale,dot_size=1,pic_path=None): chip_row, chip_col = numpy.divmod(ichip, 9) x = x + chip_col * 2112 y = y + chip_row * 4644 img = Image_Plot(xpad=0.2,ypad=0.1) img.subplots(1, 3) color_cm = 'bwr' norm = plt.Normalize(vmin=numpy.min(gf1_scale[0]), vmax=numpy.max(gf1_scale[1])) cmap = plt.get_cmap(color_cm) cl = cmap(norm(gf1)) fig = img.axs[0][0].scatter(x, y, color=cl, s=dot_size) sm = plt.cm.ScalarMappable(cmap=cmap, norm=norm) sm._A = [] img.figure.colorbar(sm, ax=img.axs[0][0]) norm = plt.Normalize(vmin=numpy.min(gf2_scale[0]), vmax=numpy.max(gf2_scale[1])) cmap = plt.get_cmap(color_cm) cl = cmap(norm(gf2)) fig = img.axs[0][1].scatter(x, y, color=cl, s=dot_size) sm = plt.cm.ScalarMappable(cmap=cmap, norm=norm) sm._A = [] img.figure.colorbar(sm, ax=img.axs[0][1]) norm = plt.Normalize(vmin=numpy.min(gf_scale[0]), vmax=numpy.max(gf_scale[1])) cmap = plt.get_cmap(color_cm) cl = cmap(norm(gf)) fig = img.axs[0][2].scatter(x, y, color=cl, s=dot_size) sm = plt.cm.ScalarMappable(cmap=cmap, norm=norm) sm._A = [] img.figure.colorbar(sm, ax=img.axs[0][2]) for i in range(3): img.axis_sci_ticklabel(0,i,0) img.axis_sci_ticklabel(0,i,1) img.set_label(0,i,0,"y") img.set_label(0,i,1,"x") if pic_path: img.save_img(pic_path) # img.show_img() img.close_img()
def mc_plot(result_arr, mc_arr, img_name): img = Image_Plot(fig_x=6, fig_y=4, xpad=0.25, ypad=0.2) img.subplots(1, 2) scale = 1000 img.axs[0][0].errorbar(result_arr[0], result_arr[1], result_arr[2], marker="s", fmt=" ", label="g1", capsize=img.cap_size) img.axs[0][0].errorbar(result_arr[3], result_arr[4], result_arr[5], marker="s", fmt=" ", label="g2", capsize=img.cap_size) img.axs[0][1].errorbar(result_arr[0], scale * (result_arr[1] - result_arr[0]), scale * result_arr[2], marker="s", fmt=" ", label="g1", capsize=img.cap_size) img.axs[0][1].errorbar(result_arr[3], scale * (result_arr[4] - result_arr[3]), scale * result_arr[5], marker="s", fmt=" ", label="g2", capsize=img.cap_size) mc_str = "Mean\n$m_1 = %.5f (%.5f)$\n$c_1 = %.5f (%.5f)$\n$m_2 = %.5f (%.5f)$\n$c_2 = %.5f (%.5f)$" \ % (mc_arr[0, 0], mc_arr[0, 1], mc_arr[0, 2], mc_arr[0, 3], mc_arr[1, 0], mc_arr[1, 1], mc_arr[1, 2], mc_arr[1, 3]) img.axs_text(0, 0, 0.8, 0.05, mc_str, text_fontsize=img.legend_size) img.set_label(0, 0, 0, "EST g") img.set_label(0, 1, 1, "$10^3 (\hat{g} - g_{true})$") img.axs[0][0].plot([-0.1, 0.1], [-0.1, 0.1], ls="dashed", c="grey", alpha=0.5) img.axs[0][0].set_ylim(-0.05, 0.05) img.axs[0][1].set_ylim(-0.1, 0.1) for i in range(2): img.set_label(0, i, 1, "TRUE g") img.axs[0][i].legend(fontsize=img.legend_size, loc="lower right") img.axs[0][i].set_xlim(-0.05, 0.05) img.save_img(img_name) img.close_img()
img = Image_Plot(fig_x=5, fig_y=4,xpad=0.25, ypad=0.25) img.subplots(2, 3) titles = [["$\chi^2$", "dipole-fit", "quadrupole-fit"], ["$\chi^2-SYM$", "dipole-fit_SYM", "quadruple-fit_SYM"]] img.axs[0][0].plot(gh, chisq1, label="$\chi^2_{g1}$,g1=%.3f" % g1t[rank]) img.axs[0][0].plot(gh, chisq2, label="$\chi^2_{g2}$,g2=%.3f" % g2t[rank]) img.axs[1][0].plot(gh, chisq1_sym, label="$\chi^2_{g1}$,g1=%.3f" % g1t[rank]) img.axs[1][0].plot(gh, chisq2_sym, label="$\chi^2_{g2}$,g2=%.3f" % g2t[rank]) img.set_label(0, 0, 0, "$\chi^2$") img.set_label(0, 0, 1, "$\hat{g}$") img.axs[0][0].legend() img.set_label(1, 0, 0, "$\chi^2-SYM$") img.set_label(1, 0, 1, "$\hat{g}$") img.axs[1][0].legend() dpl_fit = numpy.nan_to_num(dpl_fit) dpl_fit_sym = numpy.nan_to_num(dpl_fit_sym) qpl_fit = numpy.nan_to_num(qpl_fit) qpl_sym_fit = numpy.nan_to_num(qpl_sym_fit) vmax_dpl = max(numpy.abs(dpl_fit).max(), numpy.abs(dpl_fit_sym).max()) vmax_qpl = max(numpy.abs(qpl_fit).max(), numpy.abs(qpl_sym_fit).max())
bin_num = 13 x = tool_box.set_bin_log(0.04, 15, bin_num + 1) print(x) signal = numpy.zeros((file_num, bin_num)) sigma = numpy.zeros((file_num, bin_num)) los_dist = numpy.zeros((file_num, bin_num)) for i in range(file_num): data_path = parent_path + "cmass_result_w_1_%s.npz" % i data = numpy.load(data_path)["arr_0"] signal[i] = data[0] sigma[i] = data[1] los_dist[i] = data[-1] for i in range(6): print(x.shape, signal[:, i].shape) img.axs[0][0].errorbar(los_dist[:, i], signal[:, i], sigma[:, i], label="[%.5f, %.5f] Mpc/h" % (x[i], x[i + 1]), capsize=3) img.axs[0][0].legend() img.set_label(0, 0, 0, "$\Delta\Sigma\ [\\rm{h\cdot M_{\odot}\cdot pc^{-2}}]$", size=15) img.set_label(0, 0, 1, "LOS distance$\ [\\rm{Mpc \cdot h^{-1}}]$", size=15) img.show_img()
fig = img.axs[1][0].imshow(shear_field_pdf, vmin=g_min, vmax=g_max,cmap="jet") img.figure.colorbar(fig, ax=img.axs[1][0]) fig = img.axs[1][1].imshow(shear_field-shear_field_pdf, cmap="jet") img.figure.colorbar(fig, ax=img.axs[1][1]) yfmt = ["%.1f" % (8 - 4 * k) for k in range(5)] xfmt = ["%.1f" % (-8 + 4 * k) for k in range(5)] # img.set_ticklabel(1, 0, 0, len(xfmt), xfmt) # img.set_ticklabel(1, 0, 1, len(xfmt), xfmt) # # img.set_ticklabel(1, 1, 0, len(xfmt), xfmt) # img.set_ticklabel(1, 1, 1, len(xfmt), xfmt) titles = ["Input", "MCMC Fit", "True surface", "True - Fitted"] for i in range(2): for j in range(2): img.set_ticklabel(i, j, 0, len(yfmt), yfmt) img.set_ticklabel(i, j, 1, len(xfmt), xfmt) img.set_label(i, j, 0, "DEC.[arcmin]",size=img.xy_lb_size-5) img.set_label(i, j, 1, "R.A.[arcmin]",size=img.xy_lb_size-5) img.axs[i][j].set_title(titles[i*2+j]) pic_name = parent_path + "pic/%s_mcmc_fit_expo_%d_slope.png"%(shear_cmd, expo_num) pic_name = tool_box.file_name(pic_name) img.save_img(pic_name) img.close_img() print("Fit. %s"%pic_name)
for j in range(5): total_path = "E:/data/new_pdf/galsim_sample/imgs_%d" % j data_path = total_path + "/chisq" h5f = h5py.File(data_path + "/shear.hdf5", "r") g1 = h5f["/g1"][()] g2 = h5f["/g2"][()] h5f.close() for n in nm: for i in range(10): h5f = h5py.File(data_path + "/chisq_%d_%s.hdf5" % (i, n), "r") chisq1 = h5f["/chisq1"][()] chisq2 = h5f["/chisq2"][()] shear_h = h5f["/shear"][()] h5f.close() print(chisq1.min(), chisq2.min()) idx1 = chisq1 < 10000 idx2 = chisq2 < 10000 img = Image_Plot(xpad=0.15, ypad=0.15) img.subplots(1, 1) img.axs[0][0].plot(shear_h[idx1], chisq1[idx1], label="g1") img.axs[0][0].plot(shear_h[idx2], chisq2[idx2], label="g2") img.axs[0][0].set_xlim(-0.11, 0.11) img.axs[0][0].legend() img.axs[0][0].set_title("g1=%.4f, g2=%.4f" % (g1[i], g2[i])) img.set_label(0, 0, 0, "$\chi^2$") img.set_label(0, 0, 1, "$g$") img.save_img(data_path + "/chisq_%s_%d.png" % (n, i)) # img.show_img() img.close_img()
if rank == 0: numpy.savez( data_path + "/result/%d/%s_min_change_%d.npz" % (mg_bin_num, data_type, mg_bin_num), result_min) img = Image_Plot(xpad=0.25) img.subplots(1, 2) img.axs[0][0].plot(dilute_case, result_min[0], label="$\chi^2_{min}$", marker="s") img.axs[0][0].plot(dilute_case, result_min[2], label="$\chi^2_{min}$_corr", marker="o") img.axs[0][1].plot(dilute_case, result_min[1], label="Asym", marker="s") img.axs[0][1].plot(dilute_case, result_min[3], label="Asym_corr", marker="o") img.axis_sci_ticklabel(0, 1, 0) img.set_label(0, 0, 0, "$\chi^2$") img.set_label(0, 0, 1, "dilution ratio") img.set_label(0, 1, 0, "Asym") img.set_label(0, 1, 1, "dilution ratio") img.axs[0][0].legend() img.axs[0][1].legend() # img.show_img() img.save_img(data_path + "/result/%d/%s_min_change_%d.png" % (mg_bin_num, data_type, mg_bin_num)) comm.Barrier()
if i == 0: fig = img.axs[0][i].imshow(shear_field[inverse], cmap="jet") img.figure.colorbar(fig, ax=img.axs[0][i]) elif i == 1: num_dens = numpy.histogram2d(gal_coord[0], gal_coord[1], [ra_bin, dec_bin])[0] fig = img.axs[0][i].imshow(num_dens, cmap="jet") img.figure.colorbar(fig, ax=img.axs[0][i]) else: img.axs[0][i].scatter(ra, dec, color=cmap_g(norm_g(shear_field_ch)), s=1) sm = plt.cm.ScalarMappable(cmap=cmap_g, norm=norm_g) sm._A = [] plt.colorbar(sm, ax=img.axs[0][i]) img.axs[0][i].set_title("%d galaxies" % num_each_expo) img.set_label(0, i, 0, "DEC. [arcmin]") img.set_label(0, i, 1, "R.A. [arcmin]") if i < 2: img.axs[0][i].set_yticks([int(nx - k * nx / 5) for k in range(6)]) img.axs[0][i].set_yticklabels( ["%.1f" % (k * nx / 5. * pixel_scale) for k in range(6)]) img.axs[0][i].set_xticks([int(k * ny / 5) for k in range(6)]) img.axs[0][i].set_xticklabels( ["%.1f" % (k * ny / 5. * pixel_scale) for k in range(6)]) img.save_img(parent_path + "pic/shear_field_slope.png") img.show_img()
img.show_img() for k in range(test_num): mg_i = mg - a2_test[k]*x chi_temp_sym = fq.get_chisq(mg_i, 0, 0, mg_bins, bin_num2, inverse, 0) img = Image_Plot() img.subplots(1,2) for ib in range(bin_num): img.axs[0][0].scatter(mg_i[bin_idx[ib]], x[bin_idx[ib]], c="C%d" %ib, s=7) ys = img.axs[0][0].set_ylim() x_label = numpy.linspace(-0.5, 0.5, 7) for j in range(7): img.axs[0][0].plot([x_label[j], x_label[j]], [ys[0], ys[1]], linestyle="--", c="k", linewidth=2) img.axs[0][0].set_ylim(ys) img.axs[0][0].set_title("$\chi^2$=%.2f, $a_2$=%.3f"%(chi_temp_sym,a2_test[k]),fontsize=img.xy_lb_size) img.set_label(0,0,0,"X") img.set_label(0,0,1,"G") fx = a2_test[k]*x_plt print(fx.min(), fx.max()) img.axs[0][1].plot(fx,x_plt) img.set_label(0,1,1,"g") img.set_label(0,1,0,"X") img.axs[0][1].set_xlim(-0.9,0.9) img.save_img("H:/GGL/1D_slope/move/%d.png"%k) # img.show_img() img.close_img()
# c img.axs[0][1].fill_between(x, tag-0.8, tag + 1.2,facecolor='grey', alpha=0.3) img.axs[0][1].errorbar(10000*mc[0,0], tag, xerr=10000*mc[0,1],c=color, marker="v",mfc="none",capsize=img.cap_size,ms=pts_size) img.axs[0][1].errorbar(10000*mc[0,4], tag+0.6, xerr=10000*mc[0,5],c=color, marker="o",mfc="none",capsize=img.cap_size,ms=pts_size) img.axs[0][1].errorbar(10000*mc[1,0], tag, xerr=10000*mc[1,1],c=color, marker="v",capsize=img.cap_size,ms=pts_size) img.axs[0][1].errorbar(10000*mc[1,4], tag+0.6, xerr=10000*mc[1,5],c=color, marker="o",capsize=img.cap_size,ms=pts_size) for i in range(2): img.axs[0][i].plot([0, 0], [-2, tag+6], c="grey", ls="dashed") if i == 0: img.axs[0][i].plot([0.002, 0.002], [-2, tag+6], c="grey", ls="dashed",alpha=0.5) img.axs[0][i].plot([-0.002, -0.002], [-2, tag+6], c="grey", ls="dashed",alpha=0.5) img.axs[0][i].set_ylim(0, tag+3) img.axs[0][i].set_yticklabels([]) img.axs[0][0].set_xlim(-0.008,0.0061) img.axs[0][1].set_xlim(-0.92,0.92) img.set_label(0,0,1,"$m$") img.set_label(0,1,1,"$10^4 c$") img.save_img(parent_path+"/m_scatter.png") img.show_img()
gh = a2_test[i]*x chi_temp = fq.get_chisq(mg1, mnu1, gh, mg_bins, bin_num2, inverse, 0) img.axs[0][0].hist(mg1-gh*mnu1, hist_bin, histtype='step',linewidth=img.plt_line_width, label="$a_2$=%.2f, $\chi^2$=%.2f"%(a2_test[i],chi_temp)) # num_test = numpy.histogram(mg-gh, mg_bins_test)[0] # n1 = num_test[0:bin_num2_test][inverse_test] # n2 = num_test[bin_num2_test:] # chi_test = (n1-n2)/numpy.abs(n1-n2) * numpy.sum((n1-n2)**2/(n1+n2))*0.5 # img.axs[0][1].scatter(range(bin_num2_test), chi_test,s=120, label="$a_2$=%.2f, $\chi^2$=%.2f"%(a2_test[i],chi_temp)) # img.axs[0][2].plot(range(bin_num2_test), chi_test,linewidth=img.plt_line_width, label="$\hat g$=%.2f, $\chi^2$=%f"%(a2_test[i],chi_temp)) ys = img.axs[0][0].set_ylim() img.axs[0][0].plot([0,0],[ys[0], ys[1]], linestyle="--", c="grey") img.axs[0][0].set_ylim(ys) img.axs[0][0].set_xlim((-0.2*1.e9,0.2*1.e9)) img.axs[0][0].legend(fontsize=img.legend_size-2) img.set_label(0,0,0,"N") img.set_label(0,0,1,"G") img.axs[0][0].set_title("Fix $a_1$=0 (True $a_2$ = %.2f)"%a2,fontsize=img.xy_lb_size) img.save_img(PDF_nm) img.show_img() print(chisq.min(), chisq_new.min()) print(chisq.max(), chisq_new.max()) chisq_project = numpy.zeros_like(chisq) chisq_new_project = numpy.zeros_like(chisq) a1_range_mask = numpy.zeros_like(a1_range,dtype=numpy.bool) a2_range_mask = numpy.zeros_like(a1_range,dtype=numpy.bool) a1_range_mask[:] = False a2_range_mask[:] = False
xs = img.axs[1][i].set_xlim() img.axs[1][i].plot([xs[0], xs[1]], [ total_result[i + dilute_case, 0], total_result[i + dilute_case, 0] ], label="$\chi^2$ before corr") ys = img.axs[0][i].set_ylim() dilute_ratio = dilute_ratio_list[i] num_non = int(num_s * dilute_ratio) img.axs[0][i].plot([num_non, num_non], [ys[0], ys[1]], ls="--", c="gray", label="true dilution") img.set_label(0, i, 0, "Asymmetry") img.set_label(1, i, 0, "$\chi^2$") img.set_label(0, i, 1, "Correction") img.set_label(1, i, 1, "Correction") img.axis_sci_ticklabel(0, i, 0) img.axis_sci_ticklabel(0, i, 1) img.axis_sci_ticklabel(1, i, 1) img.axs[0][i].legend() img.axs[1][i].legend() img.save_img("./%d/asym_%d.pdf" % (mg_bin_num, mg_bin_num)) img.close_img()
] scale = [100, 100, 1000] x_ticks = numpy.linspace(-0.02, 0.01, 4) for i in range(3): h5f = h5py.File("D:/data_%d.hdf5" % (i + 1), "r") data = h5f["/data"][()] img.axs[0][i].errorbar(data[1, :data_num], y, xerr=data[2, :data_num], capsize=img.cap_size - 1) ys = img.axs[0][i].set_ylim() img.axs[0][i].plot([signal, signal], [ys[0], ys[1]], ls="dotted", c="grey", alpha=0.5) img.set_label(0, i, 1, "g") for j in range(data_num): if i < 2: text_str = "%d bins, $10^2\sigma=%.3f$, $N\sigma^2=%.3f$" % ( data[4, j], scale[i] * data[2, j], data[3, j]) else: text_str = "%d bins, $10^3\sigma=%.3f$, $N\sigma^2=%.3f$" % ( data[4, j], scale[i] * data[2, j], data[3, j]) img.axs_text(0, i, y[j], -0.019, text_str, text_fontsize=img.legend_size - 4, ax_trans=False) img.axs[0][i].set_xlim(signal - 0.031, signal + 0.007)
img = Image_Plot() img.subplots(2, 5) for i in range(2): for j in range(5): m = i * 5 + j h5f = h5py.File( parent_path + "/%s/chi_%d_epsf.hdf5" % (dst[rank], m), "r") chisq1 = h5f["/chisq1"][()] chisq2 = h5f["/chisq2"][()] g = h5f["/g"][()] h5f.close() img.axs[i][j].plot(g, chisq1, label="g1") img.axs[i][j].plot(g, chisq2, label="g2") img.axs[i][j].legend() img.set_label(i, j, 0, "$\chi^2$") img.set_label(i, j, 0, "$g$") pic_nm = parent_path + "/%s/chisq_%s.png" % (dst[rank], dst[rank]) img.save_img(pic_nm) if cmd == "check": diff = numpy.zeros((1, 10)) print(dst[rank], src[rank]) for i in range(10): h5f = h5py.File(parent_path + "/%s/data_%d_epsf.hdf5" % (dst[rank], i), "r") data = h5f["/data"][()] h5f.close()
for j in range(bin_num): idxf1 = gf1 >= gf_bin[j] idxf2 = gf1 < gf_bin[j+1] idx = idxf1 & idxf2 if idx.sum() > 1000: gh, gh_sig = fq.find_shear(mg1[idx], mnu1[idx],8)[:2] result[0,j] = gh result[1,j] = gh_sig idxp = result[0] > - 99 img.axs[m][n].errorbar(gf_bin_c[idxp], result[0][idxp], result[1][idxp], capsize=3, c="C1", label="%s g1"%labels[i], marker="o") m,n = divmod(i,2) xs = img.axs[m][n].set_xlim() ys = img.axs[m][n].set_ylim() max_x = max([abs(xs[0]), abs(xs[1])]) max_y = max([abs(ys[0]), abs(ys[1])]) max_range = max(max_x, max_y) img.axs[m][n].plot([-max_range, max_range], [-max_range, max_range], linestyle="--", c="grey") img.axs[m][n].legend(loc="upper left") img.axs[m][n].set_xlim(-max_x, max_x) img.axs[m][n].set_ylim(-max_y, max_y) img.set_label(m,n, 0, "$g_1$") img.set_label(m,n, 1, "True $g_1$") img.save_img(pic_path + "/%s.png"%("_".join(sub_fields_sep[sub_tag]))) img.close_img()
h5f.close() print(dist.shape, res.shape) img.axs[0][0].errorbar(dist, res[0], res[1], marker="s", c="C%d" % i, mfc="none", label="W-%d" % i, capsize=4) img.axs[0][0].legend(fontsize=img.legend_size) img.axs[0][0].set_yscale("log") img.axs[0][0].set_xscale("log") img.axs[0][0].set_ylim(0.01, 200) img.set_label(0, 0, 0, ylabel, size=img.xy_lb_size) img.set_label(0, 0, 1, xlabel, size=img.xy_lb_size) img.save_img(data_path + "result.png") img.show_img() # # plot the difference percentage # img = Image_Plot() # img.subplots(1,1) # # ylabel = "$\Delta\Sigma \; [\\rm{h} \cdot \\rm{M_{\odot}} \cdot \\rm{pc^{-2}}]$" # xlabel = "$\\rm{R} \; [\\rm{Mpc} \cdot \\rm{h^{-1}}]$" # data_path = "E:/works/Galaxy-Galaxy_lensing/CLUSTER/" # dist_min, dist_max = 100, 0 # for i in range(1, 5): # data_path1 = "E:/works/Galaxy-Galaxy_lensing/CLUSTER/1/" # data_path2 = "E:/works/Galaxy-Galaxy_lensing/CLUSTER/3/"
pic_nm = "./result/galsim/mc_%s_ellip_mix.png"%psf_tag pic_nm_pdf = "./result/galsim/mc_%s_ellip_mix.pdf"%psf_tag else: numpy.savez("./result/galsim/cache_%s_ellip_%.2f.npz"%(psf_tag,ellip), mcs) pic_nm = "./result/galsim/mc_%s_ellip_%.2f.png"%(psf_tag, ellip) pic_nm_pdf = "./result/galsim/mc_%s_ellip_%.2f.pdf"%(psf_tag, ellip) y = numpy.zeros((si_num*sr_num,)) x = numpy.zeros((si_num*sr_num,)) for i in range(si_num): for j in range(sr_num): tag = int(i*sr_num + j) y[tag] = sersic_index[i] x[tag] = scale_radius[j] titles = ["$m_1$","$c_1$","$m_2$", "$c_2$"] img = Image_Plot(xpad=0.3,ypad=0.3,fig_x=4,fig_y=3) img.subplots(2, 2) for i in range(2): for j in range(2): tag = int(i*2 + j) z = mcs[tag].flatten() img.scatter_pts(i,j,x,y,z,pts_size=30,color_map="bwr") img.set_label(i,j,0,"Sersic Index") img.set_label(i,j,1,"Scale Radius") img.axs[i][j].set_title(titles[tag],fontsize=img.xy_lb_size) img.save_img(pic_nm) img.save_img(pic_nm_pdf) # img.show_img()
label="g2") mc1 = tool_box.data_fit(g1, result[i, 0, :], result[i, 1, :]) mc2 = tool_box.data_fit(g2, result[i, 2, :], result[i, 3, :]) strs = "m1: %.4f(%.4f), c1: %.5f(%.5f)\nm2: %.4f(%.4f), c2: %.5f(%.5f)" % ( mc1[0] - 1, mc1[1], mc1[2], mc1[3], mc2[0] - 1, mc2[1], mc2[2], mc2[3]) img.axs_text(0, i, 0.95, 0.05, strs, text_fontsize=12) img.axs[0][i].plot([-0.04, 0.04], [-0.04, 0.04], ls="--", alpha=0.3, c="gray") img.axs[1][i].plot([-0.04, 0.04], [0, 0], ls="--", alpha=0.3, c="gray") img.axs[0][i].legend(loc="lower right") img.axs[1][i].legend(loc="lower right") img.set_label(0, i, 0, "Measured g") img.set_label(0, i, 1, "True g") img.set_label(1, i, 0, "diff *100") img.set_label(1, i, 1, "True g") print(mc1) print(mc2) img.save_img("./pic/%s_mc.png" % bins) # img.show_img() img.close_img() comm.Barrier()
scale = [24.2423, 23.4742] line_labels = ["$30%$ cutoff", "$60%$ cutoff"] img = Image_Plot(legend_size=14, fig_x=6, fig_y=4, plt_line_width=2, axis_linewidth=2, xpad=0.2) img.subplots(1, 1) # img.set_style() img.axis_type(0, "major", tick_len=6, tick_width=1.2) img.axis_type(1, "major", tick_len=6, tick_width=1.2) bins = img.axs[0][0].hist(-mag_true, 50, ec="gray", label="Entire sample")[1] img.axs[0][0].hist(-mag_true[idx], bins, ec="gray", label="Detected sample") ys = img.axs[0][0].set_ylim() for i, s in enumerate(scale): img.axs[0][0].plot([s, s], [ys[0], ys[1]], lw=img.plt_line_width, ls="--", label=line_labels[i]) img.axs[0][0].legend(fontsize=img.legend_size, frameon=False) img.set_ticklabel_str(0, 0, 0, [2 * i * 100000 for i in range(1, 7)], ["%d" % (2 * i) for i in range(1, 7)]) img.set_label(0, 0, 0, "$10^{-5}N$") img.set_label(0, 0, 1, "Magnitude") # img.axs[0][0].set_xlim(22, 25) img.save_img("E:/cutoff_line.pdf") img.show_img()
img = Image_Plot() img.subplots(2, 2) inverse = range(nx - 1, -1, -1) for i in range(2): for j in range(2): tag = i * 2 + j if tag < 3: fig = img.axs[i][j].imshow(g[tag][inverse], cmap="jet") img.figure.colorbar(fig, ax=img.axs[i][j]) else: num_dens = numpy.histogram2d(gal_coord[0], gal_coord[1], [ra_bin, dec_bin])[0] fig = img.axs[i][j].imshow(num_dens, cmap="jet") img.figure.colorbar(fig, ax=img.axs[i][j]) img.set_label(i, j, 0, "DEC. [arcmin]") img.set_label(i, j, 1, "R.A. [arcmin]") img.axs[i][j].set_yticks([int(nx - k * nx / 5) for k in range(6)]) img.axs[i][j].set_yticklabels( ["%.1f" % (k * nx / 5. * pixel_scale) for k in range(6)]) img.axs[i][j].set_xticks([int(k * ny / 5) for k in range(6)]) img.axs[i][j].set_xticklabels( ["%.1f" % (k * ny / 5. * pixel_scale) for k in range(6)]) img.save_img(parent_path + "pic/shear_field.png") img.show_img() # the galactic parameters h5f = h5py.File(parent_path + "param.hdf5", "w") h5f["/FIELD_g"] = g[0] h5f["/FIELD_g1"] = g[1]
for i in range(src_plane_num): kappa, g1, g2 = shear_data[i][0], shear_data[i][1], shear_data[i][2] g = numpy.sqrt(g1**2 + g2**2) img.scatter_pts(0, i, ra, dec, kappa) img.scatter_pts(1, i, ra, dec, g) img.scatter_pts(2, i, ra, dec, g1) img.scatter_pts(3, i, ra, dec, g2) img.axs[0][i].set_title("kappa from source plane at Z=%.3f" % src_z[i]) img.axs[1][i].set_title("g from source plane at Z=%.3f" % src_z[i]) img.axs[2][i].set_title("g1 from source plane at Z=%.3f" % src_z[i]) img.axs[3][i].set_title("g2 from source plane at Z=%.3f" % src_z[i]) for j in range(4): img.set_label(j, i, 0, "Dec. [arcsec]") img.set_label(j, i, 1, "R.A. [arcsec]") img.save_img("./pic/sample.png") img.close_img() # img.show_img() comm.Barrier() # random position of source galaxies total_num = 10000000 half_num = int(total_num / 2) max_angle = Rmax # arcsec max_radius = com_dist_len * max_angle / 3600 * numpy.pi / 180 gal_x = numpy.random.uniform(-max_angle, max_angle, total_num).astype(dtype=numpy.float32) gal_y = numpy.random.uniform(-max_angle, max_angle, total_num).astype(dtype=numpy.float32)
mag_i = tool_box.mag_generator(total_num, 20, 24) flux_i = tool_box.mag_to_flux(mag_i) h5f["/mag"] = mag_i h5f["/flux"] = flux_i h5f.close() print(flux_i.min(), flux_i.max()) # Plot img = Image_Plot() img.subplots(1, 3) img.set_style() img.axs[0][0].scatter(x, shear_field) img.axs[0][1].hist(flux_i, 100) img.axs[0][2].hist(x, 50) img.axs[0][0].set_title("shear field") img.set_label(0, 0, 0, "g") img.set_label(0, 0, 1, "x") img.axs[0][1].set_title("Flux hist") img.axs[0][2].set_title("density") img.save_img(parent_path + "shear_field_slope.png") img.show_img() print("Mock shear field") print("Generate galaxies") cmd = "mpirun -np 10 ./simu" a = Popen(cmd, shell=True) a.wait() print("Calculate galaxies") cmd = "mpirun -np 15 python calculate_chisq.py"
print(chisqs.min(), chisqs.max()) omega_cm_num = omega_cm_bin.shape[0] omega_bm_num = omega_bm_bin.shape[0] sigma8_num = sigma8_bin.shape[0] my, mx = numpy.zeros((omega_cm_num, sigma8_num)), numpy.zeros( (omega_cm_num, sigma8_num)) for i in range(omega_cm_num): my[i] = omega_cm_bin[i] for j in range(sigma8_num): mx[:, j] = sigma8_bin[j] img = Image_Plot(fig_x=4, fig_y=3, xpad=0.25, ypad=0.28) img.subplots(2, 5) for i in range(2): for j in range(5): tag = i * 2 + j idx = chisqs[tag] > -200 print(idx.sum()) x = mx[idx].flatten() y = my[idx].flatten() z = chisqs[tag][idx].flatten() img.scatter_pts(i, j, x, y, z, color_map="jet", pts_size=18) img.axs[i][j].set_title("$\Omega_b=%.3f$" % omega_bm_bin[tag]) img.set_label(i, j, 0, "$\Omega_m$") img.set_label(i, j, 1, "$\sigma_8$") img.save_img("%s/%s.png" % (data_path, chisa_name)) img.show_img()
"%d-%d" % (i, j) for i in range(1, redshift_bin_num + 1) for j in range(i, redshift_bin_num + 1) ] img = Image_Plot(xpad=0.25, ypad=0.25) img.subplots(2, 3) for i in range(redshift_bin_num): img.axs[0][0].plot(zebin_cent, zehist[i], label="z bin %d" % i) img.axs[0][1].plot(com_dist, qx[i], label="z bin %d" % i) for i in range(tomo_panel_num): ls, c = img.line_styles[i] img.axs[0][2].plot(com_dist, integ_factor[i], ls=ls, c=c, label=labels[i]) img.set_label(0, 1, 0, "g($\chi$)") img.set_label(0, 1, 1, "$\chi [Mpc\cdot h^{-1}]$") img.set_label(0, 2, 0, "$g_i(\chi)g_j(\chi)/a(\chi)^2$") img.set_label(0, 2, 1, "$\chi [Mpc\cdot h^{-1}]$") for i in range(3): img.axs[0][i].legend(ncol=3) for i in range(tomo_panel_num): ls, c = img.line_styles[i] img.axs[1][0].plot(Lpts, Lpts * (Lpts + 1) * PLs[i] / numpy.pi / 2, label=labels[i], ls=ls, c=c) img.axs[1][1].plot(theta, xi_plus[i], label=labels[i], ls=ls, c=c)
y_max = img.axs[0][0].set_ylim()[1] ylims = (0.01, y_max * 2) # plot the line of "W1" extracted from "Lensing is low" if area_num == 1 and int(argv[5]) == 1 and fore_source == "cmass": w1_cfht_path = "../lensing_low/data.dat" if os.path.exists(w1_cfht_path): w1_data_cfht = numpy.loadtxt(w1_cfht_path) img.axs[0][0].errorbar(w1_data_cfht[:, 0], w1_data_cfht[:, 1], w1_data_cfht[:, 2], c="C4", capsize=4, label="w1, Lensing_low", marker="s") img.set_label(0, 0, 0, ylabels[1]) img.set_label(0, 0, 1, xlabel) img.axs[0][0].set_yscale("log") img.axs[0][0].set_ylim(ylims) img.axs[0][0].set_xscale("log") xs = img.axs[0][0].set_xlim() img.axs[0][0].plot([xs[0], xs[1]], [0, 0], linestyle="--", linewidth=1, c="grey") img.set_legend(0, 0, loc="upper right") for j in range(10): img.axs[0][0].plot([xs[0], xs[1]], [j, j], linewidth=0.5,
# noisy g1 ori PDF mc = tool_box.data_fit(g1t,result[:,8],result[:,9]) label = "grid PDF_SYM noisy\nm: %.4f(%.4f) c: %.5f(%.5f)"%(mc[0]-1, mc[1], mc[2], mc[3]) img.axs[1][0].errorbar(g1t, result[:,8],result[:,9],c="C0",fmt=" ", label=label,marker="s",ms=5) # noisy g2 ori PDF mc = tool_box.data_fit(g2t,result[:,10],result[:,11]) label = "grid PDF_SYM noisy\nm: %.4f(%.4f) c: %.5f(%.5f)"%(mc[0]-1, mc[1], mc[2], mc[3]) img.axs[1][1].errorbar(g2t, result[:,10],result[:,11],c="C0",fmt=" ", label=label,marker="s",ms=5) # noisy g1 ori PDF mc = tool_box.data_fit(g1t,result[:,12],result[:,13]) label = "grid PDF_SYM noisy\nm: %.4f(%.4f) c: %.5f(%.5f)"%(mc[0]-1, mc[1], mc[2], mc[3]) img.axs[1][0].errorbar(g1t, result[:,12],result[:,13],c="C1",fmt=" ", label=label,marker="s",ms=5) # noisy g2 ori PDF mc = tool_box.data_fit(g2t,result[:,14],result[:,15]) label = "grid PDF_SYM noisy\nm: %.4f(%.4f) c: %.5f(%.5f)"%(mc[0]-1, mc[1], mc[2], mc[3]) img.axs[1][1].errorbar(g2t, result[:,14],result[:,15],c="C1",fmt=" ", label=label,marker="s",ms=5) for i in range(2): img.axs[0][i].legend() img.axs[1][i].legend() img.axs[0][i].plot([-0.03,0.03],[-0.03,0.03],alpha=0.3,ls="--") img.axs[1][i].plot([-0.03,0.03],[-0.03,0.03],alpha=0.3,ls="--") for j in range(2): img.set_label(i, j, 1, "true g%d" % (i + 1)) img.set_label(i,j, 0, "measured g%d" % (i + 1)) img.save_img(data_path + "/result.png") img.show_img()
xs = img.axs[2 * i + 1][0].set_xlim() img.axs[2 * i + 1][0].plot([xs[0], xs[1]], [1, 1], ls="--", alpha=0.4, c="k") img.axs[2 * i + 1][0].plot([xs[0], xs[1]], [0, 0], ls="--", alpha=0.4, c="k") img.axs[2 * i + 1][0].plot([xs[0], xs[1]], [-1, -1], ls="--", alpha=0.4, c="k") labels = [ "noise_free\n$10^2m_{1/2}$", "noise_free\n$10^4c_{1/2}$", "noisy\n$10^2m_{1/2}$", "noisy\n$10^4c_{1/2}$" ] for i in range(4): img.set_label(i, 0, 0, labels[i], fontsize=img.xy_lb_size - 2) psf_scale = [ "$r_d=1.6$", "$r_d=2$", "$r_d=2.5$", "$r_d=3$", "$r_d=4$", "$r_d=6$", "$r_d=7$" ] # img.axs[3][0].set_xticks(x_tick_pos) # img.axs[3][0].set_xticklabels(psf_scale) img.set_ticklabel_str(3, 0, 1, x_tick_pos, psf_scale) img.save_img(parent_path + "/result.png")
h5f = h5py.File(data_path + "/bias_test.hdf5", "r") img = Image_Plot(fig_x=4, fig_y=3, xpad=0.14, ypad=0.2) img.subplots(2, 4) for i in range(2): for j in range(2): tag = int(2 * i + j) data = numpy.abs(h5f["/%d" % tag][()]) scale = 1 # img.axs[0][tag].errorbar(data[:,0], data[:,1]*scale, data[:,2]*scale,fmt=" ",capsize=3,marker="s", label="$10^3 c_1$") img.axs[0][tag].scatter(data[:, 0], data[:, 1] * scale / data[:, 2] * scale, marker="s", label="$|c_1|/\delta_{c_1}$") # img.axs[1][tag].errorbar(data[:,0], data[:,3]*scale, data[:,4]*scale,fmt=" ",capsize=3,marker="s", label="$10^3 c_2$") img.axs[1][tag].scatter(data[:, 0], data[:, 3] * scale / data[:, 4] * scale, marker="s", label="$|c_2|/\delta_{c_2}$") img.set_label(0, tag, 1, "Jack_id") img.set_label(1, tag, 1, "Jack_id") img.axs[0][tag].legend() img.axs[1][tag].legend() # img.axs[0][tag].set_yscale("log") # img.axs[1][tag].set_yscale("log") h5f.close() img.save_img(data_path + "/add_bias_test.jpg") img.show_img()
shear_guess = numpy.linspace(g_range[i][0], g_range[i][1], guess_num) g1_hat, g1_chisq = fq.get_chisq_range(mg1, mnu1, 8, shear_guess) g2_hat, g2_chisq = fq.get_chisq_range(mg2, mnu2, 8, shear_guess) result[0] = g1_hat result[1] = g1_chisq result[2] = g2_hat result[3] = g2_chisq img = Image_Plot(fig_x=6, fig_y=4, xpad=0.25, ypad=0.25) img.subplots(1, 1) img.axs[0][0].plot(g1_hat, g1_chisq, marker="o", label="g1") img.axs[0][0].plot(g2_hat, g2_chisq, marker="s", label="g2") img.axs[0][0].legend(fontsize=img.legend_size) img.set_label(0, 0, 0, "$\chi^2$", fontsize=img.xy_lb_size) img.set_label(0, 0, 1, "$g$", fontsize=img.xy_lb_size) img.save_img(total_path + "/result/pic/data_%d_%s_chisq.png" % (ig, dst_nms[i])) img.close_img() if i == 2 or i == 5: img = Image_Plot(fig_x=6, fig_y=4, xpad=0.25, ypad=0.25) img.subplots(1, 2) total_row = mg1.shape[0] sub_row = divmod(total_row, sub_num)[0] sub_result[2 * sub_num] = shear_guess
for g_hat in fit_range ]) # plot img = Image_Plot() img.subplots(1, 2) shear_fit(fit_range, chi_sq1, img.axs[0][0], "$\chi^2$ of $g_1$") shear_fit(fit_range, chi_sq2, img.axs[0][0], "$\chi^2$ of $g_2$") shear_fit(fit_range, chi_sq1_new, img.axs[0][1], "$\chi^2$ of $g_1$") shear_fit(fit_range, chi_sq2_new, img.axs[0][1], "$\chi^2$ of $g_2$") titles = ["Original $\chi^2$", "New $\chi^2$"] for i in range(2): img.set_label(0, i, 0, "$\chi^2$") img.set_label(0, i, 1, "$\hat g$") img.axs[0][i].legend(fontsize=img.legend_size) img.axs[0][i].set_title(titles[i]) img.save_img("chisq/chisq_%d.png" % rank) comm.Barrier() # if rank == 0: # # shear = numpy.loadtxt(data_path + "parameters/shear.dat") # g1 = shear[:result_col] # g2 = shear[result_col:] # # img = Image_Plot()