Beispiel #1
0
    def function(self,
                 x,
                 y,
                 n_sersic,
                 R_sersic,
                 k_eff,
                 center_x=0,
                 center_y=0):
        """

        :param x: x-coordinate
        :param y: y-coordinate
        :param n_sersic: Sersic index
        :param R_sersic: half light radius
        :param k_eff: convergence at half light radius
        :param center_x: x-center
        :param center_y: y-center
        :return:
        """

        n = n_sersic
        x_red = self._x_reduced(x, y, n, R_sersic, center_x, center_y)
        b = self.b_n(n)
        #hyper2f2_b = util.hyper2F2_array(2*n, 2*n, 1+2*n, 1+2*n, -b)
        hyper2f2_bx = util.hyper2F2_array(2 * n, 2 * n, 1 + 2 * n, 1 + 2 * n,
                                          -b * x_red)
        f_eff = np.exp(b) * R_sersic**2 / 2. * k_eff  # * hyper2f2_b
        f_ = f_eff * x_red**(2 * n) * hyper2f2_bx  # / hyper2f2_b
        return f_
Beispiel #2
0
 def function(self, x, y, n_sersic, r_eff, k_eff, center_x=0, center_y=0):
     """
     returns Gaussian
     """
     n = n_sersic
     x_red = self._x_reduced(x, y, n, r_eff, center_x, center_y)
     b = self.b_n(n)
     #hyper2f2_b = util.hyper2F2_array(2*n, 2*n, 1+2*n, 1+2*n, -b)
     hyper2f2_bx = util.hyper2F2_array(2*n, 2*n, 1+2*n, 1+2*n, -b*x_red)
     f_eff = np.exp(b)*r_eff**2/2.*k_eff# * hyper2f2_b
     f_ = f_eff * x_red**(2*n) * hyper2f2_bx# / hyper2f2_b
     return f_