artist.io.calibration_parser ============================ .. py:module:: artist.io.calibration_parser Attributes ---------- .. autoapisummary:: artist.io.calibration_parser.log Classes ------- .. autoapisummary:: artist.io.calibration_parser.CalibrationDataParser Module Contents --------------- .. py:data:: log A logger for the calibration data parser. .. py:class:: CalibrationDataParser(sample_limit: int | None = None) Initialize the the base data parser. Parameters ---------- sample_limit : int | None The number specifying the maximum number of samples to be loaded (default is None). .. py:attribute:: sample_limit :value: None .. py:method:: parse_data_for_reconstruction(heliostat_data_mapping: list[tuple[str, list[pathlib.Path], list[pathlib.Path]]], heliostat_group: artist.field.heliostat_group.HeliostatGroup, scenario: artist.scenario.scenario.Scenario, bitmap_resolution: torch.Tensor = torch.tensor([indices.bitmap_resolution, indices.bitmap_resolution]), device: torch.device | None = None) -> tuple[torch.Tensor, torch.Tensor, torch.Tensor, torch.Tensor, torch.Tensor, torch.Tensor] :abstractmethod: Extract measured fluxes and their respective calibration properties data. Parameters ---------- heliostat_data_mapping : list[tuple[str, list[pathlib.Path], list[pathlib.Path]]] The mapping from heliostat to calibration data files. heliostat_group : HeliostatGroup The heliostat group. scenario : Scenario The scenario. bitmap_resolution : torch.Tensor The resolution of all bitmaps during reconstruction (default is torch.tensor([256,256])). Shape is ``[2]``. device : torch.device | None The device on which to perform computations or load tensors and models (default is None). If None, ``ARTIST`` will automatically select the most appropriate device (CUDA or CPU) based on availability and OS. Returns ------- The measured flux density distributions. Shape is ``[number_of_active_heliostats, bitmap_resolution_e, bitmap_resolution_u]``. torch.Tensor The calibration focal spots. Shape is ``[number_of_calibration_data_points, 4]``. torch.Tensor The incident ray directions. Shape is ``[number_of_calibration_data_points, 4]``. torch.Tensor The motor positions. Shape is ``[number_of_calibration_data_points, 2]``. torch.Tensor A mask with active heliostats and their replications. Shape is ``[number_of_heliostats]``. torch.Tensor The target area mapping for the heliostats. Shape is ``[number_of_active_heliostats]``. .. py:method:: load_flux_from_png(heliostat_flux_path_mapping: list[tuple[str, list[pathlib.Path]]], heliostat_names: list[str], resolution: torch.Tensor = torch.tensor([indices.bitmap_resolution, indices.bitmap_resolution]), device: torch.device | None = None) -> torch.Tensor Load flux density distributions as tensors from png images. Note that the order of width and height are reversed in ``PIL`` and ``torch``. ``PIL`` takes (width, height), while ``torch`` tensors are [height, width]. Parameters ---------- heliostat_flux_path_mapping : list[tuple[str, list[pathlib.Path]]] The mapping of heliostats and their measured flux density distributions. heliostat_names : list[str] All possible heliostat names. resolution : torch.Tensor The resolution of the loaded png files (default is torch.tensor([256,256])). Shape is ``[2]``. device : torch.device | None The device on which to perform computations or load tensors and models (default is None). If None, ``ARTIST`` will automatically select the most appropriate device (CUDA or CPU) based on availability and OS. Returns ------- torch.Tensor The measured flux density distributions. Shape is ``[number_of_active_heliostats, bitmap_resolution_e, bitmap_resolution_u]``.