def test__results_of_phase_include_pixelization__available_as_property( self, imaging_7x7, mask_7x7): lens = al.Galaxy(redshift=0.5, light=al.lp.EllipticalSersic(intensity=1.0)) source = al.Galaxy( redshift=1.0, pixelization=al.pix.VoronoiMagnification(shape=(2, 3)), regularization=al.reg.Constant(), ) tracer = al.Tracer.from_galaxies(galaxies=[lens, source]) samples = mock.MockSamples(max_log_likelihood_instance=tracer) phase_imaging_7x7 = al.PhaseImaging( settings=al.SettingsPhaseImaging(), search=mock.MockSearch("test_phase", samples=samples), ) result = phase_imaging_7x7.run(dataset=imaging_7x7, mask=mask_7x7, results=mock.MockResults()) assert isinstance(result.pixelization, al.pix.VoronoiMagnification) assert result.pixelization.shape == (2, 3) lens = al.Galaxy(redshift=0.5, light=al.lp.EllipticalSersic(intensity=1.0)) source = al.Galaxy( redshift=1.0, pixelization=al.pix.VoronoiBrightnessImage(pixels=6), regularization=al.reg.Constant(), ) source.hyper_galaxy_image = np.ones(9) tracer = al.Tracer.from_galaxies(galaxies=[lens, source]) samples = mock.MockSamples(max_log_likelihood_instance=tracer) phase_imaging_7x7 = al.PhaseImaging( settings=al.SettingsPhaseImaging(), search=mock.MockSearch("test_phase", samples=samples), ) result = phase_imaging_7x7.run(dataset=imaging_7x7, mask=mask_7x7, results=mock.MockResults()) assert isinstance(result.pixelization, al.pix.VoronoiBrightnessImage) assert result.pixelization.pixels == 6
def test__max_log_likelihood_tracer_source_light_profile_centres_correct( self, analysis_imaging_7x7): lens = al.Galaxy(redshift=0.5, light=al.lp.SphSersic(intensity=1.0)) source = al.Galaxy(redshift=1.0, light=al.lp.SphSersic(centre=(1.0, 2.0), intensity=2.0)) tracer = al.Tracer.from_galaxies(galaxies=[lens, source]) samples = mock.MockSamples(max_log_likelihood_instance=tracer) result = res.Result(samples=samples, analysis=analysis_imaging_7x7, model=None, search=None) assert result.source_plane_light_profile_centre.in_list == [(1.0, 2.0)] source = al.Galaxy( redshift=1.0, light=al.lp.SphSersic(centre=(1.0, 2.0), intensity=2.0), light1=al.lp.SphSersic(centre=(3.0, 4.0), intensity=2.0), ) source_1 = al.Galaxy(redshift=1.0, light=al.lp.SphSersic(centre=(5.0, 6.0), intensity=2.0)) tracer = al.Tracer.from_galaxies(galaxies=[lens, source, source_1]) samples = mock.MockSamples(max_log_likelihood_instance=tracer) result = res.Result(samples=samples, analysis=analysis_imaging_7x7, model=None, search=None) assert result.source_plane_light_profile_centre.in_list == [(1.0, 2.0)] tracer = al.Tracer.from_galaxies(galaxies=[al.Galaxy(redshift=0.5)]) samples = mock.MockSamples(max_log_likelihood_instance=tracer) result = res.Result(samples=samples, analysis=analysis_imaging_7x7, model=None, search=None) assert result.source_plane_light_profile_centre == None
def make_samples(): galaxy_0 = al.Galaxy(redshift=0.5, light=al.lp.EllSersic(centre=(0.0, 1.0))) galaxy_1 = al.Galaxy(redshift=1.0, light=al.lp.EllSersic()) tracer = al.Tracer.from_galaxies(galaxies=[galaxy_0, galaxy_1]) return mock.MockSamples(max_log_likelihood_instance=tracer)
def test___image_dict(self, analysis_imaging_7x7): galaxies = af.ModelInstance() galaxies.lens = al.Galaxy(redshift=0.5) galaxies.source = al.Galaxy(redshift=1.0) instance = af.ModelInstance() instance.galaxies = galaxies result = ResultImaging( samples=mock.MockSamples(max_log_likelihood_instance=instance), model=af.ModelMapper(), analysis=analysis_imaging_7x7, search=None, ) image_dict = result.image_galaxy_dict assert isinstance(image_dict[("galaxies", "lens")], np.ndarray) assert isinstance(image_dict[("galaxies", "source")], np.ndarray) result.instance.galaxies.lens = al.Galaxy(redshift=0.5) image_dict = result.image_galaxy_dict assert (image_dict[("galaxies", "lens")].native == np.zeros( (7, 7))).all() assert isinstance(image_dict[("galaxies", "source")], np.ndarray)
def test__image_plane_multiple_image_positions_and_threshold( self, analysis_imaging_7x7): tracer = al.Tracer.from_galaxies(galaxies=[ al.Galaxy( redshift=0.5, mass=al.mp.EllIsothermal( centre=(0.1, 0.0), einstein_radius=1.0, elliptical_comps=(0.0, 0.0), ), ), al.Galaxy(redshift=1.0, bulge=al.lp.SphSersic(centre=(0.0, 0.0))), ]) samples = mock.MockSamples(max_log_likelihood_instance=tracer) result = res.Result(samples=samples, model=None, analysis=analysis_imaging_7x7, search=None) assert result.image_plane_multiple_image_positions.in_list[0][ 0] == pytest.approx(1.0004, 1.0e-2) assert result.image_plane_multiple_image_positions.in_list[1][ 0] == pytest.approx(-1.0004, 1.0e-2) assert result.positions_threshold_from() == pytest.approx( 0.000973519, 1.0e-4) assert result.positions_threshold_from(factor=5.0) == pytest.approx( 5.0 * 0.000973519, 1.0e-4) assert result.positions_threshold_from( minimum_threshold=0.2) == pytest.approx(0.2, 1.0e-4)
def test___image_dict(self, masked_imaging_7x7): galaxies = af.ModelInstance() galaxies.lens = al.Galaxy(redshift=0.5) galaxies.source = al.Galaxy(redshift=1.0) instance = af.ModelInstance() instance.galaxies = galaxies analysis = al.PhaseImaging.Analysis( masked_imaging=masked_imaging_7x7, settings=al.SettingsPhaseImaging(), results=mock.MockResults(), cosmology=cosmo.Planck15, ) result = al.PhaseImaging.Result( samples=mock.MockSamples(max_log_likelihood_instance=instance), previous_model=af.ModelMapper(), analysis=analysis, search=None, ) image_dict = result.image_galaxy_dict assert isinstance(image_dict[("galaxies", "lens")], np.ndarray) assert isinstance(image_dict[("galaxies", "source")], np.ndarray) result.instance.galaxies.lens = al.Galaxy(redshift=0.5) image_dict = result.image_galaxy_dict assert (image_dict[("galaxies", "lens")].native == np.zeros( (7, 7))).all() assert isinstance(image_dict[("galaxies", "source")], np.ndarray)
def test__max_log_likelihood_tracer_source_centres_correct( self, imaging_7x7, mask_7x7 ): lens = al.Galaxy(redshift=0.5, light=al.lp.SphericalSersic(intensity=1.0)) source = al.Galaxy( redshift=1.0, light=al.lp.SphericalSersic(centre=(9.0, 8.0), intensity=2.0), pixelization=al.pix.Rectangular((3, 3)), regularization=al.reg.Constant(coefficient=1.0), ) tracer = al.Tracer.from_galaxies(galaxies=[lens, source]) samples = mock.MockSamples(max_log_likelihood_instance=tracer) phase_dataset_7x7 = al.PhaseImaging( search=mock.MockSearch("test_phase_2", samples=samples) ) result = phase_dataset_7x7.run( dataset=imaging_7x7, mask=mask_7x7, results=mock.MockResults() ) assert result.source_plane_centre.in_list == [(0.0, 0.0)]
def test__results_include_pixelization__available_as_property( self, analysis_imaging_7x7): lens = al.Galaxy(redshift=0.5, light=al.lp.EllSersic(intensity=1.0)) source = al.Galaxy( redshift=1.0, pixelization=al.pix.VoronoiMagnification(shape=(2, 3)), regularization=al.reg.Constant(), ) tracer = al.Tracer.from_galaxies(galaxies=[lens, source]) samples = mock.MockSamples(max_log_likelihood_instance=tracer) result = res.ResultDataset(samples=samples, analysis=analysis_imaging_7x7, model=None, search=None) assert isinstance(result.pixelization, al.pix.VoronoiMagnification) assert result.pixelization.shape == (2, 3) lens = al.Galaxy(redshift=0.5, light=al.lp.EllSersic(intensity=1.0)) source = al.Galaxy( redshift=1.0, pixelization=al.pix.VoronoiBrightnessImage(pixels=6), regularization=al.reg.Constant(), ) source.hyper_galaxy_image = np.ones(9) tracer = al.Tracer.from_galaxies(galaxies=[lens, source]) samples = mock.MockSamples(max_log_likelihood_instance=tracer) result = res.ResultDataset(samples=samples, analysis=analysis_imaging_7x7, model=None, search=None) assert isinstance(result.pixelization, al.pix.VoronoiBrightnessImage) assert result.pixelization.pixels == 6
def test__max_log_likelihood_tracer__multiple_image_positions_of_source_plane_centres_and_separations( self, imaging_7x7, mask_7x7 ): lens = al.Galaxy( redshift=0.5, mass=al.mp.EllipticalIsothermal( centre=(0.001, 0.001), einstein_radius=1.0, elliptical_comps=(0.0, 0.111111), ), ) source = al.Galaxy( redshift=1.0, light=al.lp.SphericalSersic(centre=(0.0, 0.0), intensity=2.0), light1=al.lp.SphericalSersic(centre=(0.0, 0.1), intensity=2.0), pixelization=al.pix.Rectangular((3, 3)), regularization=al.reg.Constant(coefficient=1.0), ) tracer = al.Tracer.from_galaxies(galaxies=[lens, source]) samples = mock.MockSamples(max_log_likelihood_instance=tracer) phase_dataset_7x7 = al.PhaseImaging( search=mock.MockSearch("test_phase_2", samples=samples) ) result = phase_dataset_7x7.run( dataset=imaging_7x7, mask=mask_7x7, results=mock.MockResults() ) mask = al.Mask2D.unmasked( shape_native=(100, 100), pixel_scales=0.05, sub_size=1 ) result.analysis.masked_dataset.mask = mask multiple_images = ( result.image_plane_multiple_image_positions_of_source_plane_centres ) grid = al.Grid2D.from_mask(mask=mask) solver = al.PositionsSolver(grid=grid, pixel_scale_precision=0.001) multiple_images_manual = solver.solve( lensing_obj=tracer, source_plane_coordinate=result.source_plane_inversion_centre[0], ) assert multiple_images.in_list[0] == multiple_images_manual.in_list[0]
def test__max_log_likelihood_tracer_source_inversion_centres_correct( self, analysis_imaging_7x7): lens = al.Galaxy(redshift=0.5, light=al.lp.SphSersic(intensity=1.0)) source = al.Galaxy( redshift=1.0, pixelization=al.pix.Rectangular((3, 3)), regularization=al.reg.Constant(coefficient=1.0), ) tracer = al.Tracer.from_galaxies(galaxies=[lens, source]) samples = mock.MockSamples(max_log_likelihood_instance=tracer) result = ResultImaging(samples=samples, analysis=analysis_imaging_7x7, model=None, search=None) assert (result.source_plane_inversion_centre.in_list[0] == result.max_log_likelihood_fit.inversion. brightest_reconstruction_pixel_centre_list[0].in_list[0]) lens = al.Galaxy(redshift=0.5, light=al.lp.SphSersic(intensity=1.0)) source = al.Galaxy(redshift=1.0) tracer = al.Tracer.from_galaxies(galaxies=[lens, source]) samples = mock.MockSamples(max_log_likelihood_instance=tracer) result = ResultImaging(samples=samples, analysis=analysis_imaging_7x7, model=None, search=None) assert result.source_plane_inversion_centre == None
def make_samples(model): galaxy_0 = al.Galaxy(redshift=0.5, light=al.lp.EllSersic(centre=(0.0, 1.0))) galaxy_1 = al.Galaxy(redshift=1.0, light=al.lp.EllSersic()) tracer = al.Tracer.from_galaxies(galaxies=[galaxy_0, galaxy_1]) parameters = [model.prior_count * [1.0], model.prior_count * [10.0]] sample_list = Sample.from_lists( model=model, parameter_lists=parameters, log_likelihood_list=[1.0, 2.0], log_prior_list=[0.0, 0.0], weight_list=[0.0, 1.0], ) return mock.MockSamples(model=model, sample_list=sample_list, max_log_likelihood_instance=tracer)
def test__max_log_likelihood_tracer__multiple_image_positions_of_source_plane_centres_and_separations( self, analysis_imaging_7x7): lens = al.Galaxy( redshift=0.5, mass=al.mp.EllIsothermal( centre=(0.001, 0.001), einstein_radius=1.0, elliptical_comps=(0.0, 0.111111), ), ) source = al.Galaxy( redshift=1.0, light=al.lp.SphSersic(centre=(0.0, 0.0), intensity=2.0), light1=al.lp.SphSersic(centre=(0.0, 0.1), intensity=2.0), pixelization=al.pix.Rectangular((3, 3)), regularization=al.reg.Constant(coefficient=1.0), ) tracer = al.Tracer.from_galaxies(galaxies=[lens, source]) samples = mock.MockSamples(max_log_likelihood_instance=tracer) result = ResultImaging(samples=samples, analysis=analysis_imaging_7x7, model=None, search=None) multiple_images = result.image_plane_multiple_image_positions assert multiple_images.in_list[0][0] == pytest.approx( 1.20556641, 1.0e-4) assert multiple_images.in_list[0][1] == pytest.approx( -1.10205078, 1.0e-4) assert multiple_images.in_list[1][0] == pytest.approx( -0.19287109, 1.0e-4) assert multiple_images.in_list[1][1] == pytest.approx( 0.27978516, 1.0e-4)
def test__max_log_likelihood_tracer_source_centres_correct( self, analysis_imaging_7x7): lens = al.Galaxy(redshift=0.5, light=al.lp.SphSersic(intensity=1.0)) source = al.Galaxy( redshift=1.0, light=al.lp.SphSersic(centre=(9.0, 8.0), intensity=2.0), pixelization=al.pix.Rectangular((3, 3)), regularization=al.reg.Constant(coefficient=1.0), ) tracer = al.Tracer.from_galaxies(galaxies=[lens, source]) samples = mock.MockSamples(max_log_likelihood_instance=tracer) result = ResultImaging(samples=samples, analysis=analysis_imaging_7x7, model=None, search=None) assert result.source_plane_centre.in_list[0] == pytest.approx( (-0.916666, -0.916666), 1.0e-4)
def test__make_result__result_imaging_is_returned(self, masked_imaging_7x7): model = af.Collection(galaxies=af.Collection(galaxy_0=al.Galaxy( redshift=0.5))) instance = model.instance_from_prior_medians() samples = mock.MockSamples(max_log_likelihood_instance=instance) search = mock.MockSearch(name="test_search", samples=samples) analysis = al.AnalysisImaging(dataset=masked_imaging_7x7) def modify_after_fit(paths: af.DirectoryPaths, model: af.AbstractPriorModel, result: af.Result): pass analysis.modify_after_fit = modify_after_fit result = search.fit(model=model, analysis=analysis) assert isinstance(result, ResultImaging)
def test__max_log_likelihood_tracer_source_light_profile_centres_correct( self, imaging_7x7, mask_7x7): lens = al.Galaxy(redshift=0.5, light=al.lp.SphericalSersic(intensity=1.0)) source = al.Galaxy(redshift=1.0, light=al.lp.SphericalSersic(centre=(1.0, 2.0), intensity=2.0)) tracer = al.Tracer.from_galaxies(galaxies=[lens, source]) samples = mock.MockSamples(max_log_likelihood_instance=tracer) phase_dataset_7x7 = al.PhaseImaging( search=mock.MockSearch("test_phase_2", samples=samples)) result = phase_dataset_7x7.run(dataset=imaging_7x7, mask=mask_7x7, results=mock.MockResults()) assert result.source_plane_light_profile_centres.in_grouped_list == [[ (1.0, 2.0) ]] source = al.Galaxy( redshift=1.0, light=al.lp.SphericalSersic(centre=(1.0, 2.0), intensity=2.0), light1=al.lp.SphericalSersic(centre=(3.0, 4.0), intensity=2.0), ) source_1 = al.Galaxy(redshift=1.0, light=al.lp.SphericalSersic(centre=(5.0, 6.0), intensity=2.0)) tracer = al.Tracer.from_galaxies(galaxies=[lens, source, source_1]) samples = mock.MockSamples(max_log_likelihood_instance=tracer) phase_dataset_7x7 = al.PhaseImaging( search=mock.MockSearch("test_phase_2", samples=samples)) result = phase_dataset_7x7.run(dataset=imaging_7x7, mask=mask_7x7, results=mock.MockResults()) assert result.source_plane_light_profile_centres.in_grouped_list == [ [(1.0, 2.0), (3.0, 4.0)], [(5.0, 6.0)], ] tracer = al.Tracer.from_galaxies(galaxies=[al.Galaxy(redshift=0.5)]) samples = mock.MockSamples(max_log_likelihood_instance=tracer) phase_dataset_7x7 = al.PhaseImaging( search=mock.MockSearch("test_phase_2", samples=samples)) result = phase_dataset_7x7.run(dataset=imaging_7x7, mask=mask_7x7, results=mock.MockResults()) assert result.source_plane_light_profile_centres == []