shesha.init

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

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: Optional[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: Optional[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_custom_dm(p_dm: shesha.config.PDMS.Param_dm, p_geom: shesha.config.PGEOM.Param_geom, diam: float)

Read Fits for influence pzt fonction and form

Parameters

p_dm: (Param_dm) : dm settings

p_geom: (Param_geom) : geom settings

diam: (float) : tel diameter

Conversion. There are sereval coordinate systems. Some are coming from the input fits file, others from compass. Those systems differ by scales and offsets. Coord systems from the input fits file:

  • they all have the same scale: the coordinates are expressed in pixels

  • one system is the single common frame where fits data are described [i]

  • one is local to the minimap [l]

Coord systems from compass:
  • they all have the same scale (different from fits one) expressed in pixels

  • one system is attached to ipupil (i=image, largest support) [i]

  • one system is attached to mpupil (m=medium, medium support) [m]

  • one system is local to minimap [l)]

Variables will be named using f, c: define either fits or compass

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. NOTE: if the DM is in altitude, central obstruction is forced to 0

Parameters

p_dm: (Param_dm) : dm parameters

p_geom: (Param_geom) : geometry parameters

cobs: (float) : telescope central obstruction

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

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

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.

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, cacao=False, tar=None, dataBase={}, use_DB=False)

Initialize all the SutraRtc 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 cacao: (bool) : (optional) cacao 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: list, nactu: int, centroider_type: list, delay: list, offset: list, scale: list, brahma: bool = False, fp16: bool = False, cacao: bool = False)shesha.sutra_wrap.smart_import.<locals>.tmp_cls

TODO docstring

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

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