shesha.init

Initialization of a Atmos object

shesha.init.atmos_init.atmos_init(context: shesha.sutra_wrap.smart_import.<locals>.tmp_cls, p_atmos: shesha.config.PATMOS.Param_atmos, p_tel: shesha.config.PTEL.Param_tel, p_geom: shesha.config.PGEOM.Param_geom, ittime=None, p_wfss=None, p_targets=None, dataBase={}, use_DB=False)

Initializes an Atmos object

Parameters:context: (carmaWrap_context): GPU device context p_atmos: (Param_atmos): Atmosphere parameters p_tel: (Param_tel): Telescope parameters p_geom: (Param_geom): Geometry parameters ittime: (float): (optional) exposition time [s] p_wfss: (list of Param_wfs): (optional) WFS parameters p_targets: (list of Param_target): (optional) target parameters dataBase: (dict): (optional) dictionary for data base use_DB: (bool): (optional) flag for using the dataBase system
Returns:atm : (Atmos): Atmos object

Initialization of a Dms object

shesha.init.dm_init.build_petals(nbSeg, pupAngleDegree, i0, j0, npt)

Makes an image npt x npt of <nbSeg> regularly spaced angular segments centred on (i0, j0). Origin of angles is set by <pupAngleDegree>.

The segments are oriented as defined in document “Standard Coordinates and Basic Conventions”, ESO-193058. This document states that the X axis lies in the middle of a petal, i.e. that the axis Y is along the spider. The separation angle between segments are [-30, 30, 90, 150, -150, -90]. For this reason, an <esoOffsetAngle> = -pi/6 is introduced in the code.

nbSeg = 6 pupAngleDegree = 5.0 i0 = j0 = 112.3 npt = 222 p = build_petals(nbSeg, pupAngleDegree, i0, j0, npt)

shesha.init.dm_init.comp_dmgeom(p_dm: shesha.config.PDMS.Param_dm, p_geom: shesha.config.PGEOM.Param_geom)

Compute the geometry of a DM : positions of actuators and influence functions

Parameters:

dm: (Param_dm) : dm settings

geom: (Param_geom) : geom settings

shesha.init.dm_init.correct_dm(context, dms: shesha.sutra_wrap.smart_import.<locals>.tmp_cls, p_dms: list, p_controller: shesha.config.PCONTROLLER.Param_controller, p_geom: shesha.config.PGEOM.Param_geom, imat: numpy.ndarray = None, dataBase: dict = {}, use_DB: bool = False)

Correct the geometry of the DMs using the imat (filter unseen actuators)

Parameters:context: (carmaWrap_context): context dms: (Dms) : Dms object p_dms: (list of Param_dm) : dms settings p_controller: (Param_controller) : controller settings p_geom: (Param_geom) : geom settings imat: (np.ndarray) : interaction matrix dataBase: (dict): dictionary containing paths to files to load use_DB: (bool): dataBase use flag
shesha.init.dm_init.dm_init(context: shesha.sutra_wrap.smart_import.<locals>.tmp_cls, p_dms: List[shesha.config.PDMS.Param_dm], p_tel: shesha.config.PTEL.Param_tel, p_geom: shesha.config.PGEOM.Param_geom, p_wfss: List[shesha.config.PWFS.Param_wfs] = None, keepAllActu: bool = False) → shesha.sutra_wrap.smart_import.<locals>.tmp_cls

Create and initialize a Dms object on the gpu

Parameters:context: (carmaWrap_context): context p_dms: (list of Param_dms) : dms settings p_tel: (Param_tel) : telescope settings p_geom: (Param_geom) : geom settings p_wfss: (list of Param_wfs) : wfs settings
Returns:Dms: (Dms): Dms object
shesha.init.dm_init.dm_init_standalone(context: shesha.sutra_wrap.smart_import.<locals>.tmp_cls, p_dms: list, p_geom: shesha.config.PGEOM.Param_geom, diam=1.0, cobs=0.0, pupAngle=0.0, wfs_xpos=[0], wfs_ypos=[0])

