residual¶
- pyoof.residual(params, N_K_coeff, beam_data, u_data, v_data, d_z, wavel, illum_func, telgeo, resolution, box_factor, interp, config_params)[source]¶
Wrapper for the
residual_truefunction. The objective of this function is to fool theleast_squarespackage by changing the number of parameters that will be used in the fit. The parameter array must be organized as follows,params = np.hstack([ I_coeff, K_coeff]). The parameter selection is done by default or by adding aconfig_params.ymlfile to thefit_zpolyfunction.- Parameters
- params
ndarray Two stacked arrays, the illumination and Zernike circle polynomials coefficients.
params = np.hstack([I_coeff, K_coeff]).- N_K_coeff
int Total number of Zernike circle polynomials coefficients to fit. It is obtained from the order to be fitted with the formula
N_K_coeff = (n + 1) * (n + 2) // 2..- beam_data
ndarray The
beam_datais an array with the three observed beam maps, \(P^\mathrm{obs}(u, v)\), minus, zero and plus out-of-focus.- u_data
Quantity \(x\) axis value for the 3 beam maps in radians. The values have to be flatten, in one dimension, and stacked in the same order as the
d_z = [d_z-, 0., d_z+]values from each beam map.- v_data
Quantity \(y\) axis value for the 3 beam maps in radians. The values have to be flatten, one dimensional, and stacked in the same order as the
d_z = [d_z-, 0., d_z+]values from each beam map.- d_z
Quantity Radial offset \(d_z\), added to the sub-reflector in length units. This characteristic measurement adds the classical interference pattern to the beam maps, normalized squared (field) radiation pattern, which is an out-of-focus property. The radial offset list must be as follows,
d_z = [d_z-, 0., d_z+]all of them in length units.- wavel
Quantity Wavelength, \(\lambda\), of the observation in meters.
- illum_func
function Illumination function, \(E_\mathrm{a}(x, y)\), to be evaluated with the key
I_coeff. The illumination functions available areillum_parabolicandillum_gauss.- telgeo
list List that contains the blockage distribution, optical path difference (OPD) function, and the primary radius (
float) in meters. The list must have the following order,telego = [block_dist, opd_func, pr].- resolution
int Fast Fourier Transform resolution for a rectangular grid. The input value has to be greater or equal to the telescope resolution and with power of 2 for faster FFT processing. It is recommended a value higher than
resolution = 2 ** 8.- box_factor
int Related to the FFT resolution (resolution key), defines the image pixel size level. It depends on the primary radius,
pr, of the telescope, e.g. abox_factor = 5returnsx = np.linspace(-5 * pr, 5 * pr, resolution), an array to be used in the FFT2 (fft2).- interp
bool If
True, it will process the correspondent interpolation between the observed grid (\(P^\mathrm{obs}(u, v)\)) and the computed grid (\(P(u, v)\)) for the FFT2 aperture distribution model (\(\underline{E_\mathrm{a}}(x, y)\)).- config_params
dict Contains the values for the fixed parameters (excluded from the least squares minimization), by default four parameters are kept fixed,
i_amp,x0,y0andK(0, 0). See theconfig_params.ymlfile.
- params
- Returns
- _residual_true
ndarray Same output from
residual_true. One dimensional array of the residual between the observed data and the FFT aperture distribution model. It has been concatenated as minus, zero and plus radial offset (to do a multiple fit). It is required to have the residual in one dimension in order to use a least squares minimizationleast_squarespackage.
- _residual_true
Notes
The idx_exclude key (
config_params['excluded']) needs an indices list of the parameters to be removed. The structure of the parameters always follows,params = np.hstack([I_coeff, K_coeff]), a list withidx_exclude = [0, 1, 2, 4, 5, 6, 7]will remove from the least squares minimization,[i_amp, c_dB, q, x0, y0, K(0, 0), K(1, 1), K(1, -1)].