コード例 #1
0
    def test__intensity_from_grid__change_geometry(self):
        dev_vaucouleurs_0 = lp.EllipticalDevVaucouleurs(axis_ratio=0.5,
                                                        phi=0.0,
                                                        intensity=3.0,
                                                        effective_radius=2.0)

        dev_vaucouleurs_1 = lp.EllipticalDevVaucouleurs(axis_ratio=0.5,
                                                        phi=90.0,
                                                        intensity=3.0,
                                                        effective_radius=2.0)

        assert dev_vaucouleurs_0.intensities_from_grid(grid=np.array([[0.0, 1.0]])) \
               == dev_vaucouleurs_1.intensities_from_grid(grid=np.array([[1.0, 0.0]]))
コード例 #2
0
    def test__intensity_at_radius__correct_value(self):
        dev_vaucouleurs = lp.EllipticalDevVaucouleurs(axis_ratio=1.0,
                                                      phi=0.0,
                                                      intensity=1.0,
                                                      effective_radius=0.6)
        assert dev_vaucouleurs.intensities_from_grid_radii(
            grid_radii=1.0) == pytest.approx(0.3518, 1e-3)

        dev_vaucouleurs = lp.EllipticalDevVaucouleurs(axis_ratio=1.0,
                                                      phi=0.0,
                                                      intensity=3.0,
                                                      effective_radius=2.0)
        assert dev_vaucouleurs.intensities_from_grid_radii(
            grid_radii=1.5) == pytest.approx(5.1081, 1e-3)
コード例 #3
0
    def test__spherical_and_elliptical_match(self):
        elliptical = lp.EllipticalDevVaucouleurs(axis_ratio=1.0,
                                                 phi=0.0,
                                                 intensity=3.0,
                                                 effective_radius=2.0)

        spherical = lp.SphericalDevVaucouleurs(intensity=3.0,
                                               effective_radius=2.0)

        assert (elliptical.intensities_from_grid(grid) ==
                spherical.intensities_from_grid(grid)).all()
コード例 #4
0
    def test__intensity_from_grid__correct_values(self):
        dev_vaucouleurs = lp.EllipticalDevVaucouleurs(axis_ratio=0.5,
                                                      phi=0.0,
                                                      intensity=3.0,
                                                      effective_radius=2.0)
        assert dev_vaucouleurs.intensities_from_grid(
            grid=np.array([[1.0, 0.0]])) == pytest.approx(5.6697, 1e-3)

        dev_vaucouleurs = lp.EllipticalDevVaucouleurs(axis_ratio=0.5,
                                                      phi=90.0,
                                                      intensity=2.0,
                                                      effective_radius=3.0)

        assert dev_vaucouleurs.intensities_from_grid(
            grid=np.array([[0.0, 1.0]])) == pytest.approx(7.4455, 1e-3)

        dev_vaucouleurs = lp.EllipticalDevVaucouleurs(axis_ratio=0.5,
                                                      phi=90.0,
                                                      intensity=4.0,
                                                      effective_radius=3.0)
        assert dev_vaucouleurs.intensities_from_grid(
            grid=np.array([[0.0, 1.0]])) == pytest.approx(2.0 * 7.4455, 1e-3)
コード例 #5
0
    def test__constructor(self):
        dev_vaucouleurs = lp.EllipticalDevVaucouleurs(axis_ratio=0.6,
                                                      phi=10.0,
                                                      intensity=2.0,
                                                      effective_radius=0.9,
                                                      centre=(0.0, 0.1))

        assert dev_vaucouleurs.centre == (0.0, 0.1)
        assert dev_vaucouleurs.axis_ratio == 0.6
        assert dev_vaucouleurs.phi == 10.0
        assert dev_vaucouleurs.intensity == 2.0
        assert dev_vaucouleurs.effective_radius == 0.9
        assert dev_vaucouleurs.sersic_index == 4.0
        assert dev_vaucouleurs.sersic_constant == pytest.approx(7.66925, 1e-3)
        assert dev_vaucouleurs.elliptical_effective_radius == 0.9 / math.sqrt(
            0.6)
コード例 #6
0
    def test__grid_calculations__same_as_dev_vaucouleurs(self):
        sersic_lp = lp.EllipticalDevVaucouleurs(axis_ratio=0.7,
                                                phi=1.0,
                                                intensity=1.0,
                                                effective_radius=0.6)
        sersic_mp = mp.EllipticalDevVaucouleurs(axis_ratio=0.7,
                                                phi=1.0,
                                                intensity=1.0,
                                                effective_radius=0.6,
                                                mass_to_light_ratio=2.0)
        sersic_lmp = lmp.EllipticalDevVaucouleurs(axis_ratio=0.7,
                                                  phi=1.0,
                                                  intensity=1.0,
                                                  effective_radius=0.6,
                                                  mass_to_light_ratio=2.0)

        assert (sersic_lp.intensities_from_grid(grid) ==
                sersic_lmp.intensities_from_grid(grid)).all()
        assert (sersic_mp.surface_density_from_grid(grid) ==
                sersic_lmp.surface_density_from_grid(grid)).all()
        #    assert (sersic_mp.potential_from_grid(grid) == sersic_lmp.potential_from_grid(grid)).all()
        assert (sersic_mp.deflections_from_grid(grid) ==
                sersic_lmp.deflections_from_grid(grid)).all()
コード例 #7
0
    ### SphericalExponential ###

    profile = lp.SphericalExponential(centre=(0.0, 0.0),
                                      intensity=1.0,
                                      effective_radius=1.0)

    start = time.time()
    profile.intensities_from_grid(grid=lens_data.grid_stack.sub)
    diff = time.time() - start
    print("SphericalExponential time = {}".format(diff))

    ### EllipticalDevVaucouleurs ###

    profile = lp.EllipticalDevVaucouleurs(centre=(0.0, 0.0),
                                          axis_ratio=0.8,
                                          phi=45.0,
                                          intensity=1.0,
                                          effective_radius=1.0)

    start = time.time()
    profile.intensities_from_grid(grid=lens_data.grid_stack.sub)
    diff = time.time() - start
    print("EllipticalDevVaucouleurs time = {}".format(diff))

    ### SphericalDevVaucouleurs ###

    profile = lp.SphericalDevVaucouleurs(centre=(0.0, 0.0),
                                         intensity=1.0,
                                         effective_radius=1.0)

    start = time.time()