OFCData¶
- class lsst.ts.ofc.ofc_data.OFCData(name: str | None = None, config_dir: str | None = None, log: Logger | None = None, **kwargs: dict[str, Any])¶
- Bases: - BaseOFCData- Optical Feedback Control Data. - This container class provides a unified interface to all the data used by the OFC and its ancillary classes. It provides utiliy to load, inspect and update the different configuration files used by these classes. - Parameters¶- namestringorNone, optional
- Name of the instrument/configuration. This must map to a directory inside - data_path.
- config_dirstringorNone, optional
- Path to configuration directory. If - None(default) use data provided with the module. If a- stringis provided it must map to a valid path.
- loglogging.LoggerorNone, optional
- Optional logging class to be used for logging operations. If - None, creates a new logger.
- kwargsdict
- Additional keyword arguments. Value are passed over to the - BaseOFCDataparent class.
 - Attributes¶- bend_modedict
- Dictionary to hold bending mode data. The data is read alongside the other files when the name is set. 
- bending_mode_stressesdict
- Mirror bending mode stresses. 
- config_dirpathlib.Path
- Path to the directory storing configuration files. 
- controller_filenamestring
- Controller configuration filename. 
- dof_idxdictofstring
- Index of Degree of Freedom (DOF). 
- field_idxdictofstring
- Mapping between sensor name and field index. 
- gq_points: np.ndarrayoffloat
- Gaussian Quadrature points for LSST field. 
- image_quality_weightnp.ndarrayoffloat
- Image quality weight for the Gaussian Quadrature points. 
- intrinsic_zkdictofstring
- Intrinsic zernike coefficients per band per detector for a specific instrument configuration. 
- loglogging.Logger
- Logger class used for logging operations. 
- namestring
- Name of the instrument configuration. This is used to define where - intrinsic_zkand- y2will be read from.
- sensitivity_matrixnp.ndarrayoffloat
- Sensitivity matrix M. 
- start_taskasyncio.Future
- Asyncio future that tracks whether the class is setup and ready or not. 
- xref_listlistofstring
- Available reference point strategies. 
- y2_correctionnp.ndarrayoffloat
- Y2 correction. 
- zn_idxnp.ndarrayofint
- Zernike indices used. 
- zn_selectednp.ndarrayofint
- Zernike indices selected in Zernike Noll Index. 
- zn_idx_masknp.ndarrayofbool
- Mask to select Zernike indices. 
 - Raises¶- RuntimeError
- If input - config_dirdoes not exists.
 - Attributes Summary - Index of Degree of Freedom (DOF) per component. - Controller configuration filename. - Default value of the comp_dof_idx. - Delta coefficient for the normalized point-source sensitivity (PSSN). - Index of Degree of Freedom (DOF). - Mask to select Degree of Freedom (DOF). - Reference point strategy. - Available reference point strategies. - Zernike indices used. - Mask to select Zernike indices. - Zernike indices selected in Zernike Noll Index. - Methods Summary - Refresh the controller configuration based on the current controller_filename. - configure_instrument(instrument)- Configure instrument concurrently. - load_yaml_file(file_path)- Load yaml file. - Attributes Documentation - comp_dof_idx¶
- Index of Degree of Freedom (DOF) per component. 
 - controller_filename¶
- Controller configuration filename. - Returns¶- string
- Controller configuration filename. 
 
 - default_comp_dof_idx¶
- Default value of the comp_dof_idx. 
 - delta¶
- Delta coefficient for the normalized point-source sensitivity (PSSN). - This delta defines the range where PSSN=1-alpha^2 sigma^2 is accurate to 0.001. What we are concerned with is that the system could be trying to achieve tiny PSSN gains at the price of large control motions. This only applies to converged states. In converged states, of course the Zernikes will be within the range defined by delta. For more details, please check the page 19-21 in: https://docushare.lsst.org/docushare/dsweb/Get/Document-18041/150513.pptx.pdf - Returns¶- np.arrayof- float
- Delta coefficient. 
 
 - dof_idx¶
- Index of Degree of Freedom (DOF). 
 - dof_idx_mask¶
- Mask to select Degree of Freedom (DOF). 
 - dof_state0_filename: str = 'state0_in_dof.yaml'¶
 - intrinsic_zk_filename_root: str = 'intrinsic_zk'¶
 - m1m3_actuator_penalty: float = 13.2584¶
 - m1m3_force_range: float = 134¶
 - m2_actuator_penalty: float = 134.0¶
 - m2_force_range: float = 45.0¶
 - motion_penalty: float = 0.0¶
 - name¶
 - sen_m_filename_root: str = 'sensitivity'¶
 - xref_list¶
- Available reference point strategies. 
 - y2_filename_root: str = '_y2.yaml'¶
 - zn_idx¶
- Zernike indices used. 
 - zn_idx_mask¶
- Mask to select Zernike indices. 
 - zn_selected¶
- Zernike indices selected in Zernike Noll Index. 
 - znmax: int = 28¶
 - znmin: int = 4¶
 - Methods Documentation - configure_controller() None¶
- Refresh the controller configuration based on the current controller_filename. - Raises¶- ValueError
- If controller name is missing in the configuration. 
- ValueError
- If normalization_weights_filename is missing in the configuration. 
- ValueError
- If truncation_threshold is missing in the configuration. 
- ValueError
- If controller name is not PID or OIC. 
- ValueError
- If required key is missing in the PID controller configuration. 
- ValueError
- If required key is missing in the OIC controller configuration. 
 
 
- name