コード例 #1
0
    def test_kinematic_lens_profiles(self):
        z_lens = 0.5
        z_source = 1.5
        kwargs_options = {'lens_model_list': ['SPEP', 'SHEAR']}
        kin_api = KinematicsAPI(z_lens,
                                z_source,
                                kwargs_options,
                                kwargs_aperture={},
                                kwargs_seeing={},
                                anisotropy_model='OM')
        kwargs_lens = [{
            'theta_E': 1.4272358196260446,
            'e1': 0,
            'center_x': -0.044798916793300093,
            'center_y': 0.0054408937891703788,
            'e2': 0,
            'gamma': 1.8
        }, {
            'e1': -0.050871696555354479,
            'e2': -0.0061601733920590464
        }]

        kwargs_mge = {'n_comp': 20}
        mass_profile_list, kwargs_profile = kin_api.kinematic_lens_profiles(
            kwargs_lens,
            MGE_fit=True,
            kwargs_mge=kwargs_mge,
            theta_E=1.4,
            model_kinematics_bool=[True, False])
        assert mass_profile_list[0] == 'MULTI_GAUSSIAN_KAPPA'

        mass_profile_list, kwargs_profile = kin_api.kinematic_lens_profiles(
            kwargs_lens, MGE_fit=False, model_kinematics_bool=[True, False])
        assert mass_profile_list[0] == 'SPEP'
コード例 #2
0
    def test_likelihoodconfiguration_gom(self):
        anisotropy_model = 'GOM'
        kwargs_aperture = {'aperture_type': 'shell', 'r_in': 0, 'r_out': 3 / 2., 'center_ra': 0.0, 'center_dec': 0}
        kwargs_seeing = {'psf_type': 'GAUSSIAN', 'fwhm': 1.4}

        # numerical settings (not needed if power-law profiles with Hernquist light distribution is computed)
        kwargs_numerics_galkin = {'interpol_grid_num': 1000,  # numerical interpolation, should converge -> infinity
                                  'log_integration': True,
                                  # log or linear interpolation of surface brightness and mass models
                                  'max_integrate': 100,
                                  'min_integrate': 0.001}  # lower/upper bound of numerical integrals

        # redshift
        z_lens = 0.5
        z_source = 1.5

        # lens model
        from astropy.cosmology import FlatLambdaCDM
        cosmo = FlatLambdaCDM(H0=70, Om0=0.3)
        theta_E = 1.
        r_eff = 1
        gamma = 2.1

        # kwargs_model
        lens_light_model_list = ['HERNQUIST']
        lens_model_list = ['SPP']
        kwargs_model = {'lens_model_list': lens_model_list, 'lens_light_model_list': lens_light_model_list}

        # settings for kinematics calculation with KinematicsAPI of lenstronomy
        kwargs_kin_api_settings = {'multi_observations': False, 'kwargs_numerics_galkin': kwargs_numerics_galkin,
                                   'MGE_light': False, 'kwargs_mge_light': None, 'sampling_number': 1000,
                 'num_kin_sampling': 1000, 'num_psf_sampling': 100}

        kin_api = KinematicsAPI(z_lens, z_source, kwargs_model, kwargs_aperture, kwargs_seeing, anisotropy_model,
                                cosmo=cosmo, **kwargs_kin_api_settings)

        # compute kinematics with fiducial cosmology
        kwargs_lens = [{'theta_E': theta_E, 'gamma': gamma, 'center_x': 0, 'center_y': 0}]
        kwargs_lens_light = [{'Rs': r_eff * 0.551, 'amp': 1.}]
        beta_inf = 0.5
        kwargs_anisotropy = {'r_ani': r_eff, 'beta_inf': beta_inf}
        sigma_v = kin_api.velocity_dispersion(kwargs_lens, kwargs_lens_light, kwargs_anisotropy, r_eff=r_eff,
                                                      theta_E=theta_E, gamma=gamma, kappa_ext=0)

        # compute likelihood
        kin_constraints = KinConstraints(z_lens=z_lens, z_source=z_source, theta_E=theta_E, theta_E_error=0.01,
                                         gamma=gamma, gamma_error=0.02, r_eff=r_eff, r_eff_error=0.05, sigma_v=[sigma_v],
                                         sigma_v_error_independent=[10], sigma_v_error_covariant=0,
                                         kwargs_aperture=kwargs_aperture, kwargs_seeing=kwargs_seeing,
                                         anisotropy_model=anisotropy_model, **kwargs_kin_api_settings)

        kwargs_likelihood = kin_constraints.hierarchy_configuration(num_sample_model=5)
        kwargs_likelihood['normalized'] = False
        ln_class = LensLikelihood(**kwargs_likelihood)
        kwargs_kin = {'a_ani': 1, 'beta_inf': beta_inf}
        ln_likelihood = ln_class.lens_log_likelihood(cosmo, kwargs_lens={}, kwargs_kin=kwargs_kin)
        npt.assert_almost_equal(ln_likelihood, 0, decimal=1)
