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

Arroyo::refractive_atmospheric_model Class Reference

#include <refractive_atmosphere.h>

Inheritance diagram for Arroyo::refractive_atmospheric_model:

Arroyo::AO_sim_base Arroyo::Ellerbroek_Cerro_Pachon_model Arroyo::Ellerbroek_Mauna_Kea_model Arroyo::Gemini_GLAO_study_model Arroyo::Hufnagel_Valley_model Arroyo::NGAO_system_design_model Arroyo::Palomar_DIMM_MASS_model Arroyo::SLCSAT_day_model Arroyo::SLCSAT_night_model Arroyo::TMT_SRD_v13_Cn2_model List of all members.

Public Member Functions

 refractive_atmospheric_model ()
 refractive_atmospheric_model (const refractive_atmospheric_model &ref_atm_model)
 refractive_atmospheric_model (const char *filename)
 refractive_atmospheric_model (const iofits &iof)
 refractive_atmospheric_model (const vector< power_spectrum * > &power_spectra, const vector< double > &layer_heights, const three_frame &ground_ref_frame)
 ~refractive_atmospheric_model ()
refractive_atmospheric_modeloperator= (const refractive_atmospheric_model &ref_atm_model)
virtual refractive_atmospheric_modelclone () const
void read (const char *filename)
void read (const iofits &iof)
void write (const char *filename) const
void write (iofits &iof) const
void print (ostream &os, const char *prefix="") const
long get_number_of_layers () const
vector< double > get_layer_heights () const
vector< power_spectrum * > get_power_spectra () const
three_frame get_three_frame () const
double turbulence_moment (double moment, double zenith_angle_degrees=0) const
double velocity_moment (const vector< three_vector > &layer_wind_velocities_meters_per_sec, double moment, double azimuth_angle_degrees=0, double zenith_angle_degrees=0) const
double fried_parameter (double wavelength_meters, double zenith_angle_degrees=0, double guide_star_height_meters=-1) const
double seeing (double wavelength_meters, double zenith_angle_degrees=0) const
double isoplanatic_angle (double wavelength_meters, double zenith_angle_degrees=0) const
double isokinetic_angle (double wavelength_meters, double aperture_diameter_meters, double zenith_angle_degrees=0) const
double greenwood_frequency (vector< three_vector > &layer_wind_velocities_meters_per_sec, double wavelength_meters, double azimuth_angle_degrees=0, double zenith_angle_degrees=0) const
double d_0 (double guide_star_height_meters, double wavelength_meters, double zenith_angle_degrees=0) const
double Tyler_F_1 (double x) const
double Tyler_H (double &rho, double &omega, vector< double > &numerator_args, vector< double > &denominator_args) const
double Tyler_K_1 (double rho, double q) const
double Tyler_F_2 (double q, double omega, int nsamples_in_integration) const
double Tyler_G_hat (double rho) const
double Tyler_G_1 (three_vector r1, three_vector r2) const
double Tyler_G_2 (three_vector r, double q, three_vector omega, int nsamples_in_integration) const
double Tyler_G_3 (double q, double omega, int nsamples_in_integration) const
double Tyler_G_4 (three_vector r1, three_vector r2, double q, three_vector omega, int nsamples_in_integration) const
void Tyler_get_constants (const emitter &emtr_a, const emitter &emtr_b, const three_frame &tf, double aperture_diameter_meters, double &secant_zenith_angle, double &max_range_meters, double &min_range_meters, three_vector &little_omega) const
vector< double > get_cn2_coefficients () const
double caliph_A (const emitter &emtr_a, const emitter &emtr_b, double aperture_diameter_meters, const three_vector &rho) const
template<class T>
pixel_array< T > caliph_A (const emitter &emtr_a, const emitter &emtr_b, double aperture_diameter_meters, double pixel_scale_meters) const
double caliph_B (const emitter &emtr_a, const emitter &emtr_b, double aperture_diameter_meters, const three_vector &rho) const
template<class T>
pixel_array< T > caliph_B (const emitter &emtr_a, const emitter &emtr_b, double aperture_diameter_meters, double pixel_scale_meters) const
double caliph_C (const emitter &emtr_a, const emitter &emtr_b, double aperture_diameter_meters, const three_vector &rho_1, const three_vector &rho_2) const
template<class T>
pixel_array< T > caliph_C (const emitter &emtr_a, const emitter &emtr_b, double aperture_diameter_meters, double pixel_scale_meters) const
double caliph_D (const emitter &emtr_a, const emitter &emtr_b, double aperture_diameter_meters, int nsteps_in_integration) const
double caliph_E (const emitter &emtr_a, const emitter &emtr_b, double aperture_diameter_meters, int nsteps_in_integration) const
double caliph_F (const emitter &emtr_a, const emitter &emtr_b, double aperture_diameter_meters, int nsteps_in_integration) const
double caliph_F_bar (const emitter &emtr_a, const emitter &emtr_b, double aperture_diameter_meters, int nsteps_in_integration) const
double caliph_G (const emitter &emtr_a, const emitter &emtr_b, double aperture_diameter_meters, const three_vector &rho) const
template<class T>
pixel_array< T > caliph_G (const emitter &emtr_a, const emitter &emtr_b, double aperture_diameter_meters, double pixel_scale_meters) const
double caliph_H (const emitter &emtr_a, const emitter &emtr_b, double aperture_diameter_meters, const three_vector &rho) const
template<class T>
pixel_array< T > caliph_H (const emitter &emtr_a, const emitter &emtr_b, double aperture_diameter_meters, double pixel_scale_meters) const
double caliph_I (const emitter &emtr_a, const emitter &emtr_b, double aperture_diameter_meters, const three_vector &rho) const
template<class T>
pixel_array< T > caliph_I (const emitter &emtr_a, const emitter &emtr_b, double aperture_diameter_meters, double pixel_scale_meters) const
double caliph_J (const emitter &emtr_a, const emitter &emtr_b, double aperture_diameter_meters, const three_vector &rho) const
template<class T>
pixel_array< T > caliph_J (const emitter &emtr_a, const emitter &emtr_b, double aperture_diameter_meters, double pixel_scale_meters) const
double caliph_K (const emitter &emtr_a, const emitter &emtr_b, double aperture_diameter_meters, int nsteps_in_integration) const
double caliph_L (const emitter &emtr_a, const emitter &emtr_b, double aperture_diameter_meters, int nsteps_in_integration) const
double caliph_M (const emitter &emtr_a, const emitter &emtr_b, double aperture_diameter_meters) const
double aperture_averaged_phase_covariance (const emitter &emtr_a, const emitter &emtr_b, const aperture &ap, double wavelength_meters, int nsteps_in_integration=1000) const
double aperture_averaged_tilt_phase_covariance (const emitter &emtr_a, const emitter &emtr_b, const aperture &ap, double wavelength_meters, int nsteps_in_integration=1000) const
double aperture_averaged_parallel_tilt_phase_covariance (const emitter &emtr_a, const emitter &emtr_b, const aperture &ap, double wavelength_meters, int nsteps_in_integration=1000) const
double aperture_averaged_perpendicular_tilt_phase_covariance (const emitter &emtr_a, const emitter &emtr_b, const aperture &ap, double wavelength_meters, int nsteps_in_integration=1000) const
double phase_covariance (const emitter &emtr_a, const three_point &pupil_location_one, const emitter &emtr_b, const three_point &pupil_location_two, const aperture &ap, double wavelength_meters, int nsteps_in_integration=1000) const
double tilt_phase_covariance (const emitter &emtr_a, const three_point &pupil_location_one, const emitter &emtr_b, const three_point &pupil_location_two, const aperture &ap, double wavelength_meters, int nsteps_in_integration=1000) const
template<class T>
diffractive_wavefront_header<
T > 
get_diffractive_wavefront_header (double wavelength, double pixscale, const emitter *emtr, const aperture *ap, bool layer_foreshortening, propagation_plan *pplan) const
template<class T, class U>
void get_refractive_atmospheric_layers (const vector< double > &layer_pixscales, const subharmonic_method &subm, const vector< diffractive_wavefront_header< T > > dwfhdrs, const vector< three_vector > layer_wind_vectors, double time_interval, bool layer_axes_wind_vector_aligned, bool layer_foreshortening, vector< refractive_atmospheric_layer< U > > &ref_atm_layers) const