Create and initialize a Dms object on the gpu

Parameters:

p_dms: (list of Param_dms) : dms settings

p_geom: (Param_geom) : geom settings

diam: (float) : diameter of telescope (default 1.)

cobs: (float) : cobs of telescope (default 0.)

pupAngle: (float) : pupil rotation angle (degrees, default 0.)

wfs_xpos: (array) : guide star x position on sky (in arcsec).

wfs_ypos: (array) : guide star y position on sky (in arcsec).

shesha.init.dm_init.init_pzt_from_hdf5(p_dm: shesha.config.PDMS.Param_dm, p_geom: shesha.config.PGEOM.Param_geom, diam: float)

Read HDF for influence pzt fonction and form

Parameters:

p_dm: (Param_dm) : dm settings

p_geom: (Param_geom) : geom settings

diam: (float) : tel diameter

shesha.init.dm_init.makePetalDm(p_dm, p_geom, pupAngleDegree)

The function builds a DM, segmented in petals according to the pupil shape. The petals will be adapted to the EELT case only.

<p_geom> : compass object p_geom. The function requires the object p_geom
in order to know what is the pupil mask, and what is the mpupil.
<p_dm> : compass petal dm object p_dm to be created. The function will
transform/modify in place the attributes of the object p_dm.
shesha.init.dm_init.make_kl_dm(p_dm: shesha.config.PDMS.Param_dm, patchDiam: int, p_geom: shesha.config.PGEOM.Param_geom, cobs: float) → None

Compute the influence function for a Karhunen-Loeve DM

Parameters:

p_dm: (Param_dm) : dm settings

patchDiam: (int) : patchDiam for dm size

p_geom: (Param_geom) : geom settings

cobs: (float) : telescope cobs

shesha.init.dm_init.make_petal_dm_core(pupImage, pupAngleDegree)

<pupImage> : image of the pupil

La fonction renvoie des fn d’influence en forme de petale d’apres une image de la pupille, qui est supposee etre segmentee.

influ, i1, j1, smallsize, nbSeg = make_petal_dm_core(pupImage, 0.0)

shesha.init.dm_init.make_pzt_dm(p_dm: shesha.config.PDMS.Param_dm, p_geom: shesha.config.PGEOM.Param_geom, cobs: float, pupAngle: float, keepAllActu: bool = False)

Compute the actuators positions and the influence functions for a pzt DM

Parameters:

p_dm: (Param_dm) : dm settings

p_geom: (Param_geom) : geom settings

cobs: (float) : tel cobs

Returns:

influ: (np.ndarray(dims=3,dtype=np.float64)) : cube of the IF for each actuator

shesha.init.dm_init.make_tiptilt_dm(p_dm: shesha.config.PDMS.Param_dm, patchDiam: int, p_geom: shesha.config.PGEOM.Param_geom, diam: float)

Compute the influence functions for a tip-tilt DM

Parameters:

p_dm: (Param_dm) : dm settings

patchDiam: (int) : patchDiam for dm size

p_geom: (Param_geom) : geom settings

diam: (float) : telescope diameter

Returns:

influ: (np.ndarray(dims=3,dtype=np.float64)) : cube of the IF

Initialization of the system geometry and of the Telescope object

shesha.init.geom_init.compute_nphotons(wfs_type, ittime, optthroughput, diam, cobs=0, nxsub=0, zerop=0, gsmag=0, lgsreturnperwatt=0, laserpower=0, verbose=1)

Determines the number of photons TBC

Parameters:

wfs_type: (scons.WFSType) : wfs type: SH or PYRHR.

ittime: (float) : 1/loop frequency [s].

optthroughput: (float) : wfs global throughput.

diam: (float) : telescope diameter.

cobs: (float) : (optional for SH) telescope central obstruction.

nxsub: (int) : (optional for PYRHR) linear number of subaps.

