Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

Arroyo::arroyo_least_squares_reconstructor< T > Class Template Reference

#include <arroyo_least_squares_reconstructor.h>

Inheritance diagram for Arroyo::arroyo_least_squares_reconstructor< T >:

Arroyo::zernike_projected_zonal_reconstructor Arroyo::pixel_array< T > Arroyo::AO_sim_base List of all members.

Public Member Functions

 arroyo_least_squares_reconstructor (const arroyo_least_squares_reconstructor &arroyo_lsq_recon)
 arroyo_least_squares_reconstructor (const char *filename)
 arroyo_least_squares_reconstructor (const Arroyo::iofits &iof)
template<class aperture_type, class dm_ap>
 arroyo_least_squares_reconstructor (const aperture_type &ap, const ideal_deformable_mirror< dm_ap > &idm, const square_lenslet_array &sq_lnslt_arr, const zernike &projection_modes, bool modal_projection_in_actuator_space, double subaperture_illumination_threshold, double eigenvalue_threshold, bool aplusplus_sign_convention=false, bool store_eigenmodes=false, bool store_geometry_matrix=false)
 ~arroyo_least_squares_reconstructor ()
arroyo_least_squares_reconstructoroperator= (const arroyo_least_squares_reconstructor &arroyo_lsq_recon)
void read (const char *filename)
 Read from file.
void read (const Arroyo::iofits &iof)
void write (const char *filename) const
void write (Arroyo::iofits &iof) const
void print (std::ostream &os, const char *prefix="") const
double get_eigenvalue_threshold () const
double get_subaperture_illumination_threshold () const
vector< long > get_centroid_axes () const
vector< long > get_actuator_axes () const
Arroyo::zernike get_zernike_modes () const
bool geometry_matrix_stored () const
bool eigenmodes_stored () const
pixel_array< T > get_geometry_matrix () const
int get_nactuator_eigenmodes () const
int get_ncentroid_eigenmodes () const
double get_eigenvalue (int mode_number) const
template<class U>
double get_actuator_eigenmode (int mode_number, pixel_array< U > &actuator_mode) const
double get_centroid_eigenmode (int mode_number, Shack_Hartmann_centroids &centroid_mode) const
void reconstruct_zernike_residuals (const Arroyo::Shack_Hartmann_centroids &shcentroids, Arroyo::zernike &znke) const
void reconstruct_zonal_residuals (const Arroyo::Shack_Hartmann_centroids &shcentroids, Arroyo::pixel_array< double > &pixarr) const
void reconstruct_residuals (const Arroyo::Shack_Hartmann_centroids &shcentroids, Arroyo::zernike &znke, Arroyo::pixel_array< double > &pixarr) const

Protected Member Functions

 arroyo_least_squares_reconstructor ()

Protected Attributes

vector< long > actuator_axes
 Actuator axes.
vector< long > centroid_axes
 Lenslet axes.
zernike projected_modes
 Projected modes.
bool eigenmodes_stored_in_instance
double eigenvalue_threshold
bool geometry_matrix_stored_in_instance
bool app_sign_convention
double subaperture_illumination_threshold
pixel_array< T > geometry_matrix
 pixel array to contain the geometry matrix G
pixel_array< T > g_gtranspose_eigenmodes
 pixel array to contain the eigenmodes of the matrix GG^{T}
pixel_array< T > gtranspose_g_eigenmodes
 pixel array to contain the matrix G^{T}G
pixel_array< T > sqrt_eigenvalues
 pixel array to contain the square roots of the eigenvalues

Detailed Description

template<class T>
class Arroyo::arroyo_least_squares_reconstructor< T >

A class to hold least squares reconstructors generated using Arroyo


Constructor & Destructor Documentation

template<class T>
Arroyo::arroyo_least_squares_reconstructor< T >::arroyo_least_squares_reconstructor  )  [inline, protected]
 

Null constructor

template<class T>
Arroyo::arroyo_least_squares_reconstructor< T >::arroyo_least_squares_reconstructor const arroyo_least_squares_reconstructor< T > &  arroyo_lsq_recon  ) 
 

Copy constructor

template<class T>
Arroyo::arroyo_least_squares_reconstructor< T >::arroyo_least_squares_reconstructor const char *  filename  ) 
 

Construct from file

template<class T>
Arroyo::arroyo_least_squares_reconstructor< T >::arroyo_least_squares_reconstructor const Arroyo::iofits iof  ) 
 

Construct from iofits object

template<class T>
template<class pupil_aperture, class dm_aperture>
Arroyo::arroyo_least_squares_reconstructor< T >::arroyo_least_squares_reconstructor const aperture_type &  ap,
const ideal_deformable_mirror< dm_ap > &  idm,
const square_lenslet_array sq_lnslt_arr,
const zernike projection_modes,
bool  modal_projection_in_actuator_space,
double  subaperture_illumination_threshold,
double  eigenvalue_threshold,
bool  aplusplus_sign_convention = false,
bool  store_eigenmodes = false,
bool  store_geometry_matrix = false
 

