Segment_Piston_Basis

class poppy.zernike.Segment_Piston_Basis(rings=2, flattoflat=<Quantity 1. m>, gap=<Quantity 1. cm>, center=False, pupil_diam=None)[source]

Bases: poppy.zernike.Segment_PTT_Basis

Eigenbasis of segment pistons, tips, tilts. (Or of pistons only using the Segment_Piston_Basis subclass.)

The aperture geometry is specified identically to the MultiHexagonAperture class. Set that when creating an instance of this class, then you can call the resulting function object to generate a basis set with the desired sampling, or pass it to the opd_from_zernikes or opd_expand_segments functions.

The basis is generated over a square array that exactly circumscribes the hexagonal aperture.

rings : int
Number of rings of segments
flattoflat : float or astropy.Quantity length
Size of a single segment
gap : float or astropy.Quantity length
Gap between adjacent segments
center : bool
Include the center segment?
pupil_diam : float oar astropy.Quantity length
Diameter of the array on which to generate the basis; by default this is chosen to circumscribe the multihex aperture given the specified segment and gap sizes and number of segments.

Methods Summary

__call__([nterms, npix, outside]) Generate piston-only basis ndarray for the specified aperture

Methods Documentation

__call__(nterms=None, npix=512, outside=nan)[source]

Generate piston-only basis ndarray for the specified aperture

nterms : int
Number of terms. Set to 3x the number of segments.
npix : int
Size, in pixels, of the aperture array.
outside : float
Value for pixels outside the specified aperture. Default is np.nan, but you may also find it useful for this to be 0.0 sometimes.