zerop: (float) : (optional for LGS) detector zero point expressed in ph/m**2/s in the bandwidth of the WFS.

gsmag: (float) : (optional for LGS) magnitude of guide star.

lgsreturnperwatt: (float) : (optional for NGS) return per watt factor (high season : 10 ph/cm2/s/W).

laserpower: (float) : (optional for NGS) laser power in W.

verbose: (bool) : (optional) display informations if True.

for PYRHR WFS: nphotons = compute_nphotons(scons.WFSType.PYRHR, ittime,
optthroughput, diam, cobs=?, zerop=?, gsmag=?)
for NGS SH WFS: nphotons = compute_nphotons(scons.WFSType.SH, ittime,
optthroughput, diam, nxsub=?, zerop=?, gsmag=?)
for LGS SH WFS: nphotons = compute_nphotons(scons.WFSType.SH, ittime,
optthroughput, diam, nxsub=?, lgsreturnperwatt=?, laserpower=?)
shesha.init.geom_init.geom_init(p_geom: shesha.config.PGEOM.Param_geom, p_tel: shesha.config.PTEL.Param_tel, padding=2)
Initialize the system geometry
Parameters:p_geom: (Param_geom) : geometry settings p_tel: (Param_tel) : telescope settings padding: (optional) : padding factor for PYRHR geometry
shesha.init.geom_init.geom_init_generic(p_geom, pupdiam, t_spiders=0.01, spiders_type='six', xc=0, yc=0, real=0, cobs=0)

Initialize the system geometry

Parameters:

pupdiam: (long) : linear size of total pupil

t_spiders: (float) : secondary supports ratio.

spiders_type: (str) : secondary supports type: “four” or “six”.

xc: (int)

yc: (int)

real: (int)

cobs: (float) : central obstruction ratio.

shesha.init.geom_init.init_pyrhr_geom(p_wfs: shesha.config.PWFS.Param_wfs, r0: float, p_tel: shesha.config.PTEL.Param_tel, p_geom: shesha.config.PGEOM.Param_geom, ittime: float, verbose: bool = True)

Compute the geometry of PYRHR WFSs: valid subaps, positions of the subaps, flux per subap, etc…

Parameters:

p_wfs: (Param_wfs) : wfs settings

r0: (float) : atmos r0 @ 0.5 microns

p_tel: (Param_tel) : telescope settings

geom: (Param_geom) : geom settings

ittime: (float) : 1/loop frequency [s]

verbose: (bool) : (optional) display informations if True

shesha.init.geom_init.init_sh_geom(p_wfs: shesha.config.PWFS.Param_wfs, r0: float, p_tel: shesha.config.PTEL.Param_tel, p_geom: shesha.config.PGEOM.Param_geom, ittime: float, verbose: bool = True)

Compute the geometry of SH WFSs: valid subaps, positions of the subaps, flux per subap, etc…

Parameters:

p_wfs: (Param_wfs) : wfs settings

r0: (float) : atmos r0 @ 0.5 microns

p_tel: (Param_tel) : telescope settings

geom: (Param_geom) : geom settings

ittime: (float) : 1/loop frequency [s]

verbose: (bool) : (optional) display informations if True

shesha.init.geom_init.init_wfs_geom(p_wfs: shesha.config.PWFS.Param_wfs, r0: float, p_tel: shesha.config.PTEL.Param_tel, p_geom: shesha.config.PGEOM.Param_geom, ittime: float, verbose=1)

Compute the geometry of WFSs: valid subaps, positions of the subaps, flux per subap, etc…

Parameters:

p_wfs: (Param_wfs) : wfs settings

r0: (float) : atmos r0 @ 0.5 microns

p_tel: (Param_tel) : telescope settings

geom: (Param_geom) : geom settings

ittime: (float) : 1/loop frequency [s]

verbose: (int) : (optional) display informations if 0

