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