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:
object
Several 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
pyoof
routines, 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
nrot
is a convention for the Effelsberg telescope.- resolution
int
Resolution for the phase-error map, usually used
resolution = 1000
in thepyoof
package.- 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
None
it will select the default table from the FEM model.- self.n_reflections
int
Number of reflections in the transformation factor
tfactor
from 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_coeff
for 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
n
and the size of theg_coeff
coefficients 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
n
and the size of theg_coeff
coefficients 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) isTrue
then the Zernike circle polynomials coefficients will be adjusted without tilt and and overall amplitude. If False it will adjust all available polynomials given by theorder
given 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_coeff
for 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
n
and the size of theg_coeff
coefficients ingrav_deformation
.- alpha
Quantity
List of new elevation angles.
- eac
bool
If
True
it 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_r
isNone
it 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
pyoof
format (with the exact angle list as inalpha_lookup
format), 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
pyoof
format, 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