MMT¶
- class mmtwfs.telescope.MMT(secondary='f5', config={}, **kwargs)[source] [edit on github]¶
Bases:
mmtwfs.telescope.TelescopeDefines configuration and methods that pertain to the MMT’s telescope and primary mirror systems
Methods Summary
bend_mirror([filename])Take a force file and send it to the cell to apply bending forces.
bending_forces([zv, gain])Given a ZernikeVector (or similar object describing a 2D polynomial surface), calculate the actuator forces required to correct for the surface displacement it describes.
calculate_primary_corrections(zv[, mask, gain])Take ZernikeVector as input and determine corrections to apply to primary/secondary
Clear applied forces from primary mirror and clear any m1spherical offsets from secondary hexapod
connect()Set state to connected so that calculated corrections will be sent to the relevant systems
correct_primary(t, m1focus_corr[, filename])Take force table and focus offset calculated by self.calculate_primary_corrections() and apply them, if connected.
Set state to disconnected so that corrections will be calculated, but not sent
The actuator IDs and X/Y positions in mm are stored in a simple ASCII table.
The BCV finite element nodes IDs and X/Y/Z positions in mm are stored in a simple ASCII table.
The influence of each actuator on the mirror surface has been modeled via finite element analysis.
plot_forces(t[, m1focus, limit])Plot actuator forces given force table as output from self.bending_forces()
to_rcell(t[, filename, overwrite])Take table generated by bending_forces() and write it to a file of a format that matches the old SHWFS system
undo_last([zfilename])Undo the last set of corrections.
Methods Documentation
- bend_mirror(filename='zfile')[source] [edit on github]¶
Take a force file and send it to the cell to apply bending forces. Return fraction of requested forces that the cell reports were applied.
- bending_forces(zv=Fringe Coefficients, gain=0.5)[source] [edit on github]¶
Given a ZernikeVector (or similar object describing a 2D polynomial surface), calculate the actuator forces required to correct for the surface displacement it describes.
- calculate_primary_corrections(zv, mask=[], gain=0.5)[source] [edit on github]¶
Take ZernikeVector as input and determine corrections to apply to primary/secondary
- clear_forces()[source] [edit on github]¶
Clear applied forces from primary mirror and clear any m1spherical offsets from secondary hexapod
- connect()[source] [edit on github]¶
Set state to connected so that calculated corrections will be sent to the relevant systems
- correct_primary(t, m1focus_corr, filename='zfile')[source] [edit on github]¶
Take force table and focus offset calculated by self.calculate_primary_corrections() and apply them, if connected.
- disconnect()[source] [edit on github]¶
Set state to disconnected so that corrections will be calculated, but not sent
- load_actuator_coordinates()[source] [edit on github]¶
The actuator IDs and X/Y positions in mm are stored in a simple ASCII table. Load it using astropy.io.ascii, convert to units of mirror radius, and add polar coordinates.
- load_bcv_coordinates()[source] [edit on github]¶
The BCV finite element nodes IDs and X/Y/Z positions in mm are stored in a simple ASCII table. Load it using astropy.io.ascii, convert to units of mirror radius, and add polar coordinates.
- load_influence_matrix()[source] [edit on github]¶
The influence of each actuator on the mirror surface has been modeled via finite element analysis. This method loads the influence matrix that resulted from this analysis and maps for each actuator the influence of 1 lb of force on the mirror surface at each finite element node. This matrix is stored in a binary file for compactness and speed of loading.
- plot_forces(t, m1focus=None, limit=100.0)[source] [edit on github]¶
Plot actuator forces given force table as output from self.bending_forces()
- to_rcell(t, filename='zfile', overwrite=True)[source] [edit on github]¶
Take table generated by bending_forces() and write it to a file of a format that matches the old SHWFS system
- undo_last(zfilename='zfile_undo')[source] [edit on github]¶
Undo the last set of corrections.