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

Arroyo::a_plusplus_reconstructor Class Reference

#include <aplusplus_reconstructor.h>

Inheritance diagram for Arroyo::a_plusplus_reconstructor:

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

Public Member Functions

 a_plusplus_reconstructor (const a_plusplus_reconstructor &appr)
 a_plusplus_reconstructor (const char *filename)
 a_plusplus_reconstructor (const char *APP_zonal_reconstructor_file, int nactuators, int nslopes)
 a_plusplus_reconstructor (const char *APP_zonal_reconstructor_file, int nactuators, int nslopes, const char *APP_zernike_reconstructor_file, int nzernike_modes)
 a_plusplus_reconstructor (const Arroyo::iofits &iof)
 ~a_plusplus_reconstructor ()
a_plusplus_reconstructoroperator= (const a_plusplus_reconstructor &appr)
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
vector< long > get_centroid_axes () const
vector< long > get_actuator_axes () const
Arroyo::zernike get_zernike_modes () 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

 a_plusplus_reconstructor ()

Protected Attributes

std::map< int, std::pair<
char, std::vector< long > > > 
reconstructor_to_zernike_mode_map

Detailed Description

A class to hold reconstructors generated using A++

This class aims to represent reconstructors that yield zonal residuals as well as an arbitrary number of zernike mode residuals.


Constructor & Destructor Documentation

Arroyo::a_plusplus_reconstructor::a_plusplus_reconstructor  )  [inline, protected]
 

Null constructor

Arroyo::a_plusplus_reconstructor::a_plusplus_reconstructor const a_plusplus_reconstructor appr  ) 
 

Copy constructor

Arroyo::a_plusplus_reconstructor::a_plusplus_reconstructor const char *  filename  ) 
 

Construct from file

Arroyo::a_plusplus_reconstructor::a_plusplus_reconstructor const char *  APP_zonal_reconstructor_file,
int  nactuators,
int  nslopes
 

Construct from an A++ ascii file

You must specify the file containing the reconstructor, along with the number of slopes (twice the number of subaps) and the number of actuators.

Note that the A++ reconstructor must be fully populated with subapertures and actuators throughout the grid. This is due to the fact that Arroyo assumes an instance of the Shack Hartmann centroid class will be passed into this function, and this class populates a rectangular grid, rather than leaving out the unilluminated subaps. Similarly, the zonal residuals returned by the reconstructor lie on a rectangular grid, meaning that residuals for uncontrolled actuators are returned by this reconstructor. One of the specific consequences of this assumption is that user-defined wiring schemes in A++ are not supported by this class.

This constructor attempts to perform all checks that it possibly can, as the A++ interface really must be considered fragile and largely untested.

Arroyo::a_plusplus_reconstructor::a_plusplus_reconstructor const char *  APP_zonal_reconstructor_file,
int  nactuators,
int  nslopes,
const char *  APP_zernike_reconstructor_file,
int  nzernike_modes
 

Construct from two A++ ascii files

You must specify the file containing the reconstructor with the zernike modes projected out, along with the number of slopes (twice the number of subaps) and the number of actuators. You must also specify the file containing the reconstructor that converts slopes to zernike modes, along with the number of modes in the projection. This reconstructor assumes that the zernike modes projected out of the reconstructor run from lowest to highest using the A++ counting scheme, and exclude Bal. SpAb (mode number 9).

It is not necessarily the case that one will always want to make a reconstructor that generates the zonal residuals with the zernike modes projected out. For example, one could call this reconstructor by supplying an APP zonal reconstructor file without any zernike mode projection together with an APP zernike reconstructor that generates the first 10 zernike modes. This would allow one to monitor statistical fluctuations in these modes by examining the time histories of their coefficients.

Note that the A++ reconstructor must be fully populated with subapertures and actuators throughout the grid. This is due to the fact that Arroyo assumes an instance of the Shack Hartmann centroid class will be passed into this function, and this class populates a rectangular grid, rather than leaving out the unilluminated subaps. Similarly, the zonal residuals returned by the reconstructor lie on a rectangular grid, meaning that residuals for uncontrolled actuators are returned by this reconstructor. One of the specific consequences of this assumption is that user-defined wiring schemes in A++ are not supported by this class.

This constructor attempts to perform all checks that it possibly can, as the A++ interface really must be considered fragile and largely untested.

Arroyo::a_plusplus_reconstructor::a_plusplus_reconstructor const Arroyo::iofits iof  ) 
 

Construct from iofits object

Arroyo::a_plusplus_reconstructor::~a_plusplus_reconstructor  )  [inline]
 

Destructor


Member Function Documentation

vector<long> Arroyo::a_plusplus_reconstructor::get_actuator_axes  )  const [virtual]
 

Get dimensions of pixel array returned by the reconstructor

Implements Arroyo::zernike_projected_zonal_reconstructor.

vector<long> Arroyo::a_plusplus_reconstructor::get_centroid_axes  )  const [virtual]
 

Get dimensions of centroid measurements passed to the reconstructor

Implements Arroyo::zernike_projected_zonal_reconstructor.

Arroyo::zernike Arroyo::a_plusplus_reconstructor::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.

a_plusplus_reconstructor& Arroyo::a_plusplus_reconstructor::operator= const a_plusplus_reconstructor appr  ) 
 

Operator =

void Arroyo::a_plusplus_reconstructor::print std::ostream &  os,
const char *  prefix = ""
const [virtual]
 

Print

Implements Arroyo::zernike_projected_zonal_reconstructor.

void Arroyo::a_plusplus_reconstructor::read const Arroyo::iofits iof  )  [virtual]
 

Read from iofits

Implements Arroyo::zernike_projected_zonal_reconstructor.

void Arroyo::a_plusplus_reconstructor::read const char *  filename  )  [virtual]
 

Read from file.

Implements Arroyo::zernike_projected_zonal_reconstructor.

void Arroyo::a_plusplus_reconstructor::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 a number of modes specified by the reconstructor, and a pixel array containing zonal residuals

Implements Arroyo::zernike_projected_zonal_reconstructor.

void Arroyo::a_plusplus_reconstructor::reconstruct_zernike_residuals const Arroyo::Shack_Hartmann_centroids shcentroids,
Arroyo::zernike znke
const [virtual]
 

Reconstruct the zonal residuals from Shack Hartmann centroid data

This reconstructor reconstructs a zernike instance with a number of modes specified by the reconstructor

Implements Arroyo::zernike_projected_zonal_reconstructor.

void Arroyo::a_plusplus_reconstructor::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.

void Arroyo::a_plusplus_reconstructor::write Arroyo::iofits iof  )  const [virtual]
 

Write to iofits

Implements Arroyo::zernike_projected_zonal_reconstructor.

void Arroyo::a_plusplus_reconstructor::write const char *  filename  )  const [virtual]
 

Write to file

Implements Arroyo::zernike_projected_zonal_reconstructor.


Member Data Documentation

std::map<int, std::pair<char, std::vector<long> > > Arroyo::a_plusplus_reconstructor::reconstructor_to_zernike_mode_map [protected]
 

A map from reconstructor array indices to zernike modes. This data member maps the reconstructor index corresponding to the output residual of the modal part of the reconstructor to a specific zernike mode. The zernike mode is labelled by a pair: the first element is a char (either c or s) and the second element is a vector with two elements (zernike order, level). This mapping allows this class to support reconstructors that return residuals for any number of possibly noncontiguous zernike modes.


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