shesha.init.geom_init.init_wfs_size(p_wfs: shesha.config.PWFS.Param_wfs, r0: float, p_tel: shesha.config.PTEL.Param_tel, verbose=1)

Compute all the parameters usefull for further WFS image computation (array sizes)

Parameters:

p_wfs: (Param_wfs) : wfs settings

r0: (float) : atmos r0 @ 0.5 microns

p_tel: (Param_tel) : telescope settings

verbose: (int) : (optional) display informations if 0

Scheme to determine arrays sizes sh : k = 6 p = k * d/r0 n = int(2*d*v/lambda/CONST.RAD2ARCSEC)+1 N = fft_goodsize(k*n/v*lambda/r0*CONST.RAD2ARCSEC) u = k * lambda / r0 * CONST.RAD2ARCSEC / N n = v/u - int(v/u) > 0.5 ? int(v/u)+1 : int(v/u) v = n * u Nt = v * Npix

pyr : Fs = field stop radius in arcsec N size of big array for FFT in pixels P pupil diameter in pixels D diameter of telescope in m Nssp : number of pyr measurement points in the pupil

Rf = Fs . N . D / lambda / P ideally we choose : Fs = lambda / D . Nssp / 2

if we want good sampling of r0 (avoid aliasing of speckles) P > D / r0 . m with m = 2 or 3

to get reasonable space between pupil images : N > P.(2 + 3S) with S close to 1 N must be a power of 2

to ease computation lets assume that Nssp is a divider of P scaling factor between high res pupil images in pyramid model and actual pupil size on camera images would be P / Nssp

shesha.init.geom_init.tel_init(context: shesha.sutra_wrap.smart_import.<locals>.tmp_cls, p_geom: shesha.config.PGEOM.Param_geom, p_tel: shesha.config.PTEL.Param_tel, r0=None, ittime=None, p_wfss=None, dm=None)
Initialize the overall geometry of the AO system, including pupil and WFS
Parameters:context: (carmaWrap_context) : context p_geom: (Param_geom) : geom settings p_tel: (Param_tel) : telescope settings r0: (float) : atmos r0 @ 0.5 microns ittime: (float) : 1/loop frequency [s] p_wfss: (list of Param_wfs) : wfs settings dm: (list of Param_dm) : (optional) dms settings [=None]
Returns:telescope: (Telescope): Telescope object

Initialization of a LGS in a Wfs object

shesha.init.lgs_init.make_lgs_prof1d(p_wfs: shesha.config.PWFS.Param_wfs, p_tel: shesha.config.PTEL.Param_tel, prof: numpy.ndarray, h: numpy.ndarray, beam: float, center='')

same as prep_lgs_prof but cpu only. original routine from rico

Parameters:

p_tel: (Param_tel) : telescope settings

prof: (np.ndarray[dtype=np.float32]) : Na profile intensity, in arbitrary units

h: (np.ndarray[dtype=np.float32]) : altitude, in meters. h MUST be an array with EQUALLY spaced elements.

beam: (float) : size in arcsec of the laser beam

center: (string) : either “image” or “fourier” depending on where the centre should be.

shesha.init.lgs_init.prep_lgs_prof(p_wfs: shesha.config.PWFS.Param_wfs, nsensors: int, p_tel: shesha.config.PTEL.Param_tel, sensors: shesha.sutra_wrap.smart_import.<locals>.tmp_cls, center='', imat=0)

The function returns an image array(double,n,n) of a laser beacon elongated by perpective effect. It is obtaind by convolution of a gaussian of width “lgsWidth” arcseconds, with the line of the sodium profile “prof”. The altitude of the profile is the array “h”.

parameters:

p_wfs: (Param_wfs) : WFS settings

nsensors: (int) : wfs index

p_tel: (Param_tel) : telescope settings

Sensors: (Sensors) : WFS object

center: (string) : either “image” or “fourier” depending on where the centre should be.

