dLux 0.11.0
Changes
The high level goal of this version is to remove all classes that are incompatible with the serialisation methods introduced in zodiax. This required removing all leaves that were functions ie observation and the zernike generating functions. Details of these changes are below.
Namespace changes
SimpleAperture->ApertureFactory😉 @ataras2
New modules
aberrations.py
A new module designed to house the new aberrations classes Zernike, ZernikeBasis, AberrationsFactory. Zernike class is designed to generate a zernike polynomial dynamically. ZernikeBasis holds a list of individual Zernike classes and has extra methods to generate a full basis. AberrationsFactory is a simple interface to generate an ApplyBasisOPD class loaded with the appropriate pre-calculated basis. The apertures.py class has been updated to reflect these changes.
observations.py
A new module designed to hold observation classes. Implements an AbstractObservation class to be inherited from. Also implements Dither which allows for dithered observations. The Instrument class has been updated to take this new type of class and has had its dithering functionality removed. It similarly now searches for the observation class name in __getattr__ allowing for zodiax easy accessing.
Removed
optics.CompoundAperturehas been fully removed.
Docs
All changes are reflected in the docs.
Tests
- The new
aberrationsmodule remains tested by theAberratedApertureclass tests, so no new tests have been added for this. - Minor tests added for the
Ditherobservation class and added to workflow
Other Changes
- All
eqx.static_fields()calls removed (primarily on thenames) utils.helpers.list_to_dictchanged to update thenameparameter of layers with namespace clashesAddBasisOPD.get_total_opd->AddBasisOPD.get_opd
Full Changelog: v0.10.1...v0.11.0