mxlib
c++ tools for analyzing astronomical data and other tasks by Jared R. Males. [git repo]
|
Tools for analytic evaluaiton of AO systems
Classes | |
class | mx::AO::analysis::aoAtmosphere< _realT > |
A class to specify atmosphere parameters and perform related calculations. More... | |
struct | mx::AO::analysis::vonKarmanSpectrum< realT > |
Manage calculations using the von Karman spatial power spectrum. More... | |
class | mx::AO::analysis::aoSystem< _realT, _inputSpectT, iosT > |
Describes an analytic adaptive optics (AO) system. More... | |
struct | mx::AO::analysis::wfs< realT, iosT > |
The ideal wavefront sensor sensitivity function. More... | |
struct | mx::AO::analysis::pywfsUnmod< realT, iosT > |
The unmodulated pyramid wavefront sensor sensitivity function. More... | |
struct | mx::AO::analysis::pywfsModAsymptotic< realT, iosT > |
The asymptotic modulated pyramid wavefront sensor sensitivity function. More... | |
struct | mx::AO::analysis::shwfs< realT, iosT > |
The shack hartmann wavefront sensor sensitivity function. More... | |
struct | mx::AO::analysis::calculatedWFS< realT, iosT > |
The calculated WFS uses sensitivities provided by FITS files. More... | |
struct | mx::AO::analysis::clAOLinearPredictor< _realT > |
Class to manage the calculation of linear predictor coefficients for a closed-loop AO system. More... | |
struct | mx::AO::analysis::fourierTemporalPSD< _realT, aosysT > |
Class to manage the calculation of temporal PSDs of the Fourier modes in atmospheric turbulence. More... | |
struct | mx::AO::analysis::zernikeTemporalPSD< _realT, aosysT > |
Class to manage the calculation of temporal PSDs of the Fourier modes in atmospheric turbulence. More... | |
Modules | |
AO Constants | |
Functions | |
template<typename realT , typename aosysT > | |
realT | mx::AO::analysis::phiInt_basic (realT phi, void *params) |
Worker for the azimuthal integral (in phi) for the basic Fourier mode covariance. More... | |
template<typename realT , typename aosysT > | |
realT | mx::AO::analysis::F_basic (realT kv, void *params) |
Worker function for GSL Integration for the basic sin/cos Fourier modes. More... | |
template<typename realT , typename aosysT > | |
realT | mx::AO::analysis::F_mod (realT kv, void *params) |
Worker function for GSL Integration for the modified Fourier modes. More... | |
template<typename realT , typename aosysT > | |
realT | mx::AO::analysis::Fm_projMod (realT kv, void *params) |
Worker function for GSL Integration for a basis projected onto the modified Fourier modes. More... | |
template<typename imageT > | |
void | mx::AO::analysis::varmapToImage (imageT &im, imageT &varmap, imageT &psf) |
Convert a wavefront variance map to an intensity image by convolving with the PSF. More... | |
template<typename realT > | |
void | mx::AO::analysis::wfsNoisePSD (std::vector< realT > &PSD, realT beta_p_k, realT Fg, realT tau, realT npx, realT Fb, realT ron) |
Populate a vector with the PSD of measurement noise given WFS parameters. More... | |
template<typename realT , typename aosysT > | |
realT | mx::AO::analysis::F_zernike (realT kv, void *params) |
Worker function for GSL Integration for the basic sin/cos Fourier modes. More... | |
realT mx::AO::analysis::F_basic | ( | realT | kv, |
void * | params | ||
) |
Worker function for GSL Integration for the basic sin/cos Fourier modes.
Definition at line 2169 of file fourierTemporalPSD.hpp.
References mx::AO::analysis::fourierTemporalPSD< _realT, aosysT >::_layer_i, mx::math::func::jinc(), mx::AO::analysis::fourierTemporalPSD< _realT, aosysT >::m_aosys, mx::AO::analysis::fourierTemporalPSD< _realT, aosysT >::m_f, mx::AO::analysis::fourierTemporalPSD< _realT, aosysT >::m_m, mx::AO::analysis::fourierTemporalPSD< _realT, aosysT >::m_n, and mx::AO::analysis::fourierTemporalPSD< _realT, aosysT >::m_p.
realT mx::AO::analysis::F_mod | ( | realT | kv, |
void * | params | ||
) |
Worker function for GSL Integration for the modified Fourier modes.
Definition at line 2219 of file fourierTemporalPSD.hpp.
References mx::AO::analysis::fourierTemporalPSD< _realT, aosysT >::_layer_i, mx::astro::constants::c(), mx::math::func::jinc(), mx::AO::analysis::fourierTemporalPSD< _realT, aosysT >::m_aosys, mx::AO::analysis::fourierTemporalPSD< _realT, aosysT >::m_cq, mx::AO::analysis::fourierTemporalPSD< _realT, aosysT >::m_f, mx::AO::analysis::fourierTemporalPSD< _realT, aosysT >::m_f0, mx::AO::analysis::fourierTemporalPSD< _realT, aosysT >::m_m, mx::AO::analysis::fourierTemporalPSD< _realT, aosysT >::m_n, mx::AO::analysis::fourierTemporalPSD< _realT, aosysT >::m_spatialFilter, and mx::AO::analysis::fourierTemporalPSD< _realT, aosysT >::m_sq.
realT mx::AO::analysis::F_zernike | ( | realT | kv, |
void * | params | ||
) |
Worker function for GSL Integration for the basic sin/cos Fourier modes.
Definition at line 490 of file zernikeTemporalPSD.hpp.
References mx::AO::analysis::zernikeTemporalPSD< _realT, aosysT >::_layer_i, mx::astro::constants::k(), mx::AO::analysis::zernikeTemporalPSD< _realT, aosysT >::m_aosys, mx::AO::analysis::zernikeTemporalPSD< _realT, aosysT >::m_f, mx::AO::analysis::zernikeTemporalPSD< _realT, aosysT >::m_zern_m, mx::AO::analysis::zernikeTemporalPSD< _realT, aosysT >::m_zern_n, and mx::sigproc::zernikeQNorm().
realT mx::AO::analysis::Fm_projMod | ( | realT | kv, |
void * | params | ||
) |
Worker function for GSL Integration for a basis projected onto the modified Fourier modes.
Definition at line 2340 of file fourierTemporalPSD.hpp.
References mx::AO::analysis::fourierTemporalPSD< _realT, aosysT >::_layer_i, mx::math::func::jinc(), mx::AO::analysis::fourierTemporalPSD< _realT, aosysT >::m_aosys, mx::AO::analysis::fourierTemporalPSD< _realT, aosysT >::m_f, mx::AO::analysis::fourierTemporalPSD< _realT, aosysT >::m_mode_i, and mx::AO::analysis::fourierTemporalPSD< _realT, aosysT >::m_modeCoeffs.
realT mx::AO::analysis::phiInt_basic | ( | realT | phi, |
void * | params | ||
) |
Worker for the azimuthal integral (in phi) for the basic Fourier mode covariance.
phi | the angle at which to evaluate the integrand |
params | a pointer to a object of type fourierCovariance<realT, aosyT> |
realT | a floating point type used for all calculations |
aosysT | the type of the AO system structure |
Definition at line 68 of file fourierCovariance.hpp.
References mx::AO::analysis::fourierCovariance< realT, aosysT >::aosys, mx::math::func::jinc(), mx::AO::analysis::fourierCovariance< realT, aosysT >::k, mx::astro::constants::k(), mx::AO::analysis::fourierCovariance< realT, aosysT >::m, mx::AO::analysis::fourierCovariance< realT, aosysT >::mp, mx::AO::analysis::fourierCovariance< realT, aosysT >::n, mx::AO::analysis::fourierCovariance< realT, aosysT >::np, mx::AO::analysis::fourierCovariance< realT, aosysT >::p, and mx::AO::analysis::fourierCovariance< realT, aosysT >::pp.
void mx::AO::analysis::varmapToImage | ( | imageT & | im, |
imageT & | varmap, | ||
imageT & | psf | ||
) |
Convert a wavefront variance map to an intensity image by convolving with the PSF.
The PSF should have odd dimensions, and the peak pixel should be in the center pixel defined by [0.5*psf.rows(), 0.5*psf.cols()]. The platescale (lambda/D per pixel) of the PSF should match that of the variance map. The PSF should be normalized such that the center/peak pixel has value 1 (not so that the sum of pixels is 1).
imageT | is an Eigen-array-like type. |
[out] | im | is the intensity image, resized to match varmap |
[in] | varmap | is the wavefront variance map |
[in] | psf | is the point spread function |
Definition at line 29 of file varmapToImage.hpp.
void mx::AO::analysis::wfsNoisePSD | ( | std::vector< realT > & | PSD, |
realT | beta_p_k, | ||
realT | Fg, | ||
realT | tau, | ||
realT | npx, | ||
realT | Fb, | ||
realT | ron | ||
) |
Populate a vector with the PSD of measurement noise given WFS parameters.
realT | is the real floating point type for calculations |
[out] | PSD | A pre-allocated vector which will be filled with the PSD value. |
[in] | beta_p_k | The WFS \( \beta_p \) parameter (see Guyon, 2005 |
Definition at line 25 of file wfsNoisePSD.hpp.