artist.scenario.configuration_classes ===================================== .. py:module:: artist.scenario.configuration_classes Classes ------- .. autoapisummary:: artist.scenario.configuration_classes.PowerPlantConfig artist.scenario.configuration_classes.TargetAreaConfig artist.scenario.configuration_classes.TargetAreaListConfig artist.scenario.configuration_classes.LightSourceConfig artist.scenario.configuration_classes.LightSourceListConfig artist.scenario.configuration_classes.FacetConfig artist.scenario.configuration_classes.SurfaceConfig artist.scenario.configuration_classes.SurfacePrototypeConfig artist.scenario.configuration_classes.KinematicDeviations artist.scenario.configuration_classes.KinematicConfig artist.scenario.configuration_classes.KinematicPrototypeConfig artist.scenario.configuration_classes.KinematicLoadConfig artist.scenario.configuration_classes.ActuatorParameters artist.scenario.configuration_classes.ActuatorConfig artist.scenario.configuration_classes.ActuatorListConfig artist.scenario.configuration_classes.ActuatorPrototypeConfig artist.scenario.configuration_classes.PrototypeConfig artist.scenario.configuration_classes.HeliostatConfig artist.scenario.configuration_classes.HeliostatListConfig Module Contents --------------- .. py:class:: PowerPlantConfig(power_plant_position: torch.Tensor) Initialize the power plant configuration. Parameters ---------- power_plant_position : torch.Tensor The position of the power plant as latitude, longitude, altitude. .. py:attribute:: power_plant_position .. py:method:: create_power_plant_dict() -> dict[str, Any] Create a dictionary containing the configuration parameters for the power plant. Returns ------- dict[str, Any] A dictionary containing the configuration parameters for the power plant. .. py:class:: TargetAreaConfig(target_area_key: str, geometry: str, center: torch.Tensor, normal_vector: torch.Tensor, plane_e: float, plane_u: float, curvature_e: float | None = None, curvature_u: float | None = None) Initialize the target area configuration. Parameters ---------- target_area_key : str The ID string used to identify the target area in the HDF5 file. geometry : str The type of target area, e.g., planar. center : torch.Tensor The position of the target area's center. normal_vector : torch.Tensor The normal vector to the target plane. plane_e : float The size of the target area in the east direction. plane_u : float The size of the target area in the up direction. curvature_e: float | None The curvature of the target area in the east direction. curvature_u: float | None The curvature of the target area in the up direction. .. py:attribute:: target_area_key .. py:attribute:: geometry .. py:attribute:: center .. py:attribute:: normal_vector .. py:attribute:: plane_e .. py:attribute:: plane_u .. py:attribute:: curvature_e :value: None .. py:attribute:: curvature_u :value: None .. py:method:: create_target_area_dict() -> dict[str, Any] Create a dictionary containing the configuration parameters for the target area. Returns ------- dict[str, Any] A dictionary containing the configuration parameters for the target area. .. py:class:: TargetAreaListConfig(target_area_list: list[TargetAreaConfig]) Initialize the target area list configuration. Parameters ---------- target_area_list : list[TargetAreaConfig] The list of target area configurations included in the scenario. .. py:attribute:: target_area_list .. py:method:: create_target_area_list_dict() -> dict[str, Any] Create a dictionary containing the configuration parameters for the list of target areas. Returns ------- dict[str, Any] A dictionary containing the configuration parameters for the list of target areas. .. py:class:: LightSourceConfig(light_source_key: str, light_source_type: str, number_of_rays: int, distribution_type: str, mean: float | None = None, covariance: float | None = None) Initialize the light source configuration. Parameters ---------- light_source_key : str The key used to identify the light source in the HDF5 file. light_source_type: The type of light source used, e.g. a sun. number_of_rays : int The number of rays generated by the light source. distribution_type : str The distribution type used to model the light source. mean : float | None The mean used for modeling the light source. covariance : float | None The covariance used for modeling the light source. Raises ------ ValueError If the specified light source distribution type is unknown. .. py:attribute:: light_source_key .. py:attribute:: light_source_type .. py:attribute:: number_of_rays .. py:attribute:: distribution_type .. py:method:: create_light_source_dict() -> dict[str, Any] Create a dictionary containing the configuration parameters for the light source. Returns ------- dict[str, Any] A dictionary containing the configuration parameters for the light source. .. py:class:: LightSourceListConfig(light_source_list: list[LightSourceConfig]) Initialize the light source list configuration. Parameters ---------- light_source_list : list[LightSourceConfig] The list of light source configs to be included in the scenario. .. py:attribute:: light_source_list .. py:method:: create_light_source_list_dict() -> dict[str, Any] Create a dictionary containing the configuration parameters for the light source list. Returns ------- dict[str, Any] A dictionary containing the configuration parameters for the light source list. .. py:class:: FacetConfig(facet_key: str, control_points: torch.Tensor, degrees: torch.Tensor, translation_vector: torch.Tensor, canting: torch.Tensor) Initialize the facet configuration. Parameters ---------- facet_key : str The key used to identify the facet in the HDF5 file. control_points : torch.Tensor The NURBS control points. degrees : torch.Tensor The NURBS degree in the east and north direction. translation_vector : torch.Tensor The translation_vector of the facet. canting: torch.Tensor The canting vectors in the east and north direction. .. py:attribute:: facet_key .. py:attribute:: control_points .. py:attribute:: degrees .. py:attribute:: translation_vector .. py:attribute:: canting .. py:method:: create_facet_dict() -> dict[str, Any] Create a dictionary containing the configuration parameters for a facet. Returns ------- dict[str, Any] A dictionary containing the configuration parameters for the facet. .. py:class:: SurfaceConfig(facet_list: list[FacetConfig]) Initialize the surface configuration. Parameters ---------- facet_list : list[FacetsConfig] The list of facets to be used for the surface of the heliostat. .. py:attribute:: facet_list .. py:method:: create_surface_dict() -> dict[str, Any] Create a dictionary containing the configuration parameters for the surface. Returns ------- dict[str, Any] A dictionary containing the configuration parameters for the surface. .. py:class:: SurfacePrototypeConfig(facet_list: list[FacetConfig]) Bases: :py:obj:`SurfaceConfig` Initialize the surface prototype configuration. Parameters ---------- facet_list : list[FacetsConfig] The list of facets to be used for the surface of the heliostat prototype. .. py:class:: KinematicDeviations(first_joint_translation_e: torch.Tensor | None = None, first_joint_translation_n: torch.Tensor | None = None, first_joint_translation_u: torch.Tensor | None = None, first_joint_tilt_n: torch.Tensor | None = None, first_joint_tilt_u: torch.Tensor | None = None, second_joint_translation_e: torch.Tensor | None = None, second_joint_translation_n: torch.Tensor | None = None, second_joint_translation_u: torch.Tensor | None = None, second_joint_tilt_e: torch.Tensor | None = None, second_joint_tilt_n: torch.Tensor | None = None, concentrator_translation_e: torch.Tensor | None = None, concentrator_translation_n: torch.Tensor | None = None, concentrator_translation_u: torch.Tensor | None = None) Initialize the kinematic deviations. Parameters ---------- first_joint_translation_e : torch.Tensor | None The first joint translation in the east direction. first_joint_translation_n : torch.Tensor | None The first joint translation in the north direction. first_joint_translation_u : torch.Tensor | None The first joint translation in the up direction. first_joint_tilt_n : torch.Tensor | None The first joint tilt in the north direction. first_joint_tilt_u : torch.Tensor | None The first joint tilt in the up direction. second_joint_translation_e : torch.Tensor | None The second joint translation in the east direction. second_joint_translation_n : torch.Tensor | None The second joint translation in the north direction. second_joint_translation_u : torch.Tensor | None The second joint translation in the up direction. second_joint_tilt_e : torch.Tensor | None The second joint tilt in the east direction. second_joint_tilt_n : torch.Tensor | None The second joint tilt in the north direction. concentrator_translation_e : torch.Tensor | None The concentrator translation in the east direction. concentrator_translation_n : torch.Tensor | None The concentrator translation in the north direction. concentrator_translation_u : torch.Tensor | None The concentrator translation in the up direction. .. py:attribute:: first_joint_translation_e :value: None .. py:attribute:: first_joint_translation_n :value: None .. py:attribute:: first_joint_translation_u :value: None .. py:attribute:: first_joint_tilt_n :value: None .. py:attribute:: first_joint_tilt_u :value: None .. py:attribute:: second_joint_translation_e :value: None .. py:attribute:: second_joint_translation_n :value: None .. py:attribute:: second_joint_translation_u :value: None .. py:attribute:: second_joint_tilt_e :value: None .. py:attribute:: second_joint_tilt_n :value: None .. py:attribute:: concentrator_translation_e :value: None .. py:attribute:: concentrator_translation_n :value: None .. py:attribute:: concentrator_translation_u :value: None .. py:method:: create_kinematic_deviations_dict() -> dict[str, Any] Create a dictionary containing the configuration parameters for the kinematic deviations. Returns ------- dict[str, Any] A dictionary containing the configuration parameters for the kinematic deviations. .. py:class:: KinematicConfig(type: str, initial_orientation: torch.Tensor, deviations: KinematicDeviations | None = None) Initialize the kinematic configuration. Parameters ---------- type : str The type of kinematic used. initial_orientation : torch.Tensor The initial orientation of the kinematic configuration. deviations : KinematicDeviations | None The kinematic deviations. .. py:attribute:: type .. py:attribute:: initial_orientation .. py:attribute:: deviations :value: None .. py:method:: create_kinematic_dict() -> dict[str, Any] Create a dictionary containing the configuration parameters for the kinematic. Returns ------- dict[str, Any] A dictionary containing the configuration parameters for the kinematic. .. py:class:: KinematicPrototypeConfig(type: str, initial_orientation: torch.Tensor, deviations: KinematicDeviations | None = None) Bases: :py:obj:`KinematicConfig` Initialize the kinematic prototype configuration. Parameters ---------- type : str The type of kinematic used. initial_orientation : torch.Tensor The initial orientation of the kinematic configuration. deviations : KinematicDeviations | None The kinematic deviations. .. py:class:: KinematicLoadConfig(type: str, initial_orientation: torch.Tensor, deviations: KinematicDeviations) Initialize the kinematic configuration for loading in ``ARTIST``. Parameters ---------- type : str The type of kinematic used. initial_orientation : torch.Tensor The initial orientation of the kinematic configuration. deviations : KinematicDeviations The kinematic deviations. .. py:attribute:: type .. py:attribute:: initial_orientation .. py:attribute:: deviations .. py:class:: ActuatorParameters(increment: torch.Tensor | None = None, initial_stroke_length: torch.Tensor | None = None, offset: torch.Tensor | None = None, pivot_radius: torch.Tensor | None = None, initial_angle: torch.Tensor | None = None) Initialize the actuator parameters. Parameters ---------- increment : torch.Tensor | None The increment for the actuator initial_stroke_length : torch.Tensor | None The initial stroke length. offset : torch.Tensor | None The initial actuator offset. pivot_radius : torch.Tensor | None The pivot radius of the considered joint. initial_angle : torch.Tensor | None The initial angle of the actuator. .. py:attribute:: increment :value: None .. py:attribute:: initial_stroke_length :value: None .. py:attribute:: offset :value: None .. py:attribute:: pivot_radius :value: None .. py:attribute:: initial_angle :value: None .. py:method:: create_actuator_parameters_dict() -> dict[str, torch.Tensor] Create a dictionary containing the parameters for the actuator. Returns ------- dict[str, torch.Tensor] A dictionary containing the configuration parameters for the actuator. .. py:class:: ActuatorConfig(key: str, type: str, clockwise_axis_movement: bool, min_max_motor_positions: list[float], parameters: ActuatorParameters | None = None) Initialize the actuator configuration. Parameters ---------- key : str The name or descriptor of the actuator. type : str The type of actuator to use, e.g. linear or ideal. clockwise_axis_movement : bool Boolean indicating if the actuator operates in a clockwise or counterclockwise manner. min_max_motor_positions : list[float] The minimum and maximum motor positions. parameters : ActuatorParameters | None The parameters of the actuator. .. py:attribute:: key .. py:attribute:: type .. py:attribute:: clockwise_axis_movement .. py:attribute:: min_max_motor_positions .. py:attribute:: parameters :value: None .. py:method:: create_actuator_dict() -> dict[str, Any] Create a dictionary containing the actuator configuration. Returns ------- dict[str, Any] A dictionary containing the actuator configuration. .. py:class:: ActuatorListConfig(actuator_list: list[ActuatorConfig]) Initialize the actuator list configuration. Parameters ---------- actuator_list : list[ActuatorConfig] A list of actuator configurations. .. py:attribute:: actuator_list .. py:method:: create_actuator_list_dict() -> dict[str, Any] Create a dictionary containing a list of actuator configurations. Returns ------- dict[str, Any] A dictionary containing a list of actuator configurations. .. py:class:: ActuatorPrototypeConfig(actuator_list: list[ActuatorConfig]) Bases: :py:obj:`ActuatorListConfig` Initialize the actuator list prototype configuration. Parameters ---------- actuator_list : list[ActuatorConfig] A list of actuator configurations. .. py:class:: PrototypeConfig(surface_prototype: SurfacePrototypeConfig, kinematic_prototype: KinematicPrototypeConfig, actuators_prototype: ActuatorPrototypeConfig) Initialize the prototype configuration. Parameters ---------- surface_prototype : SurfacePrototypeConfig The prototype for the surface. kinematic_prototype : KinematicPrototypeConfig The prototype for the kinematic. actuators_prototype : ActuatorPrototypeConfig The prototype for the actuators. .. py:attribute:: surface_prototype .. py:attribute:: kinematic_prototype .. py:attribute:: actuators_prototype .. py:method:: create_prototype_dict() -> dict[str, Any] Create a dictionary containing the prototypes. Returns ------- dict[str, Any] A dictionary containing the prototypes. .. py:class:: HeliostatConfig(name: str, id: int, position: torch.Tensor, surface: SurfaceConfig | None = None, kinematic: KinematicConfig | None = None, actuators: ActuatorListConfig | None = None) Initialize the single heliostat configuration. Parameters ---------- name : str The name used to identify the heliostat in the HDF5 file. id : int The numerical ID of the heliostat. position : torch.Tensor The position of the heliostat. surface : SurfaceConfig | None An optional individual surface config for the heliostat. kinematic : KinematicConfig | None An optional kinematic config for the heliostat. actuators : ActuatorListConfig | None An optional actuator list config for the heliostat. .. py:attribute:: name .. py:attribute:: id .. py:attribute:: position .. py:attribute:: surface :value: None .. py:attribute:: kinematic :value: None .. py:attribute:: actuators :value: None .. py:method:: create_heliostat_config_dict() -> dict[str, Any] Create a dictionary containing the heliostat configuration parameters. Returns ------- dict[str, Any] A dictionary containing the heliostat configuration parameters. .. py:class:: HeliostatListConfig(heliostat_list: list[HeliostatConfig]) Initialize the heliostat list configuration. Parameters ---------- heliostat_list : list[HeliostatConfig] The list of heliostats to include. .. py:attribute:: heliostat_list .. py:method:: create_heliostat_list_dict() -> dict[str, Any] Create a dictionary containing the heliostat list configuration parameters. Returns ------- dict[str, Any] A dictionary containing the heliostat list configuration parameters.