def test__setup_4x3_array__five_now_in_mask(self): array_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]) mask = np.array([[True, False, True], [False, False, False], [True, False, True], [True, True, True]]) array_1d = mapping_util.map_2d_array_to_masked_1d_array_from_array_2d_and_mask( mask, array_2d) assert (array_1d == np.array([2, 4, 5, 6, 8])).all()
def test__setup_3x3_data(self): array_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) mask = np.array([[True, True, True], [True, False, True], [True, True, True]]) array_1d = mapping_util.map_2d_array_to_masked_1d_array_from_array_2d_and_mask( mask, array_2d) assert (array_1d == np.array([5])).all()
def test__setup_3x4_array(self): array_2d = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]) mask = np.array([[True, False, True, True], [False, False, False, True], [True, False, True, False]]) array_1d = mapping_util.map_2d_array_to_masked_1d_array_from_array_2d_and_mask( mask, array_2d) assert (array_1d == np.array([2, 5, 6, 7, 10, 12])).all()
def map_2d_array_to_masked_1d_array(self, array_2d): """For a 2D array (e.g. an image, noise_map, etc.) map it to a masked 1D array of valuees using this mask. Parameters ---------- array_2d : ndarray | None | float The 2D array to be mapped to a masked 1D array. """ if array_2d is None or isinstance(array_2d, float): return array_2d return mapping_util.map_2d_array_to_masked_1d_array_from_array_2d_and_mask( self, array_2d)
def test__map_2d_array_to_masked_1d_array__compare_to_array_util(self): array_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]) mask = np.array([[True, False, True], [False, False, False], [True, False, True], [True, True, True]]) array_1d_util = mapping_util.map_2d_array_to_masked_1d_array_from_array_2d_and_mask( mask, array_2d) mask = msk.Mask(mask, pixel_scale=3.0) array_1d = mask.map_2d_array_to_masked_1d_array(array_2d) assert (array_1d == array_1d_util).all()
def convolve_array_1d_with_psf(self, padded_array_1d, psf): """Convolve a 1d padded array of values (e.g. intensities before PSF blurring) with a PSF, and then trim \ the convolved array to its original 2D shape. Parameters ----------- padded_array_1d: ndarray A 1D array of values which were computed using the *PaddedRegularGrid*. psf : ndarray An array describing the PSF kernel of the image. """ padded_array_2d = mapping_util.map_unmasked_1d_array_to_2d_array_from_array_1d_and_shape( array_1d=padded_array_1d, shape=self.mask.shape) blurred_padded_array_2d = psf.convolve(array=padded_array_2d) return mapping_util.map_2d_array_to_masked_1d_array_from_array_2d_and_mask( array_2d=blurred_padded_array_2d, mask=np.full(self.mask.shape, False))