Computation of LGS spot from the sodium profile: Everything is done here in 1D, because the Na profile is the result of the convolution of a function P(x,y) = profile(x) . dirac(y) by a gaussian function, for which variables x and y can be split : exp(-(x^2+y^2)/2.s^2) = exp(-x^2/2.s^2) * exp(-y^2/2.s^2) The convolution is (symbol $ denotes integral) C(X,Y) = $$ exp(-x^2/2.s^2) * exp(-y^2/2.s^2) * profile(x-X) * dirac(y-Y) dx dy First one performs the integration along y C(X,Y) = exp(-Y^2/2.s^2) $ exp(-x^2/2.s^2) * profile(x-X) dx which shows that the profile can be computed by - convolving the 1-D profile - multiplying it in the 2nd dimension by a gaussian function

If one has to undersample the inital profile, then some structures may be “lost”. In this case, it’s better to try to “save” those structures by re-sampling the integral of the profile, and then derivating it afterwards. Now, if the initial profile is a coarse one, and that one has to oversample it, then a simple re-sampling of the profile is adequate.

Initialization of a Rtc object

shesha.init.rtc_init.comp_weights(p_centroider: shesha.config.PCENTROIDER.Param_centroider, p_wfs: shesha.config.PWFS.Param_wfs, npix: int)
Compute the weights used by centroider wcog and corr
Parameters:p_centroider : (Param_centroider) : centroider settings p_wfs : (Param_wfs) : wfs settings npix: (int):
shesha.init.rtc_init.init_centroider(context, nwfs: int, p_wfs: shesha.config.PWFS.Param_wfs, p_centroider: shesha.config.PCENTROIDER.Param_centroider, p_tel: shesha.config.PTEL.Param_tel, p_atmos: shesha.config.PATMOS.Param_atmos, wfs: shesha.sutra_wrap.smart_import.<locals>.tmp_cls, rtc: shesha.sutra_wrap.smart_import.<locals>.tmp_cls)

Initialize a centroider object in Rtc