コード例 #3
0
    def test_kinematic_light_profile(self):
        z_lens = 0.5
        z_source = 1.5
        kwargs_options = {
            'lens_light_model_list': ['HERNQUIST_ELLIPSE', 'SERSIC']
        }
        kwargs_mge = {'n_comp': 20}
        kinematicAPI = KinematicsAPI(z_lens,
                                     z_source,
                                     kwargs_options,
                                     kwargs_seeing={},
                                     kwargs_aperture={},
                                     anisotropy_model='OM')
        r_eff = 0.2
        kwargs_lens_light = [{
            'amp': 1,
            'Rs': r_eff * 0.551,
            'e1': 0.,
            'e2': 0,
            'center_x': 0,
            'center_y': 0
        }, {
            'amp': 1,
            'R_sersic': 1,
            'n_sersic': 2,
            'center_x': -10,
            'center_y': -10
        }]
        light_profile_list, kwargs_light = kinematicAPI.kinematic_light_profile(
            kwargs_lens_light,
            MGE_fit=True,
            r_eff=r_eff,
            model_kinematics_bool=[True, False],
            kwargs_mge=kwargs_mge)
        assert light_profile_list[0] == 'MULTI_GAUSSIAN'

        light_profile_list, kwargs_light = kinematicAPI.kinematic_light_profile(
            kwargs_lens_light,
            MGE_fit=False,
            r_eff=r_eff,
            model_kinematics_bool=[True, False])
        assert light_profile_list[0] == 'HERNQUIST_ELLIPSE'

        light_profile_list, kwargs_light = kinematicAPI.kinematic_light_profile(
            kwargs_lens_light,
            MGE_fit=False,
            Hernquist_approx=True,
            r_eff=r_eff,
            model_kinematics_bool=[True, False])
        assert light_profile_list[0] == 'HERNQUIST'
        npt.assert_almost_equal(kwargs_light[0]['Rs'] /
                                kwargs_lens_light[0]['Rs'],
                                1,
                                decimal=2)
