2828__all__ = ['PtyChiObjectViewController' ]
2929
3030
31+ class PtyChiOptimizeSliceSpacingViewController (CheckableGroupBoxParameterViewController ):
32+ def __init__ (
33+ self ,
34+ optimize_slice_spacing : BooleanParameter ,
35+ start : IntegerParameter ,
36+ stop : IntegerParameter ,
37+ stride : IntegerParameter ,
38+ optimizer : StringParameter ,
39+ step_size : RealParameter ,
40+ num_epochs : IntegerParameter ,
41+ enumerators : PtyChiEnumerators ,
42+ ) -> None :
43+ super ().__init__ (
44+ optimize_slice_spacing ,
45+ 'Optimize Slice Spacing' ,
46+ tool_tip = 'Whether to optimize the slice spacing.' ,
47+ )
48+ self ._plan_view_controller = PtyChiOptimizationPlanViewController (
49+ start ,
50+ stop ,
51+ stride ,
52+ num_epochs ,
53+ )
54+ self ._optimizer_view_controller = PtyChiOptimizerParameterViewController (
55+ optimizer , enumerators
56+ )
57+ self ._step_size_view_controller = DecimalLineEditParameterViewController (
58+ step_size , tool_tip = 'Optimizer step size'
59+ )
60+
61+ layout = QFormLayout ()
62+ layout .addRow ('Plan:' , self ._plan_view_controller .get_widget ())
63+ layout .addRow ('Optimizer:' , self ._optimizer_view_controller .get_widget ())
64+ layout .addRow ('Step Size:' , self ._step_size_view_controller .get_widget ())
65+ self .get_widget ().setLayout (layout )
66+
67+
3168class PtyChiConstrainL1NormViewController (CheckableGroupBoxParameterViewController ):
3269 def __init__ (
3370 self ,
@@ -57,6 +94,35 @@ def __init__(
5794 self .get_widget ().setLayout (layout )
5895
5996
97+ class PtyChiConstrainL2NormViewController (CheckableGroupBoxParameterViewController ):
98+ def __init__ (
99+ self ,
100+ constrain_l2_norm : BooleanParameter ,
101+ start : IntegerParameter ,
102+ stop : IntegerParameter ,
103+ stride : IntegerParameter ,
104+ weight : RealParameter ,
105+ num_epochs : IntegerParameter ,
106+ ) -> None :
107+ super ().__init__ (
108+ constrain_l2_norm ,
109+ 'Constrain L\u2082 Norm' ,
110+ tool_tip = 'Whether to constrain the L\u2082 norm.' ,
111+ )
112+ self ._plan_view_controller = PtyChiOptimizationPlanViewController (
113+ start , stop , stride , num_epochs
114+ )
115+ self ._weight_view_controller = DecimalLineEditParameterViewController (
116+ weight ,
117+ tool_tip = 'Weight of the L\u2082 norm constraint.' ,
118+ )
119+
120+ layout = QFormLayout ()
121+ layout .addRow ('Plan:' , self ._plan_view_controller .get_widget ())
122+ layout .addRow ('Weight:' , self ._weight_view_controller .get_widget ())
123+ self .get_widget ().setLayout (layout )
124+
125+
60126class PtyChiConstrainSmoothnessViewController (CheckableGroupBoxParameterViewController ):
61127 def __init__ (
62128 self ,
@@ -209,6 +275,29 @@ def __init__(
209275 self .get_widget ().setLayout (layout )
210276
211277
278+ class PtyChiRemoveObjectProbeAmbiguityViewController (CheckableGroupBoxParameterViewController ):
279+ def __init__ (
280+ self ,
281+ remove_object_probe_ambiguity : BooleanParameter ,
282+ start : IntegerParameter ,
283+ stop : IntegerParameter ,
284+ stride : IntegerParameter ,
285+ num_epochs : IntegerParameter ,
286+ ) -> None :
287+ super ().__init__ (
288+ remove_object_probe_ambiguity ,
289+ 'Remove Object Probe Ambiguity' ,
290+ tool_tip = 'Whether to remove object-probe ambiguity.' ,
291+ )
292+ self ._plan_view_controller = PtyChiOptimizationPlanViewController (
293+ start , stop , stride , num_epochs
294+ )
295+
296+ layout = QFormLayout ()
297+ layout .addRow ('Plan:' , self ._plan_view_controller .get_widget ())
298+ self .get_widget ().setLayout (layout )
299+
300+
212301class PtyChiObjectViewController (CheckableGroupBoxParameterViewController ):
213302 def __init__ (
214303 self ,
@@ -236,10 +325,15 @@ def __init__(
236325 self ._step_size_view_controller = DecimalLineEditParameterViewController (
237326 settings .step_size , tool_tip = 'Optimizer step size'
238327 )
239- self ._patch_interpolator_view_controller = ComboBoxParameterViewController (
240- settings .patch_interpolator ,
241- enumerators .patch_interpolation_methods (),
242- tool_tip = 'Interpolation method used for extracting and updating patches of the object.' ,
328+ self ._optimize_slice_spacing_view_controller = PtyChiOptimizeSliceSpacingViewController (
329+ settings .optimize_slice_spacing ,
330+ settings .optimize_slice_spacing_start ,
331+ settings .optimize_slice_spacing_stop ,
332+ settings .optimize_slice_spacing_stride ,
333+ settings .optimize_slice_spacing_optimizer ,
334+ settings .optimize_slice_spacing_step_size ,
335+ num_epochs ,
336+ enumerators ,
243337 )
244338 self ._constrain_l1_norm_view_controller = PtyChiConstrainL1NormViewController (
245339 settings .constrain_l1_norm ,
@@ -249,6 +343,14 @@ def __init__(
249343 settings .constrain_l1_norm_weight ,
250344 num_epochs ,
251345 )
346+ self ._constrain_l2_norm_view_controller = PtyChiConstrainL2NormViewController (
347+ settings .constrain_l2_norm ,
348+ settings .constrain_l2_norm_start ,
349+ settings .constrain_l2_norm_stop ,
350+ settings .constrain_l2_norm_stride ,
351+ settings .constrain_l2_norm_weight ,
352+ num_epochs ,
353+ )
252354 self ._constrain_smoothness_view_controller = PtyChiConstrainSmoothnessViewController (
253355 settings .constrain_smoothness ,
254356 settings .constrain_smoothness_start ,
@@ -291,17 +393,40 @@ def __init__(
291393 num_epochs ,
292394 enumerators ,
293395 )
396+ self ._patch_interpolator_view_controller = ComboBoxParameterViewController (
397+ settings .patch_interpolator ,
398+ enumerators .patch_interpolation_methods (),
399+ tool_tip = 'Interpolation method used for extracting and updating patches of the object.' ,
400+ )
401+ self ._remove_object_probe_ambiguity_view_controller = (
402+ PtyChiRemoveObjectProbeAmbiguityViewController (
403+ settings .remove_object_probe_ambiguity ,
404+ settings .remove_object_probe_ambiguity_start ,
405+ settings .remove_object_probe_ambiguity_stop ,
406+ settings .remove_object_probe_ambiguity_stride ,
407+ num_epochs ,
408+ )
409+ )
410+ self ._build_preconditioner_with_all_modes_view_controller = CheckBoxParameterViewController (
411+ settings .build_preconditioner_with_all_modes ,
412+ 'Build Preconditioner with All Modes' ,
413+ tool_tip = 'Whether to build the preconditioner using all modes.' ,
414+ )
294415
295416 layout = QFormLayout ()
296417 layout .addRow ('Plan:' , self ._optimization_plan_view_controller .get_widget ())
297418 layout .addRow ('Optimizer:' , self ._optimizer_view_controller .get_widget ())
298419 layout .addRow ('Step Size:' , self ._step_size_view_controller .get_widget ())
299- layout .addRow ('Patch Interpolator:' , self ._patch_interpolator_view_controller .get_widget ())
420+ layout .addRow (self ._optimize_slice_spacing_view_controller .get_widget ())
300421 layout .addRow (self ._constrain_l1_norm_view_controller .get_widget ())
422+ layout .addRow (self ._constrain_l2_norm_view_controller .get_widget ())
301423 layout .addRow (self ._constrain_smoothness_view_controller .get_widget ())
302424 layout .addRow (self ._constrain_total_variation_view_controller .get_widget ())
303425 layout .addRow (self ._remove_grid_artifacts_view_controller .get_widget ())
304426 layout .addRow (self ._regularize_multislice_view_controller .get_widget ())
427+ layout .addRow ('Patch Interpolator:' , self ._patch_interpolator_view_controller .get_widget ())
428+ layout .addRow (self ._remove_object_probe_ambiguity_view_controller .get_widget ())
429+ layout .addRow (self ._build_preconditioner_with_all_modes_view_controller .get_widget ())
305430
306431 if dm_settings is not None :
307432 self ._amplitude_clamp_limit_view_controller = DecimalLineEditParameterViewController (
@@ -312,6 +437,12 @@ def __init__(
312437 'Amplitude Clamp Limit:' , self ._amplitude_clamp_limit_view_controller .get_widget ()
313438 )
314439
440+ self ._inertia_view_controller = DecimalLineEditParameterViewController (
441+ dm_settings .object_inertia ,
442+ tool_tip = 'Inertia for the object update.' ,
443+ )
444+ layout .addRow ('Inertia:' , self ._inertia_view_controller .get_widget ())
445+
315446 if lsqml_settings is not None :
316447 self ._object_optimal_step_size_scaler_view_controller = (
317448 DecimalLineEditParameterViewController (
0 commit comments