Static Public Attributes

int verbose_level

Protected Member Functions

void read_common_data (const iofits &iof)
void write_common_data (iofits &iof) const

Protected Attributes

vector< power_spectrum * > power_spectra_
 The array of power spectra - one for each layer.
vector< double > layer_heights_
 The layer heights in meters.
three_frame ground_ref_frame_
 The reference frame for the ground.

Detailed Description

A class to represent a refractive atmospheric model as an array of power spectra at different heights. This class serves as a base class for a hierarchy of atmospheric models. This class is expected to contain most or all of the data members, and the derived classes serve as a useful way for the user to instantiate the different models.


Constructor & Destructor Documentation

Arroyo::refractive_atmospheric_model::refractive_atmospheric_model  )  [inline]
 

Null constructor

Arroyo::refractive_atmospheric_model::refractive_atmospheric_model const refractive_atmospheric_model ref_atm_model  ) 
 

Copy constructor

Arroyo::refractive_atmospheric_model::refractive_atmospheric_model const char *  filename  ) 
 

Construct from a file

Arroyo::refractive_atmospheric_model::refractive_atmospheric_model const iofits iof  ) 
 

Construct from an iofits object

Arroyo::refractive_atmospheric_model::refractive_atmospheric_model const vector< power_spectrum * > &  power_spectra,
const vector< double > &  layer_heights,
const three_frame ground_ref_frame
 