コード例 #4
0
    def test_raise(self):
        with self.assertRaises(ValueError):
            z_lens = 0.5
            z_source = 1.5
            kwargs_model = {'lens_light_model_list': ['HERNQUIST']}
            kinematicAPI = KinematicsAPI(z_lens,
                                         z_source,
                                         kwargs_model,
                                         kwargs_seeing={},
                                         kwargs_aperture={},
                                         anisotropy_model='OM')
            kwargs_light = [{'Rs': 1, 'amp': 1, 'center_x': 0, 'center_y': 0}]
            kinematicAPI.kinematic_light_profile(kwargs_light,
                                                 MGE_fit=False,
                                                 Hernquist_approx=True,
                                                 r_eff=None,
                                                 model_kinematics_bool=[True])
        with self.assertRaises(ValueError):
            z_lens = 0.5
            z_source = 1.5
            kwargs_model = {'lens_light_model_list': ['HERNQUIST']}
            kinematicAPI = KinematicsAPI(z_lens,
                                         z_source,
                                         kwargs_model,
                                         kwargs_seeing={},
                                         kwargs_aperture={},
                                         anisotropy_model='OM')
            kwargs_light = [{'Rs': 1, 'amp': 1, 'center_x': 0, 'center_y': 0}]
            kinematicAPI.kinematic_light_profile(kwargs_light,
                                                 MGE_fit=False,
                                                 Hernquist_approx=False,
                                                 r_eff=None,
                                                 analytic_kinematics=True)
        with self.assertRaises(ValueError):
            z_lens = 0.5
            z_source = 1.5
            kwargs_model = {
                'lens_light_model_list': ['HERNQUIST'],
                'lens_model_list': []
            }
            kinematicAPI = KinematicsAPI(z_lens,
                                         z_source,
                                         kwargs_model,
                                         kwargs_seeing={},
                                         kwargs_aperture={},
                                         anisotropy_model='OM')
            kwargs_light = [{'Rs': 1, 'amp': 1, 'center_x': 0, 'center_y': 0}]
            kinematicAPI.kinematic_lens_profiles(kwargs_light,
                                                 MGE_fit=True,
                                                 model_kinematics_bool=[True])
        with self.assertRaises(ValueError):
            z_lens = 0.5
            z_source = 1.5
            kwargs_model = {
                'lens_light_model_list': ['HERNQUIST'],
                'lens_model_list': []
            }
            kinematicAPI = KinematicsAPI(z_lens,
                                         z_source,
                                         kwargs_model,
                                         kwargs_seeing={},
                                         kwargs_aperture={},
                                         anisotropy_model='OM')
            kinematicAPI.kinematic_lens_profiles(kwargs_lens=None,
                                                 analytic_kinematics=True)

        with self.assertRaises(ValueError):
            z_lens = 0.5
            z_source = 1.5
            kwargs_model = {
                'lens_light_model_list': ['HERNQUIST'],
                'lens_model_list': []
            }
            kinematicAPI = KinematicsAPI(z_lens,
                                         z_source,
                                         kwargs_model,
                                         kwargs_seeing={},
                                         kwargs_aperture={},
                                         anisotropy_model='OM')
            kwargs_lens_light = [{'Rs': 1, 'center_x': 0, 'center_y': 0}]
            kinematicAPI.kinematic_light_profile(kwargs_lens_light,
                                                 r_eff=None,
                                                 MGE_fit=True,
                                                 model_kinematics_bool=None,
                                                 Hernquist_approx=False,
                                                 kwargs_mge=None)
        with self.assertRaises(ValueError):
            z_lens = 0.5
            z_source = 1.5
            kwargs_model = {
                'lens_light_model_list': ['HERNQUIST'],
                'lens_model_list': ['SIS']
            }
            kwargs_lens = [{'theta_E': 1, 'center_x': 0, 'center_y': 0}]
            kinematicAPI = KinematicsAPI(z_lens,
                                         z_source,
                                         kwargs_model,
                                         kwargs_seeing={},
                                         kwargs_aperture={},
                                         anisotropy_model='OM')
            kinematicAPI.kinematic_lens_profiles(kwargs_lens,
                                                 MGE_fit=True,
                                                 model_kinematics_bool=None,
                                                 theta_E=None,
                                                 kwargs_mge={})
