createZernikeGradBasis#

lsst.ts.wep.utils.createZernikeGradBasis(u, v, jmin=4, jmax=22, obscuration=0.612)#

Create a basis of Zernike gradient polynomials.

This function is evaluated at the provided u and v coordinates, where these coordinates are normalized pupil coordinates. Normalized pupil coordinates are defined such that u^2 + v^2 = 1 is the edge of the pupil, and u^2 + v^2 = obscuration^2 is the edge of the central obscuration.

Parameters:
  • u (np.ndarray) – The x normalized pupil coordinate(s).

  • v (np.ndarray) – The y normalized pupil coordinate(s). Must be same shape as u.

  • jmin (int, optional) – The minimum Noll index, inclusive. Must be >= 0. (the default is 4)

  • jmax (int) – The maximum Noll index to fit, inclusive. Must be >= jmin. (the default is 22)

  • obscuration (float, optional) – The fractional obscuration. (the default is 0.612, corresponding to the Simonyi Survey Telescope.)

Returns:

Array of Zernike bases. First axis has length 2, corresponding to the u and v gradients. The second axis indexes the Zernike polynomials.

Return type:

np.ndarray

Raises:

ValueError – If jmin is negative or jmax is less than jmin