Construct from the bits

Layer heights are measured in meters. The ground reference frame serves to define the zero points for the heights, which are measured along the positive z axis of this frame

Arroyo::refractive_atmospheric_model::~refractive_atmospheric_model  ) 
 

Destructor


Member Function Documentation

double Arroyo::refractive_atmospheric_model::aperture_averaged_parallel_tilt_phase_covariance const emitter emtr_a,
const emitter emtr_b,
const aperture ap,
double  wavelength_meters,
int  nsteps_in_integration = 1000
const
 

Get the perpendicular component of the tilt covariance between two beams, averaged over a circular aperture.

The value returned is in radians squared

This function throws an error unless all layers in the model have a Komolgorov turbulence power spectrum.

double Arroyo::refractive_atmospheric_model::aperture_averaged_perpendicular_tilt_phase_covariance const emitter emtr_a,
const emitter emtr_b,
const aperture ap,
double  wavelength_meters,
int  nsteps_in_integration = 1000
const
 

Get the perpendicular component of the tilt covariance between two beams, averaged over a circular aperture.

The value returned is in radians squared

This function throws an error unless all layers in the model have a Komolgorov turbulence power spectrum.

double Arroyo::refractive_atmospheric_model::aperture_averaged_phase_covariance const emitter emtr_a,
const emitter emtr_b,
const aperture ap,
double  wavelength_meters,
int  nsteps_in_integration = 1000
const
 

Get the piston removed phase covariance between two beams, averaged over a circular aperture.

This quantity is computed from Tyler, JOSA 11 p 339 1994

The value returned is in radians squared

This function throws an error unless all layers in the model have a Komolgorov turbulence power spectrum.

double Arroyo::refractive_atmospheric_model::aperture_averaged_tilt_phase_covariance const emitter emtr_a,
const emitter emtr_b,
const aperture ap,
double  wavelength_meters,
int  nsteps_in_integration = 1000
const
 

Get the tilt covariance between two beams, averaged over a circular aperture.

This quantity is computed from Tyler, JOSA 11 p 339 1994

The value returned is in radians squared

This function throws an error unless all layers in the model have a Komolgorov turbulence power spectrum.

template<class T>
pixel_array< T > Arroyo::refractive_atmospheric_model::caliph_A const emitter emtr_a,
const emitter emtr_b,
double  aperture_diameter_meters,
double  pixel_scale_meters
const
 

A_{ab} term in phase covariance

double Arroyo::refractive_atmospheric_model::caliph_A const emitter emtr_a,
const emitter emtr_b,
double  aperture_diameter_meters,
const three_vector rho
const
 

A_{ab} term in phase covariance

The vector rho must have amplitude less than unity

template<class T>
pixel_array< T > Arroyo::refractive_atmospheric_model::caliph_B const emitter emtr_a,
const emitter emtr_b,
double  aperture_diameter_meters,
double  pixel_scale_meters
const
 

B_{ab} term in phase covariance

double Arroyo::refractive_atmospheric_model::caliph_B const emitter emtr_a,
const emitter emtr_b,
double  aperture_diameter_meters,
const three_vector rho
const
 

