def make_masked_imaging_7x7(): imaging_7x7 = make_imaging_7x7() masked_imaging_7x7 = imaging_7x7.apply_mask(mask=make_sub_mask_2d_7x7()) return masked_imaging_7x7.apply_settings(settings=ag.SettingsImaging(sub_size=1))
def test__grid( dataset_quantity_7x7_array_2d, sub_mask_2d_7x7, grid_2d_7x7, sub_grid_2d_7x7, blurring_grid_2d_7x7, grid_2d_iterate_7x7, ): masked_imaging_7x7 = dataset_quantity_7x7_array_2d.apply_mask( mask=sub_mask_2d_7x7) masked_imaging_7x7 = masked_imaging_7x7.apply_settings( settings=ag.SettingsImaging(grid_class=ag.Grid2D, sub_size=2)) assert isinstance(masked_imaging_7x7.grid, ag.Grid2D) assert (masked_imaging_7x7.grid.binned == grid_2d_7x7).all() assert (masked_imaging_7x7.grid.slim == sub_grid_2d_7x7).all() masked_imaging_7x7 = dataset_quantity_7x7_array_2d.apply_mask( mask=sub_mask_2d_7x7) masked_imaging_7x7 = masked_imaging_7x7.apply_settings( settings=ag.SettingsImaging(grid_class=ag.Grid2DIterate)) assert isinstance(masked_imaging_7x7.grid, ag.Grid2DIterate) assert (masked_imaging_7x7.grid.binned == grid_2d_iterate_7x7).all()
def test__imaging_generator_from_aggregator(imaging_7x7, mask_2d_7x7, samples, model): path_prefix = "aggregator_imaging_gen" database_file = path.join(conf.instance.output_path, "imaging.sqlite") result_path = path.join(conf.instance.output_path, path_prefix) clean(database_file=database_file, result_path=result_path) masked_imaging_7x7 = imaging_7x7.apply_mask(mask=mask_2d_7x7) masked_imaging_7x7 = masked_imaging_7x7.apply_settings( settings=ag.SettingsImaging( grid_class=ag.Grid2DIterate, grid_inversion_class=ag.Grid2DIterate, fractional_accuracy=0.5, sub_steps=[2], ) ) search = mock.MockSearch(samples=samples) search.paths = af.DirectoryPaths(path_prefix=path_prefix) analysis = ag.AnalysisImaging(dataset=masked_imaging_7x7) search.fit(model=model, analysis=analysis) agg = af.Aggregator.from_database(filename=database_file) agg.add_directory(directory=result_path) imaging_agg = ag.agg.ImagingAgg(aggregator=agg) imaging_gen = imaging_agg.imaging_gen() for imaging in imaging_gen: assert (imaging.image == masked_imaging_7x7.image).all() assert isinstance(imaging.grid, ag.Grid2DIterate) assert isinstance(imaging.grid_inversion, ag.Grid2DIterate) assert imaging.grid.sub_steps == [2] assert imaging.grid.fractional_accuracy == 0.5 clean(database_file=database_file, result_path=result_path)
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)