Parameters:context: (carmaWrap_context): context nwfs : (int) : index of wfs p_wfs : (Param_wfs): wfs settings p_centroider : (Param_centroider) : centroider settings wfs: (Sensors): Sensor object rtc : (Rtc) : Rtc object
shesha.init.rtc_init.init_controller(context, i: int, p_controller: shesha.config.PCONTROLLER.Param_controller, p_wfss: list, p_geom: shesha.config.PGEOM.Param_geom, p_dms: list, p_atmos: shesha.config.PATMOS.Param_atmos, ittime: float, p_tel: shesha.config.PTEL.Param_tel, rtc: shesha.sutra_wrap.smart_import.<locals>.tmp_cls, dms: shesha.sutra_wrap.smart_import.<locals>.tmp_cls, wfs: shesha.sutra_wrap.smart_import.<locals>.tmp_cls, tel: shesha.sutra_wrap.smart_import.<locals>.tmp_cls, atmos: shesha.sutra_wrap.smart_import.<locals>.tmp_cls, p_centroiders: List[shesha.config.PCENTROIDER.Param_centroider], do_refslp=False, dataBase={}, use_DB=False)
Initialize the controller part of rtc
Parameters:context: (carmaWrap_context): context i : (int) : controller index p_controller: (Param_controller) : controller settings p_wfss: (list of Param_wfs) : wfs settings p_geom: (Param_geom) : geom settings p_dms: (list of Param_dms) : dms settings p_atmos: (Param_atmos) : atmos settings ittime: (float) : iteration time [s] p_tel: (Param_tel) : telescope settings rtc: (Rtc) : Rtc objet dms: (Dms) : Dms object wfs: (Sensors) : Sensors object tel: (Telescope) : Telescope object atmos: (Atmos) : Atmos object p_centroiders: (list of Param_centroider): centroiders settings
shesha.init.rtc_init.init_controller_cured(i: int, rtc: shesha.sutra_wrap.smart_import.<locals>.tmp_cls, p_controller: shesha.config.PCONTROLLER.Param_controller, p_dms: list, p_wfss: list)
Initialize the CURED controller
Parameters:i : (int) : controller index rtc: (Rtc) : Rtc objet p_controller: (Param_controller) : controller settings p_dms: (list of Param_dms) : dms settings p_wfss: (list of Param_wfs) : wfs settings
shesha.init.rtc_init.init_controller_generic(i: int, p_controller: shesha.config.PCONTROLLER.Param_controller, p_dms: list, rtc: shesha.sutra_wrap.smart_import.<locals>.tmp_cls)
Initialize the generic controller
Parameters:i: (int): controller index p_controller: (Param_controller): controller settings p_dms: (list of Param_dm): dms settings rtc: (Rtc): Rtc object
shesha.init.rtc_init.init_controller_geo(i: int, rtc: shesha.sutra_wrap.smart_import.<locals>.tmp_cls, dms: shesha.sutra_wrap.smart_import.<locals>.tmp_cls, p_geom: shesha.config.PGEOM.Param_geom, p_controller: shesha.config.PCONTROLLER.Param_controller, p_dms: list, roket=False)
Initialize geometric controller
Parameters:i: (int): controller index rtc: (Rtc): rtc object dms: (Dms): Dms object p_geom: (Param_geom): geometry settings p_controller: (Param_controller): controller settings p_dms: (list of Param_dms): dms settings roket: (bool): Flag to initialize ROKET
shesha.init.rtc_init.init_controller_ls(i: int, p_controller: shesha.config.PCONTROLLER.Param_controller, p_wfss: list, p_geom: shesha.config.PGEOM.Param_geom, p_dms: list, p_atmos: shesha.config.PATMOS.Param_atmos, ittime: float, p_tel: shesha.config.PTEL.Param_tel, rtc: shesha.sutra_wrap.smart_import.<locals>.tmp_cls, dms: shesha.sutra_wrap.smart_import.<locals>.tmp_cls, wfs: shesha.sutra_wrap.smart_import.<locals>.tmp_cls, tel: shesha.sutra_wrap.smart_import.<locals>.tmp_cls, atmos: shesha.sutra_wrap.smart_import.<locals>.tmp_cls, dataBase: dict = {}, use_DB: bool = False)
Initialize the least square controller
Parameters:i : (int) : controller index p_controller: (Param_controller) : controller settings p_wfss: (list of Param_wfs) : wfs settings p_geom: (Param_geom) : geom settings p_dms: (list of Param_dms) : dms settings p_atmos: (Param_atmos) : atmos settings ittime: (float) : iteration time [s] p_tel: (Param_tel) : telescope settings rtc: (Rtc) : Rtc objet dms: (Dms) : Dms object wfs: (Sensors) : Sensors object tel: (Telescope) : Telescope object atmos: (Atmos) : Atmos object
shesha.init.rtc_init.init_controller_mv(i: int, p_controller: shesha.config.PCONTROLLER.Param_controller, p_wfss: list, p_geom: shesha.config.PGEOM.Param_geom, p_dms: list, p_atmos: shesha.config.PATMOS.Param_atmos, p_tel: shesha.config.PTEL.Param_tel, rtc: shesha.sutra_wrap.smart_import.<locals>.tmp_cls, dms: shesha.sutra_wrap.smart_import.<locals>.tmp_cls, wfs: shesha.sutra_wrap.smart_import.<locals>.tmp_cls, atmos: shesha.sutra_wrap.smart_import.<locals>.tmp_cls)
Initialize the MV controller
Parameters:i : (int) : controller index p_controller: (Param_controller) : controller settings p_wfss: (list of Param_wfs) : wfs settings p_geom: (Param_geom) : geom settings p_dms: (list of Param_dms) : dms settings p_atmos: (Param_atmos) : atmos settings p_tel: (Param_tel) : telescope settings rtc: (Rtc) : Rtc objet dms: (Dms) : Dms object wfs: (Sensors) : Sensors object atmos: (Atmos) : Atmos object
shesha.init.rtc_init.rtc_init(context: shesha.sutra_wrap.smart_import.<locals>.tmp_cls, tel: shesha.sutra_wrap.smart_import.<locals>.tmp_cls, wfs: shesha.sutra_wrap.smart_import.<locals>.tmp_cls, dms: shesha.sutra_wrap.smart_import.<locals>.tmp_cls, atmos: shesha.sutra_wrap.smart_import.<locals>.tmp_cls, p_wfss: list, p_tel: shesha.config.PTEL.Param_tel, p_geom: shesha.config.PGEOM.Param_geom, p_atmos: shesha.config.PATMOS.Param_atmos, ittime: float, p_centroiders=None, p_controllers=None, p_dms=None, do_refslp=False, brahma=False, tar=None, dataBase={}, use_DB=False)

