EffelsbergActuator¶
- class pyoof.actuator.EffelsbergActuator(frequency=<Quantity 34.75 GHz>, nrot=1, sign=-1, order=5, sr=<Quantity 3.25 m>, pr=<Quantity 50. m>, resolution=1000, limits_amplitude=<Quantity [-5., 5.] mm>, path_lookup=None, n_reflections=2)[source]¶
Bases:
objectSeveral tasks for the Effelsberg telescope and the active surface control system located in the 6.5 m sub-reflector. The purpose of all these functions is to transform the phase-error maps obtained from the core
pyoofroutines, to an equivalent actuator perpendicular displacement to correct those effects seen in the main phase-error maps.- Attributes
- frequency
Quantity Frequency of the observation in Hertz.
- nrot
int This is a required rotation to apply to the phase maps (obtained from
fit_zpoly) to get the right orientation of the active surface look-up table in the active surface control system.- sign
int It is the value of the phase-error amplitude as seen from the active surface, same as
nrotis a convention for the Effelsberg telescope.- resolution
int Resolution for the phase-error map, usually used
resolution = 1000in thepyoofpackage.- limits_amplitude
Quantity This is the maximum and minimum amplitude that the actuators can make in a displacement, for the Effelsberg active surface control system is \(\pm5 \mathrm{mm}\).
- path_lookup
str Path for the current look-up table that controls the active surface control system. If
Noneit will select the default table from the FEM model.- self.n_reflections
int Number of reflections in the transformation factor
tfactorfrom amplitude in actuators to aperture phase distribution.
- frequency
Methods Summary
ellipsoidal_actuator_correction([r, a, b])The truncated ellipsoidal in the sub-reflector has its actuators located across all its surface in 4 concentric rings.
fit_all(phase_pr, alpha)Wrapper for all least-squares minimizations, Zernike circle polynomials (
fit_zpoly) and gravitational deformation model (fit_grav_deformation).fit_grav_deformation(K_coeff_alpha, alpha)Finds the full set for a gravitational deformation model given a list of elevations in
alpha.fit_zpoly(phase_pr, alpha[, fem])Simple Zernike circle polynomial fit to a single phase-error map.
generate_phase_pr(g_coeff, alpha, eac)Generate a set of phase for the primary reflector
phase_pr, given the gravitational deformation coefficientsg_coefffor a new set of elevationsalpha.grav_deformation(g_coeff, alpha)Simple decomposition of the telescope elastic structure and gravitational force into a gravitational deformation model.
interp_surface2rings(actuator_sr)Bivariate spline approximation over a rectangular mesh.
itransform(phase_pr)Inverse transformation for
transform.plot([data_r, figsize, title])Simple plot function for the 11 FEM look-up tables.
read_lookup(interp)Simple reader for the Effelsberg active surface look-up table.
transform(actuator_sr)Transformation required to get from the actuators displacement in the sub-reflector to the phase-error map in the primary dish.
write_lookup(fname, actuator_sr)Easy writer for the active surface standard formatting at the Effelsberg telescope.
Methods Documentation
- ellipsoidal_actuator_correction(r=None, a=<Quantity 14.305 m>, b=<Quantity 7.3872 m>)[source]¶
The truncated ellipsoidal in the sub-reflector has its actuators located across all its surface in 4 concentric rings. This correction takes into account the direction of the applied actuator displacement in order to decompose it in a only vertical component with respect to the telescope pointing axis (\(z_f\)) and not with respect to the sub-reflector normal surface vector.
- Parameters
- Returns
- correction
ndarray Two dimensional grid correction to be applied to the phase-error. It is just a simply multiplication of the two.
- correction
- fit_all(phase_pr, alpha)[source]¶
Wrapper for all least-squares minimizations, Zernike circle polynomials (
fit_zpoly) and gravitational deformation model (fit_grav_deformation).- Parameters
- Returns
- g_coeff
ndarray Two dimensional array for the gravitational deformation coefficients found in the least-squares minimization. The shape of the array will be given by the Zernike circle polynomial order
nand the size of theg_coeffcoefficients ingrav_deformation.- K_coeff_alpha
ndarray Two dimensional array for the Zernike circle polynomials coefficients. The shape is
(alpha.size, N_K_coeff).
- g_coeff
- fit_grav_deformation(K_coeff_alpha, alpha)[source]¶
Finds the full set for a gravitational deformation model given a list of elevations in
alpha. The list of Zernike circle polynomials coefficients,K_coeff_alpha, must be given in the same order asalpha.- Parameters
- Returns
- g_coeff
ndarray Two dimensional array for the gravitational deformation coefficients found in the least-squares minimization. The shape of the array will be given by the Zernike circle polynomial order
nand the size of theg_coeffcoefficients ingrav_deformation.
- g_coeff
- fit_zpoly(phase_pr, alpha, fem=True)[source]¶
Simple Zernike circle polynomial fit to a single phase-error map. Do not confuse with the
fit_zpoly, the later calculates the phase-error maps from a set of beam maps, in this case we only adjust polynomials to the phase, an easier process.- Parameters
- phase_pr
Quantity Phase-error map for the primary dish. It must have shape
(alpha.size, resolution, resolution).- alpha
Quantity List of elevation angles related to
phase_pr.shape[0].- fem
bool If
fem(Finite Element Method) isTruethen the Zernike circle polynomials coefficients will be adjusted without tilt and and overall amplitude. If False it will adjust all available polynomials given by theordergiven to the class.
- phase_pr
- Returns
- K_coeff_alpha
ndarray Two dimensional array for the Zernike circle polynomials coefficients. The shape is
(alpha.size, N_K_coeff).
- K_coeff_alpha
- generate_phase_pr(g_coeff, alpha, eac)[source]¶
Generate a set of phase for the primary reflector
phase_pr, given the gravitational deformation coefficientsg_coefffor a new set of elevationsalpha.- Parameters
- g_coeff
ndarray Two dimensional array for the gravitational deformation coefficients found in the least-squares minimization. The shape of the array will be given by the Zernike circle polynomial order
nand the size of theg_coeffcoefficients ingrav_deformation.- alpha
Quantity List of new elevation angles.
- eac
bool If
Trueit will activate the ellipsoidal actuator correction, described inellipsoidal_actuator_correction.
- g_coeff
- Returns
- phase_pr
Quantity Phase-error map for the primary dish. It must have shape
(alpha.size, resolution, resolution).
- phase_pr
- grav_deformation(g_coeff, alpha)[source]¶
Simple decomposition of the telescope elastic structure and gravitational force into a gravitational deformation model. The model takes into account only the elevation angle and not azimuth (since it cancels out).
- interp_surface2rings(actuator_sr)[source]¶
Bivariate spline approximation over a rectangular mesh. It interpolates from a two dimensional array to a one dimensional set of concentric rings. Result is in the same format as in the default look-up table, and it is ready to be written.
- Parameters
- Returns
- lookup_table
Quantity Array with shape
lookup_table.shape = (11, 96), in the same format as in the standard look-up table at Effelsberg telescope.
- lookup_table
- itransform(phase_pr)[source]¶
Inverse transformation for
transform.- Parameters
- phase_pr
Quantity Phase-error map for the primary dish. It must have shape
(alpha.size, resolution, resolution).
- phase_pr
- Returns
- plot(data_r=None, figsize=(16, 5.5), title=None)[source]¶
Simple plot function for the 11 FEM look-up tables. If
data_risNoneit will compute the standard FEM look-up table from Effelsberg.- Parameters
- Returns
- fig
Figure FEM look-up table figure.
- fig
- transform(actuator_sr)[source]¶
Transformation required to get from the actuators displacement in the sub-reflector to the phase-error map in the primary dish.
- Parameters
- Returns
- phase_pr
Quantity Phase-error map for the primary dish. It must have shape
(alpha.size, resolution, resolution).
- phase_pr
- write_lookup(fname, actuator_sr)[source]¶
Easy writer for the active surface standard formatting at the Effelsberg telescope. The writer admits the actuator sub-reflector perpendicular displacement in the same shape as the
pyoofformat (with the exact angle list as inalpha_lookupformat), then it grids the data to the active surface look-up format.- Parameters
- fname
str String to the name and path for the look-up table to be stored.
- actuator_sr
Quantity Two or three dimensional array, in the
pyoofformat, for the actuators displacement in the sub-reflector. It must have shape(11, 96)or(11, resolution, resolution). The angles must be same asalpha_lookup(alpha_lookup.size = 11).
- fname