コード例 #5
0
    def test_interpolated_sersic(self):
        from lenstronomy.Analysis.light2mass import light2mass_interpol
        kwargs_light = [{
            'n_sersic': 2,
            'R_sersic': 0.5,
            'amp': 1,
            'center_x': 0.01,
            'center_y': 0.01
        }]
        kwargs_lens = [{
            'n_sersic': 2,
            'R_sersic': 0.5,
            'k_eff': 1,
            'center_x': 0.01,
            'center_y': 0.01
        }]
        deltaPix = 0.1
        numPix = 100

        kwargs_interp = light2mass_interpol(['SERSIC'],
                                            kwargs_lens_light=kwargs_light,
                                            numPix=numPix,
                                            deltaPix=deltaPix,
                                            subgrid_res=5)
        kwargs_lens_interp = [kwargs_interp]
        from lenstronomy.Analysis.kinematics_api import KinematicsAPI
        z_lens = 0.5
        z_source = 1.5
        r_ani = 0.62
        kwargs_anisotropy = {'r_ani': r_ani}
        R_slit = 3.8
        dR_slit = 1.
        aperture_type = 'slit'
        kwargs_aperture = {
            'center_ra': 0,
            'width': dR_slit,
            'length': R_slit,
            'angle': 0,
            'center_dec': 0,
            'aperture_type': aperture_type
        }
        psf_fwhm = 0.7
        kwargs_psf = {'psf_type': 'GAUSSIAN', 'fwhm': psf_fwhm}
        anisotropy_model = 'OM'
        r_eff = 0.5
        kwargs_model = {
            'lens_model_list': ['SERSIC'],
            'lens_light_model_list': ['SERSIC']
        }
        kwargs_mge = {'n_comp': 20}
        kinematic_api = KinematicsAPI(z_lens,
                                      z_source,
                                      kwargs_model,
                                      kwargs_aperture,
                                      kwargs_seeing=kwargs_psf,
                                      anisotropy_model=anisotropy_model,
                                      MGE_light=True,
                                      MGE_mass=True,
                                      kwargs_mge_mass=kwargs_mge,
                                      kwargs_mge_light=kwargs_mge)

        v_sigma = kinematic_api.velocity_dispersion(kwargs_lens,
                                                    kwargs_light,
                                                    kwargs_anisotropy,
                                                    r_eff=r_eff,
                                                    theta_E=1)
        kwargs_model_interp = {
            'lens_model_list': ['INTERPOL'],
            'lens_light_model_list': ['SERSIC']
        }
        kinematic_api_interp = KinematicsAPI(z_lens,
                                             z_source,
                                             kwargs_model_interp,
                                             kwargs_aperture,
                                             kwargs_seeing=kwargs_psf,
                                             anisotropy_model=anisotropy_model,
                                             MGE_light=True,
                                             MGE_mass=True,
                                             kwargs_mge_mass=kwargs_mge,
                                             kwargs_mge_light=kwargs_mge)
        v_sigma_interp = kinematic_api_interp.velocity_dispersion(
            kwargs_lens_interp,
            kwargs_light,
            kwargs_anisotropy,
            theta_E=1.,
            r_eff=r_eff)
        npt.assert_almost_equal(v_sigma / v_sigma_interp, 1, 1)
コード例 #6
0
    def test_velocity_dispersion_map(self):
        np.random.seed(42)
        z_lens = 0.5
        z_source = 1.5
        kwargs_options = {
            'lens_model_list': ['SIS'],
            'lens_light_model_list': ['HERNQUIST']
        }
        r_eff = 1.
        theta_E = 1
        kwargs_lens = [{'theta_E': theta_E, 'center_x': 0, 'center_y': 0}]
        kwargs_lens_light = [{
            'amp': 1,
            'Rs': r_eff * 0.551,
            'center_x': 0,
            'center_y': 0
        }]
        kwargs_anisotropy = {'r_ani': 1}

        r_bins = np.array([0, 0.5, 1])
        aperture_type = 'IFU_shells'
        kwargs_aperture = {
            'aperture_type': aperture_type,
            'center_ra': 0,
            'r_bins': r_bins,
            'center_dec': 0
        }
        psf_fwhm = 0.7
        kwargs_seeing = {'psf_type': 'GAUSSIAN', 'fwhm': psf_fwhm}
        anisotropy_model = 'OM'
        kin_api = KinematicsAPI(z_lens,
                                z_source,
                                kwargs_options,
                                kwargs_aperture=kwargs_aperture,
                                kwargs_seeing=kwargs_seeing,
                                anisotropy_model=anisotropy_model)

        kwargs_numerics_galkin = {
            'interpol_grid_num': 500,
            'log_integration': True,
            'max_integrate': 10,
            'min_integrate': 0.001
        }
        kin_api.kinematics_modeling_settings(anisotropy_model,
                                             kwargs_numerics_galkin,
                                             analytic_kinematics=True,
                                             Hernquist_approx=False,
                                             MGE_light=False,
                                             MGE_mass=False,
                                             num_kin_sampling=1000,
                                             num_psf_sampling=100)
        vel_disp_analytic = kin_api.velocity_dispersion_map(kwargs_lens,
                                                            kwargs_lens_light,
                                                            kwargs_anisotropy,
                                                            r_eff=r_eff,
                                                            theta_E=theta_E,
                                                            gamma=2)

        kin_api.kinematics_modeling_settings(anisotropy_model,
                                             kwargs_numerics_galkin,
                                             analytic_kinematics=False,
                                             Hernquist_approx=False,
                                             MGE_light=False,
                                             MGE_mass=False,
                                             num_kin_sampling=1000,
                                             num_psf_sampling=100)
        vel_disp_numerical = kin_api.velocity_dispersion_map(kwargs_lens,
                                                             kwargs_lens_light,
                                                             kwargs_anisotropy,
                                                             r_eff=r_eff,
                                                             theta_E=theta_E,
                                                             gamma=2)
        print(vel_disp_numerical, vel_disp_analytic)
        npt.assert_almost_equal(vel_disp_numerical,
                                vel_disp_analytic,
                                decimal=-1)
