def test_raise(self): with self.assertRaises(ValueError): kernel = np.zeros((2, 2)) kernel_util.center_kernel(kernel, iterations=1) with self.assertRaises(ValueError): kernel_super = np.ones((9, 9)) kernel_util.split_kernel(kernel_super, supersampling_kernel_size=2, supersampling_factor=3) with self.assertRaises(ValueError): kernel_util.split_kernel(kernel_super, supersampling_kernel_size=3, supersampling_factor=0) with self.assertRaises(ValueError): image = np.ones((10, 10)) kernel_util.cutout_source(x_pos=3, y_pos=2, image=image, kernelsize=2) with self.assertRaises(ValueError): kernel_util.fwhm_kernel(kernel=np.ones((4, 4))) with self.assertRaises(ValueError): kernel_util.fwhm_kernel(kernel=np.ones((5, 5)))
def fwhm(self): """ :return: full width at half maximum of kernel (in units of pixel) """ if self.psf_type == 'GAUSSIAN': return self._fwhm else: return kernel_util.fwhm_kernel(self.kernel_point_source) * self._pixel_size
def __init__(self, kernel, truncation=4): """ :param kernel: 2d kernel :param truncation: sigma scaling of kernel truncation """ fwhm = kernel_util.fwhm_kernel(kernel) self._sigma = util.fwhm2sigma(fwhm) self._truncation = truncation
def test_fwhm_kernel(): x_grid, y_gird = Util.make_grid(101, 1) sigma = 20 flux = gaussian.function(x_grid, y_gird, amp=1, sigma=sigma) kernel = Util.array2image(flux) kernel = kernel_util.kernel_norm(kernel) fwhm_kernel = kernel_util.fwhm_kernel(kernel) fwhm = Util.sigma2fwhm(sigma) npt.assert_almost_equal(fwhm/fwhm_kernel, 1, 2)
def test_fwhm_kernel(): x_grid, y_gird = Util.make_grid(101, 1) sigma = 20 from lenstronomy.LightModel.Profiles.gaussian import Gaussian gaussian = Gaussian() flux = gaussian.function(x_grid, y_gird, amp=1, sigma_x=sigma, sigma_y=sigma) kernel = Util.array2image(flux) kernel = kernel_util.kernel_norm(kernel) fwhm_kernel = kernel_util.fwhm_kernel(kernel) fwhm = Util.sigma2fwhm(sigma) npt.assert_almost_equal(fwhm / fwhm_kernel, 1, 2)
def psf_fwhm(kwargs, deltaPix): """ :param kwargs_psf: :return: psf fwhm in units of arcsec """ psf_type = kwargs.get('psf_type', 'NONE') if psf_type == 'NONE': fwhm = 0 elif psf_type == 'GAUSSIAN': fwhm = kwargs['fwhm'] elif psf_type == 'PIXEL': kernel = kwargs['kernel_point_source'] fwhm = kernel_util.fwhm_kernel(kernel) * deltaPix else: raise ValueError('PSF type %s not valid!' % psf_type) return fwhm
def psf_fwhm(kwargs, deltaPix): """ :param kwargs: keyword arguments of the PSF() class :param deltaPix: pixel size (in the case of subsampled PSF, this is the subsampled pixel size) :return: psf fwhm in units of the deltaPix argument """ psf_type = kwargs.get('psf_type', 'NONE') if psf_type == 'NONE': fwhm = 0 elif psf_type == 'GAUSSIAN': fwhm = kwargs['fwhm'] elif psf_type == 'PIXEL': if 'kernel_point_source_subsampled' in kwargs: kernel = kwargs['kernel_point_source_subsampled'] else: kernel = kwargs['kernel_point_source'] fwhm = kernel_util.fwhm_kernel(kernel) * deltaPix else: raise ValueError('PSF type %s not valid!' % psf_type) return fwhm