OFCData¶
- class lsst.ts.ofc.OFCData(name: str | None = None, config_dir: str | None = None, log: Logger | None = None, **kwargs: dict[str, Any])¶
 Bases:
BaseOFCDataOptical 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¶
- name
stringorNone, optional Name of the instrument/configuration. This must map to a directory inside
data_path.- config_dir
stringorNone, optional Path to configuration directory. If
None(default) use data provided with the module. If astringis provided it must map to a valid path.- log
logging.LoggerorNone, optional Optional logging class to be used for logging operations. If
None, creates a new logger.- kwargs
dict Additional keyword arguments. Value are passed over to the
BaseOFCDataparent class.
Attributes¶
- bend_mode
dict Dictionary to hold bending mode data. The data is read alongside the other files when the name is set.
- bending_mode_stresses
dict Mirror bending mode stresses.
- config_dir
pathlib.Path Path to the directory storing configuration files.
- controller_filename
string Controller configuration filename.
- dof_idx
dictofstring Index of Degree of Freedom (DOF).
- field_idx
dictofstring Mapping between sensor name and field index.
- gq_points: 
np.ndarrayoffloat Gaussian Quadrature points for LSST field.
- image_quality_weight
np.ndarrayoffloat Image quality weight for the Gaussian Quadrature points.
- intrinsic_zk
dictofstring Intrinsic zernike coefficients per band per detector for a specific instrument configuration.
- log
logging.Logger Logger class used for logging operations.
- name
string Name of the instrument configuration. This is used to define where
intrinsic_zkandy2will be read from.- sensitivity_matrix
np.ndarrayoffloat Sensitivity matrix M.
- start_task
asyncio.Future Asyncio future that tracks whether the class is setup and ready or not.
- xref_list
listofstring Available reference point strategies.
- y2_correction
np.ndarrayoffloat Y2 correction.
- zn_idx
np.ndarrayofint Zernike indices used.
- zn_selected
np.ndarrayofint Zernike indices selected in Zernike Noll Index.
- zn_idx_mask
np.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¶
stringController 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.arrayoffloatDelta 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