コード例 #7
0
    def test_model_dispersion(self):
        np.random.seed(42)
        z_lens = 0.5
        z_source = 1.5
        r_eff = 1.
        theta_E = 1.
        kwargs_model = {
            'lens_model_list': ['SIS'],
            'lens_light_model_list': ['HERNQUIST']
        }
        kwargs_lens = [{'theta_E': theta_E, 'center_x': 0, 'center_y': 0}]
        kwargs_lens_light = [{
            'amp': 1,
            'Rs': r_eff * 0.551,
            'center_x': 0,
            'center_y': 0
        }]
        kwargs_anisotropy = {'r_ani': 1}
        # settings

        R_slit = 3.8
        dR_slit = 1.
        aperture_type = 'slit'
        kwargs_aperture = {
            'aperture_type': aperture_type,
            'center_ra': 0,
            'width': dR_slit,
            'length': R_slit,
            'angle': 0,
            'center_dec': 0
        }
        psf_fwhm = 0.7
        kwargs_seeing = {'psf_type': 'GAUSSIAN', 'fwhm': psf_fwhm}
        anisotropy_model = 'OM'
        kin_api = KinematicsAPI(z_lens,
                                z_source,
                                kwargs_model,
                                kwargs_aperture,
                                kwargs_seeing,
                                anisotropy_model=anisotropy_model)

        kwargs_numerics_galkin = {
            'interpol_grid_num': 2000,
            'log_integration': True,
            'max_integrate': 1000,
            'min_integrate': 0.0001
        }
        kin_api.kinematics_modeling_settings(anisotropy_model,
                                             kwargs_numerics_galkin,
                                             analytic_kinematics=True,
                                             Hernquist_approx=False,
                                             MGE_light=False,
                                             MGE_mass=False)
        vel_disp_analytic = kin_api.velocity_dispersion(kwargs_lens,
                                                        kwargs_lens_light,
                                                        kwargs_anisotropy,
                                                        r_eff=r_eff,
                                                        theta_E=theta_E,
                                                        gamma=2)

        kin_api.kinematics_modeling_settings(anisotropy_model,
                                             kwargs_numerics_galkin,
                                             analytic_kinematics=False,
                                             Hernquist_approx=False,
                                             MGE_light=False,
                                             MGE_mass=False)
        vel_disp_numerical = kin_api.velocity_dispersion(
            kwargs_lens, kwargs_lens_light, kwargs_anisotropy)  #,
        # r_eff=r_eff, theta_E=theta_E, gamma=2)
        npt.assert_almost_equal(vel_disp_numerical / vel_disp_analytic,
                                1,
                                decimal=2)

        kin_api.kinematics_modeling_settings(anisotropy_model,
                                             kwargs_numerics_galkin,
                                             analytic_kinematics=False,
                                             Hernquist_approx=False,
                                             MGE_light=False,
                                             MGE_mass=False,
                                             kwargs_mge_light={'n_comp': 10},
                                             kwargs_mge_mass={'n_comp': 5})
        assert kin_api._kwargs_mge_mass['n_comp'] == 5
        assert kin_api._kwargs_mge_light['n_comp'] == 10
