arbitrary_basis¶
-
poppy.zernike.
arbitrary_basis
(aperture, nterms=15, rho=None, theta=None, outside=nan)[source]¶ Orthonormal basis on arbitrary aperture, via Gram-Schmidt
Return a cube of Zernike-like terms from 1 to N, calculated on an arbitrary aperture, each as a 2D array showing the value at each point. (Regions outside the unit circle on which the Zernike is defined are initialized to zero.)
This implements Gram-Schmidt orthonormalization numerically, starting from the regular Zernikes, to generate an orthonormal basis on some other aperture
- aperture : 2D array_like
- 2D array representing the arbitrary aperture. All positive nonzero values are considered within the aperture; any pixels with zero, negative, or NaN values will be considered outside the aperture, and set equal to the ‘outside’ parameter value.
- nterms : int, optional
- Number of Zernike terms to return, starting from piston.
(e.g.
nterms=1
would return only the Zernike piston term.) Default is 15. - rho, theta : array_like, optional
- Image plane coordinates.
rho
should be 0 at the origin and 1.0 at the edge of the pupil.theta
should be the angle in radians. - 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.