phase

pyoof.aperture.phase(K_coeff, notilt, pr, resolution=1000.0)[source] [edit on github]

Aperture phase distribution (or phase error), \(\varphi(x, y)\), for an specific telescope primary reflector. In general the tilt (average slope in \(x\)- and \(y\)-directions, related to telescope pointings) is subtracted from its calculation. Function used to show the final results from the fit procedure.

Parameters:

K_coeff : ndarray

Constants coefficients, \(K_{n\ell}\), for each of them there is only one Zernike circle polynomial, \(U^\ell_n(\varrho, \varphi)\). The coefficients are between \([-2, 2]\).

notilt : bool

Boolean to include or exclude the tilt coefficients in the aperture phase distribution. The Zernike circle polynomials are related to tilt through \(U^{-1}_1(\varrho, \varphi)\) and \(U^1_1(\varrho, \varphi)\).

pr : float

Primary reflector radius in meters.

resolution : int

Resolution for the phase error map, usually used resolution = 1e3 in the pyoof package.

Returns:

x : ndarray

\(x\)-axis dimensions for the primary reflector in meters.

y : ndarray

\(y\)-axis dimensions for the primary reflector in meters.

phi : ndarray

Aperture phase distribution, \(\varphi(x, y)\), for an specific primary dish radius, measured in radians.

Notes

The aperture phase distribution or phase error, \(\varphi(x, y)\) is related to the wavefront (aberration) distribution, from classical optics, through the expression,

\[\varphi(x, y) = 2\pi \cdot W(x, y) = 2\pi \cdot \sum_{n, \ell} K_{n\ell}U^\ell_n(\varrho, \vartheta).\]

Examples

To use compute the aperture phase distribution, \(\varphi(x, y)\), first a set of coefficients need to be generated, K_coeff, then simply execute the phase function.

>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> from pyoof import aperture
>>> pr = 50  # primary relfector m
>>> n = 5  # order polynomial
>>> N_K_coeff = (n + 1) * (n + 2) // 2  # max polynomial number
>>> K_coeff = np.random.normal(0., .1, N_K_coeff)
>>> x, y, phi = aperture.phase(K_coeff=K_coeff, notilt=True, pr=50.)