コード例 #8
0
    def test_galkin_settings(self):
        z_lens = 0.5
        z_source = 1.5
        kwargs_model = {
            'lens_model_list': ['SIS'],
            'lens_light_model_list': ['HERNQUIST']
        }

        kwargs_lens = [{'theta_E': 1, 'center_x': 0, 'center_y': 0}]
        kwargs_lens_light = [{'amp': 1, 'Rs': 1, 'center_x': 0, 'center_y': 0}]
        r_ani = 0.62
        kwargs_anisotropy = {'r_ani': r_ani}
        R_slit = 3.8
        dR_slit = 1.
        aperture_type = 'slit'
        kwargs_aperture = {
            'aperture_type': aperture_type,
            'center_ra': 0,
            'width': dR_slit,
            'length': R_slit,
            'angle': 0,
            'center_dec': 0
        }

        psf_fwhm = 0.7
        kwargs_psf = {'psf_type': 'GAUSSIAN', 'fwhm': psf_fwhm}
        anisotropy_model = 'OM'
        kwargs_mge = {'n_comp': 20}
        kinematicAPI = KinematicsAPI(z_lens,
                                     z_source,
                                     kwargs_model,
                                     kwargs_aperture=kwargs_aperture,
                                     kwargs_seeing=kwargs_psf,
                                     analytic_kinematics=True,
                                     anisotropy_model=anisotropy_model,
                                     kwargs_mge_light=kwargs_mge,
                                     kwargs_mge_mass=kwargs_mge,
                                     sampling_number=1000)
        galkin, kwargs_profile, kwargs_light = kinematicAPI.galkin_settings(
            kwargs_lens,
            kwargs_lens_light,
            r_eff=None,
            theta_E=None,
            gamma=None)
        npt.assert_almost_equal(kwargs_profile['gamma'], 2, decimal=2)

        kinematicAPI = KinematicsAPI(z_lens,
                                     z_source,
                                     kwargs_model,
                                     kwargs_aperture=[kwargs_aperture],
                                     kwargs_seeing=[kwargs_psf],
                                     analytic_kinematics=True,
                                     anisotropy_model=anisotropy_model,
                                     multi_observations=True,
                                     kwargs_mge_light=kwargs_mge,
                                     kwargs_mge_mass=kwargs_mge,
                                     sampling_number=1000)
        galkin, kwargs_profile, kwargs_light = kinematicAPI.galkin_settings(
            kwargs_lens,
            kwargs_lens_light,
            r_eff=None,
            theta_E=None,
            gamma=None)
        npt.assert_almost_equal(kwargs_profile['gamma'], 2, decimal=2)
