def test__via_plane_from__same_as_plane_image(self): psf = ag.Kernel2D.from_gaussian( shape_native=(7, 7), sigma=0.5, pixel_scales=0.05 ) grid = ag.Grid2D.uniform(shape_native=(20, 20), pixel_scales=0.05, sub_size=1) galaxy_0 = ag.Galaxy(redshift=0.5, light=ag.lp.EllSersic(intensity=1.0)) galaxy_1 = ag.Galaxy(redshift=1.0, light=ag.lp.EllSersic(intensity=0.3)) plane = ag.Plane(redshift=0.75, galaxies=[galaxy_0, galaxy_1]) simulator = ag.SimulatorImaging( psf=psf, exposure_time=10000.0, background_sky_level=100.0, add_poisson_noise=False, ) imaging = simulator.via_plane_from(plane=plane, grid=grid) imaging_via_image = simulator.via_image_from( image=plane.image_2d_from(grid=grid) ) assert imaging.shape_native == (20, 20) assert imaging.image.native[0, 0] != imaging_via_image.image.native[0, 0] assert imaging.image.native[10, 10] == imaging_via_image.image.native[10, 10] assert (imaging.psf == imaging_via_image.psf).all() assert (imaging.noise_map == imaging_via_image.noise_map).all()
def test__signal_to_noise_via_simulator_correct(): background_sky_level = 10.0 exposure_time = 300.0 grid = ag.Grid2D.uniform(shape_native=(3, 3), pixel_scales=1.0) sersic = ag.lp_snr.EllSersic(signal_to_noise_ratio=10.0) sersic.set_intensity_from( grid=grid, exposure_time=exposure_time, background_sky_level=background_sky_level, ) psf = ag.Kernel2D.manual_native(array=[[1.0]], pixel_scales=0.2) simulator = ag.SimulatorImaging( psf=psf, exposure_time=exposure_time, noise_seed=1, background_sky_level=background_sky_level, ) imaging = simulator.via_galaxies_from( grid=grid, galaxies=[ag.Galaxy(redshift=0.5, light=sersic)]) assert 9.0 < imaging.signal_to_noise_max < 11.0
def test__simulate_imaging_from_galaxy__source_galaxy__compare_to_imaging( self): galaxy_0 = ag.Galaxy( redshift=0.5, mass=ag.mp.EllIsothermal(centre=(0.0, 0.0), einstein_radius=1.6, elliptical_comps=(0.17647, 0.0)), ) galaxy_1 = ag.Galaxy( redshift=1.0, light=ag.lp.EllSersic( centre=(0.1, 0.1), elliptical_comps=(0.096225, -0.055555), intensity=0.3, effective_radius=1.0, sersic_index=2.5, ), ) grid = ag.Grid2D.uniform(shape_native=(11, 11), pixel_scales=0.2, sub_size=1) psf = ag.Kernel2D.no_blur(pixel_scales=0.2) simulator = ag.SimulatorImaging( psf=psf, exposure_time=10000.0, background_sky_level=100.0, add_poisson_noise=True, noise_seed=1, ) imaging = simulator.from_galaxies_and_grid( galaxies=[galaxy_0, galaxy_1], grid=grid) plane = ag.Plane(redshift=0.75, galaxies=[galaxy_0, galaxy_1]) imaging_via_image = simulator.from_image( image=plane.image_2d_from_grid(grid=grid)) assert imaging.shape_native == (11, 11) assert (imaging.image == imaging_via_image.image).all() assert (imaging.psf == imaging_via_image.psf).all() assert (imaging.noise_map == imaging_via_image.noise_map).all()
def test__simulate_imaging_data_and_fit__include_psf_blurring__chi_squared_is_0__noise_normalization_correct( ): grid = ag.Grid2D.uniform(shape_native=(11, 11), pixel_scales=0.2, sub_size=1) psf = ag.Kernel2D.from_gaussian(shape_native=(3, 3), pixel_scales=0.2, sigma=0.75, normalize=True) lens_galaxy = ag.Galaxy( redshift=0.5, light=ag.lp.EllSersic(centre=(0.1, 0.1), intensity=0.1), mass=ag.mp.EllIsothermal(centre=(0.1, 0.1), einstein_radius=1.8), ) source_galaxy = ag.Galaxy(redshift=1.0, light=ag.lp.EllExponential(centre=(0.1, 0.1), intensity=0.5)) plane = ag.Plane(galaxies=[lens_galaxy, source_galaxy]) simulator = ag.SimulatorImaging(exposure_time=300.0, psf=psf, add_poisson_noise=False) imaging = simulator.from_plane_and_grid(plane=plane, grid=grid) imaging.noise_map = ag.Array2D.ones( shape_native=imaging.image.shape_native, pixel_scales=0.2) file_path = path.join( "{}".format(path.dirname(path.realpath(__file__))), "data_temp", "simulate_and_fit", ) try: shutil.rmtree(file_path) except FileNotFoundError: pass if path.exists(file_path) is False: os.makedirs(file_path) imaging.output_to_fits( image_path=path.join(file_path, "image.fits"), noise_map_path=path.join(file_path, "noise_map.fits"), psf_path=path.join(file_path, "psf.fits"), ) imaging = ag.Imaging.from_fits( image_path=path.join(file_path, "image.fits"), noise_map_path=path.join(file_path, "noise_map.fits"), psf_path=path.join(file_path, "psf.fits"), pixel_scales=0.2, ) mask = ag.Mask2D.circular( shape_native=imaging.image.shape_native, pixel_scales=0.2, sub_size=1, radius=0.8, ) masked_imaging = imaging.apply_mask(mask=mask) masked_imaging = masked_imaging.apply_settings( settings=ag.SettingsImaging(grid_class=ag.Grid2D, sub_size=1)) plane = ag.Plane(galaxies=[lens_galaxy, source_galaxy]) fit = ag.FitImaging(imaging=masked_imaging, plane=plane) assert fit.chi_squared == pytest.approx(0.0, 1e-4) file_path = path.join("{}".format(path.dirname(path.realpath(__file__))), "data_temp") if path.exists(file_path) is True: shutil.rmtree(file_path)