Construct a least squares reconstructor from an aperture, an ideal deformable mirror, and a square lenslet array. The influence function of the ideal deformable mirror is assumed to be pyramidal.

The aperture dimensions, deformable mirror actuator pitch, and the lenslet pitch are used together with the three frames from each of these objects to define the geometrical registration of the pupil, actuators and subapertures. Arbitrary misregistration, magnification, tip and tilt, and rotation are handled by this constructor. A geometry matrix for the configuration is generated and then inverted using the singular value decomposition algortihm from LAPACK.

NOTE - currently only Fried geometry is supported

The subaperture illumination threshold argument to this function allows one to zero geometry matrix elements corresponding to actuator influence functions and subapertures that overlap by less than the threshold value. This value should lie between zero and one.

The eigenvalue threshold argument to this function allows one to remove modes from the reconstructor with eigenvalues lower than the threshold. This argument is interpreted as the ratio between the threshold eigenvalue and the largest eigenvalue, and its value should lie between zero and one.

template<class T>
Arroyo::arroyo_least_squares_reconstructor< T >::~arroyo_least_squares_reconstructor  )  [inline]
 

Destructor


Member Function Documentation

template<class T>
bool Arroyo::arroyo_least_squares_reconstructor< T >::eigenmodes_stored  )  const
 

Indicate whether the geometry matrix was stored

template<class T>
bool Arroyo::arroyo_least_squares_reconstructor< T >::geometry_matrix_stored  )  const
 

Indicate whether the geometry matrix was stored

template<class T>
vector< long > Arroyo::arroyo_least_squares_reconstructor< T >::get_actuator_axes  )  const [virtual]
 

Get dimensions of pixel array returned by the reconstructor

Implements Arroyo::zernike_projected_zonal_reconstructor.

template<class T>
template<class U>
double Arroyo::arroyo_least_squares_reconstructor< T >::get_actuator_eigenmode int  mode_number,
pixel_array< U > &  actuator_mode
const
 

Retrieve an actuator eigenmode. This function returns the eigenvalue of the mode.

If the reconstructor was constructed without saving the eigenmodes, this function throws an error.

If the mode number is out of range, this function throws an error.

template<class T>
vector< long > Arroyo::arroyo_least_squares_reconstructor< T >::get_centroid_axes  )  const [virtual]
 

Get dimensions of centroid measurements passed to the reconstructor

Implements Arroyo::zernike_projected_zonal_reconstructor.

template<class T>
double Arroyo::arroyo_least_squares_reconstructor< T >::get_centroid_eigenmode int  mode_number,
Shack_Hartmann_centroids centroid_mode
const
 

Retrieve a centroid eigenmode. This function returns the eigenvalue of the mode.

If the reconstructor was constructed without saving the eigenmodes, this function throws an error.

If the mode number is out of range, this function throws an error.

template<class T>
double Arroyo::arroyo_least_squares_reconstructor< T >::get_eigenvalue int  mode_number  )  const
 

Retrieve the eigenvalue for a particular mode

If the reconstructor was constructed without saving the eigenmodes, this function throws an error.

If the mode number is out of range, this function throws an error. Note - number of eigenvalues is equal to the number of actuator eigenmodes

template<class T>
double Arroyo::arroyo_least_squares_reconstructor< T >::get_eigenvalue_threshold  )  const
 

Get the eigenvalue threshold used in constructing the reconstructor

template<class T>
pixel_array< T > Arroyo::arroyo_least_squares_reconstructor< T >::get_geometry_matrix  )  const
 

Retrieve the pixel array containing the geometry matrix G

If the reconstructor was constructed without saving the geometry matrix, this function throws an error.

template<class T>
int Arroyo::arroyo_least_squares_reconstructor< T >::get_nactuator_eigenmodes  )  const
 

Get the number of actuator eigenmodes

If the reconstructor was constructed without saving the eigenmodes, this function throws an error.

template<class T>
int Arroyo::arroyo_least_squares_reconstructor< T >::get_ncentroid_eigenmodes  )  const
 

Get the number of centroid eigenmodes

If the reconstructor was constructed without saving the eigenmodes, this function throws an error.

template<class T>
double Arroyo::arroyo_least_squares_reconstructor< T >::get_subaperture_illumination_threshold  )  const
 

Get the subaperture illumination threshold used in constructing the reconstructor

template<class T>
zernike Arroyo::arroyo_least_squares_reconstructor< T >::get_zernike_modes  )  const [virtual]
 

Get a zernike instance that contains information about which modes are returned by the reconstructor.

This instance is minimally sized so as to hold the largest mode returned by the reconstructor. Each element of this instance is initialized to unity if the corresponding mode is returned by the reconstructor, and to zero if it is not

