curryer.correction.correction_config ==================================== .. py:module:: curryer.correction.correction_config .. autoapi-nested-parse:: Mission-agnostic configuration utilities for geolocation Correction analysis. This module provides general-purpose functions for reading and validating configuration files. It contains NO mission-specific logic. Attributes ---------- .. autoapisummary:: curryer.correction.correction_config.logger Functions --------- .. autoapisummary:: curryer.correction.correction_config.load_config_schema curryer.correction.correction_config.validate_config_file curryer.correction.correction_config.extract_mission_config curryer.correction.correction_config.get_kernel_mapping curryer.correction.correction_config.find_kernel_file Module Contents --------------- .. py:data:: logger .. py:function:: load_config_schema() -> dict[str, Any] Return the expected configuration schema. :returns: Dictionary describing required and optional config sections. :rtype: dict[str, Any] .. py:function:: validate_config_file(config_path: pathlib.Path) -> bool Validate that a config file exists and is valid JSON. :param config_path: Path to configuration file :returns: True if valid :raises FileNotFoundError: If file doesn't exist :raises ValueError: If JSON is invalid .. py:function:: extract_mission_config(config_data: dict[str, Any]) -> dict[str, Any] Extract mission configuration from config dictionary. :param config_data: Full configuration dictionary from JSON :returns: mission_config section :raises KeyError: If mission_config section is missing .. py:function:: get_kernel_mapping(config_data: dict[str, Any], kernel_type: str) -> dict[str, str] Get kernel mappings for a specific kernel type. :param config_data: Full configuration dictionary :param kernel_type: Type of kernel ('constant_kernel' or 'offset_kernel') :returns: 'cprs_hysics_v01.attitude.ck.json'}) :rtype: Dict mapping names to kernel files (e.g., {'hysics' .. py:function:: find_kernel_file(name: str, kernel_mapping: dict[str, str]) -> str | None Find kernel file for a given name using substring matching. Performs case-insensitive matching against kernel mapping keys. :param name: Parameter or sensor name to match :param kernel_mapping: Dict of key patterns to kernel files :returns: Kernel file name if found, None otherwise .. rubric:: Example >>> mapping = {'hysics': 'cprs_hysics_v01.attitude.ck.json'} >>> find_kernel_file('hysics_roll', mapping) 'cprs_hysics_v01.attitude.ck.json'