Source code for across.tools.footprint.healpix_joins

from ..core.math import find_duplicates
from .footprint import Footprint


[docs] def inner(footprints: list[Footprint], order: int = 10) -> list[int]: """ Computes the inner join from a list of footprints. Returns the list of overlapping healpix-pixels (i.e. the duplicates) """ total_pixels: list[int] = [] for footprint in footprints: total_pixels.extend(footprint.query_pixels(order=order)) return find_duplicates(total_pixels)
[docs] def outer(footprints: list[Footprint], order: int = 10) -> list[int]: """ Computes the outer join from a list of footprints Returns the list of non-over lapping healpix pixels (i.e. the non-duplicates) """ total_pixels: list[int] = [] for footprint in footprints: total_pixels.extend(footprint.query_pixels(order=order)) duplicates = find_duplicates(total_pixels) outer_pixels = list({x for x in total_pixels if x not in duplicates}) return outer_pixels
[docs] def union(footprints: list[Footprint], order: int = 10) -> list[int]: """ Computes the union of a list of footprints Returns the list of overlapping and non overlapping healpix pixels (i.e. all unique pixels) """ total_pixels: list[int] = [] for footprint in footprints: total_pixels.extend(footprint.query_pixels(order=order)) return list(set(total_pixels))