B_{ab} term in phase covariance

The vector rho must have amplitude less than unity

template<class T>
pixel_array< T > Arroyo::refractive_atmospheric_model::caliph_C const emitter emtr_a,
const emitter emtr_b,
double  aperture_diameter_meters,
double  pixel_scale_meters
const
 

C_{ab} term in phase covariance

double Arroyo::refractive_atmospheric_model::caliph_C const emitter emtr_a,
const emitter emtr_b,
double  aperture_diameter_meters,
const three_vector rho_1,
const three_vector rho_2
const
 

C_{ab} term in phase covariance

The vectors rho_1 and rho_2 must have amplitudes less than unity

double Arroyo::refractive_atmospheric_model::caliph_D const emitter emtr_a,
const emitter emtr_b,
double  aperture_diameter_meters,
int  nsteps_in_integration
const
 

D_{ab} term in phase covariance

double Arroyo::refractive_atmospheric_model::caliph_E const emitter emtr_a,
const emitter emtr_b,
double  aperture_diameter_meters,
int  nsteps_in_integration
const
 

E_{ab} term in phase covariance

double Arroyo::refractive_atmospheric_model::caliph_F const emitter emtr_a,
const emitter emtr_b,
double  aperture_diameter_meters,
int  nsteps_in_integration
const
 

F_{ab} term in phase covariance

double Arroyo::refractive_atmospheric_model::caliph_F_bar const emitter emtr_a,
const emitter emtr_b,
double  aperture_diameter_meters,
int  nsteps_in_integration
const
 

{F}_{ab} term in phase covariance

template<class T>
pixel_array< T > Arroyo::refractive_atmospheric_model::caliph_G const emitter emtr_a,
const emitter emtr_b,
double  aperture_diameter_meters,
double  pixel_scale_meters
const
 

G_{ab} term in phase covariance

double Arroyo::refractive_atmospheric_model::caliph_G const emitter emtr_a,
const emitter emtr_b,
double  aperture_diameter_meters,
const three_vector rho
const
 

G_{ab} term in phase covariance

The vector rho must have amplitude less than unity

template<class T>
pixel_array< T > Arroyo::refractive_atmospheric_model::caliph_H const emitter emtr_a,
const emitter emtr_b,
double  aperture_diameter_meters,
double  pixel_scale_meters
const
 

H_{ab} term in phase covariance

double Arroyo::refractive_atmospheric_model::caliph_H const emitter emtr_a,
const emitter emtr_b,
double  aperture_diameter_meters,
const three_vector rho
const
 

H_{ab} term in phase covariance

The vector rho must have amplitude less than unity

template<class T>
pixel_array< T > Arroyo::refractive_atmospheric_model::caliph_I const emitter emtr_a,
const emitter emtr_b,
double  aperture_diameter_meters,
double  pixel_scale_meters
const
 

I_{ab} term in phase covariance

double Arroyo::refractive_atmospheric_model::caliph_I const emitter emtr_a,
const emitter emtr_b,
double  aperture_diameter_meters,
const three_vector rho
const
 

I_{ab} term in phase covariance

The vector rho must have amplitude less than unity

template<class T>
pixel_array< T > Arroyo::refractive_atmospheric_model::caliph_J const emitter emtr_a,
const emitter emtr_b,
double  aperture_diameter_meters,
double  pixel_scale_meters
const
 

J_{ab} term in phase covariance

double Arroyo::refractive_atmospheric_model::caliph_J const emitter emtr_a,
const emitter emtr_b,
double  aperture_diameter_meters,
const three_vector rho
const
 

J_{ab} term in phase covariance

The vector rho must have amplitude less than unity

double Arroyo::refractive_atmospheric_model::caliph_K const emitter emtr_a,
const emitter emtr_b,
double  aperture_diameter_meters,
int  nsteps_in_integration
const
 

K_{ab} term in phase covariance

double Arroyo::refractive_atmospheric_model::caliph_L const emitter emtr_a,
const emitter emtr_b,
double  aperture_diameter_meters,
int  nsteps_in_integration
const
 

L_{ab} term in phase covariance

double Arroyo::refractive_atmospheric_model::caliph_M const emitter emtr_a,
const emitter emtr_b,
double  aperture_diameter_meters
const
 

