tomwer 2.0.0.dev2__py3-none-any.whl → 2.0.0.dev4__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (176) hide show
  1. orangecontrib/tomwer/state_summary.py +1 -1
  2. orangecontrib/tomwer/tutorials/EBS_tomo_listener.ows +1 -1
  3. orangecontrib/tomwer/tutorials/complete_on_the_fly.ows +73 -0
  4. orangecontrib/tomwer/tutorials/default_cor_search.ows +1 -1
  5. orangecontrib/tomwer/tutorials/drac_publication.ows +1 -1
  6. orangecontrib/tomwer/tutorials/id16b/ID16b_full_volume.ows +1 -1
  7. orangecontrib/tomwer/tutorials/id16b/ID16b_insitu.ows +1 -1
  8. orangecontrib/tomwer/tutorials/id16b/ID16b_normalization.ows +1 -1
  9. orangecontrib/tomwer/tutorials/simple_slice_reconstruction.ows +1 -1
  10. orangecontrib/tomwer/tutorials/simple_slice_reconstruction_on_slurm.ows +1 -1
  11. orangecontrib/tomwer/tutorials/using_multicor_to_find_cor.ows +1 -1
  12. orangecontrib/tomwer/widgets/cluster/MonitorOW.py +18 -13
  13. orangecontrib/tomwer/widgets/cluster/SlurmClusterOW.py +1 -1
  14. orangecontrib/tomwer/widgets/other/PythonScriptOW.py +1 -1
  15. orangecontrib/tomwer/widgets/reconstruction/BaseNabuRecOW.py +4 -1
  16. orangecontrib/tomwer/widgets/reconstruction/CastNabuVolumeOW.py +2 -2
  17. orangecontrib/tomwer/widgets/reconstruction/MultiCoROW.py +38 -11
  18. orangecontrib/tomwer/widgets/reconstruction/MultiPagOW.py +170 -69
  19. orangecontrib/tomwer/widgets/reconstruction/NabuSettingsOW.py +1 -1
  20. orangecontrib/tomwer/widgets/reconstruction/{NabuOW.py → NabuSlicesOW.py} +20 -25
  21. orangecontrib/tomwer/widgets/reconstruction/NabuVolumeOW.py +10 -8
  22. orangecontrib/tomwer/widgets/stitching/StitcherOW.py +1 -1
  23. orangecontrib/tomwer/widgets/visualization/DataViewerOW.py +8 -2
  24. tomwer/app/canvas_launcher/mainwindow.py +2 -1
  25. tomwer/app/multicor.py +4 -5
  26. tomwer/app/multipag.py +73 -226
  27. tomwer/app/nabuapp.py +1 -1
  28. tomwer/core/cluster/__init__.py +0 -2
  29. tomwer/core/drac/processeddataset.py +1 -1
  30. tomwer/core/reconstruction/{nabu → common}/NabuBaseReconstructor.py +31 -67
  31. tomwer/core/reconstruction/common/test/test_NabuBaseReconstructor.py +16 -0
  32. tomwer/core/reconstruction/{nabu → common}/test/test_nabu_utils.py +1 -1
  33. tomwer/core/reconstruction/{nabu → common}/test/test_slice_interpreter.py +3 -3
  34. tomwer/core/reconstruction/{nabu → common}/utils.py +1 -1
  35. tomwer/core/reconstruction/multi/MultiBaseParams.py +1 -1
  36. tomwer/core/reconstruction/multi/multipag/params.py +1 -1
  37. tomwer/core/reconstruction/multi/reconstructions.py +8 -8
  38. tomwer/core/reconstruction/{nabu/slice → slice}/NabuSliceMode.py +2 -2
  39. tomwer/core/reconstruction/{nabu/slice → slice}/SingleSliceRunner.py +7 -5
  40. tomwer/core/reconstruction/{nabu/slice → slice}/SliceInterpreter.py +3 -3
  41. tomwer/core/reconstruction/{nabu/slice → slice}/slices.py +4 -4
  42. tomwer/core/reconstruction/{nabu/nabuvolume.py → volume.py} +5 -4
  43. tomwer/core/scan/scanbase.py +1 -1
  44. tomwer/core/scan/tests/test_scan.py +1 -1
  45. tomwer/gui/cluster/slurm.py +1 -1
  46. tomwer/gui/reconstruction/cor/ControlWidget.py +20 -1
  47. tomwer/gui/reconstruction/multicor/CoRScorePlot.py +1 -1
  48. tomwer/gui/reconstruction/multicor/MultiCoRWindow.py +2 -1
  49. tomwer/gui/reconstruction/multicor/corrangeselector.py +16 -10
  50. tomwer/gui/reconstruction/multipag/DBScorePlot.py +1 -1
  51. tomwer/gui/reconstruction/multipag/MultiPagSelectionWidget.py +1 -1
  52. tomwer/gui/reconstruction/multipag/MultiPagTabWidget.py +6 -3
  53. tomwer/gui/reconstruction/multipag/{MultiPagWindowBase.py → MultiPagWindow.py} +18 -24
  54. tomwer/gui/reconstruction/nabu/estimate_motion/mainwindow.py +1 -1
  55. tomwer/gui/reconstruction/nabu/nabuconfig/NabuSettingsWidget.py +6 -16
  56. tomwer/gui/reconstruction/nabu/nabuconfig/base.py +1 -1
  57. tomwer/gui/reconstruction/nabu/nabuconfig/ctf.py +1 -1
  58. tomwer/gui/reconstruction/nabu/nabuconfig/nabuconfig.py +1 -1
  59. tomwer/gui/reconstruction/nabu/nabuconfig/output.py +1 -1
  60. tomwer/gui/reconstruction/nabu/nabuconfig/phase.py +5 -2
  61. tomwer/gui/reconstruction/nabu/nabuconfig/preprocessing.py +2 -2
  62. tomwer/gui/reconstruction/nabu/nabuconfig/reconstruction.py +4 -4
  63. tomwer/gui/reconstruction/nabu/nabuconfig/stages.py +1 -1
  64. tomwer/gui/reconstruction/nabu/nabuflow.py +2 -1
  65. tomwer/gui/reconstruction/nabu/slices/NabuSlicesWidget.py +2 -2
  66. tomwer/gui/reconstruction/nabu/slices/SliceGroupBox.py +1 -1
  67. tomwer/gui/reconstruction/nabu/test/test_cast_volume.py +7 -7
  68. tomwer/gui/reconstruction/nabu/volume/NabuVolumeWidget.py +1 -1
  69. tomwer/gui/reconstruction/tests/test_multipag.py +4 -4
  70. tomwer/gui/utils/reconstruction.py +50 -0
  71. tomwer/gui/visualization/dataviewer.py +5 -24
  72. tomwer/gui/visualization/imagestack.py +8 -2
  73. tomwer/gui/visualization/scanoverview.py +31 -1
  74. tomwer/models/cluster/slurm_cluster.py +82 -0
  75. tomwer/models/field_validators/cluster_config.py +14 -0
  76. tomwer/models/reconstruction/cast_volume.py +22 -3
  77. tomwer/models/reconstruction/multicor.py +12 -2
  78. tomwer/models/reconstruction/multipag.py +62 -0
  79. tomwer/models/reconstruction/nabu_slices.py +21 -17
  80. tomwer/models/reconstruction/nabu_volume.py +20 -1
  81. tomwer/synctools/stacks/reconstruction/nabu.py +2 -2
  82. tomwer/tasks/reconstruction/{nabu/castvolume.py → castvolume.py} +2 -2
  83. tomwer/tasks/reconstruction/{nabu/multicor.py → multicor.py} +4 -4
  84. tomwer/tasks/reconstruction/{nabu/multipag.py → multipag.py} +26 -76
  85. tomwer/tasks/reconstruction/{nabu/nabuvolume.py → nabuvolume.py} +5 -5
  86. tomwer/tasks/reconstruction/{nabu/slices.py → slices.py} +3 -3
  87. tomwer/tasks/reconstruction/tests/test_castvolume.py +1 -1
  88. tomwer/tasks/reconstruction/tests/test_multipag.py +37 -0
  89. tomwer/tasks/reconstruction/tests/test_nabu.py +2 -2
  90. tomwer/tasks/reconstruction/tests/test_nabu_estimate_motion.py +1 -1
  91. tomwer/tasks/reconstruction/tests/test_nabu_multicor.py +1 -1
  92. tomwer/tests/orangecontrib/tomwer/widgets/cluster/tests/test_slurm_clusterow.py +1 -1
  93. tomwer/tests/orangecontrib/tomwer/widgets/reconstruction/tests/test_cast_volumeow.py +1 -1
  94. tomwer/tests/orangecontrib/tomwer/widgets/reconstruction/tests/test_multipag.py +11 -82
  95. tomwer/tests/orangecontrib/tomwer/widgets/reconstruction/tests/test_nabu_slices.py +3 -3
  96. tomwer/tests/test_ewoks/test_conversion.py +2 -2
  97. tomwer/tests/test_ewoks/test_single_node_execution.py +1 -1
  98. tomwer/tests/test_ewoks/test_workflows.py +12 -4
  99. tomwer/version.py +1 -1
  100. {tomwer-2.0.0.dev2.dist-info → tomwer-2.0.0.dev4.dist-info}/METADATA +1 -1
  101. {tomwer-2.0.0.dev2.dist-info → tomwer-2.0.0.dev4.dist-info}/RECORD +121 -169
  102. orangecontrib/tomwer/tutorials/darks and flats copy - method 2.ows +0 -42
  103. orangecontrib/tomwer/tutorials/untitled.ows +0 -15
  104. orangecontrib/tomwer/widgets/reconstruction/MultiPagWindow.py +0 -153
  105. tomwer/core/cluster/cluster.py +0 -216
  106. tomwer/core/reconstruction/normalization/__init__.py +0 -1
  107. tomwer/core/reconstruction/normalization/params.py +0 -137
  108. tomwer/models/model/__init__.py +0 -1
  109. tomwer/models/model/_common/data.py +0 -36
  110. tomwer/models/model/_common/process.py +0 -12
  111. tomwer/models/model/_common/tomoobj.py +0 -45
  112. tomwer/models/model/_common/volume.py +0 -26
  113. tomwer/models/model/cluster/__init__.py +0 -0
  114. tomwer/models/model/cluster/future_supervisor.py +0 -23
  115. tomwer/models/model/conditions/__init__.py +0 -0
  116. tomwer/models/model/conditions/filters.py +0 -26
  117. tomwer/models/model/control/__init__.py +0 -0
  118. tomwer/models/model/control/datadiscovery.py +0 -13
  119. tomwer/models/model/control/scanselector.py +0 -13
  120. tomwer/models/model/control/singletomoobj.py +0 -16
  121. tomwer/models/model/control/volumeselector.py +0 -13
  122. tomwer/models/model/dataportal/__init__.py +0 -0
  123. tomwer/models/model/dataportal/publish.py +0 -24
  124. tomwer/models/model/edit/__init__.py +0 -1
  125. tomwer/models/model/edit/dark_flat_patch.py +0 -13
  126. tomwer/models/model/edit/imagekey_editor.py +0 -13
  127. tomwer/models/model/edit/imagekey_upgrader.py +0 -13
  128. tomwer/models/model/reconstruction/__init__.py +0 -0
  129. tomwer/models/model/reconstruction/cast_volume.py +0 -145
  130. tomwer/models/model/reconstruction/compute_dark_flat.py +0 -56
  131. tomwer/models/model/reconstruction/copy_reduced_frames.py +0 -140
  132. tomwer/models/model/reconstruction/cor.py +0 -58
  133. tomwer/models/model/reconstruction/estimate_motion_io.py +0 -44
  134. tomwer/models/model/reconstruction/multicor.py +0 -73
  135. tomwer/models/model/reconstruction/nabu_settings.py +0 -20
  136. tomwer/models/model/reconstruction/nabu_slices.py +0 -78
  137. tomwer/models/model/reconstruction/nabu_volume.py +0 -62
  138. tomwer/models/model/reconstruction/reduced_frames.py +0 -46
  139. tomwer/models/model/visualization/__init__.py +0 -0
  140. tomwer/models/model/visualization/dataviewer.py +0 -8
  141. tomwer/models/model/visualization/volume_viewer.py +0 -23
  142. tomwer/resources/gui/icons/roman_four.png +0 -0
  143. tomwer/resources/gui/icons/roman_four.svg +0 -116
  144. tomwer/resources/gui/icons/roman_one.png +0 -0
  145. tomwer/resources/gui/icons/roman_one.svg +0 -93
  146. tomwer/resources/gui/icons/roman_three.png +0 -0
  147. tomwer/resources/gui/icons/roman_three.svg +0 -114
  148. tomwer/resources/gui/icons/roman_two.png +0 -0
  149. tomwer/resources/gui/icons/roman_two.svg +0 -104
  150. tomwer/synctools/stacks/reconstruction/multipag.py +0 -172
  151. tomwer/tasks/reconstruction/nabu/__init__.py +0 -1
  152. tomwer/tasks/reconstruction/normalization.py +0 -293
  153. tomwer/tasks/reconstruction/tests/test_multidb.py +0 -45
  154. tomwer/tasks/reconstruction/tests/test_nabu_normalization.py +0 -252
  155. tomwer-2.0.0.dev2.dist-info/pkg_info +0 -205
  156. tomwer-2.0.0.dev2.dist-info/sources.txt +0 -1030
  157. /tomwer/core/reconstruction/{nabu → common}/__init__.py +0 -0
  158. /tomwer/core/reconstruction/{nabu → common}/filter.py +0 -0
  159. /tomwer/core/reconstruction/{nabu → common}/method.py +0 -0
  160. /tomwer/core/reconstruction/{nabu → common}/mode.py +0 -0
  161. /tomwer/core/reconstruction/{nabu → common}/nabucommon.py +0 -0
  162. /tomwer/core/reconstruction/{nabu → common}/padding.py +0 -0
  163. /tomwer/core/reconstruction/{nabu → common}/phase.py +0 -0
  164. /tomwer/core/reconstruction/{nabu → common}/plane.py +0 -0
  165. /tomwer/core/reconstruction/{nabu → common}/ringcorrection.py +0 -0
  166. /tomwer/core/reconstruction/{nabu → common}/settings.py +0 -0
  167. /tomwer/core/reconstruction/{nabu → common}/stages.py +0 -0
  168. /tomwer/core/reconstruction/{nabu → common}/target.py +0 -0
  169. /tomwer/core/reconstruction/{nabu/slice → slice}/__init__.py +0 -0
  170. /tomwer/models/{model/_common → field_validators}/__init__.py +0 -0
  171. /tomwer/tasks/reconstruction/{nabu/config.py → config.py} +0 -0
  172. /tomwer/tasks/reconstruction/{nabu/estimate_motion.py → estimate_motion.py} +0 -0
  173. {tomwer-2.0.0.dev2.dist-info → tomwer-2.0.0.dev4.dist-info}/WHEEL +0 -0
  174. {tomwer-2.0.0.dev2.dist-info → tomwer-2.0.0.dev4.dist-info}/entry_points.txt +0 -0
  175. {tomwer-2.0.0.dev2.dist-info → tomwer-2.0.0.dev4.dist-info}/licenses/LICENSE +0 -0
  176. {tomwer-2.0.0.dev2.dist-info → tomwer-2.0.0.dev4.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  from orangewidget.utils.signals import PartialSummary, summarize
2
2
 
3
- from tomwer.core.cluster import SlurmClusterConfiguration
3
+ from tomwer.models.cluster.slurm_cluster import SlurmClusterConfiguration
4
4
  from tomwer.core.futureobject import FutureTomwerObject
5
5
  from tomwer.core.scan.blissscan import BlissScan
6
6
  from tomwer.core.scan.scanbase import TomwerScanBase
@@ -4,7 +4,7 @@
4
4
  <node id="0" name="bliss-data listener" qualified_name="orangecontrib.tomwer.widgets.control.BlissDataListenerOW.BlissDataListenerOW" project_name="tomwer" version="" title="scan listener" position="(150, 150)" />
5
5
  <node id="1" name="reduced darks and flats" qualified_name="orangecontrib.tomwer.widgets.reconstruction.ComputeReduceDarkAndFlatOW.ComputeReduceDarkAndFlatOW" project_name="tomwer" version="" title="reduced darks and flats" position="(296.13186813186815, 180.10989010989013)" />
6
6
  <node id="2" name="center of rotation finder" qualified_name="orangecontrib.tomwer.widgets.reconstruction.CoROW.CoROW" project_name="tomwer" version="" title="default center of rotation" position="(619.0, 258.0)" />
7
- <node id="3" name="nabu slice reconstruction" qualified_name="orangecontrib.tomwer.widgets.reconstruction.NabuOW.NabuOW" project_name="tomwer" version="" title="nabu slice reconstruction" position="(766.0, 292.0)" />
7
+ <node id="3" name="nabu slice reconstruction" qualified_name="orangecontrib.tomwer.widgets.reconstruction.NabuSlicesOW.NabuSlicesOW" project_name="tomwer" version="" title="nabu slice reconstruction" position="(766.0, 292.0)" />
8
8
  <node id="4" name="data viewer" qualified_name="orangecontrib.tomwer.widgets.visualization.DataViewerOW.DataViewerOW" project_name="tomwer" version="" title="data viewer" position="(931.0, 329.0)" />
9
9
  <node id="5" name="nabu settings" qualified_name="orangecontrib.tomwer.widgets.reconstruction.NabuSettingsOW.NabuSettingsOW" project_name="tomwer" version="" title="nabu settings" position="(605.0, 400.0)" />
10
10
  <node id="6" name="copy reduced darks and flats" qualified_name="orangecontrib.tomwer.widgets.reconstruction.CopyReducedDarkAndFlatOW.CopyReducedDarkAndFlatOW" project_name="tomwer" version="" title="copy reduced darks and flats" position="(439.8461538461538, 210.30769230769235)" />
@@ -0,0 +1,73 @@
1
+ <?xml version='1.0' encoding='utf-8'?>
2
+ <scheme version="2.0" title="compete on the fly" description="Workflow that goes from scan listener to the final converted volume.">
3
+ <nodes>
4
+ <node id="0" name="Blissdata Listener" qualified_name="orangecontrib.tomwer.widgets.control.BlissDataListenerOW.BlissDataListenerOW" project_name="tomwer" version="" title="scan listener" position="(120.0, 247.0)" />
5
+ <node id="1" name="reduced darks and flats" qualified_name="orangecontrib.tomwer.widgets.reconstruction.ComputeReduceDarkAndFlatOW.ComputeReduceDarkAndFlatOW" project_name="tomwer" version="" title="reduced darks and flats" position="(275.13186813186815, 247.1098901098901)" />
6
+ <node id="2" name="center of rotation finder" qualified_name="orangecontrib.tomwer.widgets.reconstruction.CoROW.CoROW" project_name="tomwer" version="" title="default center of rotation" position="(594.0, 248.0)" />
7
+ <node id="3" name="nabu slice reconstruction" qualified_name="orangecontrib.tomwer.widgets.reconstruction.NabuSlicesOW.NabuSlicesOW" project_name="tomwer" version="" title="nabu slice reconstruction" position="(766.0, 292.0)" />
8
+ <node id="4" name="data viewer" qualified_name="orangecontrib.tomwer.widgets.visualization.DataViewerOW.DataViewerOW" project_name="tomwer" version="" title="data viewer" position="(932.0, 285.0)" />
9
+ <node id="5" name="nabu settings" qualified_name="orangecontrib.tomwer.widgets.reconstruction.NabuSettingsOW.NabuSettingsOW" project_name="tomwer" version="" title="nabu settings" position="(596.0, 390.0)" />
10
+ <node id="6" name="copy reduced darks and flats" qualified_name="orangecontrib.tomwer.widgets.reconstruction.CopyReducedDarkAndFlatOW.CopyReducedDarkAndFlatOW" project_name="tomwer" version="" title="copy reduced darks and flats" position="(433.8461538461538, 246.30769230769238)" />
11
+ <node id="7" name="nabu volume reconstruction" qualified_name="orangecontrib.tomwer.widgets.reconstruction.NabuVolumeOW.NabuVolumeOW" project_name="tomwer" version="" title="nabu volume reconstruction" position="(947.0, 395.0)" />
12
+ <node id="8" name="cast volume" qualified_name="orangecontrib.tomwer.widgets.reconstruction.CastNabuVolumeOW.CastNabuVolumeOW" project_name="tomwer" version="" title="cast volume" position="(1280.0, 413.0)" />
13
+ <node id="9" name="Cluster Configuration" qualified_name="orangecontrib.tomwer.widgets.cluster.SlurmClusterOW.SlurmClusterOW" project_name="tomwer" version="" title="Cluster Configuration Volume reconstruction" position="(784.0, 555.0)" />
14
+ <node id="10" name="Cluster monitor" qualified_name="orangecontrib.tomwer.widgets.cluster.MonitorOW.MonitorOW" project_name="tomwer" version="" title="Cluster monitor" position="(1111.0, 403.5)" />
15
+ <node id="11" name="volume viewer" qualified_name="orangecontrib.tomwer.widgets.visualization.VolumeViewerOW.VolumeViewerOW" project_name="tomwer" version="" title="volume viewer" position="(1098.0, 279.0)" />
16
+ <node id="12" name="Cluster Configuration" qualified_name="orangecontrib.tomwer.widgets.cluster.SlurmClusterOW.SlurmClusterOW" project_name="tomwer" version="" title="Cluster configuration cast volume" position="(1116.0, 559.0)" />
17
+ <node id="13" name="Cluster monitor" qualified_name="orangecontrib.tomwer.widgets.cluster.MonitorOW.MonitorOW" project_name="tomwer" version="" title="Cluster monitor (1)" position="(1445.0, 411.0)" />
18
+ </nodes>
19
+ <links>
20
+ <link id="0" source_node_id="0" sink_node_id="1" source_channel="data" sink_channel="data" enabled="true" source_channel_id="data" sink_channel_id="data" />
21
+ <link id="1" source_node_id="2" sink_node_id="3" source_channel="data" sink_channel="data" enabled="true" source_channel_id="data" sink_channel_id="data" />
22
+ <link id="2" source_node_id="3" sink_node_id="4" source_channel="data" sink_channel="data" enabled="true" source_channel_id="data" sink_channel_id="data" />
23
+ <link id="3" source_node_id="5" sink_node_id="3" source_channel="nabu_params" sink_channel="nabu_params" enabled="true" source_channel_id="nabu_params" sink_channel_id="nabu_params" />
24
+ <link id="4" source_node_id="1" sink_node_id="6" source_channel="data" sink_channel="data" enabled="true" source_channel_id="data" sink_channel_id="data" />
25
+ <link id="5" source_node_id="6" sink_node_id="2" source_channel="data" sink_channel="data" enabled="true" source_channel_id="data" sink_channel_id="data" />
26
+ <link id="6" source_node_id="3" sink_node_id="7" source_channel="data" sink_channel="data" enabled="true" source_channel_id="data" sink_channel_id="data" />
27
+ <link id="7" source_node_id="5" sink_node_id="7" source_channel="nabu_params" sink_channel="nabu_params" enabled="true" source_channel_id="nabu_params" sink_channel_id="nabu_params" />
28
+ <link id="8" source_node_id="9" sink_node_id="7" source_channel="cluster_config" sink_channel="cluster_config" enabled="true" source_channel_id="config_out" sink_channel_id="cluster_config" />
29
+ <link id="9" source_node_id="7" sink_node_id="10" source_channel="future_tomo_obj" sink_channel="future_tomo_obj" enabled="true" source_channel_id="future_out" sink_channel_id="future_tomo_obj" />
30
+ <link id="10" source_node_id="10" sink_node_id="8" source_channel="data" sink_channel="data" enabled="true" source_channel_id="data" sink_channel_id="data" />
31
+ <link id="11" source_node_id="7" sink_node_id="11" source_channel="volume" sink_channel="volume" enabled="true" source_channel_id="volume" sink_channel_id="volume" />
32
+ <link id="12" source_node_id="12" sink_node_id="8" source_channel="cluster_config" sink_channel="cluster_config" enabled="true" source_channel_id="config_out" sink_channel_id="cluster_config" />
33
+ <link id="13" source_node_id="8" sink_node_id="13" source_channel="future_tomo_obj" sink_channel="future_tomo_obj" enabled="true" source_channel_id="future_tomo_obj" sink_channel_id="future_tomo_obj" />
34
+ </links>
35
+ <annotations>
36
+ <arrow id="0" start="(83.53846153846158, 360.61538461538464)" end="(86.07692307692312, 310.5384615384615)" fill="#C1272D" />
37
+ <text id="1" type="text/plain" rect="(29.999999999999943, 369.2307692307693, 202.0, 76.0)" font-family="Ubuntu" font-size="16">wait for bliss scan and create NXtomo</text>
38
+ <arrow id="2" start="(298.9230769230769, 143.0769230769231)" end="(290.0769230769231, 207.30769230769232)" fill="#C1272D" />
39
+ <text id="3" type="text/plain" rect="(287.30769230769226, 55.0, 135.0, 69.0)" font-family="Ubuntu" font-size="16">compute reduced darks and flats</text>
40
+ <text id="4" type="text/plain" rect="(536.0, 76.0, 114.0, 50.0)" font-family="Ubuntu" font-size="16">compute CoR</text>
41
+ <arrow id="5" start="(589.0, 136.0)" end="(587.0, 194.99999999999997)" fill="#C1272D" />
42
+ <arrow id="6" start="(758.9999999999999, 195.0)" end="(760.0, 254.0)" fill="#C1272D" />
43
+ <text id="7" type="text/plain" rect="(680.0, 151.0, 150.0, 31.0)" font-family="Ubuntu" font-size="16">compute slice</text>
44
+ <text id="8" type="text/plain" rect="(897.0, 76.0, 128.0, 89.0)" font-family="Ubuntu" font-size="16">browse dataset and reconstructed slice(s)</text>
45
+ <arrow id="9" start="(941.0, 175.0)" end="(933.0, 237.0)" fill="#C1272D" />
46
+ <arrow id="10" start="(563.0, 536.0)" end="(594.0, 463.0)" fill="#C1272D" />
47
+ <text id="11" type="text/plain" rect="(493.0, 513.0, 150.0, 69.0)" font-family="Sans Serif" font-size="16">define reconstruction settings</text>
48
+ <text id="12" type="text/plain" rect="(296.7692307692307, 382.46153846153845, 150.0, 50.0)" font-family="Sans Serif" font-size="16">copy reduced darks and flats</text>
49
+ <arrow id="13" start="(379.0, 371.0)" end="(403.99999999999994, 319.0)" fill="#C1272D" />
50
+ <text id="14" type="text/plain" rect="(1180.0, 124.0, 150.0, 27.0)" font-family="Cantarell" font-size="16">View reconstructed volume</text>
51
+ <arrow id="15" start="(1162.0, 167.0)" end="(1115.0, 241.0)" fill="#C1272D" />
52
+ </annotations>
53
+ <thumbnail />
54
+ <node_properties>
55
+ <properties node_id="0" format="literal">{'_blissConfiguration': {}, '_nxtomo_cfg_file': '', '_static_input': {'nxtomomill_cfg_file': ''}, 'controlAreaVisible': True, 'savedWidgetGeometry': None, '__version__': 1}</properties>
56
+ <properties node_id="1" format="literal">{'_ewoks_default_inputs': {'data': None, 'dark_ref_params': None}, '_ewoks_execinfo': {}, '_ewoks_task_options': {}, '_ewoks_varinfo': {}, 'controlAreaVisible': True, 'default_inputs': {}, 'savedWidgetGeometry': b'\x01\xd9\xd0\xcb\x00\x03\x00\x00\x00\x00\nu\x00\x00\x013\x00\x00\x0b\xf6\x00\x00\x02\x8f\x00\x00\nu\x00\x00\x01X\x00\x00\x0b\xf6\x00\x00\x02\x8f\x00\x00\x00\x01\x00\x00\x00\x00\x07\x80\x00\x00\nu\x00\x00\x01X\x00\x00\x0b\xf6\x00\x00\x02\x8f', '__version__': 1}</properties>
57
+ <properties node_id="2" format="literal">{'_ewoks_default_inputs': {'data': None, 'cor_params': {'MODE': 'manual', 'POSITION_VALUE': None, 'CALC_INPUT_TYPE': 'transmission_nopag', 'ANGLE_MODE': '0-180', 'SINOGRAM_LINE': '', 'SINOGRAM_SUBSAMPLING': 10, 'AXIS_URL_1': '', 'AXIS_URL_2': '', 'LOOK_AT_STDMAX': False, 'NEAR_WX': 5, 'FINE_STEP_X': 0.1, 'SCALE_IMG2_TO_IMG1': False, 'NEAR_POSITION': 0.0, 'PADDING_MODE': 'edge', 'FLIP_LR': True, 'COMPOSITE_OPTS': {'theta': 5, 'oversampling': 4, 'n_subsampling_y': 40, 'take_log': True, 'near_width': 40}, 'COR_OPTIONS': '', 'MOTOR_OFFSET': 0.0, 'X_ROTATION_AXIS_PIXEL_POSITION': None}, 'gui': {'mode_is_lock': False, 'value_is_lock': False, 'auto_update_estimated_cor': True, 'y_axis_inverted': False}, 'relative_value': None}, 'controlAreaVisible': True, 'savedWidgetGeometry': b'\x01\xd9\xd0\xcb\x00\x03\x00\x00\x00\x00\x01k\x00\x00\x00\xac\x00\x00\x06\x01\x00\x00\x03\x8e\x00\x00\x01k\x00\x00\x00\xd1\x00\x00\x06\x01\x00\x00\x03\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x07\x80\x00\x00\x01k\x00\x00\x00\xd1\x00\x00\x06\x01\x00\x00\x03\x8e', '__version__': 1}</properties>
58
+ <properties node_id="3" format="literal">{'_ewoks_default_inputs': {'data': None, 'nabu_params': None}, 'controlAreaVisible': True, 'savedWidgetGeometry': None, '__version__': 1}</properties>
59
+ <properties node_id="4" format="literal">{'_viewer_config': {}, 'controlAreaVisible': True, 'savedWidgetGeometry': None, '__version__': 1}</properties>
60
+ <properties node_id="5" format="literal">{'_ewoks_default_inputs': {'nabu_params': {'preproc': {'flatfield': 1, 'double_flatfield': 0, 'dff_sigma': 0.0, 'ccd_filter_enabled': 0, 'ccd_filter_threshold': 0.04, 'take_logarithm': True, 'log_min_clip': 1e-06, 'log_max_clip': 10.0, 'sino_rings_correction': 'None', 'sino_rings_options': 'sigma=1.0 ; levels=10 ; padding=False', 'tilt_correction': '', 'autotilt_options': '', 'normalize_srcurrent': 1, 'rotate_projections_center': ''}, 'reconstruction': {'method': 'FBP', 'angles_file': '', 'axis_correction_file': '', 'angle_offset': 0.0, 'fbp_filter_type': 'ramlak', 'padding_type': 'edges', 'iterations': 200, 'optim_algorithm': 'chambolle-pock', 'regularization_weight': 0.0, 'preconditioning_filter': 1, 'positivity_constraint': 1, 'rotation_axis_position': '', 'translation_movements_file': '', 'clip_outer_circle': 1, 'centered_axis': 1, 'start_x': 0, 'end_x': -1, 'start_y': 0, 'end_y': -1, 'start_z': 0, 'end_z': -1, 'enable_halftomo': 'auto'}, 'dataset': {'binning': 1, 'binning_z': 1, 'projections_subsampling': 1, 'exclude_projections': ''}, 'output': {'file_format': 'hdf5'}, 'phase': {'method': 'None', 'unsharp_coeff': 0, 'unsharp_sigma': 0, 'ctf_geometry': ' z1_v=None; z1_h=None; detec_pixel_size=None; magnification=True', 'beam_shape': 'parallel', 'ctf_advanced_params': ' length_scale=1e-05; lim1=1e-05; lim2=0.2; normalize_by_mean=True'}, 'configuration_level': 'optional'}}, '_ewoks_execinfo': {}, '_ewoks_task_options': {}, '_ewoks_varinfo': {}, 'controlAreaVisible': True, 'default_inputs': {}, 'savedWidgetGeometry': None, '__version__': 1}</properties>
61
+ <properties node_id="6" format="literal">{'_auto_mode': True, '_ewoks_default_inputs': {}, '_ewoks_execinfo': {}, '_ewoks_task_options': {}, '_ewoks_varinfo': {}, 'controlAreaVisible': True, 'default_inputs': {}, 'savedWidgetGeometry': b'\x01\xd9\xd0\xcb\x00\x03\x00\x00\x00\x00\n\\\x00\x00\x01k\x00\x00\x0c\x0f\x00\x00\x02}\x00\x00\n\\\x00\x00\x01k\x00\x00\x0c\x0f\x00\x00\x02}\x00\x00\x00\x01\x00\x00\x00\x00\x07\x80\x00\x00\n\\\x00\x00\x01k\x00\x00\x0c\x0f\x00\x00\x02}', '__version__': 1}</properties>
62
+ <properties node_id="7" format="literal">{'_ewoks_default_inputs': {'data': None, 'nabu_params': {}, 'slurm_settings': {}}, 'controlAreaVisible': True, 'savedWidgetGeometry': None, '__version__': 1}</properties>
63
+ <properties node_id="8" format="literal">{'_ewoks_default_inputs': {}, '_ewoks_execinfo': {}, '_ewoks_task_options': {}, '_ewoks_varinfo': {}, 'controlAreaVisible': True, 'default_inputs': {}, 'savedWidgetGeometry': None, '__version__': 1}</properties>
64
+ <properties node_id="9" format="literal">{'_ewoks_default_inputs': {}, 'controlAreaVisible': True, 'savedWidgetGeometry': b'\x01\xd9\xd0\xcb\x00\x03\x00\x00\x00\x00\n\x84\x00\x00\x00\xb1\x00\x00\x0b\xe7\x00\x00\x03\x11\x00\x00\n\x84\x00\x00\x00\xd6\x00\x00\x0b\xe7\x00\x00\x03\x11\x00\x00\x00\x01\x00\x00\x00\x00\x07\x80\x00\x00\n\x84\x00\x00\x00\xd6\x00\x00\x0b\xe7\x00\x00\x03\x11', '__version__': 1}</properties>
65
+ <properties node_id="10" format="literal">{'_ewoks_default_inputs': {}, '_ewoks_execinfo': {}, '_ewoks_task_options': {}, '_ewoks_varinfo': {}, 'controlAreaVisible': True, 'default_inputs': {}, 'savedWidgetGeometry': None, '__version__': 1}</properties>
66
+ <properties node_id="11" format="literal">{'_ewoks_default_inputs': {'load_volume': False}, '_ewoks_execinfo': {}, '_ewoks_task_options': {}, '_ewoks_varinfo': {}, 'controlAreaVisible': True, 'default_inputs': {}, 'savedWidgetGeometry': None, '__version__': 1}</properties>
67
+ <properties node_id="12" format="literal">{'_ewoks_default_inputs': {}, 'controlAreaVisible': True, 'savedWidgetGeometry': b'\x01\xd9\xd0\xcb\x00\x03\x00\x00\x00\x00\n\x84\x00\x00\x00\xd6\x00\x00\x0b\xe7\x00\x00\x03\x11\x00\x00\n\x84\x00\x00\x00\xd6\x00\x00\x0b\xe7\x00\x00\x03\x11\x00\x00\x00\x01\x00\x00\x00\x00\x07\x80\x00\x00\n\x84\x00\x00\x00\xd6\x00\x00\x0b\xe7\x00\x00\x03\x11', '__version__': 1}</properties>
68
+ <properties node_id="13" format="literal">{'_ewoks_default_inputs': {}, '_ewoks_execinfo': {}, '_ewoks_task_options': {}, '_ewoks_varinfo': {}, 'controlAreaVisible': True, 'default_inputs': {}, 'savedWidgetGeometry': None, '__version__': 1}</properties>
69
+ </node_properties>
70
+ <session_state>
71
+ <window_groups />
72
+ </session_state>
73
+ </scheme>
@@ -4,7 +4,7 @@
4
4
  <node id="0" name="scan selector" qualified_name="orangecontrib.tomwer.widgets.control.DataSelectorOW.DataSelectorOW" project_name="tomwer" version="" title="scan selector" position="(150, 150)" />
5
5
  <node id="1" name="reduced darks and flats" qualified_name="orangecontrib.tomwer.widgets.reconstruction.ComputeReduceDarkAndFlatOW.ComputeReduceDarkAndFlatOW" project_name="tomwer" version="" title="reduced darks and flats" position="(319.0, 189.0)" />
6
6
  <node id="2" name="center of rotation finder" qualified_name="orangecontrib.tomwer.widgets.reconstruction.CoROW.CoROW" project_name="tomwer" version="" title="default center of rotation" position="(469.0, 237.0)" />
7
- <node id="3" name="nabu slice reconstruction" qualified_name="orangecontrib.tomwer.widgets.reconstruction.NabuOW.NabuOW" project_name="tomwer" version="" title="nabu slice reconstruction" position="(659.0, 325.0)" />
7
+ <node id="3" name="nabu slice reconstruction" qualified_name="orangecontrib.tomwer.widgets.reconstruction.NabuSlicesOW.NabuSlicesOW" project_name="tomwer" version="" title="nabu slice reconstruction" position="(659.0, 325.0)" />
8
8
  <node id="4" name="data viewer" qualified_name="orangecontrib.tomwer.widgets.visualization.DataViewerOW.DataViewerOW" project_name="tomwer" version="" title="data viewer" position="(818.0, 362.0)" />
9
9
  <node id="5" name="nabu settings" qualified_name="orangecontrib.tomwer.widgets.reconstruction.NabuSettingsOW.NabuSettingsOW" project_name="tomwer" version="" title="nabu settings" position="(515.0, 427.0)" />
10
10
  </nodes>
@@ -4,7 +4,7 @@
4
4
  <node id="0" name="scan selector" qualified_name="orangecontrib.tomwer.widgets.control.DataSelectorOW.DataSelectorOW" project_name="tomwer" version="" title="scan selector" position="(150, 150)" />
5
5
  <node id="1" name="reduced darks and flats" qualified_name="orangecontrib.tomwer.widgets.reconstruction.ComputeReduceDarkAndFlatOW.ComputeReduceDarkAndFlatOW" project_name="tomwer" version="" title="reduced darks and flats" position="(324.0, 183.0)" />
6
6
  <node id="2" name="center of rotation finder" qualified_name="orangecontrib.tomwer.widgets.reconstruction.CoROW.CoROW" project_name="tomwer" version="" title="default center of rotation" position="(490.0, 218.0)" />
7
- <node id="3" name="nabu slice reconstruction" qualified_name="orangecontrib.tomwer.widgets.reconstruction.NabuOW.NabuOW" project_name="tomwer" version="" title="nabu slice reconstruction" position="(649.0, 261.0)" />
7
+ <node id="3" name="nabu slice reconstruction" qualified_name="orangecontrib.tomwer.widgets.reconstruction.NabuSlicesOW.NabuSlicesOW" project_name="tomwer" version="" title="nabu slice reconstruction" position="(649.0, 261.0)" />
8
8
  <node id="4" name="data viewer" qualified_name="orangecontrib.tomwer.widgets.visualization.DataViewerOW.DataViewerOW" project_name="tomwer" version="" title="data viewer" position="(818.0, 248.0)" />
9
9
  <node id="5" name="nabu volume reconstruction" qualified_name="orangecontrib.tomwer.widgets.reconstruction.NabuVolumeOW.NabuVolumeOW" project_name="tomwer" version="" title="nabu volume reconstruction" position="(812.0, 391.0)" />
10
10
  <node id="6" name="volume viewer" qualified_name="orangecontrib.tomwer.widgets.visualization.VolumeViewerOW.VolumeViewerOW" project_name="tomwer" version="" title="volume viewer" position="(986.75, 383.25)" />
@@ -2,7 +2,7 @@
2
2
  <scheme version="2.0" title="full volume" description="">
3
3
  <nodes>
4
4
  <node id="0" name="scan selector" qualified_name="orangecontrib.tomwer.widgets.control.DataSelectorOW.DataSelectorOW" project_name="tomwer" version="" title="scan selector" position="(157.0, 160.0)" />
5
- <node id="1" name="nabu slice reconstruction" qualified_name="orangecontrib.tomwer.widgets.reconstruction.NabuOW.NabuOW" project_name="tomwer" version="" title="nabu slice reconstruction" position="(350.0, 152.0)" />
5
+ <node id="1" name="nabu slice reconstruction" qualified_name="orangecontrib.tomwer.widgets.reconstruction.NabuSlicesOW.NabuSlicesOW" project_name="tomwer" version="" title="nabu slice reconstruction" position="(350.0, 152.0)" />
6
6
  <node id="2" name="nabu volume reconstruction" qualified_name="orangecontrib.tomwer.widgets.reconstruction.NabuVolumeOW.NabuVolumeOW" project_name="tomwer" version="" title="nabu volume reconstruction" position="(505.0, 151.0)" />
7
7
  <node id="3" name="tone notifier" qualified_name="orangecontrib.ewoksnotify.ToneNotifierOW.ToneNotifierOW" project_name="ewoksnotify" version="" title="tone notifier" position="(693.0, 151.0)" />
8
8
  <node id="4" name="nabu settings" qualified_name="orangecontrib.tomwer.widgets.reconstruction.NabuSettingsOW.NabuSettingsOW" project_name="tomwer" version="" title="nabu settings" position="(238.0, 62.0)" />
@@ -1,7 +1,7 @@
1
1
  <?xml version='1.0' encoding='utf-8'?>
2
2
  <scheme version="2.0" title="insitu" description="">
3
3
  <nodes>
4
- <node id="0" name="nabu slice reconstruction" qualified_name="orangecontrib.tomwer.widgets.reconstruction.NabuOW.NabuOW" project_name="tomwer" version="" title="nabu slice reconstruction" position="(757.6666666666667, 415.66666666666663)" />
4
+ <node id="0" name="nabu slice reconstruction" qualified_name="orangecontrib.tomwer.widgets.reconstruction.NabuSlicesOW.NabuSlicesOW" project_name="tomwer" version="" title="nabu slice reconstruction" position="(757.6666666666667, 415.66666666666663)" />
5
5
  <node id="1" name="center of rotation finder" qualified_name="orangecontrib.tomwer.widgets.reconstruction.CoROW.CoROW" project_name="tomwer" version="" title="default center of rotation" position="(625.6666666666667, 415.3333333333335)" />
6
6
  <node id="2" name="Python Script" qualified_name="orangecontrib.tomwer.widgets.other.PythonScriptOW.OWPythonScript" project_name="tomwer" version="" title="create volfloat symlink" position="(1048.5555555555557, 553.3333333333333)" />
7
7
  <node id="3" name="Python Script" qualified_name="orangecontrib.tomwer.widgets.other.PythonScriptOW.OWPythonScript" project_name="tomwer" version="" title="Python Script (old)" position="(358.6666666666667, 240.5)" />
@@ -4,7 +4,7 @@
4
4
  <node id="0" name="scan watcher" qualified_name="orangecontrib.tomwer.widgets.control.BlissDataListenerOW.BlissDataListenerOW" project_name="tomwer" version="" title="scan watcher" position="(45.0, 221.0)" />
5
5
  <node id="1" name="reduced darks and flats" qualified_name="orangecontrib.tomwer.widgets.reconstruction.ComputeReduceDarkAndFlatOW.ComputeReduceDarkAndFlatOW" project_name="tomwer" version="" title="dark and flat field construction" position="(338.0, 228.0)" />
6
6
  <node id="2" name="scan selector" qualified_name="orangecontrib.tomwer.widgets.control.DataSelectorOW.DataSelectorOW" project_name="tomwer" version="" title="scan selector" position="(84.0, 57.0)" />
7
- <node id="3" name="nabu slice reconstruction" qualified_name="orangecontrib.tomwer.widgets.reconstruction.NabuOW.NabuOW" project_name="tomwer" version="" title="nabu slice reconstruction" position="(581.0, 344.0)" />
7
+ <node id="3" name="nabu slice reconstruction" qualified_name="orangecontrib.tomwer.widgets.reconstruction.NabuSlicesOW.NabuSlicesOW" project_name="tomwer" version="" title="nabu slice reconstruction" position="(581.0, 344.0)" />
8
8
  <node id="4" name="data viewer" qualified_name="orangecontrib.tomwer.widgets.visualization.DataViewerOW.DataViewerOW" project_name="tomwer" version="" title="data viewer" position="(1078.0, 475.0)" />
9
9
  <node id="5" name="center of rotation finder" qualified_name="orangecontrib.tomwer.widgets.reconstruction.CoROW.CoROW" project_name="tomwer" version="" title="default center of rotation" position="(460.0, 307.0)" />
10
10
  <node id="6" name="Python Script" qualified_name="orangecontrib.tomwer.widgets.other.PythonScriptOW.OWPythonScript" project_name="tomwer" version="" title="create volfloat symlink" position="(1053.0, 615.0)" />
@@ -4,7 +4,7 @@
4
4
  <node id="0" name="scan selector" qualified_name="orangecontrib.tomwer.widgets.control.DataSelectorOW.DataSelectorOW" project_name="tomwer" version="" title="scan selector" position="(150, 150)" />
5
5
  <node id="1" name="reduced darks and flats" qualified_name="orangecontrib.tomwer.widgets.reconstruction.ComputeReduceDarkAndFlatOW.ComputeReduceDarkAndFlatOW" project_name="tomwer" version="" title="reduced darks and flats" position="(324.0, 183.0)" />
6
6
  <node id="2" name="center of rotation finder" qualified_name="orangecontrib.tomwer.widgets.reconstruction.CoROW.CoROW" project_name="tomwer" version="" title="default center of rotation" position="(490.0, 218.0)" />
7
- <node id="3" name="nabu slice reconstruction" qualified_name="orangecontrib.tomwer.widgets.reconstruction.NabuOW.NabuOW" project_name="tomwer" version="" title="nabu slice reconstruction" position="(649.0, 261.0)" />
7
+ <node id="3" name="nabu slice reconstruction" qualified_name="orangecontrib.tomwer.widgets.reconstruction.NabuSlicesOW.NabuSlicesOW" project_name="tomwer" version="" title="nabu slice reconstruction" position="(649.0, 261.0)" />
8
8
  <node id="4" name="data viewer" qualified_name="orangecontrib.tomwer.widgets.visualization.DataViewerOW.DataViewerOW" project_name="tomwer" version="" title="data viewer" position="(820.0, 307.0)" />
9
9
  <node id="5" name="nabu settings" qualified_name="orangecontrib.tomwer.widgets.reconstruction.NabuSettingsOW.NabuSettingsOW" project_name="tomwer" version="" title="nabu settings" position="(426.0, 355.0)" />
10
10
  </nodes>
@@ -4,7 +4,7 @@
4
4
  <node id="0" name="scan selector" qualified_name="orangecontrib.tomwer.widgets.control.DataSelectorOW.DataSelectorOW" project_name="tomwer" version="" title="scan selector" position="(99.99999999999997, 255.71428571428572)" />
5
5
  <node id="1" name="reduced darks and flats" qualified_name="orangecontrib.tomwer.widgets.reconstruction.ComputeReduceDarkAndFlatOW.ComputeReduceDarkAndFlatOW" project_name="tomwer" version="" title="reduced darks and flats" position="(261.1428571428571, 254.42857142857142)" />
6
6
  <node id="2" name="center of rotation finder" qualified_name="orangecontrib.tomwer.widgets.reconstruction.CoROW.CoROW" project_name="tomwer" version="" title="default center of rotation" position="(384.2857142857143, 255.1428571428571)" />
7
- <node id="3" name="nabu slice reconstruction" qualified_name="orangecontrib.tomwer.widgets.reconstruction.NabuOW.NabuOW" project_name="tomwer" version="" title="nabu slice reconstruction" position="(649.0, 261.0)" />
7
+ <node id="3" name="nabu slice reconstruction" qualified_name="orangecontrib.tomwer.widgets.reconstruction.NabuSlicesOW.NabuSlicesOW" project_name="tomwer" version="" title="nabu slice reconstruction" position="(649.0, 261.0)" />
8
8
  <node id="4" name="data viewer" qualified_name="orangecontrib.tomwer.widgets.visualization.DataViewerOW.DataViewerOW" project_name="tomwer" version="" title="data viewer" position="(946.4285714285714, 255.1428571428571)" />
9
9
  <node id="5" name="slurm cluster" qualified_name="orangecontrib.tomwer.widgets.cluster.SlurmClusterOW.SlurmClusterOW" project_name="tomwer" version="" title="slurm cluster" position="(480.57142857142856, 369.8571428571429)" />
10
10
  <node id="6" name="Cluster monitor" qualified_name="orangecontrib.tomwer.widgets.cluster.MonitorOW.MonitorOW" project_name="tomwer" version="" title="cluster monitor" position="(794.9285714285714, 258.3571428571429)" />
@@ -5,7 +5,7 @@
5
5
  <node id="1" name="reduced darks and flats" qualified_name="orangecontrib.tomwer.widgets.reconstruction.ComputeReduceDarkAndFlatOW.ComputeReduceDarkAndFlatOW" project_name="tomwer" version="" title="reduced darks and flats" position="(319.0, 189.0)" />
6
6
  <node id="2" name="center of rotation finder" qualified_name="orangecontrib.tomwer.widgets.reconstruction.CoROW.CoROW" project_name="tomwer" version="" title="default center of rotation" position="(469.0, 237.0)" />
7
7
  <node id="3" name="multi-cor (sa-axis)" qualified_name="orangecontrib.tomwer.widgets.reconstruction.MultiCoROW.MultiCoROW" project_name="tomwer" version="" title="semi-automated center of rotation" position="(605.0, 288.0)" />
8
- <node id="4" name="nabu slice reconstruction" qualified_name="orangecontrib.tomwer.widgets.reconstruction.NabuOW.NabuOW" project_name="tomwer" version="" title="nabu slice reconstruction" position="(772.0, 340.0)" />
8
+ <node id="4" name="nabu slice reconstruction" qualified_name="orangecontrib.tomwer.widgets.reconstruction.NabuSlicesOW.NabuSlicesOW" project_name="tomwer" version="" title="nabu slice reconstruction" position="(772.0, 340.0)" />
9
9
  <node id="5" name="data viewer" qualified_name="orangecontrib.tomwer.widgets.visualization.DataViewerOW.DataViewerOW" project_name="tomwer" version="" title="data viewer" position="(931.0, 377.0)" />
10
10
  <node id="6" name="nabu settings" qualified_name="orangecontrib.tomwer.widgets.reconstruction.NabuSettingsOW.NabuSettingsOW" project_name="tomwer" version="" title="nabu settings" position="(450.0, 373.0)" />
11
11
  </nodes>
@@ -1,6 +1,7 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  import time
4
+ import weakref
4
5
 
5
6
  from orangewidget import gui
6
7
 
@@ -13,7 +14,6 @@ from ewokscore.missing_data import MISSING_DATA
13
14
  from ewoksorange.gui.orange_utils.signals import Input
14
15
 
15
16
  from processview.core.manager import DatasetState, ProcessManager
16
- from processview.core.superviseprocess import SuperviseProcess
17
17
  from silx.gui import qt
18
18
  from silx.gui.utils.concurrent import submitToQtMainThread
19
19
 
@@ -67,9 +67,11 @@ class MonitorOW(
67
67
  # gui
68
68
  layout = gui.vBox(self.mainArea, self.name).layout()
69
69
  self._widget = FutureTomwerObjectObserverWidget(
70
- parent=self, name=self.windowTitle()
70
+ parent=self,
71
+ name=self.windowTitle(),
72
+ process=self,
71
73
  )
72
- self.set_dynamic_input("process_id", self._widget.process_id)
74
+ self.set_dynamic_input("process_id", self.process_id)
73
75
  layout.addWidget(self._widget)
74
76
 
75
77
  def handleNewSignals(self) -> None:
@@ -102,17 +104,19 @@ class MonitorOW(
102
104
  return super()._output_changed()
103
105
 
104
106
 
105
- class FutureTomwerObjectObserverWidget(
106
- _FutureTomwerScanObserverWidget, SuperviseProcess
107
- ):
107
+ class FutureTomwerObjectObserverWidget(_FutureTomwerScanObserverWidget):
108
108
  """add dataset state notification (ProcessManager) to the original FutureTomwerScanObserverWidget"""
109
109
 
110
110
  REFRESH_FREQUENCE = 10
111
111
  """time between call to updateView"""
112
112
 
113
- def __init__(self, name, parent=None):
113
+ def __init__(self, name, process, parent=None):
114
+ """
115
+ :param process: Process that 'controls' the futures
116
+ """
114
117
  super().__init__(parent=parent)
115
118
  self.name = name
119
+ self.__master_process = weakref.ref(process)
116
120
  self._updateThread = _RefreshThread(
117
121
  callback=self.updateView, refresh_frequence=self.REFRESH_FREQUENCE
118
122
  )
@@ -168,12 +172,13 @@ class FutureTomwerObjectObserverWidget(
168
172
  raise ValueError(
169
173
  f"future scan status '{future_tomo_obj.status}' is not managed, {type(future_tomo_obj.status)}"
170
174
  )
171
- ProcessManager().notify_dataset_state(
172
- dataset=future_tomo_obj.tomo_obj,
173
- process=self,
174
- state=state,
175
- details=details,
176
- )
175
+ if self.__master_process():
176
+ ProcessManager().notify_dataset_state(
177
+ dataset=future_tomo_obj.tomo_obj,
178
+ process=self.__master_process(),
179
+ state=state,
180
+ details=details,
181
+ )
177
182
 
178
183
  def _updateStatus(self, future_tomo_obj):
179
184
  self._updateTomoObjSupervisor(future_tomo_obj)
@@ -8,8 +8,8 @@ from orangewidget import gui
8
8
  from orangewidget.settings import Setting
9
9
  from orangewidget.widget import Output, OWBaseWidget
10
10
 
11
+ from tomwer.models.cluster.slurm_cluster import SlurmClusterConfiguration
11
12
  from tomwer.core.settings import ParametersKeys
12
- from tomwer.core.cluster import SlurmClusterConfiguration
13
13
  from tomwer.gui.cluster.slurm import SlurmSettingsWindow
14
14
 
15
15
  _logger = logging.getLogger(__name__)
@@ -19,8 +19,8 @@ from silx.gui import qt
19
19
  from tomoscan.series import Series
20
20
 
21
21
  import tomwer.tasks.script.python
22
+ from tomwer.models.cluster.slurm_cluster import SlurmClusterConfiguration
22
23
  from tomwer.core.settings import ParametersKeys
23
- from tomwer.core.cluster.cluster import SlurmClusterConfiguration
24
24
  from tomwer.core.futureobject import FutureTomwerObject
25
25
  from tomwer.core.scan.scanbase import TomwerScanBase
26
26
  from tomwer.core.volume.volumebase import TomwerVolumeBase
@@ -1,6 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
- from tomwer.core.cluster import SlurmClusterConfiguration
3
+ from tomwer.models.cluster.slurm_cluster import SlurmClusterConfiguration
4
4
  from tomwer.core.settings import ParametersKeys
5
5
 
6
6
 
@@ -37,3 +37,6 @@ class BaseNabuRecOW:
37
37
  def setNabuParams(self, config: dict) -> None:
38
38
  assert config is None or isinstance(config, dict)
39
39
  self._nabu_params = config
40
+
41
+ def getNabuParams(self) -> dict:
42
+ return self._nabu_params
@@ -3,14 +3,14 @@ from __future__ import annotations
3
3
  from orangewidget import gui
4
4
  from orangewidget.widget import Input
5
5
 
6
- from tomwer.core.cluster.cluster import SlurmClusterConfiguration
6
+ from tomwer.models.cluster.slurm_cluster import SlurmClusterConfiguration
7
7
  from tomwer.core.scan.scanbase import TomwerScanBase
8
8
  from tomwer.core.settings import ParametersKeys
9
9
  from tomwer.core.utils.ewoks import filter_missing_data
10
10
  from tomwer.core.volume.volumebase import TomwerVolumeBase
11
11
  from tomwer.gui.reconstruction.nabu.castvolume import CastVolumeWidget
12
12
  from tomwer.gui.utils.qt_utils import block_signals
13
- from tomwer.tasks.reconstruction.nabu.castvolume import CastVolumeTask
13
+ from tomwer.tasks.reconstruction.castvolume import CastVolumeTask
14
14
  from orangecontrib.tomwer.orange.task_widgets.TomwerWidgetWithStack import (
15
15
  TomwerWidgetWithStack,
16
16
  )
@@ -11,19 +11,20 @@ from orangecontrib.tomwer.orange.task_widgets.TomwerWidgetWithStack import (
11
11
 
12
12
  from orangecontrib.tomwer.orange.settings import CallbackSettingsHandler
13
13
 
14
- import tomwer.tasks.reconstruction.nabu.multicor
14
+ import tomwer.tasks.reconstruction.multicor
15
15
  from tomwer.tasks.reconstruction.cor import CoRTask
16
16
  from tomwer.core.reconstruction.params_cache import (
17
17
  save_reconstruction_parameters_to_cache,
18
18
  )
19
19
  from tomwer.core.scan.scanbase import TomwerScanBase
20
20
  from tomwer.core.reconstruction.multi.multicor.multicor import _is_margin_too_large
21
- from tomwer.core.reconstruction.nabu.phase import NabuPhaseMethod
21
+ from tomwer.core.reconstruction.common.phase import NabuPhaseMethod
22
22
  from tomwer.core.settings import ParametersKeys
23
23
  from tomwer.gui.reconstruction.cor.QCoRParams import QCoRParams as _QCoRParams
24
24
  from tomwer.gui.reconstruction.multicor.QMultiCoRParams import (
25
25
  QMultiCoRParams as _QMultiCoRParams,
26
26
  )
27
+ from tomwer.gui.utils.reconstruction import check_nabu_params_are_provided
27
28
  from tomwer.core.utils.char import BETA_CHAR, DELTA_CHAR
28
29
 
29
30
  from processview.core.manager import ProcessManager, DatasetState
@@ -31,6 +32,7 @@ from processview.core import helpers as pv_helpers
31
32
  from processview.core.superviseprocess import SuperviseProcess
32
33
 
33
34
  from tomwer.gui.reconstruction.multicor.MultiCoRWindow import MultiCoRWindow
35
+ from ewoksorange.gui.orange_utils.signals import Input
34
36
 
35
37
  _logger = logging.getLogger(__name__)
36
38
 
@@ -38,7 +40,7 @@ _logger = logging.getLogger(__name__)
38
40
  class MultiCoROW(
39
41
  TomwerWidgetWithStack,
40
42
  SuperviseProcess,
41
- ewokstaskclass=tomwer.tasks.reconstruction.nabu.multicor.MultiCoRTask,
43
+ ewokstaskclass=tomwer.tasks.reconstruction.multicor.MultiCoRTask,
42
44
  openclass=True,
43
45
  ):
44
46
  """
@@ -107,9 +109,19 @@ class MultiCoROW(
107
109
  "pool_size",
108
110
  "platform_resources",
109
111
  "process_id",
112
+ "invalid_slice_callback",
110
113
  )
111
114
  _MARGIN_LIMIT_WARNING = 100
112
115
 
116
+ class Inputs:
117
+ data = Input(
118
+ name="data",
119
+ type=TomwerScanBase,
120
+ doc="one scan to be process",
121
+ default=True,
122
+ multiple=True,
123
+ )
124
+
113
125
  def __init__(self, parent=None):
114
126
  """
115
127
 
@@ -130,7 +142,7 @@ class MultiCoROW(
130
142
  self._widget.sigValidated.connect(self.validate)
131
143
  self._widget.sigValidated.connect(self.accept)
132
144
  self._widget._multicorControl.sigComputationRequest.connect(
133
- self._computationTriggered
145
+ self.execute_ewoks_task_without_propagation
134
146
  )
135
147
  self._widget._multicorControl.sigComputationRequest.connect(
136
148
  self._widget.showResults
@@ -154,13 +166,13 @@ class MultiCoROW(
154
166
  }
155
167
  )
156
168
 
157
- def _computationTriggered(self):
169
+ def execute_ewoks_task_without_propagation(self):
158
170
  if self._checkCancelProcessingForMargins():
159
171
  _logger.info(
160
172
  "Multi-cor reconstruction cancelled by the user because of phasing / margins warning"
161
173
  )
162
174
  return
163
- self.execute_ewoks_task_without_propagation() # propagation is handle once processing is done to handle interactive of auto modes
175
+ super().execute_ewoks_task_without_propagation() # propagation is handle once processing is done to handle interactive of auto modes
164
176
 
165
177
  def _updateSettings(self):
166
178
  self.set_default_input(
@@ -186,6 +198,10 @@ class MultiCoROW(
186
198
  def setConfiguration(self, configuration):
187
199
  self._widget.setConfiguration(configuration)
188
200
 
201
+ @Inputs.data
202
+ def _scanReceived(self, scan):
203
+ self.process(scan=scan)
204
+
189
205
  def process(self, scan):
190
206
  """
191
207
  call when a new scan is received
@@ -196,6 +212,12 @@ class MultiCoROW(
196
212
  scan.cor_params = _QCoRParams()
197
213
  if scan.multicor_params is None:
198
214
  scan.multicor_params = _QMultiCoRParams()
215
+ if not check_nabu_params_are_provided(
216
+ nabu_params=self.get_task_input_value("nabu_params"),
217
+ process=self,
218
+ tomo_obj=scan,
219
+ ):
220
+ return
199
221
  # clear interface
200
222
  self._widget.clearResults()
201
223
  self.set_dynamic_input("data", scan)
@@ -391,11 +413,6 @@ class MultiCoROW(
391
413
  self.show()
392
414
  self._widget.showResults()
393
415
 
394
- def handleNewSignals(self):
395
- scan = self.get_task_input_value("data", None)
396
- if scan is not None:
397
- self.process(scan)
398
-
399
416
  def _output_changed(self):
400
417
  self._updateAccordingToResult()
401
418
  return super()._output_changed()
@@ -419,3 +436,13 @@ class MultiCoROW(
419
436
 
420
437
  def isAutoFocusLock(self):
421
438
  return self._widget.isAutoFocusLock()
439
+
440
+ def handleNewSignals(self) -> None:
441
+ """
442
+ in order to handle https://gitlab.esrf.fr/workflow/ewoks/ewoksorange/-/issues/60
443
+ we need to overwrite the Inputs.data and overwrite the 'handleNewSignals' function.
444
+
445
+ The Inputs.data is used to make sure the task is executed each time the value of a link is changed.
446
+ The overwrite of `handleNewSignals` is to make sure we won't trigger one extra time the widget.
447
+ """
448
+ pass