Skip to content

dLux 0.11.0

Choose a tag to compare

@LouisDesdoigts LouisDesdoigts released this 10 Mar 07:44
· 54 commits to main since this release

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.CompoundAperture has been fully removed.

Docs

All changes are reflected in the docs.


Tests

  • The new aberrations module remains tested by the AberratedAperture class tests, so no new tests have been added for this.
  • Minor tests added for the Dither observation class and added to workflow

Other Changes

  • All eqx.static_fields() calls removed (primarily on the names)
  • utils.helpers.list_to_dict changed to update the name parameter of layers with namespace clashes
  • AddBasisOPD.get_total_opd -> AddBasisOPD.get_opd

Full Changelog: v0.10.1...v0.11.0