M_{ab} term in phase covariance

virtual refractive_atmospheric_model* Arroyo::refractive_atmospheric_model::clone  )  const [inline, virtual]
 

Virtual clone method

Calling routine is responsible for deleting memory

Reimplemented in Arroyo::Ellerbroek_Cerro_Pachon_model, Arroyo::Ellerbroek_Mauna_Kea_model, Arroyo::Gemini_GLAO_study_model, Arroyo::NGAO_system_design_model, and Arroyo::Palomar_DIMM_MASS_model.

double Arroyo::refractive_atmospheric_model::d_0 double  guide_star_height_meters,
double  wavelength_meters,
double  zenith_angle_degrees = 0
const
 

Get the value of d_0 (See Hardy eq 7.36)

The value returned is in meters

This function throws an error unless all layers in the model have a Komolgorov turbulence power spectrum.

double Arroyo::refractive_atmospheric_model::fried_parameter double  wavelength_meters,
double  zenith_angle_degrees = 0,
double  guide_star_height_meters = -1
const
 

Get the Fried parameter

The value returned is in meters

This function throws an error unless all layers in the model have a Komolgorov turbulence power spectrum.

vector<double> Arroyo::refractive_atmospheric_model::get_cn2_coefficients  )  const
 

Get the vector of cn2 coefficients

These are in units of meters^{1/3}

template<class T>
diffractive_wavefront_header< T > Arroyo::refractive_atmospheric_model::get_diffractive_wavefront_header double  wavelength,
double  pixscale,
const emitter emtr,
const aperture ap,
bool  layer_foreshortening,
propagation_plan pplan
const
 

Get a diffractive wavefront header suitable for this atmospheric model. The three frame of the wavefront header has an origin at the topmost layer of the model, with z axis directed towards the center of the aperture. The wavefront is sized according to the covering region of the aperture and the padding required by the propagation plan. This padding itself depends on the electromagnetic wavelength and the distance from the uppermost layer to the aperture. Finally, the transverse axes are chosen according to whether layer foreshortening has been selected

Wavelength and pixel scale must be specified in meters

vector<double> Arroyo::refractive_atmospheric_model::get_layer_heights  )  const [inline]
 

Get the number of layers in the model

long Arroyo::refractive_atmospheric_model::get_number_of_layers  )  const [inline]
 

Get the number of layers in the model

vector<power_spectrum *> Arroyo::refractive_atmospheric_model::get_power_spectra  )  const [inline]
 

Get the power spectra in the model Memory is dynamically allocated, and must be freed.

template<class T, class U>
void Arroyo::refractive_atmospheric_model::get_refractive_atmospheric_layers const vector< double > &  layer_pixscales,
const subharmonic_method subm,
const vector< diffractive_wavefront_header< T > >  dwfhdrs,
const vector< three_vector layer_wind_vectors,
double  time_interval,
bool  layer_axes_wind_vector_aligned,
bool  layer_foreshortening,
vector< refractive_atmospheric_layer< U > > &  ref_atm_layers
const
 

Get a randomly generated set of refractive atmospheric layers

This function selects random velocities for the layers according to the wind model contained in this refractive atmospheric model. This function determines the size of the layers so that throughout the specified time_interval and for each layer, every wavefront (as defined by their headers in dwfhs) - after being propagated along its own z axis to the height of the layer - will be contained by the layer.

The flag layer_axes_wind_vector_aligned determines whether one of the layer axes will be aligned with the wind vector of the layer. This choice will save RAM, but requires much more computation.

The flag layer_foreshortening determines whether foreshortening of the layers will be used. This is another computationally expensive choice.

Layer pixel scales should be specified in meters

three_frame Arroyo::refractive_atmospheric_model::get_three_frame  )  const [inline]
 

Get the three frame.

double Arroyo::refractive_atmospheric_model::greenwood_frequency vector< three_vector > &  layer_wind_velocities_meters_per_sec,
double  wavelength_meters,
double  azimuth_angle_degrees = 0,
double  zenith_angle_degrees = 0
const
 

Get the Greenwood frequency

The wind velocities should be in meters/sec, and ordered in the same way as the layer heights

The value returned is in Hertz

This function throws an error unless all layers in the model have a Komolgorov turbulence power spectrum.

