DanishAlgorithm¶
- class lsst.ts.wep.estimation.DanishAlgorithm(lstsqKwargs: Optional[dict] = None, binning: int = 1)¶
Bases:
WfAlgorithm
Wavefront estimation algorithm class for Danish.
The Danish algorithm is based on Janish 2012: http://hdl.handle.net/1721.1/78543 Implemented and improved by Josh Meyers: https://github.com/jmeyers314/danish
Parameters¶
- lstsqKwargsdict, optional
A dictionary containing any of the keyword arguments for scipy.optimize.least_squares, except
fun
,x0
,jac
, orargs
.- binningint, optional
Binning factor to apply to the donut stamps before estimating Zernike coefficients. The default value of 1 means no binning.
Attributes Summary
Binning factor to apply to donut stamps.
The algorithm history.
Keyword arguments for scipy.optimize.least_squares
Whether the algorithm requires pairs to estimate Zernikes.
Methods Summary
estimateZk
(I1[, I2, jmax, instrument, ...])Return the wavefront Zernike coefficients in meters.
Attributes Documentation
- binning¶
Binning factor to apply to donut stamps.
- history¶
The algorithm history.
The history is a dictionary that contains intermediate products from the Zernike fitting. The dict contains entries for “intra” and/or “extra”, plus the final zernike estimate under “zk”.
The “intra” and “extra” entries are dictionaries that contain the following entries
“image” - the image that is being fit
“variance” - the background variance that was used for fitting
“zkStart” - the starting Zernike coefficients
“lstsqResult” - dictionary of results returned by least_squares
“zkFit” - the Zernike coefficients fit to the donut
“zkSum” - zkFit + the intrinsic Zernikes
“model” - the final forward-modeled donut image
“GalSimFFTSizeError” - whether this was hit during least_squares
Note the units for all Zernikes are in meters, and all Zernikes start with Noll index 4.
- lstsqKwargs¶
Keyword arguments for scipy.optimize.least_squares
- requiresPairs¶
Whether the algorithm requires pairs to estimate Zernikes.
Methods Documentation
- estimateZk(I1: ~lsst.ts.wep.image.Image, I2: ~typing.Optional[~lsst.ts.wep.image.Image] = None, jmax: int = 22, instrument: ~lsst.ts.wep.instrument.Instrument = <lsst.ts.wep.instrument.Instrument object>, startWithIntrinsic: bool = True, returnWfDev: bool = False, return4Up: bool = True, units: str = 'm', saveHistory: bool = False) ndarray ¶
Return the wavefront Zernike coefficients in meters.
Parameters¶
- I1DonutStamp
An Image object containing an intra- or extra-focal donut image.
- I2DonutStamp, optional
A second image, on the opposite side of focus from I1. (the default is None)
- jmaxint, optional
The maximum Zernike Noll index to estimate. (the default is 22)
- instrumentInstrument, optional
The Instrument object associated with the DonutStamps. (the default is the default Instrument)
- startWithIntrinsicbool, optional
Whether to start the Zernike estimation process from the intrinsic Zernikes rather than zero. (the default is True)
- returnWfDevbool, optional
If False, the full OPD is returned. If True, the wavefront deviation is returned. The wavefront deviation is defined as the OPD - intrinsic Zernikes. (the default is False)
- return4Upbool, optional
If True, the returned Zernike coefficients start with Noll index 4. If False, they follow the Galsim convention of starting with index 0 (which is meaningless), so the array index of the output corresponds to the Noll index. In this case, indices 0-3 are always set to zero, because they are not estimated by our pipeline. (the default is True)
- unitsstr, optional
Units in which the Zernike amplitudes are returned. Options are “m”, “nm”, “um”, or “arcsecs”. (the default is “m”)
- saveHistorybool, optional
Whether to save the algorithm history in the self.history attribute. If True, then self.history contains information about the most recent time the algorithm was run. (the default is False)
Returns¶
- np.ndarray
Zernike coefficients estimated from the image (or pair of images)