COMPASS  5.0.0
End-to-end AO simulation tool using GPU acceleration
PDMS.py
1 
37 
38 import numpy as np
39 import shesha.constants as scons
40 from . import config_setter_utils as csu
41 
42 
43 
46 class Param_dm:
47 
48  def __init__(self):
49 
50  # DM properties
51  self.__nact = 0 # DM number of actuators
52  self.__alt = 0.0 # DM conjugation altitude
53  self.__thresh = 0.0 # Threshold on response for selection
54  self.__coupling = 0.2 # Actuator coupling (< .3)
55  self.__gain = 1.0 # Actuator gains
56  self.__pupoffset = np.array([0, 0])
57  self.__dim_screen = 0 # Phase screen dimension
58  # Global offset in pupil (x,y) of the whole actuator pattern
59 
60  self.__unitpervolt = 0.01
61  # Influence function sensitivity in unit/volt. Optional [0.01]
62  # Stackarray: mic/volt, Tip-tilt: arcsec/volt.
63  self.__push4imat = 1. # nominal voltage for imat
64 
65  # Margins for actuator selection
66  self.__margin_out = None # outer margin (pitches) from pupil diameter
67  # inner margin (pitches) from central obstruction
68  self.__margin_in = 0.
69  self.__pzt_extent = 5. # Extent of pzt DM (pitches)
70  self.__segmented_mirror = False # Crop influence functions where spiders are.
71 
72  # KL DM
73  self.__nfunc = 0
74  self.__nkl = 0 # Number of KL for KL dm
75  self.__outscl = None # Outer scale in units of telescope diam for Karman KL
76  self.__nr = None # number of radial points
77  self.__npp = None # number of elements
78  self.__ord = None # the radial orders of the basis
79  self.__rabas = None # the radial array of the basis
80  self.__azbas = None # the azimuthal array of the basis
81  self.__ncp = None # dim of grid
82  self.__cr = None # radial coord in cartesien grid
83  self.__cp = None # phi coord in cartesien grid
84  self.__ap = None
85  self.__nfunc = 0
86 
87  # Hidden variable safe-typed in shesha_constants
88  self.__type = None # Private storage of type
89  self.__type_pattern = None # Private storage of type_pattern
90  self.__influ_type = scons.InfluType.DEFAULT # Private storage of influ_type
91  self.__type_kl = scons.KLType.KOLMO # Private storage for KL type
92 
93  # HDF5 storage management
94  self.__file_influ_hdf5 = None # Filename for influ hdf5 file
95  self.__center_name = None # Center name in hdf5
96  self.__cube_name = None # Influence function cube name in hdf5
97  self.__x_name = None # x coord name in hdf5
98  self.__y_name = None # y coord name in hdf5
99  self.__influ_res = None # influence resolution name in hdf5
100  self.__diam_dm = None # name for dm diameter
101  self.__diam_dm_proj = None # name for dm diameter in pupil plane
102 
103  # PXD cleanup
104  # internal kwrd
105  self.__pitch = None
106  """ inter-actuator space in pixels"""
107  self.__ntotact = None
108  """ total number of actuators"""
109  self.__influsize = None
110  """ influ function support size"""
111  self.__n1 = None
112  """ position of leftmost pixel in largest support"""
113  self.__n2 = None
114  """ position of rightmost pixel in largest support"""
115  self.__puppixoffset = None
116  self.__influ = None
117  """ influence functions"""
118  self.__xpos = None
119  """ x positions of influ functions"""
120  self.__ypos = None
121  """ y positions of influ functions"""
122  self.__i1 = None
123  self.__j1 = None
124  self.__influpos = None
125  self.__ninflu = None
126  """ Influence functions"""
127  self.__influstart = None # np.ndarray - Influence function handling
128 
129  # Registration
130  self.__G = 1.0
131  """ Magnifying factor"""
132  self.__theta = 0.0
133  """ WFS rotation angle in the pupil"""
134  self.__dx = 0.0
135  """ X axis misalignment in meters"""
136  self.__dy = 0.0
137  """ Y axis misalignment in meters"""
138 
139  def get_ap(self):
140  """ Get ap TODO!!!
141 
142  :return: (float) : TODO
143  """
144  return self.__ap
145 
146  def set_ap(self, ap):
147  """ Set ap TODO!!!
148 
149  :param ap: (float) : TODO
150  """
151  self.__ap = csu.enforce_arrayMultiDim(ap, (ap.shape[0], ap.shape[1]),
152  dtype=np.float32)
153 
154  ap = property(get_ap, set_ap)
155 
156  def get_nfunc(self):
157  """ Get nfunc TODO !!!
158 
159  :return: (int) : TODO
160  """
161  return self.__nfunc
162 
163  def set_nfunc(self, nfunc):
164  """ Set nfunc TODO !!!
165 
166  :param nfunc: (int) : TODO
167  """
168  self.__nfunc = csu.enforce_int(nfunc)
169 
170  nfunc = property(get_nfunc, set_nfunc)
171 
172  def get_pzt_extent(self):
173  """ Get extent of pzt dm in pich unit default = 5
174 
175  :return: (int) : extent pzt dm
176  """
177  return self.__pzt_extent
178 
179  def set_pzt_extent(self, p):
180  """ Set extent of pzt dm in pich unit default = 5
181 
182  :param p: (int) : extent pzt dm
183  """
184  self.__pzt_extent = csu.enforce_int(p)
185 
186  pzt_extent = property(get_pzt_extent, set_pzt_extent)
187 
189  return self.__segmented_mirror
190 
191  def set_segmented_mirror(self, b):
192  """ Define mirror influence functions to be cropped by the spiders
193  (more generally, pupil edges)
194 
195  :param p: (bool) : segment the mirror
196  """
197  self.__segmented_mirror = csu.enforce_or_cast_bool(b)
198 
199  segmented_mirror = property(get_segmented_mirror, set_segmented_mirror)
200 
201  def get_influ_type(self):
202  """ Get the influence function type for pzt DM
203 
204  :return: (str) : centroider type
205  """
206  return self.__influ_type
207 
208  def set_influ_type(self, t):
209  """ Set the influence function type for pzt DM
210 
211  :param t: (str) : centroider type
212  """
213  self.__influ_type = scons.check_enum(scons.InfluType, t)
214 
215  influ_type = property(get_influ_type, set_influ_type)
216 
217  def get_influpos(self):
218  """ Get the influence functions pixels that contributes to each DM pixel
219 
220  :return: (np.ndarray[ndim=1, drype=np.int32]) : influpos
221  """
222  return self.__influpos
223 
224  def set_influpos(self, ip):
225  """ Set the influence functions pixels that contributes to each DM pixel
226 
227  :param ip: (np.ndarray[ndim=1, drype=np.int32]) : influpos
228  """
229  self.__influpos = csu.enforce_array(ip, ip.size, dtype=np.int32)
230 
231  _influpos = property(get_influpos, set_influpos)
232 
233  def get_ninflu(self):
234  """ Get the number of influence functions pixels that contributes
235  to each DM pixel
236 
237  :return: (np.ndarray[ndim=1, drype=np.int32]) : ninflu
238  """
239  return self.__ninflu
240 
241  def set_ninflu(self, n):
242  """ Set the number of influence functions pixels that contributes
243  to each DM pixel
244 
245  :param n: (np.ndarray[ndim=1, drype=np.int32]) : ninflu
246  """
247  self.__ninflu = csu.enforce_array(n, n.size, dtype=np.int32)
248 
249  _ninflu = property(get_ninflu, set_ninflu)
250 
251  def get_influstart(self):
252  """ Get the index where to start a new DM pixel shape in the array influpos
253  to each DM pixel
254 
255  :return: (np.ndarray[ndim=1, drype=np.int32]) : influstart
256  """
257  return self.__influstart
258 
259  def set_influstart(self, n):
260  """ Set the index where to start a new DM pixel shape in the array influpos
261  to each DM pixel
262 
263  :param n: (np.ndarray[ndim=1, drype=np.int32]) : influstart
264  """
265  self.__influstart = csu.enforce_array(n, n.size, dtype=np.int32)
266 
267  _influstart = property(get_influstart, set_influstart)
268 
269  def get_gain(self):
270  """ Get the gain to apply to the actuators of the dm
271 
272  :return: (float) : gain
273  """
274  return self.__gain
275 
276  def set_gain(self, g):
277  """ Set the gain to apply to the actuators of the dm
278 
279  :param g: (float) : gain
280  """
281  self.__gain = csu.enforce_float(g)
282 
283  gain = property(get_gain, set_gain)
284 
285  def _get_dim_screen(self):
286  """ Get the phase screen dimension
287 
288  :return: (long) : phase screen dimension
289  """
290  return self.__dim_screen
291 
292  def _set_dim_screen(self, n):
293  """ Set the phase screen dimension
294 
295  :param n: (long) : phase screen dimension
296  """
297  self.__dim_screen = csu.enforce_int(n)
298 
299  _dim_screen = property(_get_dim_screen, _set_dim_screen)
300 
301  def get_nkl(self):
302  """ Get the number of KL modes used for computation of covmat in case of minimum variance controller
303 
304  :return: (long) : number of KL modes
305  """
306  return self.__nkl
307 
308  def set_nkl(self, n):
309  """ Set the number of KL modes used for computation of covmat in case of minimum variance controller
310 
311  :param n: (long) : number of KL modes
312  """
313  self.__nkl = csu.enforce_int(n)
314 
315  nkl = property(get_nkl, set_nkl)
316 
317  def get_type_kl(self):
318  """ Get the type of KL used for computation
319 
320  :return: (string) : KL types : kolmo or karman
321  """
322  return self.__type_kl
323 
324  def set_type_kl(self, t):
325  """ Set the type of KL used for computation
326 
327  :param t: (string) : KL types : kolmo or karman
328  """
329  self.__type_kl = scons.check_enum(scons.KLType, t)
330 
331  type_kl = property(get_type_kl, set_type_kl)
332 
333  def get_type(self):
334  """ Get the dm type
335 
336  :return: (str) : type of dm
337  """
338  return self.__type
339 
340  def set_type(self, t):
341  """ set the dm type
342 
343  :param t: (str) : type of dm
344  """
345  self.__type = scons.check_enum(scons.DmType, t)
346 
347  type = property(get_type, set_type)
348 
349  def get_type_pattern(self):
350  """ Get the pattern type
351 
352  :return: (str) : type of pattern
353  """
354  return self.__type_pattern
355 
356  def set_type_pattern(self, t):
357  """ set the pattern type
358 
359  :param t: (str) : type of pattern
360  """
361  self.__type_pattern = scons.check_enum(scons.PatternType, t)
362 
363  type_pattern = property(get_type_pattern, set_type_pattern)
364 
365  def get_file_influ_hdf5(self):
366  """ Get the name of hdf5 influence file
367 
368  :return: (str) : Hdf5 file influence name
369  """
370  return self.__file_influ_hdf5
371 
372  def set_file_influ_hdf5(self, f):
373  """ set the name of hdf5 influence file
374 
375  :param filename: (str) : Hdf5 file influence name
376  """
377  self.__file_influ_hdf5 = f
378 
379  file_influ_hdf5 = property(get_file_influ_hdf5, set_file_influ_hdf5)
380 
381  def get_center_name(self):
382  """ Get the name of hdf5 influence file
383 
384  :return: (str) : Hdf5 file influence name
385  """
386  return self.__center_name
387 
388  def set_center_name(self, f):
389  """ set the name of hdf5 influence file
390 
391  :param filename: (str) : Hdf5 file influence name
392  """
393  self.__center_name = f
394 
395  center_name = property(get_center_name, set_center_name)
396 
397  def get_cube_name(self):
398  """ Get the name of influence cube in hdf5
399 
400  :return: (str) : name of influence cube
401  """
402  return self.__cube_name
403 
404  def set_cube_name(self, cubename):
405  """ set the name of influence cube in hdf5
406 
407  :param cubename: (str) : name of influence cube
408  """
409  self.__cube_name = cubename
410 
411  cube_name = property(get_cube_name, set_cube_name)
412 
413  def get_x_name(self):
414  """ Get the name of x coord of influence fonction in file
415 
416  :return: (str) : name of x coord of influence
417  """
418  return self.__x_name
419 
420  def set_x_name(self, xname):
421  """ set the name of x coord of influence fonction in file
422 
423  :param t: (str) : name of x coord of influence
424  """
425  self.__x_name = xname
426 
427  x_name = property(get_x_name, set_x_name)
428 
429  def get_y_name(self):
430  """ Get the name of y coord of influence fonction in file
431 
432  :return: (str) : name of y coord of influence
433  """
434  return self.__y_name
435 
436  def set_y_name(self, yname):
437  """ set the name of y coord of influence fonction in file
438 
439  :param yname: (str) : name of y coord of influence
440  """
441  self.__y_name = yname
442 
443  y_name = property(get_y_name, set_y_name)
444 
445  def get_influ_res(self):
446  """ Get the name of influence fonction resolution in file
447 
448  :return: (str) : name of resoltion (meter/pixel) of influence
449  """
450  return self.__influ_res
451 
452  def set_influ_res(self, res):
453  """ set the name of influence fonction resolution in file
454 
455  :param res: (str) : name of resoltion (meter/pixel) of influence
456  """
457  self.__influ_res = res
458 
459  influ_res = property(get_influ_res, set_influ_res)
460 
461  def get_diam_dm(self):
462  """ Get the name of dm diameter in file
463 
464  :return: (str) : name of diameter (meter) dm
465  """
466  return self.__diam_dm
467 
468  def set_diam_dm(self, di):
469  """ set the name of dm diameter in file
470 
471  :param di: (str) : name of diameter (meter) dm
472  """
473  self.__diam_dm = di
474 
475  diam_dm = property(get_diam_dm, set_diam_dm)
476 
477  def get_diam_dm_proj(self):
478  """ Get the name of dm diameter projet on puille in file
479 
480  :return: (str) : name of diameter (meter in pupil plan) dm
481  """
482  return self.__diam_dm_proj
483 
484  def set_diam_dm_proj(self, dp):
485  """ set the name of dm diameter projet on puille in file
486 
487  :param dp: (str) : name of diameter (meter in pupil plan) dm
488  """
489  self.__diam_dm_proj = dp
490 
491  diam_dm_proj = property(get_diam_dm_proj, set_diam_dm_proj)
492 
493  def get_nact(self):
494  """ Get the number of actuator
495 
496  :return: (long) : number of actuators in the dm
497  """
498  return self.__nact
499 
500  def set_nact(self, n):
501  """ set the number of actuator
502 
503  :param n: (long) : number of actuators in the dm
504  """
505  self.__nact = csu.enforce_int(n)
506 
507  nact = property(get_nact, set_nact)
508 
509  def get_margin_out(self):
510  """ Get the margin for outside actuator select
511 
512  :return: (float) : unit is actuator pitch (+) for extra (-) for intra
513  """
514  return self.__margin_out
515 
516  def set_margin_out(self, n):
517  """ set the margin for outside actuator select
518 
519  :param n: (float) : unit is actuator pitch (+) for extra (-) for intra
520  """
521  self.__margin_out = csu.enforce_float(n)
522 
523  margin_out = property(get_margin_out, set_margin_out)
524 
525  def get_margin_in(self):
526  """ Get the margin for inside actuator select (central obstruction)
527 
528  :return: (float) : unit is actuator pitch (+) for extra (-) for intra
529  """
530  return self.__margin_in
531 
532  def set_margin_in(self, n):
533  """ set the margin for inside actuator select (central obstruction)
534 
535  :param n: (float) : unit is actuator pitch (+) for extra (-) for intra
536  """
537  self.__margin_in = csu.enforce_float(n)
538 
539  margin_in = property(get_margin_in, set_margin_in)
540 
541  def get_alt(self):
542  """ Get the conjugaison altitude
543 
544  :return: (float) : conjugaison altitude (im m)
545  """
546  return self.__alt
547 
548  def set_alt(self, a):
549  """ set the conjugaison altitude
550 
551  :param a: (float) : conjugaison altitude (im m)
552  """
553  self.__alt = csu.enforce_float(a)
554 
555  alt = property(get_alt, set_alt)
556 
557  def get_thresh(self):
558  """ Get the threshold on response for selection
559 
560  :return: (float) : threshold on response for selection (<1)
561  """
562  return self.__thresh
563 
564  def set_thresh(self, t):
565  """ set the threshold on response for selection
566 
567  :param t: (float) : threshold on response for selection (<1)
568  """
569  self.__thresh = csu.enforce_float(t)
570 
571  thresh = property(get_thresh, set_thresh)
572 
573  def get_coupling(self):
574  """ Get the actuators coupling
575 
576  :return: (float) : actuators coupling (<0.3)
577  """
578  return self.__coupling
579 
580  def set_coupling(self, c):
581  """ set the actuators coupling
582 
583  :param c: (float) : actuators coupling (<0.3)
584  """
585  self.__coupling = csu.enforce_float(c)
586 
587  coupling = property(get_coupling, set_coupling)
588 
589  def get_unitpervolt(self):
590  """ Get the Influence function sensitivity
591 
592  :return: (float) : Influence function sensitivity in unit/volt
593  """
594  return self.__unitpervolt
595 
596  def set_unitpervolt(self, u):
597  """ set the Influence function sensitivity
598 
599  :param u: (float) : Influence function sensitivity in unit/volt
600  """
601  self.__unitpervolt = csu.enforce_float(u)
602 
603  unitpervolt = property(get_unitpervolt, set_unitpervolt)
604 
605  def get_push4imat(self):
606  """ Get the nominal voltage for imat
607 
608  :return: (float) : nominal voltage for imat
609  """
610  return self.__push4imat
611 
612  def set_push4imat(self, p):
613  """ set the nominal voltage for imat
614 
615  :param p: (float) : nominal voltage for imat
616  """
617  self.__push4imat = csu.enforce_float(p)
618 
619  push4imat = property(get_push4imat, set_push4imat)
620 
621  def get_ntotact(self):
622  """ Get the total number of actuators
623 
624  :return: (long) : total number of actuators
625  """
626  return self.__ntotact
627 
628  def set_ntotact(self, n):
629  """ set the total number of actuators
630 
631  :param n: (long) : total number of actuators
632  """
633  self.__ntotact = csu.enforce_int(n)
634 
635  _ntotact = property(get_ntotact, set_ntotact)
636 
637  def get_pitch(self):
638  """ Get the actuators pitch [pixels]
639 
640  :return: (float) : actuators pitch [pixels]
641  """
642  return self.__pitch
643 
644  def set_pitch(self, p):
645  """ set the actuators pitch [pixels]
646 
647  :param p: (float) : actuators pitch [pixels]
648  """
649  self.__pitch = csu.enforce_float(p)
650 
651  _pitch = property(get_pitch, set_pitch)
652 
653  def get_influsize(self):
654  """ Get the actuators influsize [pixels]
655 
656  :return: (int) : actuators influsize [pixels]
657  """
658  return self.__influsize
659 
660  def set_influsize(self, s):
661  """ set the actuators influsize [pixels]
662 
663  :param s: (int) : actuators influsize [pixels]
664  """
665  self.__influsize = csu.enforce_int(s)
666 
667  _influsize = property(get_influsize, set_influsize)
668 
669  def get_n1(self):
670  """ Get the position of bottom left pixel in the largest support
671 
672  :return: (int) : actuators n1 [pixels]
673  """
674  return self.__n1
675 
676  def set_n1(self, n):
677  """ set the position of bottom left pixel in the largest support
678 
679  :param n: (int) : actuators n1 [pixels]
680  """
681  self.__n1 = csu.enforce_int(n)
682 
683  _n1 = property(get_n1, set_n1)
684 
685  def get_n2(self):
686  """ Get the position of bottom right pixel in the largest support
687 
688  :return: (int) : actuators n2 [pixels]
689  """
690  return self.__n2
691 
692  def set_n2(self, n):
693  """ set the position of bottom right pixel in the largest support
694 
695  :param n: (int) : actuators n2 [pixels]
696  """
697  self.__n2 = csu.enforce_int(n)
698 
699  _n2 = property(get_n2, set_n2)
700 
701  def get_xpos(self):
702  """ Get the x positions of influ functions (lower left corner)
703 
704  :return: (np.ndarray[ndim=1,dtype=np.float32_t]) : x positions of influ functions
705  """
706  return self.__xpos
707 
708  def set_xpos(self, xpos):
709  """ Set the x positions of influ functions (lower left corner)
710 
711  :param xpos: (np.ndarray[ndim=1,dtype=np.float32_t]) : x positions of influ functions
712  """
713  self.__xpos = csu.enforce_array(xpos, self.__ntotact, dtype=np.float32)
714 
715  _xpos = property(get_xpos, set_xpos)
716 
717  def get_ypos(self):
718  """ Get the y positions of influ functions (lower left corner)
719 
720  :return: (np.ndarray[ndim=1,dtype=np.float32_t]) : y positions of influ functions
721  """
722  return self.__ypos
723 
724  def set_ypos(self, ypos):
725  """ Set the y positions of influ functions (lower left corner)
726 
727  :param ypos: (np.ndarray[ndim=1,dtype=np.float32_t]) : y positions of influ functions
728  """
729  self.__ypos = csu.enforce_array(ypos, self.__ntotact, dtype=np.float32)
730 
731  _ypos = property(get_ypos, set_ypos)
732 
733  def get_i1(self):
734  """ Get the X-position of the bottom left corner of each influence function
735 
736  :return: (np.ndarray[ndim=1,dtype=np.int32_t]) :
737  """
738  return self.__i1
739 
740  def set_i1(self, i1):
741  """ Set the X-position of the bottom left corner of each influence function
742 
743  :param i1: (np.ndarray[ndim=1,dtype=np.int32_t]) :
744  """
745  self.__i1 = csu.enforce_array(i1, self.__ntotact, dtype=np.int32)
746 
747  _i1 = property(get_i1, set_i1)
748 
749  def get_j1(self):
750  """ Get the Y-position of the bottom left corner of each influence function
751 
752  :return: (np.ndarray[ndim=1,dtype=np.int32_t]) :
753  """
754  return self.__j1
755 
756  def set_j1(self, j1):
757  """ Set the Y-position of the bottom left corner of each influence function
758 
759  :param j1: (np.ndarray[ndim=1,dtype=np.int32_t]) :
760  """
761  self.__j1 = csu.enforce_array(j1, self.__ntotact, dtype=np.int32)
762 
763  _j1 = property(get_j1, set_j1)
764 
765  def get_influ(self):
766  """ Get the influence function
767 
768  :return: (np.ndarray[ndim=3,dtype=np.float32_t]) : influence function
769  """
770  return self.__influ
771 
772  def set_influ(self, influ):
773  """ Set the influence function
774 
775  :param influ: (np.ndarray[ndim=3,dtype=np.float32_t]) : influence function
776  """
777  self.__influ = csu.enforce_arrayMultiDim(influ,
778  (self.__influsize, self.__influsize,
779  self._ntotact), dtype=np.float32)
780 
781  _influ = property(get_influ, set_influ)
782 
783  def get_pupoffset(self):
784  """ Get the pupil offset in meters
785 
786  :return: (np.ndarray[ndim=1,dtype=np.float32_t]) : offsets [m]
787  """
788  return self.__pupoffset
789 
790  def set_pupoffset(self, off):
791  """ Set the pupil offset in meters
792 
793  :param off: (np.ndarray[ndim=1,dtype=np.float32_t]) : offsets [m]
794  """
795  self.__pupoffset = csu.enforce_array(off, 2, dtype=np.float32)
796 
797  pupoffset = property(get_pupoffset, set_pupoffset)
798 
799  def get_puppixoffset(self):
800  """ Get the pupil offset in pixels
801 
802  :return: (np.ndarray[ndim=1,dtype=np.float32_t]) : offsets [pixels]
803  """
804  return self.__puppixoffset
805 
806  def set_puppixoffset(self, off):
807  """ Set the pupil offset in pixels
808 
809  :param off: (np.ndarray[ndim=1,dtype=np.float32_t]) : offsets [pixels]
810  """
811  self.__puppixoffset = csu.enforce_array(off, 2, dtype=np.float32)
812 
813  _puppixoffset = property(get_puppixoffset, set_puppixoffset)
814 
815  def get_outscl(self):
816  """ Get the outer scale for KL with Von Karman spectrum
817 
818  :return: (float) : outer scale [m]
819  """
820  return self.__outscl
821 
822  def set_outscl(self, L0):
823  """ Set the outer scale for KL with Von Karman spectrum
824 
825  :param L0: (float) : outer scale [m]
826  """
827  self.__outscl = csu.enforce_float(L0)
828 
829  outscl = property(get_outscl, set_outscl)
830 
831  def get_nr(self):
832  """ Get the number of radial points for KL
833 
834  :return: (int) : number of radial points
835  """
836  return self.__nr
837 
838  def set_nr(self, n):
839  """ Set the number of radial points for KL
840 
841  :param n: (int) : number of radial points
842  """
843  self.__nr = csu.enforce_int(n)
844 
845  _nr = property(get_nr, set_nr)
846 
847  def get_npp(self):
848  """ Get the number of elements (?) for KL
849 
850  :return: (int) : number of elements
851  """
852  return self.__npp
853 
854  def set_npp(self, n):
855  """ Set the number of elements (?) for KL
856 
857  :param n: (int) : number of elements
858  """
859  self.__npp = csu.enforce_int(n)
860 
861  _npp = property(get_npp, set_npp)
862 
863  def get_ncp(self):
864  """ Get the dimension of grid (?)
865 
866  :return: (int) : dimension
867  """
868  return self.__ncp
869 
870  def set_ncp(self, n):
871  """ Set the dimension of grid (?)
872 
873  :param n: (int) : dimension
874  """
875  self.__ncp = csu.enforce_int(n)
876 
877  _ncp = property(get_ncp, set_ncp)
878 
879  def get_ord(self):
880  """ Get the radial orders of the basis
881 
882  :return: (int) : radial order of the basis
883  """
884  return self.__ord
885 
886  def set_ord(self, n):
887  """ Set the radial orders of the basis
888 
889  :param n: (int) : radial order of the basis
890  """
891  self.__ord = csu.enforce_array(n, n.size, dtype=np.int32)
892 
893  _ord = property(get_ord, set_ord)
894 
895  def get_rabas(self):
896  """ Get the radial array of the KL basis
897 
898  :return: (np.ndarray[ndim=1,dtype=np.float32_t]) : radial array
899  """
900  return self.__rabas
901 
902  def set_rabas(self, r):
903  """ Set the radial array of the KL basis
904 
905  :param r: (np.ndarray[ndim=1,dtype=np.float32_t]) : radial array
906  """
907  self.__rabas = csu.enforce_arrayMultiDim(r, r.shape, dtype=np.float32)
908 
909  _rabas = property(get_rabas, set_rabas)
910 
911  def get_azbas(self):
912  """ Get the azimuthal array of the KL basis
913 
914  :return: (np.ndarray[ndim=1,dtype=np.float32_t]) : azimuthal array
915  """
916  return self.__azbas
917 
918  def set_azbas(self, r):
919  """ Set the azimuthal array of the KL basis
920 
921  :param r: (np.ndarray[ndim=1,dtype=np.float32_t]) : azimuthal array
922  """
923  self.__azbas = csu.enforce_arrayMultiDim(r, r.shape, dtype=np.float32)
924 
925  _azbas = property(get_azbas, set_azbas)
926 
927  def get_cr(self):
928  """ Get the radial coordinates in carthesian grid
929 
930  :return: (np.ndarray[ndim=1,dtype=np.float32_t]) : radial coordinates in carthesian grid
931  """
932  return self.__cr
933 
934  def set_cr(self, r):
935  """ Set the radial coordinates in carthesian grid
936 
937  :param r: (np.ndarray[ndim=1,dtype=np.float32_t]) : radial coordinates in carthesian grid
938  """
939  self.__cr = csu.enforce_arrayMultiDim(r, r.shape, dtype=np.float32)
940 
941  _cr = property(get_cr, set_cr)
942 
943  def get_cp(self):
944  """ Get the phi coordinates in carthesian grid
945 
946  :return: (np.ndarray[ndim=1,dtype=np.float32_t]) : phi coordinates in carthesian grid
947  """
948  return self.__cp
949 
950  def set_cp(self, r):
951  """ Set the phi coordinates in carthesian grid
952 
953  :param r: (np.ndarray[ndim=1,dtype=np.float32_t]) : phi coordinates in carthesian grid
954  """
955  self.__cp = csu.enforce_arrayMultiDim(r, r.shape, dtype=np.float32)
956 
957  _cp = property(get_cp, set_cp)
958 
959  def get_G(self):
960  """ Get the magnifying factor
961 
962  :return: (float) : magnifying factor
963  """
964  return self.__G
965 
966  def set_G(self, G):
967  """ Set the magnifying factor
968 
969  :param G: (float) : magnifying factor
970  """
971  self.__G = csu.enforce_float(G)
972 
973  G = property(get_G, set_G)
974 
975  def get_theta(self):
976  """ Get the rotation angle in the pupil
977 
978  :return: (float) : rotation angle (rad)
979  """
980  return self.__theta
981 
982  def set_theta(self, theta):
983  """ Set the rotation angle in the pupil
984 
985  :param theta: (float) : rotation angle (rad)
986  """
987  self.__theta = csu.enforce_float(theta)
988 
989  theta = property(get_theta, set_theta)
990 
991  def get_dx(self):
992  """ Get the X axis misalignment
993 
994  :return: (float) : dx (pix)
995  """
996  return self.__dx
997 
998  def set_dx(self, dx):
999  """ Set the X axis misalignment
1000 
1001  :param dx: (float) : dx (pix)
1002  """
1003  self.__dx = csu.enforce_float(dx)
1004 
1005  dx = property(get_dx, set_dx)
1006 
1007  def get_dy(self):
1008  """ Get the Y axis misalignment
1009 
1010  :return: (float) : dy (pix)
1011  """
1012  return self.__dy
1013 
1014  def set_dy(self, dy):
1015  """ Set the Y axis misalignment
1016 
1017  :param dy: (float) : dy (pix)
1018  """
1019  self.__dy = csu.enforce_float(dy)
1020 
1021  dy = property(get_dy, set_dy)
shesha.config.PDMS.Param_dm.__unitpervolt
__unitpervolt
Definition: PDMS.py:60
shesha.config.PDMS.Param_dm.__gain
__gain
Definition: PDMS.py:55
shesha.config.PDMS.Param_dm.__i1
__i1
Definition: PDMS.py:122
shesha.config.PDMS.Param_dm.set_influ_res
def set_influ_res(self, res)
set the name of influence fonction resolution in file
Definition: PDMS.py:472
shesha.config.PDMS.Param_dm.set_file_influ_hdf5
def set_file_influ_hdf5(self, f)
set the name of hdf5 influence file
Definition: PDMS.py:392
shesha.config.PDMS.Param_dm.get_center_name
def get_center_name(self)
Get the name of hdf5 influence file.
Definition: PDMS.py:401
shesha.config.PDMS.Param_dm.set_outscl
def set_outscl(self, L0)
Set the outer scale for KL with Von Karman spectrum.
Definition: PDMS.py:875
shesha.config.PDMS.Param_dm.get_ord
def get_ord(self)
Get the radial orders of the basis.
Definition: PDMS.py:941
shesha.config.PDMS.Param_dm.set_influ_type
def set_influ_type(self, t)
Set the influence function type for pzt DM.
Definition: PDMS.py:212
shesha.config.PDMS.Param_dm.__azbas
__azbas
Definition: PDMS.py:80
shesha.config.PDMS.Param_dm.__dy
__dy
Definition: PDMS.py:136
shesha.config.PDMS.Param_dm.__influ
__influ
Definition: PDMS.py:116
shesha.config.PDMS.Param_dm.__j1
__j1
Definition: PDMS.py:123
shesha.config.PDMS.Param_dm.get_gain
def get_gain(self)
Get the gain to apply to the actuators of the dm.
Definition: PDMS.py:282
shesha.config.PDMS.Param_dm.get_cube_name
def get_cube_name(self)
Get the name of influence cube in hdf5.
Definition: PDMS.py:417
shesha.config.PDMS.Param_dm.set_cp
def set_cp(self, r)
Set the phi coordinates in carthesian grid.
Definition: PDMS.py:1024
shesha.config.PDMS.Param_dm.get_npp
def get_npp(self)
Get the number of elements (?) for KL.
Definition: PDMS.py:903
shesha.config.PDMS.Param_dm.__puppixoffset
__puppixoffset
Definition: PDMS.py:115
shesha.config.PDMS.Param_dm.set_ntotact
def set_ntotact(self, n)
set the total number of actuators
Definition: PDMS.py:648
shesha.config.PDMS.Param_dm.get_ntotact
def get_ntotact(self)
Get the total number of actuators.
Definition: PDMS.py:641
shesha.config.PDMS.Param_dm.set_type_kl
def set_type_kl(self, t)
Set the type of KL used for computation.
Definition: PDMS.py:344
shesha.config.PDMS.Param_dm.get_alt
def get_alt(self)
Get the conjugaison altitude.
Definition: PDMS.py:561
shesha.config.PDMS.Param_dm.__rabas
__rabas
Definition: PDMS.py:79
shesha.config.PDMS.Param_dm.set_rabas
def set_rabas(self, r)
Set the radial array of the KL basis.
Definition: PDMS.py:967
shesha.config.PDMS.Param_dm.__dx
__dx
Definition: PDMS.py:134
shesha.config.PDMS.Param_dm.get_rabas
def get_rabas(self)
Get the radial array of the KL basis.
Definition: PDMS.py:960
shesha.config.PDMS.Param_dm.get_y_name
def get_y_name(self)
Get the name of y coord of influence fonction in file.
Definition: PDMS.py:449
shesha.config.PDMS.Param_dm.get_i1
def get_i1(self)
Get the X-position of the bottom left corner of each influence function.
Definition: PDMS.py:774
shesha.config.PDMS.Param_dm.get_outscl
def get_outscl(self)
Get the outer scale for KL with Von Karman spectrum.
Definition: PDMS.py:868
shesha.config.PDMS.Param_dm.get_influ
def get_influ(self)
Get the influence function.
Definition: PDMS.py:812
shesha.config.PDMS.Param_dm.set_ord
def set_ord(self, n)
Set the radial orders of the basis.
Definition: PDMS.py:948
shesha.config.PDMS.Param_dm.set_n2
def set_n2(self, n)
set the position of bottom right pixel in the largest support
Definition: PDMS.py:724
shesha.config.PDMS.Param_dm.__cr
__cr
Definition: PDMS.py:82
shesha.config.PDMS.Param_dm.__type_pattern
__type_pattern
Definition: PDMS.py:89
shesha.config.PDMS.Param_dm.__influpos
__influpos
Definition: PDMS.py:124
shesha.config.PDMS.Param_dm.__type
__type
Definition: PDMS.py:88
shesha.config.PDMS.Param_dm.get_influ_type
def get_influ_type(self)
Get the influence function type for pzt DM.
Definition: PDMS.py:205
shesha.config.PDMS.Param_dm.get_influsize
def get_influsize(self)
Get the actuators influsize [pixels].
Definition: PDMS.py:679
shesha.config.PDMS.Param_dm.set_ypos
def set_ypos(self, ypos)
Set the y positions of influ functions (lower left corner)
Definition: PDMS.py:762
shesha.config.PDMS.Param_dm.get_type
def get_type(self)
Get the dm type.
Definition: PDMS.py:353
shesha.config.PDMS.Param_dm.set_gain
def set_gain(self, g)
Set the gain to apply to the actuators of the dm.
Definition: PDMS.py:289
shesha.config.PDMS.Param_dm.set_ap
def set_ap(self, ap)
Set ap TODO!!!
Definition: PDMS.py:150
shesha.config.PDMS.Param_dm.set_nact
def set_nact(self, n)
set the number of actuator
Definition: PDMS.py:520
shesha.config.PDMS.Param_dm.__diam_dm_proj
__diam_dm_proj
Definition: PDMS.py:101
shesha.config.PDMS.Param_dm.set_pitch
def set_pitch(self, p)
set the actuators pitch [pixels]
Definition: PDMS.py:667
shesha.config.PDMS.Param_dm.__ypos
__ypos
Definition: PDMS.py:120
shesha.config.PDMS.Param_dm.get_ninflu
def get_ninflu(self)
Get the number of influence functions pixels that contributes to each DM pixel.
Definition: PDMS.py:241
shesha.config.PDMS.Param_dm.__coupling
__coupling
Definition: PDMS.py:54
shesha.constants
Numerical constants for shesha and config enumerations for safe-typing.
Definition: constants.py:1
shesha.config.PDMS.Param_dm.__xpos
__xpos
Definition: PDMS.py:118
shesha.config.PDMS.Param_dm.get_n1
def get_n1(self)
Get the position of bottom left pixel in the largest support.
Definition: PDMS.py:698
shesha.config.PDMS.Param_dm.get_ap
def get_ap(self)
Get ap TODO!!!
Definition: PDMS.py:143
shesha.config.PDMS.Param_dm.get_pitch
def get_pitch(self)
Get the actuators pitch [pixels].
Definition: PDMS.py:660
shesha.config.PDMS.Param_dm.get_nkl
def get_nkl(self)
Get the number of KL modes used for computation of covmat in case of minimum variance controller.
Definition: PDMS.py:321
shesha.config.PDMS.Param_dm.__y_name
__y_name
Definition: PDMS.py:98
shesha.config.PDMS.Param_dm.set_type
def set_type(self, t)
set the dm type
Definition: PDMS.py:360
shesha.config.PDMS.Param_dm.set_cr
def set_cr(self, r)
Set the radial coordinates in carthesian grid.
Definition: PDMS.py:1005
shesha.config.PDMS.Param_dm.get_margin_out
def get_margin_out(self)
Get the margin for outside actuator select.
Definition: PDMS.py:529
shesha.config.PDMS.Param_dm.__influ_type
__influ_type
Definition: PDMS.py:90
shesha.config.PDMS.Param_dm.get_segmented_mirror
def get_segmented_mirror(self)
Definition: PDMS.py:188
shesha.config.PDMS.Param_dm.get_azbas
def get_azbas(self)
Get the azimuthal array of the KL basis.
Definition: PDMS.py:979
shesha.config.PDMS.Param_dm.__nfunc
__nfunc
Definition: PDMS.py:73
shesha.config.PDMS.Param_dm.get_puppixoffset
def get_puppixoffset(self)
Get the pupil offset in pixels.
Definition: PDMS.py:849
shesha.config.PDMS.Param_dm.set_xpos
def set_xpos(self, xpos)
Set the x positions of influ functions (lower left corner)
Definition: PDMS.py:743
shesha.config.PDMS.Param_dm.set_center_name
def set_center_name(self, f)
set the name of hdf5 influence file
Definition: PDMS.py:408
shesha.config.PDMS.Param_dm.set_ninflu
def set_ninflu(self, n)
Set the number of influence functions pixels that contributes to each DM pixel.
Definition: PDMS.py:249
shesha.config.PDMS.Param_dm.__margin_in
__margin_in
Definition: PDMS.py:68
shesha.config.PDMS.Param_dm
P-Class (parametres) Param_dm.
Definition: PDMS.py:46
shesha.config.PDMS.Param_dm.__pupoffset
__pupoffset
Definition: PDMS.py:56
shesha.config.PDMS.Param_dm.__cube_name
__cube_name
Definition: PDMS.py:96
shesha.config.PDMS.Param_dm.get_nact
def get_nact(self)
Get the number of actuator.
Definition: PDMS.py:513
shesha.config.PDMS.Param_dm.set_n1
def set_n1(self, n)
set the position of bottom left pixel in the largest support
Definition: PDMS.py:705
shesha.config.PDMS.Param_dm.set_dy
def set_dy(self, dy)
Set the Y axis misalignment.
Definition: PDMS.py:1091
shesha.config.PDMS.Param_dm.set_segmented_mirror
def set_segmented_mirror(self, b)
Define mirror influence functions to be cropped by the spiders (more generally, pupil edges)
Definition: PDMS.py:196
shesha.config.PDMS.Param_dm.__push4imat
__push4imat
Definition: PDMS.py:63
shesha.config.PDMS.Param_dm.get_theta
def get_theta(self)
Get the rotation angle in the pupil.
Definition: PDMS.py:1052
shesha.config.PDMS.Param_dm.__influstart
__influstart
Definition: PDMS.py:127
shesha.config.PDMS.Param_dm.get_G
def get_G(self)
Get the magnifying factor.
Definition: PDMS.py:1036
shesha.config.PDMS.Param_dm.get_push4imat
def get_push4imat(self)
Get the nominal voltage for imat.
Definition: PDMS.py:625
shesha.config.PDMS.Param_dm.__alt
__alt
Definition: PDMS.py:52
shesha.config.PDMS.Param_dm.set_dx
def set_dx(self, dx)
Set the X axis misalignment.
Definition: PDMS.py:1075
shesha.config.PDMS.Param_dm.set_G
def set_G(self, G)
Set the magnifying factor.
Definition: PDMS.py:1043
shesha.config.PDMS.Param_dm.__G
__G
Definition: PDMS.py:130
shesha.config.PDMS.Param_dm.__type_kl
__type_kl
Definition: PDMS.py:91
shesha.config.PDMS.Param_dm.set_theta
def set_theta(self, theta)
Set the rotation angle in the pupil.
Definition: PDMS.py:1059
shesha.config.PDMS.Param_dm.__ap
__ap
Definition: PDMS.py:84
shesha.config.PDMS.Param_dm.get_ypos
def get_ypos(self)
Get the y positions of influ functions (lower left corner)
Definition: PDMS.py:755
shesha.config.PDMS.Param_dm.get_type_pattern
def get_type_pattern(self)
Get the pattern type.
Definition: PDMS.py:369
shesha.config.PDMS.Param_dm.get_margin_in
def get_margin_in(self)
Get the margin for inside actuator select (central obstruction)
Definition: PDMS.py:545
shesha.config.PDMS.Param_dm.__center_name
__center_name
Definition: PDMS.py:95
shesha.config.PDMS.Param_dm.__margin_out
__margin_out
Definition: PDMS.py:66
shesha.config.PDMS.Param_dm.set_npp
def set_npp(self, n)
Set the number of elements (?) for KL.
Definition: PDMS.py:910
shesha.config.PDMS.Param_dm._ntotact
_ntotact
Definition: PDMS.py:654
shesha.config.PDMS.Param_dm.set_influ
def set_influ(self, influ)
Set the influence function.
Definition: PDMS.py:819
shesha.config.PDMS.Param_dm.set_coupling
def set_coupling(self, c)
set the actuators coupling
Definition: PDMS.py:600
shesha.config.PDMS.Param_dm.get_influ_res
def get_influ_res(self)
Get the name of influence fonction resolution in file.
Definition: PDMS.py:465
shesha.config.PDMS.Param_dm.__pitch
__pitch
Definition: PDMS.py:105
shesha.config.PDMS.Param_dm.__ntotact
__ntotact
Definition: PDMS.py:107
shesha.config.PDMS.Param_dm.__ord
__ord
Definition: PDMS.py:78
shesha.config.PDMS.Param_dm.__dim_screen
__dim_screen
Definition: PDMS.py:57
shesha.config.PDMS.Param_dm.set_nr
def set_nr(self, n)
Set the number of radial points for KL.
Definition: PDMS.py:891
shesha.config.PDMS.Param_dm.set_y_name
def set_y_name(self, yname)
set the name of y coord of influence fonction in file
Definition: PDMS.py:456
shesha.config.PDMS.Param_dm.get_pupoffset
def get_pupoffset(self)
Get the pupil offset in meters.
Definition: PDMS.py:833
shesha.config.PDMS.Param_dm.get_diam_dm
def get_diam_dm(self)
Get the name of dm diameter in file.
Definition: PDMS.py:481
shesha.config.PDMS.Param_dm.get_influstart
def get_influstart(self)
Get the index where to start a new DM pixel shape in the array influpos to each DM pixel.
Definition: PDMS.py:262
shesha.config.PDMS.Param_dm.__influsize
__influsize
Definition: PDMS.py:109
shesha.config.PDMS.Param_dm.set_thresh
def set_thresh(self, t)
set the threshold on response for selection
Definition: PDMS.py:584
shesha.config.PDMS.Param_dm.__segmented_mirror
__segmented_mirror
Definition: PDMS.py:70
shesha.config.PDMS.Param_dm.set_j1
def set_j1(self, j1)
Set the Y-position of the bottom left corner of each influence function.
Definition: PDMS.py:800
shesha.config.PDMS.Param_dm.get_unitpervolt
def get_unitpervolt(self)
Get the Influence function sensitivity.
Definition: PDMS.py:609
shesha.config.PDMS.Param_dm.__diam_dm
__diam_dm
Definition: PDMS.py:100
shesha.config.PDMS.Param_dm.set_margin_out
def set_margin_out(self, n)
set the margin for outside actuator select
Definition: PDMS.py:536
shesha.config.PDMS.Param_dm.__nkl
__nkl
Definition: PDMS.py:74
shesha.config.PDMS.Param_dm.__file_influ_hdf5
__file_influ_hdf5
Definition: PDMS.py:94
shesha.config.PDMS.Param_dm.set_diam_dm_proj
def set_diam_dm_proj(self, dp)
set the name of dm diameter projet on puille in file
Definition: PDMS.py:504
shesha.config.PDMS.Param_dm.__outscl
__outscl
Definition: PDMS.py:75
shesha.config.PDMS.Param_dm.__thresh
__thresh
Definition: PDMS.py:53
shesha.config.PDMS.Param_dm.set_ncp
def set_ncp(self, n)
Set the dimension of grid (?)
Definition: PDMS.py:929
shesha.config.PDMS.Param_dm.get_xpos
def get_xpos(self)
Get the x positions of influ functions (lower left corner)
Definition: PDMS.py:736
shesha.config.PDMS.Param_dm.__npp
__npp
Definition: PDMS.py:77
shesha.config.PDMS.Param_dm.get_diam_dm_proj
def get_diam_dm_proj(self)
Get the name of dm diameter projet on puille in file.
Definition: PDMS.py:497
shesha.config.PDMS.Param_dm.set_push4imat
def set_push4imat(self, p)
set the nominal voltage for imat
Definition: PDMS.py:632
shesha.config.PDMS.Param_dm.__nr
__nr
Definition: PDMS.py:76
shesha.config.PDMS.Param_dm.__n1
__n1
Definition: PDMS.py:111
shesha.config.PDMS.Param_dm.get_dx
def get_dx(self)
Get the X axis misalignment.
Definition: PDMS.py:1068
shesha.config.PDMS.Param_dm.get_j1
def get_j1(self)
Get the Y-position of the bottom left corner of each influence function.
Definition: PDMS.py:793
shesha.config.PDMS.Param_dm.__cp
__cp
Definition: PDMS.py:83
shesha.config.PDMS.Param_dm.set_influstart
def set_influstart(self, n)
Set the index where to start a new DM pixel shape in the array influpos to each DM pixel.
Definition: PDMS.py:270
shesha.config.PDMS.Param_dm.set_type_pattern
def set_type_pattern(self, t)
set the pattern type
Definition: PDMS.py:376
shesha.config.PDMS.Param_dm.set_puppixoffset
def set_puppixoffset(self, off)
Set the pupil offset in pixels.
Definition: PDMS.py:856
shesha.config.PDMS.Param_dm.get_n2
def get_n2(self)
Get the position of bottom right pixel in the largest support.
Definition: PDMS.py:717
shesha.config.PDMS.Param_dm.get_cr
def get_cr(self)
Get the radial coordinates in carthesian grid.
Definition: PDMS.py:998
shesha.config.PDMS.Param_dm.set_margin_in
def set_margin_in(self, n)
set the margin for inside actuator select (central obstruction)
Definition: PDMS.py:552
shesha.config.PDMS.Param_dm.set_alt
def set_alt(self, a)
set the conjugaison altitude
Definition: PDMS.py:568
shesha.config.PDMS.Param_dm.set_pupoffset
def set_pupoffset(self, off)
Set the pupil offset in meters.
Definition: PDMS.py:840
shesha.config.PDMS.Param_dm.__theta
__theta
Definition: PDMS.py:132
shesha.config.PDMS.Param_dm.set_unitpervolt
def set_unitpervolt(self, u)
set the Influence function sensitivity
Definition: PDMS.py:616
shesha.config.PDMS.Param_dm.set_i1
def set_i1(self, i1)
Set the X-position of the bottom left corner of each influence function.
Definition: PDMS.py:781
shesha.config.PDMS.Param_dm.get_x_name
def get_x_name(self)
Get the name of x coord of influence fonction in file.
Definition: PDMS.py:433
shesha.config.PDMS.Param_dm.get_type_kl
def get_type_kl(self)
Get the type of KL used for computation.
Definition: PDMS.py:337
shesha.config.PDMS.Param_dm.__init__
def __init__(self)
Definition: PDMS.py:48
shesha.config.PDMS.Param_dm.set_nkl
def set_nkl(self, n)
Set the number of KL modes used for computation of covmat in case of minimum variance controller.
Definition: PDMS.py:328
shesha.config.PDMS.Param_dm.__nact
__nact
Definition: PDMS.py:51
shesha.config.PDMS.Param_dm.set_azbas
def set_azbas(self, r)
Set the azimuthal array of the KL basis.
Definition: PDMS.py:986
shesha.config.PDMS.Param_dm.set_x_name
def set_x_name(self, xname)
set the name of x coord of influence fonction in file
Definition: PDMS.py:440
shesha.config.PDMS.Param_dm.set_nfunc
def set_nfunc(self, nfunc)
Set nfunc TODO !!!
Definition: PDMS.py:167
shesha.config.PDMS.Param_dm.get_ncp
def get_ncp(self)
Get the dimension of grid (?)
Definition: PDMS.py:922
shesha.config.PDMS.Param_dm.__n2
__n2
Definition: PDMS.py:113
shesha.config.PDMS.Param_dm.get_nr
def get_nr(self)
Get the number of radial points for KL.
Definition: PDMS.py:884
shesha.config.PDMS.Param_dm.get_influpos
def get_influpos(self)
Get the influence functions pixels that contributes to each DM pixel.
Definition: PDMS.py:221
shesha.config.PDMS.Param_dm.get_coupling
def get_coupling(self)
Get the actuators coupling.
Definition: PDMS.py:593
shesha.config.PDMS.Param_dm.__influ_res
__influ_res
Definition: PDMS.py:99
shesha.config.PDMS.Param_dm.set_cube_name
def set_cube_name(self, cubename)
set the name of influence cube in hdf5
Definition: PDMS.py:424
shesha.config.PDMS.Param_dm.get_nfunc
def get_nfunc(self)
Get nfunc TODO !!!
Definition: PDMS.py:160
shesha.config.PDMS.Param_dm.get_dy
def get_dy(self)
Get the Y axis misalignment.
Definition: PDMS.py:1084
shesha.config.PDMS.Param_dm.set_diam_dm
def set_diam_dm(self, di)
set the name of dm diameter in file
Definition: PDMS.py:488
shesha.config.PDMS.Param_dm.set_influpos
def set_influpos(self, ip)
Set the influence functions pixels that contributes to each DM pixel.
Definition: PDMS.py:228
shesha.config.PDMS.Param_dm.__pzt_extent
__pzt_extent
Definition: PDMS.py:69
shesha.config.PDMS.Param_dm.__ninflu
__ninflu
Definition: PDMS.py:125
shesha.config.PDMS.Param_dm.set_pzt_extent
def set_pzt_extent(self, p)
Set extent of pzt dm in pich unit default = 5.
Definition: PDMS.py:183
shesha.config.PDMS.Param_dm.get_pzt_extent
def get_pzt_extent(self)
Get extent of pzt dm in pich unit default = 5.
Definition: PDMS.py:176
shesha.config.PDMS.Param_dm.__ncp
__ncp
Definition: PDMS.py:81
shesha.config.PDMS.Param_dm.get_thresh
def get_thresh(self)
Get the threshold on response for selection.
Definition: PDMS.py:577
shesha.config.PDMS.Param_dm.get_cp
def get_cp(self)
Get the phi coordinates in carthesian grid.
Definition: PDMS.py:1017
shesha.config.PDMS.Param_dm.__x_name
__x_name
Definition: PDMS.py:97
shesha.config.PDMS.Param_dm.get_file_influ_hdf5
def get_file_influ_hdf5(self)
Get the name of hdf5 influence file.
Definition: PDMS.py:385
shesha.config.PDMS.Param_dm.set_influsize
def set_influsize(self, s)
set the actuators influsize [pixels]
Definition: PDMS.py:686