SlopeManagedFTR

class FTR.slopemanage.SlopeManagedFTR(ap, filter=None, manage_tt=None, suppress_tt=None, extend=False)[source]

Bases: FTR.ftr.FourierTransformReconstructor

An FTR Reconstructor with slope management to remove the effects of finite apertures.

This class is a direct subclass of FourierTransformReconstructor, see that class for detailed method documentation.

Parameters:

ap : array_like

The aperture of valid measurement points, which also defines the reconstructor shape used to generate filters.

filter : string_like, optional

The filter name to use. If not provided, it is expected that the user will initialize gx and gy themselves.

manage_tt : bool, optional

Remove tip and tilt from slopes before reconstruction, and re-apply them after reconstruction. (default is to use suppress_tt)

suppress_tt : bool, optional

Remove tip and tilt from slopes, and don’t re-apply after reconstruction. (default is False)

extend : bool, optional

Use the “edge extension” method rather than the “slope management” method. The “slope management” method was shown by Poyneer [R2] to have better error properties.

Notes

The Fourier transform reconstructor is described in the documentation for FourierTransformReconstructor, which implements the pure Fourier transform reconstructor. This subclass implements methods to correct for finite aperture effects in the Fourier transform.

References

[R2](1, 2) Poyneer, L. A. Signal processing for high-precision wavefront control in adaptive optics. (Thesis (Ph.D.) - University of California, 2007).

Examples

Creating a generic reconstructor will result in an uninitialized filter:

>>> import numpy as np
>>> aperture = np.zeros((10,10), dtype=np.bool)
>>> aperture[1:-2,1:-2] = True
>>> recon = SlopeManagedFTR(aperture)
>>> recon
<SlopeManagedFTR (10x10) filter='Unknown'>

You can create a reconstructor with a named filter:

>>> import numpy as np
>>> aperture = np.zeros((10,10), dtype=np.bool)
>>> aperture[1:-2,1:-2] = True
>>> recon = SlopeManagedFTR(aperture, "fried")
>>> recon
<SlopeManagedFTR (10x10) filter='fried'>
>>> ys, xs = np.meshgrid(np.arange(10), np.arange(10))
>>> recon(xs, ys)
array([...])

Methods Summary

reconstruct(xs, ys[, manage_tt, ...]) Use the Fourier transform and spatial filters to reconstruct an estimate of the phase.

Methods Documentation

reconstruct(xs, ys, manage_tt=False, suppress_tt=False, extend=None)[source]

Use the Fourier transform and spatial filters to reconstruct an estimate of the phase.

Instead of using this method directly, call the instnace itself to ensure that settings are correctly obeyed.

Parameters:

xs : array_like

The x slopes

ys : array_like

The y slopes

manage_tt : bool

Whether to remove the tip/tilt from the slopes before reconstruction

suppress_tt : bool

If set, do not re-apply the tip tilt after reconstruction.

Returns:

estimate : array_like

An estimate of the phase across all the points where x and y slopes were measured.

Notes

This method serves as the implementation for __call__().