def sparse_to_unmasked_sparse(self): """The 1D index mappings between the masked sparse-grid and unmasked sparse grid.""" return mapping_util.sparse_to_unmasked_sparse_from_mask_and_pixel_centres( total_sparse_pixels=self.total_sparse_pixels, mask=self.regular_grid.mask, unmasked_sparse_grid_pixel_centres=self. unmasked_sparse_grid_pixel_centres).astype('int')
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]]) total_masked_pixels = mask_util.total_sparse_pixels_from_mask( mask=ma, unmasked_sparse_grid_pixel_centres= unmasked_sparse_grid_pixel_centres) sparse_to_unmasked_sparse = mapping_util.sparse_to_unmasked_sparse_from_mask_and_pixel_centres( total_sparse_pixels=total_masked_pixels, mask=ma, unmasked_sparse_grid_pixel_centres= unmasked_sparse_grid_pixel_centres) assert (sparse_to_unmasked_sparse == np.array([0, 1, 2, 3, 4, 5, 6])).all()
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]]) total_masked_pixels = mask_util.total_sparse_pixels_from_mask( mask=ma, unmasked_sparse_grid_pixel_centres= unmasked_sparse_grid_pixel_centres) sparse_to_unmasked_sparse = mapping_util.sparse_to_unmasked_sparse_from_mask_and_pixel_centres( total_sparse_pixels=total_masked_pixels, mask=ma, unmasked_sparse_grid_pixel_centres= unmasked_sparse_grid_pixel_centres) assert (sparse_to_unmasked_sparse == np.array([0, 1, 5])).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]]) total_masked_pixels = mask_util.total_sparse_pixels_from_mask( mask=ma, unmasked_sparse_grid_pixel_centres= unmasked_sparse_grid_pixel_centres) sparse_to_unmasked_sparse = mapping_util.sparse_to_unmasked_sparse_from_mask_and_pixel_centres( total_sparse_pixels=total_masked_pixels, mask=ma, unmasked_sparse_grid_pixel_centres= unmasked_sparse_grid_pixel_centres) assert (sparse_to_unmasked_sparse == np.array([1, 3, 4, 5, 7])).all()
def test__mask_full_false__image_mask_and_pixel_centres_fully_overlap__each_sparse_maps_to_unmaked_sparse( 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]]) total_masked_pixels = mask_util.total_sparse_pixels_from_mask( mask=ma, unmasked_sparse_grid_pixel_centres= unmasked_sparse_grid_pixel_centres) sparse_to_unmasked_sparse = mapping_util.sparse_to_unmasked_sparse_from_mask_and_pixel_centres( total_sparse_pixels=total_masked_pixels, mask=ma, unmasked_sparse_grid_pixel_centres= unmasked_sparse_grid_pixel_centres) assert (sparse_to_unmasked_sparse == np.array( [0, 1, 2, 3, 4, 5, 6, 7, 8])).all()