コード例 #9
0
    def test_velocity_dispersion(self):
        z_lens = 0.5
        z_source = 1.5
        kwargs_model = {
            'lens_model_list': ['SPEP', 'SHEAR', 'SIS', 'SIS', 'SIS'],
            'lens_light_model_list': ['SERSIC_ELLIPSE', 'SERSIC']
        }

        theta_E = 1.5
        gamma = 1.8
        kwargs_lens = [{
            'theta_E': theta_E,
            'e1': 0,
            'center_x': -0.044798916793300093,
            'center_y': 0.0054408937891703788,
            'e2': 0,
            'gamma': gamma
        }, {
            'e1': -0.050871696555354479,
            'e2': -0.0061601733920590464
        }, {
            'center_y': 2.79985456,
            'center_x': -2.32019894,
            'theta_E': 0.28165274714097904
        }, {
            'center_y': 3.83985426,
            'center_x': -2.32019933,
            'theta_E': 0.0038110812674654873
        }, {
            'center_y': 4.31985428,
            'center_x': -1.68019931,
            'theta_E': 0.45552039839735037
        }]

        phi, q = -0.52624727893702705, 0.79703498156919605
        e1, e2 = param_util.phi_q2_ellipticity(phi, q)
        kwargs_lens_light = [{
            'n_sersic': 1.1212528655709217,
            'center_x': -0.019674496231393473,
            'e1': e1,
            'e2': e2,
            'amp': 1.1091367792010356,
            'center_y': 0.076914975081560991,
            'R_sersic': 0.42691611878867058
        }, {
            'R_sersic': 0.03025682660635394,
            'amp': 139.96763298885992,
            'n_sersic': 1.90000008624093865,
            'center_x': -0.019674496231393473,
            'center_y': 0.076914975081560991
        }]
        r_ani = 0.62
        kwargs_anisotropy = {'r_ani': r_ani}
        R_slit = 3.8
        dR_slit = 1.
        aperture_type = 'slit'
        kwargs_aperture = {
            'aperture_type': aperture_type,
            'center_ra': 0,
            'width': dR_slit,
            'length': R_slit,
            'angle': 0,
            'center_dec': 0
        }

        psf_fwhm = 0.7
        kwargs_psf = {'psf_type': 'GAUSSIAN', 'fwhm': psf_fwhm}
        anisotropy_model = 'OM'
        kwargs_mge = {'n_comp': 20}
        r_eff = 0.211919902322
        kinematicAPI = KinematicsAPI(
            z_lens,
            z_source,
            kwargs_model,
            kwargs_aperture=kwargs_aperture,
            kwargs_seeing=kwargs_psf,
            lens_model_kinematics_bool=[True, False, False, False, False],
            anisotropy_model=anisotropy_model,
            kwargs_mge_light=kwargs_mge,
            kwargs_mge_mass=kwargs_mge,
            sampling_number=1000,
            MGE_light=True)

        v_sigma = kinematicAPI.velocity_dispersion(kwargs_lens,
                                                   kwargs_lens_light,
                                                   kwargs_anisotropy,
                                                   r_eff=r_eff)

        kinematicAPI = KinematicsAPI(
            z_lens,
            z_source,
            kwargs_model,
            kwargs_aperture=kwargs_aperture,
            kwargs_seeing=kwargs_psf,
            lens_model_kinematics_bool=[True, False, False, False, False],
            anisotropy_model=anisotropy_model,
            kwargs_mge_light=kwargs_mge,
            kwargs_mge_mass=kwargs_mge,
            sampling_number=1000,
            MGE_light=True,
            MGE_mass=True)
        v_sigma_mge_lens = kinematicAPI.velocity_dispersion(kwargs_lens,
                                                            kwargs_lens_light,
                                                            kwargs_anisotropy,
                                                            r_eff=r_eff,
                                                            theta_E=theta_E)
        #v_sigma_mge_lens = kinematicAPI.velocity_dispersion_numerical(kwargs_lens, kwargs_lens_light, kwargs_anisotropy, kwargs_aperture,
        #                                                          kwargs_psf, anisotropy_model, MGE_light=True, MGE_mass=True, theta_E=theta_E,
        #                                                          kwargs_mge_light=kwargs_mge, kwargs_mge_mass=kwargs_mge,
        #                                                          r_eff=r_eff)
        kinematicAPI = KinematicsAPI(
            z_lens,
            z_source,
            kwargs_model,
            kwargs_aperture=kwargs_aperture,
            kwargs_seeing=kwargs_psf,
            lens_model_kinematics_bool=[True, False, False, False, False],
            anisotropy_model=anisotropy_model,
            kwargs_mge_light=kwargs_mge,
            kwargs_mge_mass=kwargs_mge,
            sampling_number=1000,
            MGE_light=False,
            MGE_mass=False,
            Hernquist_approx=True)
        v_sigma_hernquist = kinematicAPI.velocity_dispersion(kwargs_lens,
                                                             kwargs_lens_light,
                                                             kwargs_anisotropy,
                                                             r_eff=r_eff,
                                                             theta_E=theta_E)
        #v_sigma_hernquist = kinematicAPI.velocity_dispersion_numerical(kwargs_lens, kwargs_lens_light, kwargs_anisotropy,
        #                                                          kwargs_aperture, kwargs_psf, anisotropy_model,
        #                                                          MGE_light=False, MGE_mass=False,
        #                                                          r_eff=r_eff, Hernquist_approx=True)

        vel_disp_temp = kinematicAPI.velocity_dispersion_analytical(
            theta_E, gamma, r_ani=r_ani, r_eff=r_eff)
        print(v_sigma, vel_disp_temp)
        #assert 1 == 0
        npt.assert_almost_equal(v_sigma / vel_disp_temp, 1, decimal=1)
        npt.assert_almost_equal(v_sigma_mge_lens / v_sigma, 1, decimal=1)
        npt.assert_almost_equal(v_sigma / v_sigma_hernquist, 1, decimal=1)