recvs = numpy.empty((6, len(cutoff_scalar)), dtype=numpy.float64) comm.Recv(recvs, source=procs, tag=procs) res_arr = numpy.column_stack((res_arr, recvs)) numpy.savez(result_path + "cuts/cache_%s.npz" % cut, res_arr, cutoff_scalar_total) mc1 = [] mc2 = [] for tag, cut_s in enumerate(cutoff_scalar): arr = res_arr[:, tag] for i in range(1, cpus): arr = numpy.column_stack( (arr, res_arr[:, i * len(cutoff_scalar) + tag])) e1mc = tool_box.data_fit(fg1, arr[0], arr[1]) mc1.append(e1mc) e2mc = tool_box.data_fit(fg2, arr[3], arr[4]) mc2.append(e2mc) mc = numpy.array([e1mc, e2mc]) data_path = result_path + "cuts/sym/%s/" % filter_name + cut + "/" + str( round(cut_s, 4)) + ".npz" numpy.savez(data_path, arr, mc) mc_title = ['0', '0', '0', '0'] m_r = [[e1mc[0] - 1 - 2 * e1mc[1], e1mc[0] - 1 + 2 * e1mc[1]], [e2mc[0] - 1 - 2 * e2mc[1], e2mc[0] - 1 + 2 * e2mc[1]]] c_r = [[e1mc[2] - 2 * e1mc[3], e1mc[2] + 2 * e1mc[3]], [e2mc[2] - 2 * e2mc[3], e2mc[2] + 2 * e2mc[3]]] for ii in range(2):
plt.subplot(339) plt.title("B/T") plt.hist(btr, 100) plt.savefig(pic) plt.close() h5f["/btr"] = btr[:, 0] h5f.close() comm.Barrier() # checking # if it shows a "m" or "c", run the code again with different seed if rank == 0: h5f = h5py.File(para_path + "/shear.hdf5") g1_t = h5f["/g1"][()] g2_t = h5f["/g2"][()] h5f.close() mc1 = tool_box.data_fit(g1_t, mean_e[:, 0], sig_e[:, 0] / numpy.sqrt(num * stamp_num)) mc2 = tool_box.data_fit(g2_t, mean_e[:, 1], sig_e[:, 1] / numpy.sqrt(num * stamp_num)) print(mean_e[:, 0]) print(sig_e[:, 0]) print(mean_e[:, 1]) print(sig_e[:, 1]) print("m1*10^3: %.5f(%.5f), c1*10^4: %.6f(%.6f)" % (mc1[0] * 1000, mc1[1] * 1000, mc1[2] * 10000, mc1[3] * 10000)) print("m2*10^3: %.5f(%.5f), c2*10^4: %.6f(%.6f)" % (mc2[0] * 1000, mc2[1] * 1000, mc2[2] * 10000, mc2[3] * 10000)) comm.Barrier()
comm.Barrier() if rank == 0: # measured g ch1 = [i * 3 for i in range(cut_num)] all_measured_fg = results[i][ch1] # sigma ch2 = [i * 3 + 1 for i in range(cut_num)] all_sigma_fg = results[i][ch2] # number ch3 = [i * 3 + 2 for i in range(cut_num)] all_source_num = results[i][ch3] x = numpy.linspace(-0.02, 0.02, 100) for ic in range(cut_num): # mc = (1+m, sig_, c, sig_c) mc = tool_box.data_fit(fgs[i], all_measured_fg[ic], all_sigma_fg[ic]) mcs[i].append(mc) # plot the result fig = plt.figure(figsize=(8,8)) ax = fig.add_subplot(111) lb = "fg_%d: %d \n$10^2$m: %.2f (%.2f), \n$10^4$c: %.2f (%.2f)"\ %(i+1,all_source_num[ic].sum(), 100*(mc[0]-1), 100*mc[1], 10**4*mc[2], 10**4*mc[3]) ax.errorbar(fgs[i], all_measured_fg[ic], all_sigma_fg[ic], c='red',alpha=0.8, capsize=3, label=lb) ax.plot(mc[0]*x+mc[2], c='blue', linestyle="-.", linewidth=1) x1, x2 = fgs[i][0], fgs[i][-1] ax.plot([x1,x2],[x1,x2], c='black', linewidth=1) ax.set_xlim(x1 - 0.3 * (x2 - x1), x2 + 0.3 * (x2 - x1)) ax.set_ylim(x1 - 0.3 * (x2 - x1), x2 + 0.3 * (x2 - x1))
coll_res = comm.gather(res_list, root=0) if rank == 0: mc1 = [] mc2 = [] for tag, cut_s in enumerate(cut_off_scale): arr = [] for i in range(cpus): arr.append(coll_res[i][tag]) arr = numpy.array(arr).T y1_data = arr[0, 0:g1num] y1_err = arr[1, 0:g1num] y2_data = arr[3, 0:g2num] y2_err = arr[4, 0:g2num] e1mc = tool_box.data_fit(g1, y1_data, y1_err) mc1.append(e1mc) e2mc = tool_box.data_fit(g2, y2_data, y2_err) mc2.append(e2mc) mc = numpy.array([e1mc, e2mc]) data_path = cut_path + "%s/%.4f.npz" % (cut, cut_s) numpy.savez(data_path, arr, mc) mc_title = ['0', '0', '0', '0'] m_r = [[e1mc[0] - 1 - 2 * e1mc[1], e1mc[0] - 1 + 2 * e1mc[1]], [e2mc[0] - 1 - 2 * e2mc[1], e2mc[0] - 1 + 2 * e2mc[1]]] c_r = [[e1mc[2] - 2 * e1mc[3], e1mc[2] + 2 * e1mc[3]], [e2mc[2] - 2 * e2mc[3], e2mc[2] + 2 * e2mc[3]]] for ii in range(2):
mean_result_array[1, ig] = g1_mean mean_result_array[2, ig] = g1_sig_mean mean_result_array[4, ig] = g2_mean mean_result_array[5, ig] = g2_sig_mean sym_result_array[1, ig] = g1_sym sym_result_array[2, ig] = g1_sig_sym sym_result_array[4, ig] = g2_sym sym_result_array[5, ig] = g2_sig_sym comm.Barrier() if rank == 0: mc1 = tool_box.data_fit(mean_result_array[0], mean_result_array[1], mean_result_array[2]) mean_mc_array[0] = mc1[0] - 1, mc1[1], mc1[2], mc1[3] mc2 = tool_box.data_fit(mean_result_array[3], mean_result_array[4], mean_result_array[5]) mean_mc_array[1] = mc2[0] - 1, mc2[1], mc2[2], mc2[3] mc1 = tool_box.data_fit(sym_result_array[0], sym_result_array[1], sym_result_array[2]) sym_mc_array[0] = mc1[0] - 1, mc1[1], mc1[2], mc1[3] mc2 = tool_box.data_fit(sym_result_array[3], sym_result_array[4], sym_result_array[5]) sym_mc_array[1] = mc2[0] - 1, mc2[1], mc2[2], mc2[3] h5f = h5py.File(result_name, "w") h5f["/mean_result"] = mean_result_array h5f["/mean_mc"] = mean_mc_array
label="g2") img.axs[1][i].errorbar(g1, (g1 - result[i, 0, :]) * 100, result[i, 1, :], marker="s", ms=5, fmt=" ", label="g1") img.axs[1][i].errorbar(g2, (g2 - result[i, 2, :]) * 100, result[i, 3, :], marker="o", ms=5, fmt=" ", 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 = Image_Plot(xpad=0.28, ypad=0.2) img.subplots(2,2) data_path = "D:/TEMP/PDF_grid_test" h5f = h5py.File(data_path + "/shear.hdf5","r") g1t = h5f["/g1"][()] g2t = h5f["/g2"][()] h5f.close() result = numpy.load(data_path + "/cache.npz")["arr_0"] print(result.shape) # noise free g1 ori PDF mc = tool_box.data_fit(g1t,result[:,0],result[:,1]) label = "ori PDF_SYM noise-free\nm: %.4f(%.4f) c: %.5f(%.5f)"%(mc[0]-1, mc[1], mc[2], mc[3]) img.axs[0][0].errorbar(g1t, result[:,0],result[:,1],c="C0",fmt=" ", label=label,marker="s",ms=5) # noise free g2 ori PDF mc = tool_box.data_fit(g2t,result[:,2],result[:,3]) label = "ori PDF_SYM noise-free\nm: %.4f(%.4f) c: %.5f(%.5f)"%(mc[0]-1, mc[1], mc[2], mc[3]) img.axs[0][1].errorbar(g2t, result[:,2],result[:,3],c="C0",fmt=" ", label=label,marker="s",ms=5) # noise free g1 grid PDF mc = tool_box.data_fit(g1t,result[:,4],result[:,5]) label = "grid PDF_SYM noise-free\nm: %.4f(%.4f) c: %.5f(%.5f)"%(mc[0]-1, mc[1], mc[2], mc[3]) img.axs[0][0].errorbar(g1t, result[:,4],result[:,5],c="C1",fmt=" ", label=label,marker="s",ms=5) # noise free g2 grid PDF mc = tool_box.data_fit(g2t,result[:,6],result[:,7]) label = "grid PDF_SYM noise-free\nm: %.4f(%.4f) c: %.5f(%.5f)"%(mc[0]-1, mc[1], mc[2], mc[3]) img.axs[0][1].errorbar(g2t, result[:,6],result[:,7],c="C1",fmt=" ", label=label,marker="s",ms=5)
comm.Barrier() # checking # if it shows a "m" or "c", run the code again with different seed if rank == 0: h5f = h5py.File(para_path + "/shear.hdf5", "r") g1_t = h5f["/g1"][()] g2_t = h5f["/g2"][()] h5f.close() mean_e = numpy.zeros((2, cpus)) sig_e = numpy.zeros((2, cpus)) for i in range(cpus): h5f = h5py.File(para_path + "/para_%d.hdf5" % i, "r") e1 = h5f["/e1"][()] e2 = h5f["/e2"][()] h5f.close() mean_e[0, i] = e1.mean() mean_e[1, i] = e2.mean() sig_e[0, i] = e1.std() / numpy.sqrt(total_num) sig_e[1, i] = e2.std() / numpy.sqrt(total_num) mc1 = tool_box.data_fit(g1_t, mean_e[0], sig_e[0]) mc2 = tool_box.data_fit(g2_t, mean_e[1], sig_e[1]) print(mean_e[0]) print(sig_e[0]) print(mean_e[1]) print(sig_e[1]) print("m1*10^3: %.5f(%.5f), c1*10^4: %.6f(%.6f)" % (mc1[0] * 1000, mc1[1] * 1000, mc1[2] * 10000, mc1[3] * 10000)) print("m2*10^3: %.5f(%.5f), c2*10^4: %.6f(%.6f)" % (mc2[0] * 1000, mc2[1] * 1000, mc2[2] * 10000, mc2[3] * 10000)) comm.Barrier()
mg2 = data[:, 3] mnu1 = data[:, 4] + data[:, 5] mnu2 = data[:, 4] - data[:, 5] fq = Fourier_Quad(10, 123) gh1, gh1_sig = fq.find_shear(mg1, mnu1, 8)[:2] gh2, gh2_sig = fq.find_shear(mg2, mnu2, 8)[:2] result[0, rank] = gh1 result[1, rank] = gh1_sig result[2, rank] = gh2 result[3, rank] = gh2_sig comm.Barrier() if rank == 0: mc1 = numpy.array(tool_box.data_fit(g1, result[0], result[1])) mc2 = numpy.array(tool_box.data_fit(g2, result[2], result[3])) mc1[0] = mc1[0] - 1 mc2[0] = mc2[0] - 1 result_path = total_path + "/result/data/shear_result.hdf5" h5f = h5py.File(result_path, "w") h5f["/mc1"] = mc1 h5f["/mc2"] = mc2 h5f["/shear"] = result h5f.close() print(mc1) print(mc2)
h5f.close() result_data = sym_result_array.copy() g1 = mean_result_array[0] g2 = mean_result_array[3] shear_num = g1.shape[0] print(g1.shape) mg_l = numpy.zeros((4, shear_num)) mg_l[0] = result_data[1] mg_l[1] = result_data[2] mg_l[2] = result_data[4] mg_l[3] = result_data[5] mc1 = tool_box.data_fit(g1, mg_l[0], mg_l[1]) mc1_n = tool_box.data_fit_scipy(g1, mg_l[0], mg_l[1]) mc2 = tool_box.data_fit(g2, mg_l[2], mg_l[3]) mc2_n = tool_box.data_fit_scipy(g2, mg_l[2], mg_l[3]) print("From CPP") print("%.5f (%.5f), %.5f (%.5f)" % (mc1[0] - 1, mc1[1], mc1[2], mc1[3])) # print("%.5f (%.5f), %.5f (%.5f)"%(mc1_n[0],mc1_n[1],mc1_n[2],mc1_n[3])) print("%.5f (%.5f), %.5f (%.5f)" % (mc2[0] - 1, mc2[1], mc2[2], mc2[3])) # print("%.5f (%.5f), %.5f (%.5f)"%(mc2_n[0],mc2_n[1],mc2_n[2],mc2_n[3])) check_result = numpy.zeros_like(mg_l) new_result = numpy.zeros_like(mg_l) for i in range(shear_num): fit_x1 = chisq_g1[i, 20:] fit_y1 = chisq_g1[i, :20]
print(shear_num) file_name = "new_pdf_5.hdf5" pic_nm1 = data_path + "/%s_1.png"%file_name pic_nm2 = data_path + "/%s_2.png"%file_name pic_nm3 = data_path + "/%s_3.png"%file_name h5f = h5py.File(data_path + "/%s"%file_name, "r") pdf_result = h5f["/PDF"][()].T new_pdf_result1 = h5f["/new_PDF/g1"][()].T new_pdf_result2 = h5f["/new_PDF/g2"][()].T h5f.close() print(new_pdf_result1.shape) pdf_mc1 = numpy.array(tool_box.data_fit(g1, pdf_result[0], pdf_result[1])) pdf_mc2 = numpy.array(tool_box.data_fit(g2, pdf_result[3], pdf_result[4])) pdf_mc1[0] = pdf_mc1[0] - 1 pdf_mc2[0] = pdf_mc2[0] - 1 print(pdf_mc1) print(pdf_mc2) sub_row = int(new_pdf_result1.shape[0]/iters) print(sub_row) mc1s = numpy.zeros((iters, 4)) mc2s = numpy.zeros((iters, 4)) # # g\hat vs g_true # img = Image_Plot(cap_size=4, xpad=0.2, ypad=0.2)
gh2_grid, gh2_sig_grid, hist2, grid_G2, grid_NU2 = find_shear_grid( G2, NU2, G2_bin, G2_hist_bin, NU2_hist_bin, chisq_gap=200, dg=0.005) result.extend([gh1_grid, gh1_sig_grid, gh2_grid, gh2_sig_grid]) t5 = time.time() print("RANK %d: %.2f, %.2f, %.2f, %.2f\n" % (rank, t2 - t1, t3 - t2, t4 - t3, t5 - t4)) comm.Barrier() results = comm.gather(result, root=0) if rank == 0: result_arr = numpy.array(results) h5f = h5py.File(data_path + "/shear.hdf5", "r") g1 = h5f["/g1"][()] g2 = h5f["/g2"][()] h5f.close() mc1 = tool_box.data_fit(g1, result_arr[:, 0], result_arr[:, 1]) mc2 = tool_box.data_fit(g2, result_arr[:, 2], result_arr[:, 3]) mc1_grid = tool_box.data_fit(g1, result_arr[:, 4], result_arr[:, 5]) mc2_grid = tool_box.data_fit(g2, result_arr[:, 6], result_arr[:, 7]) numpy.savez(data_path + "/cache_%s.npz" % data_type, result_arr, g1, mc1, mc1_grid, g2, mc2, mc2_grid) comm.Barrier()
fig = img.axs[1][1].imshow(g2_grid2) img.figure.colorbar(fig, ax=img.axs[1][1], orientation='horizontal') img.axs[1][1].set_title("$g2_U grid$") fig = img.axs[1][2].imshow(chisq2) img.figure.colorbar(fig, ax=img.axs[1][2], orientation='horizontal') img.axs[1][2].set_title("$g2 \chi^2 grid$") img.axs_text(0, 0, 1.2, 0.5, text_str, text_fontsize=10) img.save_img(total_path + "/shear_point_chisq_0.0030_0.0070_noise_free_%d.png" % tag) # img.show_img() img.close_img() mc1 = numpy.array(tool_box.data_fit(g1t, g1m[0], g1m[1])) mc2 = numpy.array(tool_box.data_fit(g2t, g2m[0], g2m[1])) mc1[0] = mc1[0] - 1 mc2[0] = mc2[0] - 1 print(mc1) print(mc2) text_str = "g_N\nm1: %.5f(%.5f)\nc1: %.5f(%.5f)\n" \ "m2: %.5f(%.5f)\nc2: %.5f(%.5f)\n"\ %(mc1[0],mc1[1],mc1[2],mc1[3],mc2[0],mc2[1],mc2[2],mc2[3]) mc1_u = numpy.array(tool_box.data_fit(g1t, g1m[2], g1m[3])) mc2_u = numpy.array(tool_box.data_fit(g2t, g2m[2], g2m[3])) mc1_u[0] = mc1_u[0] - 1 mc2_u[0] = mc2_u[0] - 1 print(mc1_u) print(mc2_u)
gh2, gh2_sig = fq.find_shear_mean(temp[:, 1], temp[:, 2]) # print(g1, gh1,gh1_sig) # print(g2, gh2,gh2_sig) g1_result[0, i] = gh1 g1_result[1, i] = gh1_sig g2_result[0, i] = gh2 g2_result[1, i] = gh2_sig # hdu = fits.PrimaryHDU(img_buf) # psf_path = './gal_imgs.fits' # hdu.writeto(psf_path, overwrite=True) mc1 = numpy.array(tool_box.data_fit(g1_input, g1_result[0], g1_result[0])) mc2 = numpy.array(tool_box.data_fit(g2_input, g2_result[0], g2_result[0])) print(mc1) print(mc2) mc1[0] = mc1[0] - 1 mc2[0] = mc2[0] - 1 text_str = "m1: %.5f(%.5f) c1: %.5f(%.5f)\n"%(mc1[0], mc1[1], mc1[2], mc1[3]) + \ "m2: %.5f(%.5f) c2: %.5f(%.5f)"%(mc2[0], mc2[1], mc2[2], mc2[3]) print(text_str) result_buff[m, n] = mc1[0] result_buff[m, n + grid_num] = mc1[2] result_buff[m, n + grid_num * 2] = mc2[0] result_buff[m, n + grid_num * 3] = mc2[2]
MG2s = numpy.row_stack((MG2, nMG2))[:, 0] DE2s = numpy.row_stack((DE2, nDE2))[:, 0] if rank == 0: print(num * 10000, ", ", len(MG1s)) g1_h, g1_sig = fq.fmin_g_new(MG1s, DE1s, bin_num=8) g2_h, g2_sig = fq.fmin_g_new(MG2s, DE2s, bin_num=8) else: if rank == 0: print(num * 10000, ", ", len(MG1[ch])) g1_h, g1_sig = fq.fmin_g_new(MG1[ch], DE1[ch], bin_num=8) g2_h, g2_sig = fq.fmin_g_new(MG2[ch], DE2[ch], bin_num=8) md[0, i], md[1, i], md[2, i], md[3, i] = g1_h, g1_sig, g2_h, g2_sig e1mc = tool_box.data_fit(g1, md[0], md[1]) e2mc = tool_box.data_fit(g2, md[2], md[3]) plt.figure(figsize=(16, 8)) plt.subplot(121) lb = "m: %.5f(%.5f), \nc: %.6f(%.6f)" % (e1mc[0] - 1, e1mc[1], e1mc[2], e1mc[3]) plt.plot([-0.04, 0.04], [-0.04, 0.04], linewidth=1) plt.errorbar(g1, md[0], md[1], fmt="none", label=lb, capsize=3) plt.legend() plt.subplot(122) lb = "m: %.5f(%.5f), \nc: %.6f(%.6f)" % (e2mc[0] - 1, e2mc[1], e2mc[2], e2mc[3]) plt.plot([-0.04, 0.04], [-0.04, 0.04], linewidth=1) plt.errorbar(g2, md[2], md[3], fmt="none", label=lb, capsize=3) plt.legend() plt.savefig(result_path + "pic/%d_%d.png" % (num, rank))
from sys import path, argv # my_home = os.popen("echo $MYWORK_DIR").readlines()[0][:-1] # path.append('%s/work/mylib/' % my_home) path.append("D:/Github/astrophy-research/mylib") path.append("D:/Github/astrophy-research/multi_shear_detect") import numpy import h5py import tool_box result = numpy.zeros((2, 4)) for j in range(1): data_path = "E:/data/new_pdf/pts_sample/imgs_%d" % j h5f = h5py.File(data_path + "/shear.hdf5", "r") g1 = h5f["/g1"][()] g2 = h5f["/g2"][()] h5f.close() h5f = h5py.File(data_path + "/shear_result_pdf_iter_noisy_cpp.hdf5", "r+") mg1 = h5f["/new_PDF/g1"][()] mg2 = h5f["/new_PDF/g2"][()] h5f.close() print(mg1.shape) for i in range(3): mc1 = tool_box.data_fit(g1, mg1[:, i * 6], mg1[:, i * 6 + 1]) mc2 = tool_box.data_fit(g2, mg2[:, i * 6], mg2[:, i * 6 + 1]) result[0] = mc1[0] - 1, mc1[1], mc1[2], mc1[3] result[1] = mc2[0] - 1, mc2[1], mc2[2], mc2[3] # h5f["/new_PDF_sym_mc"] = result print(result)
# if rank > 0: # comm.Send(res_arr, dest=0, tag=rank) # else: # for procs in range(1, cpus): # recvs = numpy.empty(sp, dtype=numpy.float64) # comm.Recv(recvs, source=procs, tag=procs) # res_arr = numpy.column_stack((res_arr, recvs)) if rank == 0: res_arr = numpy.array(res_arr) res_arr = res_arr.T # fit the line for i in range(3, 4): arr1 = res_arr[:3] arr2 = res_arr[3:] e1mc = tool_box.data_fit(fg1, arr1[0], arr1[1]) e2mc = tool_box.data_fit(fg2, arr2[0], arr2[1]) numpy.savez(final_cache_path, arr1, arr2, e1mc, e2mc) for p in range(cpus): print( "num: %4.1f W, g1: %8.5f, m_g1: %8.5f, sig: %8.5f, devi: %4.2f * e^-4, shape noise: %6.4f" % (arr1[2, p] / 10000, fg1[p], arr1[0, p], arr1[1, p], 10000 * (arr1[0, p] - fg1[p]), numpy.sqrt(arr1[2, p]) * arr1[1, p])) print("\n") for p in range(cpus): print( "num: %4.1f W, g2: %8.5f, m_g2: %8.5f, sig: %8.5f, devi: %4.2f * e^-4, shape noise: %6.4f " % (arr2[2, p] / 10000, fg2[p], arr2[0, p], arr2[1, p], 10000 * (arr2[0, p] - fg2[p]), numpy.sqrt(arr2[2, p]) * arr2[1, p])) if e1mc[0] - 1 - 2 * e1mc[1] < 0 < e1mc[0] - 1 + 2 * e1mc[1]:
ave_result = h5f["/average"][()].T pdf_result = h5f["/PDF"][()].T new_pdf_result1 = h5f["/new_PDF/g1"][()] new_pdf_result2 = h5f["/new_PDF/g2"][()] h5f.close() shear_num = ave_result.shape[1] img = Image_Plot(cap_size=4, xpad=0.2, ypad=0.2) img.subplots(1, 2) print(ave_result) mc1 = numpy.array(tool_box.data_fit(g1, ave_result[0], ave_result[1])) mc2 = numpy.array(tool_box.data_fit(g2, ave_result[2], ave_result[3])) mc1[0] = mc1[0] - 1 mc2[0] = mc2[0] - 1 print(mc1) print(mc2) img.axs[0][0].errorbar(0, mc1[0], mc1[1], label="ave m1", marker="s", capsize=img.cap_size) img.axs[0][0].errorbar(0, mc2[0], mc2[1], label="ave m2",
field_g = g_true[rank] else: estg, sig, gal_num, field_g = -1, -1, -1, -1 measure_res.extend([estg, sig, gal_num, field_g]) gather_data = comm.gather(measure_res, root=0) if rank == 0: res_data = numpy.array(gather_data) mcs = [] for i in range(2): mg = res_data[0:gnums[i], i * 3 + 0 + i] sig = res_data[0:gnums[i], i * 3 + 1 + i] num = res_data[0:gnums[i], i * 3 + 2 + i] mc = tool_box.data_fit(g_trues[i], mg, sig) mcs.append(mc) for p in range(gnums[i]): print( "num: %4.1f W, g%d: %8.5f, m_g: %8.5f, sig: %8.5f, devi: %4.2f * e^-4, shape noise: %6.4f" % (num[p] / 10000, i + 1, g_trues[i][p], mg[p], sig[p], 10000 * (mg[p] - g_trues[i][p]), numpy.sqrt(num[p]) * sig[p])) print("\n") final_cache = result_path + "%d_%s_%.2f_final_cache.npz" % (del_bin, cho, cho_thre) final_cache = tool_box.file_name(final_cache) numpy.savez(final_cache, numpy.array(mcs), res_data) e1mc = mcs[0] e2mc = mcs[1] if e1mc[0] - 1 - 2 * e1mc[1] < 0 < e1mc[0] - 1 + 2 * e1mc[1]: m1_b = "no m1 bias"