double Arroyo::refractive_atmospheric_model::isokinetic_angle double  wavelength_meters,
double  aperture_diameter_meters,
double  zenith_angle_degrees = 0
const
 

Get the isokinetic angle

The value returned is in radians

This function throws an error unless all layers in the model have a Komolgorov turbulence power spectrum.

double Arroyo::refractive_atmospheric_model::isoplanatic_angle double  wavelength_meters,
double  zenith_angle_degrees = 0
const
 

Get the isoplanatic angle

The value returned is in radians

This function throws an error unless all layers in the model have a Komolgorov turbulence power spectrum.

refractive_atmospheric_model& Arroyo::refractive_atmospheric_model::operator= const refractive_atmospheric_model ref_atm_model  ) 
 

Operator =

double Arroyo::refractive_atmospheric_model::phase_covariance const emitter emtr_a,
const three_point pupil_location_one,
const emitter emtr_b,
const three_point pupil_location_two,
const aperture ap,
double  wavelength_meters,
int  nsteps_in_integration = 1000
const
 

Get the piston removed phase covariance between two beams

The three_points pupil_location_one and pupil_location_two must lie within the aperture diameter, whose origin is assumed to that of the three frame in the refractive atmospheric model

This quantity is computed from Tyler, JOSA 11 p 409 1994

The value returned is in radians squared

This function throws an error unless all layers in the model have a Komolgorov turbulence power spectrum.

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

Print

Implements Arroyo::AO_sim_base.

Reimplemented in Arroyo::Ellerbroek_Cerro_Pachon_model, Arroyo::Ellerbroek_Mauna_Kea_model, Arroyo::Gemini_GLAO_study_model, Arroyo::Hufnagel_Valley_model, Arroyo::NGAO_system_design_model, Arroyo::Palomar_DIMM_MASS_model, Arroyo::SLCSAT_day_model, Arroyo::SLCSAT_night_model, and Arroyo::TMT_SRD_v13_Cn2_model.

void Arroyo::refractive_atmospheric_model::read const iofits iof  ) 
 

Read from iofits

Reimplemented in Arroyo::Ellerbroek_Cerro_Pachon_model, Arroyo::Ellerbroek_Mauna_Kea_model, Arroyo::Gemini_GLAO_study_model, Arroyo::Hufnagel_Valley_model, Arroyo::NGAO_system_design_model, Arroyo::Palomar_DIMM_MASS_model, Arroyo::SLCSAT_day_model, Arroyo::SLCSAT_night_model, and Arroyo::TMT_SRD_v13_Cn2_model.

void Arroyo::refractive_atmospheric_model::read const char *  filename  ) 
 

Read from file

Reimplemented in Arroyo::Ellerbroek_Cerro_Pachon_model, Arroyo::Ellerbroek_Mauna_Kea_model, Arroyo::Gemini_GLAO_study_model, Arroyo::Hufnagel_Valley_model, Arroyo::NGAO_system_design_model, Arroyo::Palomar_DIMM_MASS_model, Arroyo::SLCSAT_day_model, Arroyo::SLCSAT_night_model, and Arroyo::TMT_SRD_v13_Cn2_model.

void Arroyo::refractive_atmospheric_model::read_common_data const iofits iof  )  [protected]
 

Read the data members from file. This member function may be called directly from the read member function of a derived class, after the unique type key has been checked.

double Arroyo::refractive_atmospheric_model::seeing double  wavelength_meters,
double  zenith_angle_degrees = 0
const
 

Get the seeing

The value returned is in radians

This function throws an error unless all layers in the model have a Komolgorov turbulence power spectrum.

double Arroyo::refractive_atmospheric_model::tilt_phase_covariance const emitter emtr_a,
const three_point pupil_location_one,
const emitter emtr_b,
const three_point pupil_location_two,
const aperture ap,
double  wavelength_meters,
int  nsteps_in_integration = 1000
const
 

Get the tilt covariance between two beams.

This quantity is computed from Tyler, JOSA 11 p 409 1994

The three_points pupil_location_one and pupil_location_two must lie within the aperture diameter, whose origin is assumed to that of the three frame in the refractive atmospheric model

The value returned is in radians squared

This function throws an error unless all layers in the model have a Komolgorov turbulence power spectrum.