Implements Arroyo::zernike_projected_zonal_reconstructor.

template<class T>
arroyo_least_squares_reconstructor< T > & Arroyo::arroyo_least_squares_reconstructor< T >::operator= const arroyo_least_squares_reconstructor< T > &  arroyo_lsq_recon  ) 
 

Operator =

template<class T>
void Arroyo::arroyo_least_squares_reconstructor< T >::print std::ostream &  os,
const char *  prefix = ""
const [virtual]
 

Print

Implements Arroyo::zernike_projected_zonal_reconstructor.

template<class T>
void Arroyo::arroyo_least_squares_reconstructor< T >::read const Arroyo::iofits iof  )  [virtual]
 

Read from iofits

Implements Arroyo::zernike_projected_zonal_reconstructor.

template<class T>
void Arroyo::arroyo_least_squares_reconstructor< T >::read const char *  filename  )  [virtual]
 

Read from file.

Implements Arroyo::zernike_projected_zonal_reconstructor.

template<class T>
void Arroyo::arroyo_least_squares_reconstructor< T >::reconstruct_residuals const Arroyo::Shack_Hartmann_centroids shcentroids,
Arroyo::zernike znke,
Arroyo::pixel_array< double > &  pixarr
const [virtual]
 

Reconstruct the residuals from Shack Hartmann centroid data

This reconstructor reconstructs a zernike instance with tip and tilt modes, and a pixel array containing zonal residuals

Implements Arroyo::zernike_projected_zonal_reconstructor.

template<class T>
void Arroyo::arroyo_least_squares_reconstructor< T >::reconstruct_zernike_residuals const Arroyo::Shack_Hartmann_centroids shcentroids,
Arroyo::zernike znke
const [virtual]
 

Reconstruct the zernike residuals from Shack Hartmann centroid data

This reconstructor reconstructs a zernike instance with tip and tilt modes

Implements Arroyo::zernike_projected_zonal_reconstructor.

template<class T>
void Arroyo::arroyo_least_squares_reconstructor< T >::reconstruct_zonal_residuals const Arroyo::Shack_Hartmann_centroids shcentroids,
Arroyo::pixel_array< double > &  pixarr
const [virtual]
 

Reconstruct the zonal residuals from a Shack Hartmann centroid class instance

Implements Arroyo::zernike_projected_zonal_reconstructor.

template<class T>
void Arroyo::arroyo_least_squares_reconstructor< T >::write Arroyo::iofits iof  )  const [virtual]
 

Write to iofits

Implements Arroyo::zernike_projected_zonal_reconstructor.

template<class T>
void Arroyo::arroyo_least_squares_reconstructor< T >::write const char *  filename  )  const [virtual]
 

Write to file

Implements Arroyo::zernike_projected_zonal_reconstructor.


Member Data Documentation

template<class T>
vector<long> Arroyo::arroyo_least_squares_reconstructor< T >::actuator_axes [protected]
 

Actuator axes.

template<class T>
bool Arroyo::arroyo_least_squares_reconstructor< T >::app_sign_convention [protected]
 

template<class T>
vector<long> Arroyo::arroyo_least_squares_reconstructor< T >::centroid_axes [protected]
 

Lenslet axes.

template<class T>
bool Arroyo::arroyo_least_squares_reconstructor< T >::eigenmodes_stored_in_instance [protected]
 

template<class T>
double Arroyo::arroyo_least_squares_reconstructor< T >::eigenvalue_threshold [protected]
 

template<class T>
pixel_array<T> Arroyo::arroyo_least_squares_reconstructor< T >::g_gtranspose_eigenmodes [protected]
 

pixel array to contain the eigenmodes of the matrix GG^{T}

template<class T>
pixel_array<T> Arroyo::arroyo_least_squares_reconstructor< T >::geometry_matrix [protected]
 

pixel array to contain the geometry matrix G

template<class T>
bool Arroyo::arroyo_least_squares_reconstructor< T >::geometry_matrix_stored_in_instance [protected]
 

template<class T>
pixel_array<T> Arroyo::arroyo_least_squares_reconstructor< T >::gtranspose_g_eigenmodes [protected]
 

pixel array to contain the matrix G^{T}G

template<class T>
zernike Arroyo::arroyo_least_squares_reconstructor< T >::projected_modes [protected]
 

Projected modes.

template<class T>
pixel_array<T> Arroyo::arroyo_least_squares_reconstructor< T >::sqrt_eigenvalues [protected]
 

pixel array to contain the square roots of the eigenvalues

template<class T>
double Arroyo::arroyo_least_squares_reconstructor< T >::subaperture_illumination_threshold [protected]
 


The documentation for this class was generated from the following file:
Generated on Thu Nov 29 17:16:33 2007 for arroyo by  doxygen 1.3.9.1