Source code for lenstronomy.Sampling.Likelihoods.tracer_likelihood

import numpy as np
from lenstronomy.Util import class_creator


[docs] class TracerLikelihood(object): """Class to evaluate the tracer map."""
[docs] def __init__( self, tracer_data, kwargs_model, kwargs_imaging, tracer_likelihood_mask=None, linear_solver=True, ): """ :param tracer_bands_compute: list of bools with same length as data objects, indicates which "band" to include in the fitting :param tracer_likelihood_mask: boolean 2d arrays of size of images marking the pixels to be :param linear_solver: boolean, if True, linear solver for surface brigthness amplitude is activated evaluated in the likelihood """ self._tracer_light_model_band = kwargs_model.get("tracer_source_band", 0) self.image_model = class_creator.create_im_sim( kwargs_model=kwargs_model, linear_solver=linear_solver, **kwargs_imaging ) self.tracerModel = class_creator.create_tracer_model( tracer_data, kwargs_model, tracer_likelihood_mask=tracer_likelihood_mask )
[docs] def logL( self, kwargs_tracer_source, kwargs_lens=None, kwargs_source=None, kwargs_lens_light=None, kwargs_ps=None, kwargs_special=None, kwargs_extinction=None, param=None, ): """ :param kwargs_lens: lens model keyword argument list according to LensModel module :param kwargs_source: source light keyword argument list according to LightModel module :param kwargs_lens_light: deflector light (not lensed) keyword argument list according to LightModel module :param kwargs_ps: point source keyword argument list according to PointSource module :param kwargs_special: special keyword argument list as part of the Param module :param kwargs_extinction: extinction parameter keyword argument list according to LightModel module :return: log likelihood of the data given the model """ ( kwargs_lens, kwargs_source, kwargs_lens_light, kwargs_ps, ) = self.image_model.update_linear_kwargs( param, model_band=self._tracer_light_model_band, kwargs_lens=kwargs_lens, kwargs_source=kwargs_source, kwargs_lens_light=kwargs_lens_light, kwargs_ps=kwargs_ps, ) logL = self.tracerModel.likelihood_data_given_model( kwargs_tracer_source=kwargs_tracer_source, kwargs_lens=kwargs_lens, kwargs_source=kwargs_source, kwargs_extinction=kwargs_extinction, kwargs_special=kwargs_special, ) if np.isnan(logL) is True: return -(10**15) return logL
@property def num_data(self): """ :return: number of image data points """ return self.tracerModel.num_data_evaluate
[docs] def reset_point_source_cache(self, cache=True): """ :param cache: boolean :return: None """ self.tracerModel.reset_point_source_cache(cache=cache)