Initialize all the sutra_rtc objects : centroiders and controllers

Parameters:context: (carmaWrap_context): context tel: (Telescope) : Telescope object wfs: (Sensors) : Sensors object dms: (Dms) : Dms object atmos: (Atmos) : Atmos object p_wfss: (list of Param_wfs) : wfs settings p_tel: (Param_tel) : telescope settings p_geom: (Param_geom) : geom settings p_atmos: (Param_atmos) : atmos settings ittime: (float) : iteration time [s] p_centroiders : (list of Param_centroider): (optional) centroiders settings p_controllers : (list of Param_controller): (optional) controllers settings p_dms: (list of Param_dms) : (optional) dms settings do_refslp : (bool): (optional) do ref slopes flag, default=False brahma: (bool) : (optional) BRAHMA flag tar: (Target) : (optional) dataBase: (dict): (optional) dict containig paths to files to load use_DB: (bool): use dataBase flag
Returns:Rtc : (Rtc) : Rtc object
shesha.init.rtc_init.rtc_standalone(context: shesha.sutra_wrap.smart_import.<locals>.tmp_cls, nwfs: int, nvalid: int, nactu: int, centroider_type: str, delay: float, offset: float, scale: float, brahma: bool = False, fp16: bool = False, cacao: bool = False) → shesha.sutra_wrap.smart_import.<locals>.tmp_cls

TODO docstring

Initialization of a Target object

shesha.init.target_init.target_init(ctxt: shesha.sutra_wrap.smart_import.<locals>.tmp_cls, telescope: shesha.sutra_wrap.smart_import.<locals>.tmp_cls, p_targets: list, p_atmos: shesha.config.PATMOS.Param_atmos, p_tel: shesha.config.PTEL.Param_tel, p_geom: shesha.config.PGEOM.Param_geom, dm=None, brahma=False)

Create a cython target from parametres structures

Parameters:ctxt: (carmaWrap_context) : telescope: (Telescope): Telescope object p_targets: (lis of Param_target) : target_settings p_atmos: (Param_atmos) : atmos settings p_tel: (Param_tel) : telescope settings p_geom: (Param_geom) : geom settings dm: (Param_dm) : (optional) dm settings brahma: (bool): (optional) BRAHMA flag
Returns:tar: (Target): Target object

Initialization of a Sensors object

shesha.init.wfs_init.wfs_init(context: shesha.sutra_wrap.smart_import.<locals>.tmp_cls, telescope: shesha.sutra_wrap.smart_import.<locals>.tmp_cls, p_wfss: list, p_tel: shesha.config.PTEL.Param_tel, p_geom: shesha.config.PGEOM.Param_geom, p_dms=None, p_atmos=None)

Create and initialise a Sensors object

Parameters:context : (carmaWrap_context) telescope: (Telescope) : Telescope object p_wfss: (list of Param_wfs) : wfs settings p_tel: (Param_tel) : telescope settings p_geom: (Param_geom) : geom settings p_dms : (list of Param_dm) : (optional) dms settings p_atmos: (Param_atmos) : (optional) atmos settings
Returns:g_wfs: (Sensors): Sensors object