Version History¶
v3.2.0¶
Add PIDController as alternative control strategy.
Move current control strategy to OICController (optimal integral controller).
Add PID option to OICController output.
Add mypy type checking to ts_ofc.
Allow filter names to be passed as ‘r_01’, ‘r’ or ‘R’.
Change
ofc.calculate_corrections()
to expect sensor_ids instead of sensor_names.Add comcam to policy/sensor_ids_to_names.yaml.
Add zn_selected as a configuration too policy files.
v3.1.3¶
Update to use ts_jenkins_shared_library.
v3.1.2¶
Move class diagrams to mermaid from plantUML.
v3.1.1¶
Update Jenkins to do daily and weekly builds.
v3.1.0¶
Update sensitivity matrix and intrinsic zernikes up to zk 28.
Add zn_selected to select the zernikes to be used.
Updated alpha values for image quality matrix.
v3.0.2¶
Update the version of ts-conda-build to 0.4 in the conda recipe.
v3.0.1¶
Removed Zemax Coordinate System, which is substituted by the Camera Coordinate System.
Updated the bending modes used to the new uncorrupted bending modes.
Updated sensitivity matrix and intrinsic zernikes for the new coordinate system and new bending modes.
Removed old unused test data.
v3.0.0¶
Major refactor of ofc code to allow camera rotation.
Added derotation of ts_wep zernike estimates to deal with rotation of the sensor.
- Added ability to evaluate sensitivity matrix and intrinsic zernikes at the rotated field position.
Added double zernikes sensitivity matrix for lsst and comcam.
Added double zernikes intrinsic zernikes for lsst and comcam.
Policy folder was simplified since lsstfam and lsst share all double zernike files.
Added scripts to generate sensitivity matrix and intrinsic files from batoid package.
v2.1.1¶
Update pre-commit hooks with ruff.
v2.1.0¶
Update setup configuration files, remove flake8.
v2.0.9¶
Create additional default factories for BaseOFCData.
v2.0.8¶
Run black v23.1.0.
Update Jenkinsfile.
v2.0.7¶
Update Jenkinsfile, posting to aos-builds.
v2.0.6¶
Added documentation link to the README.
v2.0.5¶
Format with Black v22.3.0.
v2.0.4¶
Update LSSTCam sensor names.
v2.0.3¶
Fix
setup.cfg
to support conda versioning.
v2.0.2¶
OFC.get_correction()
should give the aggregated degree of freedom (DOF).Remove the out-of-date documents: content.rst, ctrlIntfClass.uml, and ofcClass.uml.
v2.0.1¶
Put the delta in
BaseOFCData
to be property.
v2.0.0¶
Major refactor of ofc code.
The code was reorganized so that the main user-interface class (previously
OFCCalculation
, now justOFC
) is at the top level of the package.The
OFC
class is no longer subclassed for the different instruments, since the behavior was the same in all cases.Document the control algorithm for OFC in rst from Confluence
Document the camera rotation degree of freedom in rst from Confluence
General improvements in documentation.
Data handling¶
All data is now handled by a two container classes, BaseOFCData
and OFCData
, which is shared between all the other classes that require data access.
Most of the data is defined in-line, instead of reading them from files.
The data that is read from files are the ones for the instruments.
This is handled in the background when the user sets the “name” attribute in an instance of OFCData.
All data is read at once and stored in memory to avoid unnecessary IO during computation.
In the future we may consider adding more data protection and data parsing capabilities, but I think this will work fine for this first iteration.
Corrections¶
Corrections is now handled by a single class.
Removed WEP dependency¶
OFC now does not depend on WEP anymore. The dependency was mostly on enumerations for filter names and other things that mapped to string/filenames. These where all replaced by true strings. The advantage is that OFC is no longer tied to that particular use cases, if the user can provide configuration files that matches the input they can use it with WEP without any code changes.
Controller and State Estimator¶
The core classes where previously called OptCtrl
and OptStateEsti
.
They were renamed OFCController
and StateEstimator
.
v1.3.7¶
Build and upload documentation as part of the CI job.
Use develop-env image for the CI job, due to the need of java to build the documentation.
Disable concurrent builds.
Improve error message in
OptStateEsti._getMatA
v1.3.6¶
Unify the line ending to LF.
v1.3.5¶
Use the latest ts_wep that removes the dependency of
sims
package.
v1.3.4¶
Use the
sims_w_2020_38
.
v1.3.3¶
Use the
sims_w_2020_36
.Support the LSST full-array mode (FAM) by adding the OFCCalculationOfLsstFam class.
v1.3.2¶
Update the sensitivity matrix and M2 force file.
This unifies the corrdinate system of M1M3 and M2 in FEA model.
Test the
sims_w_2020_28
.
v1.3.1¶
Reformat the code by
black
.Add the
black
check to.githooks
.Ignore
flake8
check of E203 ans W503 for theblack
.Use the
sims_w_2020_21
.Fix the hexapod rotation matrix.
v1.3.0¶
Adds parameter to specify values of state 0 DoF (M2 & Camera hexapod positions, M1M3 & M2 bending modes).
v1.2.6¶
Use
sims_w_2020_15
.Update the bending mode files.
Update optiPSSN.yaml for the new penality values.
Update OptCtrlDataDecorator class to use BendModeToForce to get the bending mode.
Update the rotation matrix of mirror in CamRot class.
Remove the bending mode transformation in SubSysAdap class.
v1.2.5¶
Use
sims_w_2020_14
.
v1.2.4¶
Use
sims_w_2020_04
.
v1.2.3¶
Use
sims_w_2019_50
.
v1.2.2¶
Use
sims_w_2019_38
.
v1.2.1¶
Use
sims_w_2019_31
and the latest ts_wep version.Remove the
conda
package installation in Jenkinsfile.Update the permission of workspace after the unit test.
v1.2.0¶
Use
sims_w_2019_29
and the latest ts_wep version.Add the
getZtaac()
in OFCCalculation class.
v1.1.9¶
Use
sims_w_2019_24
.Add the dependency of ts_wep in the table file.
Move the SensorWavefronError class to ts_wep.
v1.1.8¶
Use
sims_w_2019_20
.
v1.1.7¶
Depend on the ts_wep and support the
documenteer
.Use
sims_w_2019_18
.
v1.1.6¶
Add the unit tests of control interface classes and fix the minor errors.
Add the Shack-Hartmann and CMOS cameras.
v1.1.5¶
Add the classes to translate the Zemax coordinate to subsystem’s coordinate and vice versa.
v1.1.4¶
Use the
eups
as the package manager andyaml
configuration file format.
v1.1.3¶
Add the get functions of state in OFCCalculation class.
v1.1.2¶
Fix the interface class of M2HexapodCorrection.
Rename the HexapodCorrection class to CameraHexapodCorrection.
v1.1.1¶
Add the interface to MTAOS in
ctrlIntf
module.
v1.0.1¶
Reuse the FilterType Enum from ts_tcs_wep.
v1.0.0¶
Finish the OFC with the support of algorithm study in Python.