Source code for furax_cs.data.instruments

from pathlib import Path

import numpy as np
import yaml
from furax._instruments.sky import FGBusterInstrument


[docs] def get_instrument(instrument_name: str) -> FGBusterInstrument: """Get an instrument configuration by name. Args: instrument_name: Name of the instrument (e.g., "LiteBIRD", "Planck"). Must correspond to an entry in `instruments.yaml`. Use "default" for the FGBuster default instrument. Returns: The instrument configuration object with frequency bands and sensitivities. Raises: ValueError: If `instrument_name` is not found in the configuration. Example: >>> instrument = get_instrument("LiteBIRD") >>> print(instrument.frequency) """ current_dir = Path(__file__).parent with open(f"{current_dir}/instruments.yaml") as f: instruments = yaml.safe_load(f) if instrument_name == "default": return FGBusterInstrument.default_instrument() if instrument_name not in instruments: raise ValueError(f"Unknown instrument {instrument_name}.") instrument_yaml = instruments[instrument_name] frequency = np.asarray(instrument_yaml["frequency"]) depth_i = np.asarray(instrument_yaml["depth_i"]) depth_p = np.asarray(instrument_yaml["depth_p"]) return FGBusterInstrument(frequency, depth_i, depth_p)