Source code for hipscat.pixel_math.filter

from typing import List

from hipscat.pixel_math import HealpixPixel
from hipscat.pixel_tree import PixelAlignment, PixelAlignmentType, align_trees
from hipscat.pixel_tree.pixel_tree import PixelTree


[docs] def get_filtered_pixel_list(pixel_tree: PixelTree, search_tree: PixelTree) -> List[HealpixPixel]: """Aligns the catalog pixel tree with another pixel tree of interest, and extracts the HEALPix pixels that overlap. This method is useful to obtain the pixels intersecting a pre-defined search space. Args: pixel_tree (PixelTree): The catalog pixel tree search_tree (PixelTree): The tree of pixels that defines the search space Returns: A list of HEALPix pixels that overlap in both trees. """ search_alignment = align_trees(pixel_tree, search_tree, alignment_type=PixelAlignmentType.INNER) pixels_df = search_alignment.pixel_mapping[ [PixelAlignment.PRIMARY_ORDER_COLUMN_NAME, PixelAlignment.PRIMARY_PIXEL_COLUMN_NAME] ] filtered_pixels_df = pixels_df.drop_duplicates() pixel_list = [ HealpixPixel(order, pixel) for order, pixel in zip( filtered_pixels_df[PixelAlignment.PRIMARY_ORDER_COLUMN_NAME], filtered_pixels_df[PixelAlignment.PRIMARY_PIXEL_COLUMN_NAME], ) ] return pixel_list