AtmosphericLayer

class hcipy.atmosphere.AtmosphericLayer(input_grid, Cn_squared=None, L0=inf, velocity=0, height=0)

Bases: OpticalElement

A single infinitely-thin atmospheric layer.

This class serves as a base class for all atmospheric layers. Multiply atmospheric layers can be combined into an MultiLayerAtmosphere which provides modelling of scintillation between layers.

Parameters:
input_gridGrid

The grid on which the wavefront will be defined.

Cn_squaredscalar

The integrated value of Cn^2 for the layer.

L0scalar

The outer scale of the layer.

velocityscalar or array_like

The velocity of the layer. If a scalar is given, its direction will be along x.

heightscalar

The height of the atmospheric layer above the ground.

Attributes:
input_gridGrid

The grid on which the wavefront will be defined.

tscalar

The current time of the atmospheric layer.

Cn_squaredscalar

The integrated value of Cn^2 for the layer.

L0scalar

The outer scale of the phase structure function.

velocityarray_like

The two-dimensional velocity of the layer.

heightscalar

The height of the atmospheric layer above the ground.

Attributes Summary

Cn_squared

The integrated value of Cn^2 for the layer.

L0

The outer scale of the phase structure function.

outer_scale

The outer scale of the phase structure function.

output_grid

t

The current time of the atmospheric layer.

velocity

The two-dimensional velocity of the layer.

Methods Summary

backward(wf)

Propagate a wavefront backward through the optical element.

evolve_until(t)

Evolve the atmospheric layer until time t.

forward(wf)

Propagate a wavefront forward through the optical element.

phase_for(wavelength)

Get the phase screen in radians at a certain wavelength.

reset()

Reset the phase screen.

Attributes Documentation

Cn_squared

The integrated value of Cn^2 for the layer.

L0

The outer scale of the phase structure function.

outer_scale

The outer scale of the phase structure function.

output_grid
t

The current time of the atmospheric layer.

velocity

The two-dimensional velocity of the layer.

Methods Documentation

backward(wf)

Propagate a wavefront backward through the optical element.

A backward propagation is a literal backward propagation through the element. It is not (in general) the inverse of the forward propagation, except in cases where energy is conserved.

This function will be implemented by the derived class.

Parameters:
wavefrontWavefront

The wavefront to propagate.

Returns:
Wavefront

The propagated wavefront.

evolve_until(t)

Evolve the atmospheric layer until time t.

Parameters:
tscalar

The time to which to evolve the atmospheric layer.

forward(wf)

Propagate a wavefront forward through the optical element.

This will be implemented by the derived class.

Parameters:
wavefrontWavefront

The wavefront to propagate.

Returns:
Wavefront

The propagated wavefront.

phase_for(wavelength)

Get the phase screen in radians at a certain wavelength.

Each atmospheric layer is modelled as an infinitely-thin phase screen.

Parameters:
wavelengthscalar

The wavelength at which to calculate the phase screen.

reset()

Reset the phase screen.

This will create a randomized uncorrelated phase screen.