Source code for lenstronomy.LightModel.Profiles.shapelets_ellipse

from lenstronomy.LightModel.Profiles.shapelets import ShapeletSet
from lenstronomy.Util import param_util


[docs] class ShapeletSetEllipse(object): """Cartesian shapelets with elliptical axis ratios.""" param_names = ["amp", "n_max", "beta", "e1", "e2", "center_x", "center_y"] lower_limit_default = { "beta": 0.01, "e1": -0.6, "e2": -0.6, "center_x": -100, "center_y": -100, } upper_limit_default = { "beta": 100, "e1": 0.6, "e2": 0.6, "center_x": 100, "center_y": 100, }
[docs] def __init__(self): self._shapelet_set = ShapeletSet()
[docs] def function(self, x, y, amp, n_max, beta, e1, e2, center_x=0, center_y=0): """ :param x: x-coordinates :param y: y-coordinates :param amp: array of amplitudes in pre-defined order of shapelet basis functions :param beta: shapelet scale :param n_max: maximum polynomial order in Hermite polynomial :param e1: eccentricity component 1 :param e2: eccentricity component 2 :param center_x: shapelet center x :param center_y: shapelet center y :return: surface brightness of combined shapelet set """ x_, y_ = param_util.transform_e1e2_product_average( x, y, e1, e2, center_x=center_x, center_y=center_y ) return self._shapelet_set.function( x_, y_, amp, n_max, beta, center_x=0, center_y=0 )
[docs] def function_split(self, x, y, amp, n_max, beta, e1, e2, center_x=0, center_y=0): """Splits shapelet set in list of individual shapelet basis function responses. :param x: x-coordinates :param y: y-coordinates :param amp: array of amplitudes in pre-defined order of shapelet basis functions :param beta: shapelet scale :param n_max: maximum polynomial order in Hermite polynomial :param e1: eccentricity component 1 :param e2: eccentricity component 2 :param center_x: shapelet center x :param center_y: shapelet center y :return: list of individual shapelet basis function responses """ x_, y_ = param_util.transform_e1e2_product_average( x, y, e1, e2, center_x=center_x, center_y=center_y ) return self._shapelet_set.function_split( x_, y_, amp, n_max, beta, center_x=0, center_y=0 )