COMPASS  5.0.0
End-to-end AO simulation tool using GPU acceleration
make_apodizer.py
1 
37 
38 import numpy as np
39 from scipy.ndimage import interpolation as interp
40 
41 from . import utilities as util
42 
43 
44 def make_apodizer(dim, pupd, filename, angle):
45  """TODO doc
46 
47  :parameters:
48 
49  (int) : im:
50 
51  (int) : pupd:
52 
53  (str) : filename:
54 
55  (float) : angle:
56  """
57 
58  print("Opening apodizer")
59  print("reading file:", filename)
60  pup = np.load(filename)
61  A = pup.shape[0]
62 
63  if (A > dim):
64  raise ValueError("Apodizer dimensions must be smaller.")
65 
66  if (A != pupd):
67  # use misc.imresize (with bilinear)
68  print("TODO pup=bilinear(pup,pupd,pupd)")
69 
70  if (angle != 0):
71  # use ndimage.interpolation.rotate
72  print("TODO pup=rotate2(pup,angle)")
73  pup = interp.rotate(pup, angle, reshape=False, order=2)
74 
75  reg = np.where(util.dist(pupd) > pupd / 2.)
76  pup[reg] = 0.
77 
78  pupf = np.zeros((dim, dim), dtype=np.float32)
79 
80  if (dim != pupd):
81  if ((dim - pupd) % 2 != 0):
82  pupf[(dim - pupd + 1) / 2:(dim + pupd + 1) / 2, (dim - pupd + 1) /
83  2:(dim + pupd + 1) / 2] = pup
84 
85  else:
86  pupf[(dim - pupd) / 2:(dim + pupd) / 2, (dim - pupd) / 2:(dim + pupd) /
87  2] = pup
88 
89  else:
90  pupf = pup
91 
92  pupf = np.abs(pupf).astype(np.float32)
93 
94  return pupf
shesha.util.make_apodizer.make_apodizer
def make_apodizer(dim, pupd, filename, angle)
TODO doc.
Definition: make_apodizer.py:56