Source code for dran.fits.observed_keys

# =========================================================================== #
# File: observed_keys.py                                                      #
# Author: Pfesesani V. van Zyl                                                #
# Email: pfesi24@gmail.com                                                    #
# =========================================================================== #


# Library imports
# --------------------------------------------------------------------------- #
import logging
from typing import Dict, List
from dran.config.constants import (
    C_KEYS,
    FS_KEYS,
    ND_KEYS,
    PR_KEYS,
)
# =========================================================================== #


[docs] def build_observed_header_key_groups(band: str, log: logging.Logger) -> Dict[int, List[str]]: """ Build observed header key groups for a given band. The indices reflect the existing downstream expectations in your pipeline. For L/S: 0: PR_KEYS 1: FS_KEYS 2: ND_KEYS 3: [] 4: C_KEYS 5: [] (reserved for computed injection) For other bands: 0: PR_KEYS 1: FS_KEYS 2: ND_KEYS 3: [] 4: [] 5: [] 6: C_KEYS 7: [] Args: band: Band identifier (case-insensitive). log: Logger. Returns: Dict[int, List[str]] mapping group index to cloned key lists. """ norm_band = (band or "").strip().upper() log.debug("Building observed header key groups for band=%s", norm_band) if norm_band in {"L", "S"}: groups: Dict[int, List[str]] = { 0: list(PR_KEYS), 1: list(FS_KEYS), 2: list(ND_KEYS), 3: [], 4: list(C_KEYS), 5: [], } else: groups = { 0: list(PR_KEYS), 1: list(FS_KEYS), 2: list(ND_KEYS), 3: [], 4: [], 5: [], 6: list(C_KEYS), 7: [], } log.debug("Observed groups: %s", groups) return groups