tasse_cdr_in.py 4.71 KB
Newer Older
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
new_config = {


## We start very general.

##==========================================
## Problem parameters
##==========================================
## What is the name of the data file?
    'data_filename' : 'Goettingen_data_processor',


## What type of object are we working with?
## Options are: 'phase', 'real', 'nonnegative', 'complex'
    'object' : 'nonnegative',

## What type of constraints do we have?
## Options are: 'support only', 'real and support', 'nonnegative and support',
##              'amplitude only', 'sparse real', 'sparse complex', and 'hybrid'
    'constraint' : 'nonnegative and support',

## What type of measurements are we working with?
## Options are: 'single diffraction', 'diversity diffraction', 
##              'ptychography', and 'complex'
    'experiment' : 'CDI',

## Next we move to things that most of our users will know 
## better than we will.  Some of these may be overwritten in the 
## data processor file which the user will most likely write. 
## Are the measurements in the far field or near field?
## Options are: 'far field' or 'near field', 
    'distance' : 'far field',
    'farfield':1,

## What are the dimensions of the measurements?
luckypeter.okonun's avatar
luckypeter.okonun committed
36
37
    'Nx' : 128
    'Ny' : 128
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
    'magn':1,

## What are the noise characteristics (Poisson or Gaussian)?
    'noise':False, # experimental data...naturally noisy
##==========================================
##  Algorithm parameters
##==========================================
## Now set some algorithm parameters that the user should be 
## able to control (without too much damage)

## Algorithm:
    'method' : 'CDRl',  # used to be 'Projection', 
    'numruns':1, # the only time this parameter will
# be different than 1 is when we are
# benchmarking...not something a normal user
# would be doing.
    'keep_log':0,


## The following are parameters specific to RAAR, HPR, and HAAR that the 
## user should be able to set/modify.  Surely
## there will be other algorithm specific parameters that a user might 
## want to play with.  Don't know how best 
## to do this.  Thinking of a GUI interface, we could hard code all the 
##  parameters the user might encounter and have the menu options change
## depending on the value of the prbl.method field. 
## do different things depending on the chosen algorithm:
    'problem_family' : 'Phase',


    ## maximum number of iterations and tolerances
        'MAXIT' : 2000,
        'TOL' : 1e-8,

    ## relaxaton parameters in RAAR, HPR and HAAR
        'lambda_0' : 1.0,                # starting relaxation prameter (only used with
    # HAAR, HPR and RAAR)
        'lambda_max' :1.0,             # maximum relaxation prameter (only used with
    # HAAR, RAAR, and HPR)
        'lambda_switch' : 30,           # iteration at which lambda moves from lambda_0 -> lambda_max

    ## parameter for the data regularization 
    ## need to discuss how/whether the user should
    ## put in information about the noise
        'data_ball' : 999826e-30,
        # 'data_ball' : 9998261e-0,
    # the above is the percentage of the gap
    # between the measured data and the
    # initial guess satisfying the
    # qualitative constraints.  For a number 
    # very close to one, the gap is not expected 
    # to improve much.  For a number closer to 0
    # the gap is expected to improve a lot.  
    # Ultimately the size of the gap depends
    # on the inconsistency of the measurement model 
    # with the qualitative constraints.

##==========================================
## parameters for plotting and diagnostics
##==========================================
    'diagnostic' : True, # to stop the diagnostics, just comment this field out.
    'rotate':False,
    'iterate_monitor':'feasibility_iterate_monitor',
    'verbose' : 1, # options are 0 or 1
    'graphics' : 1, # whether or not to display figures, options are 0 or 1.
                   # default is 1.
    'anim' : 0,  # whether or not to disaply ``real time" reconstructions
                # options are 0=no, 1=yes, 2=make a movie
                # default is 1.
        'graphics_display' : 'Phase_graphics', # unless specified, a default 
                            # plotting subroutine will generate 
                            # the graphics.  Otherwise, the user
                            # can write their own plotting subroutine

##======================================================================
##  Technical/software specific parameters
##======================================================================
## Given the parameter values above, the following technical/algorithmic
## parameters are automatically set.  The user does not need to know 
## about these details, and so probably these parameters should be set in 
## a module one level below this one.

}