cn2_profile#

This module manages atmospheric Cn2 profiles.

The class Cn2Profile is the base class: it allows to describe a profile as a set of layers each one with specified J, outer scale \(L_0\), wind speed and wind direction and located at a specified altitude h above the ground

Cn2Profile allows to specify the zenith angle z and the wavelength and

The following relations are used, where the index i identifies the i-th layer and the airmass is \(X=\sec z\).

\begin{eqnarray} k & = & \frac{2 \pi}{\lambda} \\ J_i & = & {C_n^2}_i \, dh_i \\ {r_0}_i & = & (0.423 \, X \, k^2 J_i)^{-3/5} \\ r_0 & = & \big( \sum{{{r_0}_i}^{-5/3}} \big)^{-3/5} \\ & = & \big( \sum{0.423 X k^2 J_i} \big)^{-3/5} \\ \theta_0 & = & \big( 2.914 k^2 X^{8/3} \sum{J_i h_i^{5/3}} \big)^{-3/5} \end{eqnarray}
class arte.atmo.cn2_profile.Cn2Profile(layersJs, layersL0, layersAltitude, layersWindSpeed, layersWindDirection)#

Bases: object

Parameters:
  • layersJs (ndarray) – array of layers Js in meters**(1/3)

  • layersL0 (ndarray) – array of layers outer-scale L0 in meters

  • layersAltitude (ndarray) – array of layers altitude at Zenith in meters

  • layersWindSpeed (ndarray) – array of layers wind speed in meters per second

  • layersWindDirection (ndarray) – array of layers wind direction in degrees, clockwise from North

Every array must be 1D and have the same size, defining the number of layers of the profile

All parameters must be defined at zenith

Methods

airmass()

from_fractional_j(r0AtZenith, ...)

Cn2 profile constructor from total r0 at zenith and fractional J of each layer

from_r0s(layersR0, layersL0, layersAltitude, ...)

Cn2 profile constructor from r0 values of each layer

r0()

r0s()

seeing()

tau0()

theta0()

wind_direction()

wind_speed()

fractional_j

layers_distance

mean_wind_speed

number_of_layers

outer_scale

set_wavelength

set_wind_direction

set_wind_speed

set_zenith_angle

wavelength

zenith_angle

zenith_angle_to_airmass

DEFAULT_AIRMASS = 1.0#
DEFAULT_LAMBDA = 5e-07#
airmass()#
Returns:

airmass – airmass at specified zenith angle

Return type:

float

fractional_j()#
classmethod from_fractional_j(r0AtZenith, layersFractionalJ, layersL0, layersAltitude, layersWindSpeed, layersWindDirection)#

Cn2 profile constructor from total r0 at zenith and fractional J of each layer

Parameters:
  • r0AtZenith (float) – overall r0 at zenith [m]

  • layersFractionalJ (ndarray) – array of J values for each layer. Array must sum up to 1

  • layersL0 (ndarray) – array of layers outer-scale L0 in meters

  • layersAltitude (ndarray) – array of layers altitude at Zenith in meters

  • layersWindSpeed (ndarray) – array of layers wind speed in meters per second

  • layersWindDirection (ndarray) – array of layers wind direction in degrees, clockwise from North

Every array must be 1D and have the same size, defining the number of layers of the profile

All parameters must be defined at zenith

classmethod from_r0s(layersR0, layersL0, layersAltitude, layersWindSpeed, layersWindDirection)#

Cn2 profile constructor from r0 values of each layer

Parameters:
  • layersR0 (ndarray) – array of layers r0 in meters at 500nm

  • layersL0 (ndarray) – array of layers outer-scale L0 in meters

  • layersAltitude (ndarray) – array of layers altitude at Zenith in meters

  • layersWindSpeed (ndarray) – array of layers wind speed in meters per second

  • layersWindDirection (ndarray) – array of layers wind direction in degrees, clockwise from North

Every array must be 1D and have the same size, defining the number of layers of the profile

All parameters must be defined at zenith

layers_distance()#
mean_wind_speed()#
number_of_layers()#
outer_scale()#
r0()#
Returns:

r0 – Fried parameter at defined wavelength and zenith angle

Return type:

Quantity equivalent to meters

r0s()#
Returns:

r0 – Fried parameter of each layer at defined wavelength and zenith angle

Return type:

Quantity equivalent to meters of ndarray

seeing()#
Returns:

seeing – seeing value at specified lambda and zenith angle defined as 0.98 * lambda / r0

Return type:

Quantity equivalent to arcsec

set_wavelength(wavelengthInMeters)#
set_wind_direction(windDirectionInDeg)#
set_wind_speed(windSpeed)#
set_zenith_angle(zenithAngleInDeg)#
tau0()#
Returns:

tau0 at specified lambda and zenith angle [sec]

Return type:

tau0 (float)

theta0()#
Returns:

isoplanatic angle at specified lambda and zenith

angle [arcsec]

Return type:

theta0 (float)

wavelength()#
wind_direction()#
Returns:

wind – wind direction of each layer [deg, clockwise from N]

Return type:

Quantity containing an array.

wind_speed()#
Returns:

windspeed of each layer in m/s

Return type:

(array)

zenith_angle()#
static zenith_angle_to_airmass(zenithAngleInDeg)#
class arte.atmo.cn2_profile.EsoEltProfiles#

Bases: object

Methods

Median

Q1

Q2

Q3

Q4

L0 = 25#
classmethod Median(*args, **kwargs)#
classmethod Q1()#
classmethod Q2()#
classmethod Q3()#
classmethod Q4()#
class arte.atmo.cn2_profile.MaoryStereoScidarProfiles2021#

Bases: object

Methods

P10

P25

P50

P75

P90

L0 = 25#
classmethod P10()#
classmethod P25()#
classmethod P50()#
classmethod P75()#
classmethod P90()#
class arte.atmo.cn2_profile.MaorySteroScidarProfiles#

Bases: object

Methods

P10

P25

P50

P75

P90

classmethod P10()#
classmethod P25()#
classmethod P50()#
classmethod P75()#
classmethod P90()#
class arte.atmo.cn2_profile.MiscellaneusProfiles#

Bases: object

Methods

ERIS()

From Doc.

LBT()

From G.

MaunaKea()

From Brent L.

classmethod ERIS()#

From Doc. No.: VLT-SPE-ESO-11250-4110

classmethod LBT()#

From G. Agapito, C. Arcidiacono, F. Quiros-Pacheco, S. Esposito, “Adaptive optics at short wavelengths - Expected performance and sky coverage of the FLAO system going toward visible wavelengths”, doi: 10.1007/s10686-014-9380-7

classmethod MaunaKea()#

From Brent L. Ellerbroek, Francois J. Rigaut, “Scaling multiconjugate adaptive optics performance estimates to extremely large telescopes,” Proc. SPIE 4007, Adaptive Optical Systems Technology, (7 July 2000); doi: 10.1117/12.390314