def unmasked_sparse_to_sparse(self): """The 1D index mappings between the unmasked sparse-grid and masked sparse grid.""" return mapping_util.unmasked_sparse_to_sparse_from_mask_and_pixel_centres( mask=self.regular_grid.mask, unmasked_sparse_grid_pixel_centres=self. unmasked_sparse_grid_pixel_centres, total_sparse_pixels=self.total_sparse_pixels).astype('int')
def test__same_as_above__different_mask_and_centres(self): ma = mask.Mask(array=np.array([[False, False, True], [False, False, False], [True, False, False]]), pixel_scale=1.0) unmasked_sparse_grid_pixel_centres = np.array([[0, 0], [0, 1], [0, 2], [0, 2], [0, 2], [1, 1]]) unmasked_sparse_to_sparse = mapping_util.unmasked_sparse_to_sparse_from_mask_and_pixel_centres( mask=ma, unmasked_sparse_grid_pixel_centres= unmasked_sparse_grid_pixel_centres, total_sparse_pixels=4) assert (unmasked_sparse_to_sparse == np.array([0, 1, 2, 2, 2, 2])).all()
def test__mask_is_cross__some_pix_pixels_are_masked__omitted_from_mapping( self): ma = mask.Mask(array=np.array([[True, False, True], [False, False, False], [True, False, True]]), pixel_scale=1.0) unmasked_sparse_grid_pixel_centres = np.array \ ([[0 ,0], [0 ,1], [0 ,2], [1 ,0], [1 ,1], [1 ,2], [2 ,0], [2 ,1], [2 ,2]]) unmasked_sparse_to_sparse = mapping_util.unmasked_sparse_to_sparse_from_mask_and_pixel_centres( mask=ma, unmasked_sparse_grid_pixel_centres= unmasked_sparse_grid_pixel_centres, total_sparse_pixels=5) assert (unmasked_sparse_to_sparse == np.array( [0, 0, 1, 1, 2, 3, 4, 4, 4])).all()
def test__mask_full_false__image_mask_and_pixel_centres_fully_overlap__each_pix_maps_to_unmaked_pix( self): ma = mask.Mask(array=np.array([[False, False, False], [False, False, False], [False, False, False]]), pixel_scale=1.0) unmasked_sparse_grid_pixel_centres = np.array \ ([[0 ,0], [0 ,1], [0 ,2], [1 ,0], [1 ,1], [1 ,2], [2 ,0], [2 ,1], [2 ,2]]) unmasked_sparse_to_sparse = mapping_util.unmasked_sparse_to_sparse_from_mask_and_pixel_centres( mask=ma, unmasked_sparse_grid_pixel_centres= unmasked_sparse_grid_pixel_centres, total_sparse_pixels=9) assert (unmasked_sparse_to_sparse == np.array( [0, 1, 2, 3, 4, 5, 6, 7, 8])).all()
def test__same_as_above__but_remove_some_centre_pixels_and_change_order__order_does_not_change_mapping( self): ma = mask.Mask(array=np.array([[False, False, False], [False, False, False], [False, False, False]]), pixel_scale=1.0) unmasked_sparse_grid_pixel_centres = np.array([[0, 0], [0, 1], [2, 2], [1, 1], [0, 2], [2, 0], [0, 2]]) unmasked_sparse_to_sparse = mapping_util.unmasked_sparse_to_sparse_from_mask_and_pixel_centres( mask=ma, unmasked_sparse_grid_pixel_centres= unmasked_sparse_grid_pixel_centres, total_sparse_pixels=9) assert (unmasked_sparse_to_sparse == np.array([0, 1, 2, 3, 4, 5, 6])).all()