make_keystone_basis
- hcipy.mode_basis.make_keystone_basis(grid, num_modes, inner_diameter, outer_diameter, angle_width, spider_width, keystone_angle=0, cache=None)[source]
Make a keystone mode basis.
This function orthogonalizes Noll-ordered Zernike polynomials over HCIPy’s spider-trimmed annular-sector aperture using a weighted QR decomposition. The construction follows the general-aperture method of [Swantner1994] and the annular-sector treatment of [Diaz2013].
[Swantner1994]W. Swantner and Weng W. Chow, “Gram-Schmidt orthonormalization of Zernike polynomials for general aperture shapes,” Appl. Opt. 33, 1832-1837 (1994).
[Diaz2013]Jose Antonio Diaz and Virendra N. Mahajan, “Orthonormal aberration polynomials for optical systems with circular and annular sector pupils,” Appl. Opt. 52, 1136-1147 (2013).
- Parameters:
- gridhcipy.Grid
The grid on which to compute the mode basis.
- num_modesint
The number of keystone modes to compute.
- inner_diameterfloat
The inner diameter of the keystone aperture.
- outer_diameterfloat
The outer diameter of the keystone aperture.
- angle_widthfloat
The angular width of the keystone aperture in degrees.
- spider_widthfloat
The full width of the spiders bordering the keystone aperture.
- keystone_anglefloat
The angle of the keystone aperture in radians. At an angle of 0, the center of the keystone points to the right.
- cachedictionary or None
A dictionary of intermediate calculations for this exact grid, aperture geometry, and orientation. The dictionary is updated in place.