MMT

class mmtwfs.telescope.MMT(secondary='f5', config={}, **kwargs)[source] [edit on github]

Bases: mmtwfs.telescope.Telescope

Defines 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_forces()

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.

disconnect()

Set state to disconnected so that corrections will be calculated, but not sent

load_actuator_coordinates()

The actuator IDs and X/Y positions in mm are stored in a simple ASCII table.

load_bcv_coordinates()

The BCV finite element nodes IDs and X/Y/Z positions in mm are stored in a simple ASCII table.

load_influence_matrix()

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.