size = int(argv[1]) psf_r = float(argv[2]) e = float(argv[3]) btr = float(argv[4]) ra = float(argv[5]) seed = int(argv[6]) file_tag = int(argv[7]) source_label = argv[8] # seed = 52405 # used in the paper num = 11 pixel_scale = 0.187 if source_label == "galsim": flux = numpy.array([ tool_box.mag_to_flux(22.45), tool_box.mag_to_flux(23.2), tool_box.mag_to_flux(23.7), tool_box.mag_to_flux(24) ]) else: flux = numpy.array([ tool_box.mag_to_flux(22.7), tool_box.mag_to_flux(23.83), tool_box.mag_to_flux(24.02), tool_box.mag_to_flux(24.12) ]) flux_num = len(flux) noise_sig = 60
a1, a2 = 0, -0.02 profile_params = [a1, a2] # shear field shear_field = a1 + a2 * x # the galactic parameters h5f = h5py.File(parent_path + "param_slope.hdf5", "w") h5f["/FIELD_g"] = shear_field h5f["/x"] = x mag_i = tool_box.mag_generator(total_num, 20, 23.5) flux_i = tool_box.mag_to_flux(mag_i) h5f["/mag"] = mag_i h5f["/flux"] = flux_i print(flux_i.min(), flux_i.max()) # Plot img = Image_Plot() img.subplots(1, 3) img.set_style() inverse = range(nx - 1, -1, -1) norm_g = plt.Normalize(vmin=numpy.min(shear_field_ch), vmax=numpy.max(shear_field_ch)) cmap_g = plt.get_cmap('jet') for i in range(3):
import os my_home = os.popen("echo $HOME").readlines()[0][:-1] from sys import path, argv path.append('%s/work/fourier_quad/' % my_home) path.append("E:/Github/astrophy-research/my_lib") from astropy.io import fits import numpy from Fourier_Quad import Fourier_Quad import tool_box import matplotlib.pyplot as plt size1 = 32 size2 = 128 pts_n = 50 flux = tool_box.mag_to_flux(22) fq_noise = Fourier_Quad(256, 1110) noise = fq_noise.draw_noise(0, 60) nsp = noise.shape fq_pts1 = Fourier_Quad(size1, 1231) fq_pts2 = Fourier_Quad(size2, 1231) pts = fq_pts1.ran_pos(pts_n, 6) gal1 = fq_pts1.convolve_psf(pts, 4, flux/pts_n)+noise[int(nsp[0]/2-size1/2):int(nsp[0]/2+size1/2),int(nsp[1]/2-size1/2):int(nsp[1]/2+size1/2)] gal2 = fq_pts2.convolve_psf(pts, 4, flux/pts_n)+noise[int(nsp[0]/2-size2/2):int(nsp[0]/2+size2/2),int(nsp[1]/2-size2/2):int(nsp[1]/2+size2/2)] print(gal1.shape, gal2.shape) gal1_p = fq_pts1.pow_spec(gal1) snr1 = fq_pts1.snr_f(gal1) gal2_p = fq_pts2.pow_spec(gal2)
path_items = tool_box.config(envs_path, ['get', 'get', 'get', 'get'], get_contents) total_path, result_path, para_path, log_path = path_items stamp_size = 48 stamp_col = 100 noise_sig = 60 pixel_scale = 0.187 stamp_num = 10000 mag = 24 ra = 0.4 btr = 0.4 e1 = 0.6 e2 = -0.7 gal_flux = tool_box.mag_to_flux(mag) psf = galsim.Moffat(beta=3.5, fwhm=0.7, flux=1.0, trunc=2) gal_pool = [] rng = numpy.random.RandomState(rank+123*rank+1) fq = Fourier_Quad(stamp_size, 123) ny,nx = stamp_col*stamp_size, stamp_col*stamp_size bulge = galsim.Sersic(half_light_radius=ra, n=4, trunc=4.5 * ra, flux=1.0) # be careful disk = galsim.Sersic(scale_radius=ra, n=1, trunc=4.5 * ra, flux=1.0) # be careful gal = bulge * btr + disk * (1 - btr) gal_e = gal.shear(e1=e1, e2=e2) gal_f = gal_e.withFlux(gal_flux) gal_c = galsim.Convolve([gal_f, psf])
import galsim size = int(argv[1]) psf_r = float(argv[2]) e = float(argv[3]) btr = float(argv[4]) ra = float(argv[5]) seed = int(argv[6]) file_tag = int(argv[7]) pts_source = 0 num = 11 pixel_scale = 0.187 flux = [tool_box.mag_to_flux(21.5)] noise_sig = 60 detect_thresh = 2 fq = Fourier_Quad(size, seed) fq_p = Fourier_Quad(size, 17060) # all the images are added by the same noise noise = fq.draw_noise(0, noise_sig) psf = galsim.Moffat(beta=3.5, fwhm=psf_r, flux=1.0, trunc=psf_r * 3) shear_beta = numpy.linspace(0, numpy.pi, num) input_g = numpy.linspace(-0.06, 0.06, num)
data_path = argv[1] rng = numpy.random.RandomState((rank + 1) * 1000) time.sleep(rank * 0.05) chip_num = 2000 stamp_num = 10000 t1 = time.time() # magnitude & flux mag_s, mag_e = 21, 25.5 mag = tool_box.mag_generator(chip_num * stamp_num, mag_s, mag_e).astype(dtype=numpy.float32) flux = tool_box.mag_to_flux(mag).astype(dtype=numpy.float32) # galactic radius radius_s, radius_e = 0.75, 1.87 radius = tool_box.radii_from_mags(mag, radius_s, radius_e).astype(dtype=numpy.float32) / 0.187 rand_seed = rng.randint(1, 4094967296, size=chip_num) if rank == 0: if not os.path.exists(data_path): os.makedirs(data_path) if not os.path.exists(data_path + "/pic"): os.makedirs(data_path + "/pic")