Beispiel #1
0
def test__max_log_likelihood_tracer_source_inversion_centres_correct(
        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 = al.m.MockSamples(max_log_likelihood_instance=tracer)

    result = ResultImaging(samples=samples,
                           analysis=analysis_imaging_7x7,
                           model=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 = al.m.MockSamples(max_log_likelihood_instance=tracer)

    result = ResultImaging(samples=samples,
                           analysis=analysis_imaging_7x7,
                           model=None)

    assert result.source_plane_inversion_centre == None
Beispiel #2
0
    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)
Beispiel #3
0
def test__max_log_likelihood_tracer__multiple_image_positions_of_source_plane_centres_and_separations(
        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 = al.m.MockSamples(max_log_likelihood_instance=tracer)

    result = ResultImaging(samples=samples,
                           analysis=analysis_imaging_7x7,
                           model=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)
Beispiel #4
0
def test__max_log_likelihood_tracer_source_centres_correct(
        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 = al.m.MockSamples(max_log_likelihood_instance=tracer)

    result = ResultImaging(samples=samples,
                           analysis=analysis_imaging_7x7,
                           model=None)

    assert result.source_plane_centre.in_list[0] == pytest.approx(
        (-0.916666, -0.916666), 1.0e-4)
Beispiel #5
0
    def make_result(
        self,
        samples: af.PDFSamples,
        model: af.Collection,
        sigma=1.0,
        use_errors=True,
        use_widths=False,
    ) -> ResultImaging:
        """
        After the non-linear search is complete create its `Result`, which includes:

        - The samples of the non-linear search (E.g. MCMC chains, nested sampling samples) which are used to compute
        the maximum likelihood model, posteriors and other properties.

        - The model used to fit the data, which uses the samples to create specific instances of the model (e.g.
        an instance of the maximum log likelihood model).

        - The non-linear search used to perform the model fit.

        The `ResultImaging` object contains a number of methods which use the above objects to create the max
        log likelihood `Tracer`, `FitImaging`, hyper-galaxy images,etc.

        Parameters
        ----------
        samples
            A PyAutoFit object which contains the samples of the non-linear search, for example the chains of an MCMC
            run of samples of the nested sampler.
        model
            The PyAutoFit model object, which includes model components representing the galaxies that are fitted to
            the imaging data.

        Returns
        -------
        ResultImaging
            The result of fitting the model to the imaging dataset, via a non-linear search.
        """
        return ResultImaging(samples=samples, model=model, analysis=self)