-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathopra-tomo.readme
74 lines (58 loc) · 2.54 KB
/
opra-tomo.readme
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
upgrade to opra-tomo:
The idea is to use the yao framework.
here is how it would go:
1) Define your GS geometry in a parfile (e.g. opra-tomo.par)
in this parfile, the GS are listed as WFS. DMs are defined
where the DM have to be to solve the tomographic problem.
In our case, we may define only the 3 gems DMs, with or without
additional DMs if we want to refine the tomography and find aberrations
located at other altitudes.
Question1: do we also copy the GS in the target structure, to be able to
benefit from the yao calcpsf?
Question2: we will have issues with the pixel size/support size. The stock
opra redefines the modes when it changes the pixel size. hum... we might,
for now, work with fixed pixel size and compute the sim.pupildiam from there.
But we have the same problem with the wavelength. We might have to fix that
too. Alternatively, we may go through another aoinit if the support diameter
is changed. After all, ith small support, this may not be very costly.
2) run aoread, aoinit to define wfs & dms
3) Start opra, with some option to indicate we'll be using yao. Can use modes="yao"
for now
4) in opra_foo, instead of computing the phase from the modes, we can simply get
the phase from yao's DhWfs (or dh coef and recompute the phase).
The idea is to minimize the distance between the measured images and the
synthetic images generated from yao's phase (or yao's calcpsf, or yao's
dh coefs from the WFS), the variables being the DM commands.
so in opra-foo, basically, we would like to implement it as:
* opra-foo called with regular parameters (pixsize, kernel, coefs)
* opra-foo sets dm commands with input coefs, builds mircube
* opra-foo calls multWfs() and recover wfs()._fimage in dh/zernike/kl case,
this returns the phase. Alternatively, we may loop on calcpsf and directly
get the images (if targets have been set).
* feed these images to the minimization routine.
==========================================
using opra_test3:
65% of time spent in opra_foo
within opra_foo, negligible time spent in compDmShape.
suppress get_mtf, bilinears and plots:
2it, 5.16sec in opra_foo, 10.51sec total
per it, 2.58
same, but with plots:
2it, 5.61sec in opra_foo, 11.03 sec total
per it, 2.80
same, with bilinears:
2it, 6.22 sec, 9.56
per it, 3.11
same, with get_mtf,
2it, 7.58s, 10.82
per it, 3.79
same, without PSF:
1it, 3.00 sec
so 2it, 6.0sec
per it, 3.0
so, per it:
PSF : 0.79
get_mtf : 0.68
bilinear : 0.31
yao calls: 0.15
ok, calls to zernike are taking time (about 1.3s)