double Arroyo::refractive_atmospheric_model::turbulence_moment double  moment,
double  zenith_angle_degrees = 0
const
 

Get a turbulence moment

The value returned has units of meters^{1/3 + moment}

This function throws an error unless all layers in the model have a Komolgorov turbulence power spectrum.

double Arroyo::refractive_atmospheric_model::Tyler_F_1 double  x  )  const
 

Tyler F_1

double Arroyo::refractive_atmospheric_model::Tyler_F_2 double  q,
double  omega,
int  nsamples_in_integration
const
 

Tyler

double Arroyo::refractive_atmospheric_model::Tyler_G_1 three_vector  r1,
three_vector  r2
const
 

Tyler

double Arroyo::refractive_atmospheric_model::Tyler_G_2 three_vector  r,
double  q,
three_vector  omega,
int  nsamples_in_integration
const
 

Tyler

double Arroyo::refractive_atmospheric_model::Tyler_G_3 double  q,
double  omega,
int  nsamples_in_integration
const
 

Tyler

double Arroyo::refractive_atmospheric_model::Tyler_G_4 three_vector  r1,
three_vector  r2,
double  q,
three_vector  omega,
int  nsamples_in_integration
const
 

Tyler

double Arroyo::refractive_atmospheric_model::Tyler_G_hat double  rho  )  const
 

Tyler

void Arroyo::refractive_atmospheric_model::Tyler_get_constants const emitter emtr_a,
const emitter emtr_b,
const three_frame tf,
double  aperture_diameter_meters,
double &  secant_zenith_angle,
double &  max_range_meters,
double &  min_range_meters,
three_vector little_omega
const
 

Tyler

double Arroyo::refractive_atmospheric_model::Tyler_H double &  rho,
double &  omega,
vector< double > &  numerator_args,
vector< double > &  denominator_args
const
 

Tyler

double Arroyo::refractive_atmospheric_model::Tyler_K_1 double  rho,
double  q
const
 

Tyler

double Arroyo::refractive_atmospheric_model::velocity_moment const vector< three_vector > &  layer_wind_velocities_meters_per_sec,
double  moment,
double  azimuth_angle_degrees = 0,
double  zenith_angle_degrees = 0
const
 

Get a velocity moment

The wind velocities should be in meters/sec, and are assumed to be ordered in the same way as the heights and power spectra

The value returned has units of meters^{1/3 + moment} sec^{-moment}

This function throws an error unless all layers in the model have a Komolgorov turbulence power spectrum.

void Arroyo::refractive_atmospheric_model::write iofits iof  )  const
 

Write to iofits

Reimplemented in Arroyo::Ellerbroek_Cerro_Pachon_model, Arroyo::Ellerbroek_Mauna_Kea_model, Arroyo::Gemini_GLAO_study_model, Arroyo::Hufnagel_Valley_model, Arroyo::NGAO_system_design_model, Arroyo::Palomar_DIMM_MASS_model, Arroyo::SLCSAT_day_model, Arroyo::SLCSAT_night_model, and Arroyo::TMT_SRD_v13_Cn2_model.

void Arroyo::refractive_atmospheric_model::write const char *  filename  )  const
 

Write to file

Reimplemented in Arroyo::Ellerbroek_Cerro_Pachon_model, Arroyo::Ellerbroek_Mauna_Kea_model, Arroyo::Gemini_GLAO_study_model, Arroyo::Hufnagel_Valley_model, Arroyo::NGAO_system_design_model, Arroyo::Palomar_DIMM_MASS_model, Arroyo::SLCSAT_day_model, Arroyo::SLCSAT_night_model, and Arroyo::TMT_SRD_v13_Cn2_model.

void Arroyo::refractive_atmospheric_model::write_common_data iofits iof  )  const [protected]
 

Write the data members to file. This member function may be called directly from the write member function of a derived class, after the unique type key has been written.


Member Data Documentation

three_frame Arroyo::refractive_atmospheric_model::ground_ref_frame_ [protected]
 

The reference frame for the ground.

vector<double> Arroyo::refractive_atmospheric_model::layer_heights_ [protected]
 

The layer heights in meters.

vector<power_spectrum *> Arroyo::refractive_atmospheric_model::power_spectra_ [protected]
 

The array of power spectra - one for each layer.

int Arroyo::refractive_atmospheric_model::verbose_level [static]
 


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