tomwer 1.3.0.dev2__py3-none-any.whl → 1.3.0rc10__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 (156) hide show
  1. orangecontrib/tomwer/widgets/__init__.py +11 -12
  2. orangecontrib/tomwer/widgets/control/DataListenerOW.py +6 -6
  3. orangecontrib/tomwer/widgets/control/DataValidatorOW.py +6 -6
  4. orangecontrib/tomwer/widgets/control/NXTomomillMixIn.py +3 -3
  5. orangecontrib/tomwer/widgets/control/NXTomomillOW.py +10 -8
  6. orangecontrib/tomwer/widgets/control/SingleTomoObjOW.py +6 -6
  7. orangecontrib/tomwer/widgets/debugtools/DatasetGeneratorOW.py +1 -1
  8. orangecontrib/tomwer/widgets/icat/RawDataScreenshotCreatorOW.py +98 -98
  9. orangecontrib/tomwer/widgets/icat/SaveToGalleryAndPublishOW.py +129 -129
  10. orangecontrib/tomwer/widgets/reconstruction/AxisOW.py +13 -12
  11. orangecontrib/tomwer/widgets/reconstruction/SAAxisOW.py +11 -9
  12. orangecontrib/tomwer/widgets/reconstruction/SADeltaBetaOW.py +11 -9
  13. orangecontrib/tomwer/widgets/reconstruction/SinoNormOW.py +12 -15
  14. orangecontrib/tomwer/widgets/visualization/DataViewerOW.py +9 -9
  15. orangecontrib/tomwer/widgets/visualization/DiffViewerOW.py +1 -1
  16. orangecontrib/tomwer/widgets/visualization/SinogramViewerOW.py +0 -1
  17. tomwer/__main__.py +0 -10
  18. tomwer/app/canvas_launcher/config.py +3 -3
  19. tomwer/app/canvas_launcher/environ.py +1 -0
  20. tomwer/app/intensitynormalization.py +12 -11
  21. tomwer/app/nabuapp.py +0 -11
  22. tomwer/app/zstitching.py +11 -1
  23. tomwer/core/process/control/datalistener/datalistener.py +15 -10
  24. tomwer/core/process/control/nxtomomill.py +1 -1
  25. tomwer/core/process/control/scantransfer.py +8 -32
  26. tomwer/core/process/edit/darkflatpatch.py +8 -9
  27. tomwer/core/process/edit/imagekeyeditor.py +20 -22
  28. tomwer/core/process/icat/screenshots.py +1 -0
  29. tomwer/core/process/reconstruction/axis/axis.py +263 -59
  30. tomwer/core/process/reconstruction/axis/mode.py +161 -50
  31. tomwer/core/process/reconstruction/axis/params.py +23 -20
  32. tomwer/core/process/reconstruction/darkref/darkrefs.py +12 -13
  33. tomwer/core/process/reconstruction/nabu/castvolume.py +3 -3
  34. tomwer/core/process/reconstruction/nabu/nabucommon.py +43 -19
  35. tomwer/core/process/reconstruction/nabu/nabuscores.py +34 -7
  36. tomwer/core/process/reconstruction/nabu/nabuslices.py +81 -26
  37. tomwer/core/process/reconstruction/nabu/nabuvolume.py +31 -26
  38. tomwer/core/process/reconstruction/nabu/plane.py +9 -0
  39. tomwer/core/process/reconstruction/nabu/utils.py +32 -9
  40. tomwer/core/process/reconstruction/saaxis/saaxis.py +4 -1
  41. tomwer/core/process/reconstruction/sadeltabeta/sadeltabeta.py +9 -1
  42. tomwer/core/process/reconstruction/scores/params.py +3 -3
  43. tomwer/core/process/reconstruction/test/test_darkref_copy.py +4 -4
  44. tomwer/core/process/stitching/nabustitcher.py +11 -10
  45. tomwer/core/process/task.py +33 -27
  46. tomwer/core/process/test/test_axis.py +7 -6
  47. tomwer/core/process/test/test_data_transfer.py +3 -3
  48. tomwer/core/process/test/test_nabu.py +10 -2
  49. tomwer/core/process/test/test_normalization.py +2 -2
  50. tomwer/core/scan/blissscan.py +3 -3
  51. tomwer/core/scan/edfscan.py +9 -9
  52. tomwer/core/scan/nxtomoscan.py +11 -11
  53. tomwer/core/scan/scanbase.py +31 -24
  54. tomwer/core/scan/test/test_future_scan.py +1 -1
  55. tomwer/core/scan/test/test_h5.py +4 -4
  56. tomwer/core/scan/test/test_process_registration.py +2 -2
  57. tomwer/core/scan/test/test_scan.py +1 -75
  58. tomwer/core/settings.py +3 -3
  59. tomwer/core/test/test_utils.py +2 -2
  60. tomwer/core/volume/edfvolume.py +6 -6
  61. tomwer/core/volume/hdf5volume.py +6 -6
  62. tomwer/core/volume/jp2kvolume.py +6 -6
  63. tomwer/core/volume/rawvolume.py +6 -6
  64. tomwer/core/volume/tiffvolume.py +12 -12
  65. tomwer/gui/cluster/slurm.py +14 -9
  66. tomwer/gui/cluster/supervisor.py +12 -0
  67. tomwer/gui/cluster/test/test_cluster.py +1 -2
  68. tomwer/gui/cluster/test/test_supervisor.py +1 -1
  69. tomwer/gui/control/datalist.py +5 -0
  70. tomwer/gui/control/datawatcher/controlwidget.py +2 -4
  71. tomwer/gui/control/reducedarkflatselector.py +8 -8
  72. tomwer/gui/control/test/test_single_tomo_obj.py +1 -1
  73. tomwer/gui/edit/dkrfpatch.py +4 -4
  74. tomwer/gui/edit/nxtomowarmer.py +2 -2
  75. tomwer/gui/edit/test/test_dkrf_patch.py +6 -6
  76. tomwer/gui/imagefromfile.py +2 -2
  77. tomwer/gui/qfolderdialog.py +5 -0
  78. tomwer/gui/reconstruction/axis/CompareImages.py +94 -168
  79. tomwer/gui/reconstruction/axis/radioaxis.py +58 -182
  80. tomwer/gui/reconstruction/darkref/darkrefwidget.py +2 -1
  81. tomwer/gui/reconstruction/nabu/castvolume.py +8 -1
  82. tomwer/gui/reconstruction/nabu/nabuconfig/reconstruction.py +54 -21
  83. tomwer/gui/reconstruction/normalization/intensity.py +3 -25
  84. tomwer/gui/reconstruction/saaxis/corrangeselector.py +1 -1
  85. tomwer/gui/reconstruction/saaxis/saaxis.py +1 -11
  86. tomwer/gui/reconstruction/sadeltabeta/saadeltabeta.py +0 -10
  87. tomwer/gui/reconstruction/scores/scoreplot.py +1 -6
  88. tomwer/gui/reconstruction/test/test_axis.py +18 -4
  89. tomwer/gui/reconstruction/test/test_nabu.py +3 -0
  90. tomwer/gui/stitching/stitching.py +2 -2
  91. tomwer/gui/stitching/stitching_preview.py +7 -53
  92. tomwer/gui/stitching/stitching_raw.py +3 -3
  93. tomwer/gui/utils/inputwidget.py +12 -2
  94. tomwer/gui/utils/lineselector/lineselector.py +1 -1
  95. tomwer/gui/visualization/dataviewer.py +47 -17
  96. tomwer/gui/visualization/sinogramviewer.py +19 -26
  97. tomwer/gui/visualization/test/test_volumeviewer.py +64 -66
  98. tomwer/gui/visualization/volumeviewer.py +105 -105
  99. tomwer/io/utils/h5pyutils.py +7 -3
  100. tomwer/io/utils/utils.py +3 -3
  101. tomwer/resources/gui/icons/parameters.svg +1 -1
  102. tomwer/resources/gui/illustrations/no_rot.svg +1 -1
  103. tomwer/synctools/stacks/edit/darkflatpatch.py +17 -12
  104. tomwer/tests/test_scripts.py +0 -3
  105. tomwer/third_part/WaitingOverlay.py +110 -0
  106. tomwer/third_part/__init__.py +0 -0
  107. tomwer/version.py +2 -2
  108. {tomwer-1.3.0.dev2.dist-info → tomwer-1.3.0rc10.dist-info}/METADATA +32 -31
  109. {tomwer-1.3.0.dev2.dist-info → tomwer-1.3.0rc10.dist-info}/RECORD +115 -153
  110. {tomwer-1.3.0.dev2.dist-info → tomwer-1.3.0rc10.dist-info}/WHEEL +1 -1
  111. orangecontrib/tomwer/widgets/reconstruction/TofuOW.py +0 -197
  112. orangecontrib/tomwer/widgets/reconstruction/icons/XY_lamino.svg +0 -168
  113. orangecontrib/tomwer/widgets/reconstruction/icons/XZ_lamino.svg +0 -275
  114. orangecontrib/tomwer/widgets/reconstruction/icons/YZ_lamino.svg +0 -182
  115. tomwer/app/lamino.py +0 -143
  116. tomwer/core/process/reconstruction/lamino/__init__.py +0 -1
  117. tomwer/core/process/reconstruction/lamino/tofu.py +0 -1000
  118. tomwer/core/process/test/test_lamino.py +0 -76
  119. tomwer/core/test/test_lamino.py +0 -92
  120. tomwer/gui/reconstruction/lamino/__init__.py +0 -31
  121. tomwer/gui/reconstruction/lamino/tofu/TofuOptionLoader.py +0 -107
  122. tomwer/gui/reconstruction/lamino/tofu/__init__.py +0 -1
  123. tomwer/gui/reconstruction/lamino/tofu/misc.py +0 -148
  124. tomwer/gui/reconstruction/lamino/tofu/projections.py +0 -896
  125. tomwer/gui/reconstruction/lamino/tofu/settings.py +0 -75
  126. tomwer/gui/reconstruction/lamino/tofu/tofu.py +0 -432
  127. tomwer/gui/reconstruction/lamino/tofu/tofuexpert.py +0 -567
  128. tomwer/gui/reconstruction/lamino/tofu/tofuoutput.py +0 -757
  129. tomwer/gui/reconstruction/test/test_lamino.py +0 -194
  130. tomwer/resources/gui/icons/lamino_parameters.svg +0 -70
  131. tomwer/resources/gui/illustrations/lamino_angle.png +0 -0
  132. tomwer/resources/gui/illustrations/lamino_angle.svg +0 -509
  133. tomwer/resources/gui/illustrations/lamino_beta_angle.png +0 -0
  134. tomwer/resources/gui/illustrations/lamino_beta_angle.svg +0 -97
  135. tomwer/resources/gui/illustrations/lamino_theta_angle.png +0 -0
  136. tomwer/resources/gui/illustrations/lamino_theta_angle.svg +0 -368
  137. tomwer/resources/gui/illustrations/manual_slice.png +0 -0
  138. tomwer/resources/gui/illustrations/manual_slice.svg +0 -221
  139. tomwer/resources/gui/illustrations/psi_angle.png +0 -0
  140. tomwer/resources/gui/illustrations/psi_angle.svg +0 -479
  141. tomwer/resources/gui/illustrations/rotation_center.png +0 -0
  142. tomwer/resources/gui/illustrations/rotation_center.svg +0 -276
  143. tomwer/resources/gui/illustrations/slice_stack.png +0 -0
  144. tomwer/resources/gui/illustrations/slice_stack.svg +0 -266
  145. tomwer/resources/gui/illustrations/xy_slice.png +0 -0
  146. tomwer/resources/gui/illustrations/xy_slice.svg +0 -269
  147. tomwer/resources/gui/illustrations/xz_slice.png +0 -0
  148. tomwer/resources/gui/illustrations/xz_slice.svg +0 -270
  149. tomwer/resources/gui/illustrations/yz_slice.png +0 -0
  150. tomwer/resources/gui/illustrations/yz_slice.svg +0 -270
  151. tomwer/synctools/stacks/reconstruction/lamino.py +0 -233
  152. /tomwer-1.3.0.dev2-py3.11-nspkg.pth → /tomwer-1.3.0rc10-py3.11-nspkg.pth +0 -0
  153. {tomwer-1.3.0.dev2.dist-info → tomwer-1.3.0rc10.dist-info}/LICENSE +0 -0
  154. {tomwer-1.3.0.dev2.dist-info → tomwer-1.3.0rc10.dist-info}/entry_points.txt +0 -0
  155. {tomwer-1.3.0.dev2.dist-info → tomwer-1.3.0rc10.dist-info}/namespace_packages.txt +0 -0
  156. {tomwer-1.3.0.dev2.dist-info → tomwer-1.3.0rc10.dist-info}/top_level.txt +0 -0
@@ -1,182 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
- <!-- Created with Inkscape (http://www.inkscape.org/) -->
3
-
4
- <svg
5
- xmlns:dc="http://purl.org/dc/elements/1.1/"
6
- xmlns:cc="http://creativecommons.org/ns#"
7
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
8
- xmlns:svg="http://www.w3.org/2000/svg"
9
- xmlns="http://www.w3.org/2000/svg"
10
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
11
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
12
- width="100"
13
- height="100"
14
- id="svg2"
15
- version="1.1"
16
- inkscape:version="0.48.5 r10040"
17
- sodipodi:docname="emptyCube_x.svg">
18
- <defs
19
- id="defs4">
20
- <marker
21
- inkscape:stockid="Arrow1Send"
22
- orient="auto"
23
- refY="0.0"
24
- refX="0.0"
25
- id="Arrow1Send"
26
- style="overflow:visible;">
27
- <path
28
- id="path3788"
29
- d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
30
- style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;"
31
- transform="scale(0.2) rotate(180) translate(6,0)" />
32
- </marker>
33
- <marker
34
- inkscape:stockid="Arrow1Sstart"
35
- orient="auto"
36
- refY="0.0"
37
- refX="0.0"
38
- id="Arrow1Sstart"
39
- style="overflow:visible">
40
- <path
41
- id="path3785"
42
- d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
43
- style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
44
- transform="scale(0.2) translate(6,0)" />
45
- </marker>
46
- <marker
47
- inkscape:stockid="Arrow1Mstart"
48
- orient="auto"
49
- refY="0.0"
50
- refX="0.0"
51
- id="Arrow1Mstart"
52
- style="overflow:visible">
53
- <path
54
- id="path3779"
55
- d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
56
- style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
57
- transform="scale(0.4) translate(10,0)" />
58
- </marker>
59
- <inkscape:perspective
60
- sodipodi:type="inkscape:persp3d"
61
- inkscape:vp_x="-252.62268 : 156.72032 : 1"
62
- inkscape:vp_y="0 : 3383.9015 : 0"
63
- inkscape:vp_z="169.30198 : 147.12387 : 1"
64
- inkscape:persp3d-origin="-46.711117 : 100.32196 : 1"
65
- id="perspective3017" />
66
- <inkscape:perspective
67
- sodipodi:type="inkscape:persp3d"
68
- inkscape:vp_x="-252.44025 : 156.70147 : 1"
69
- inkscape:vp_y="0 : 3383.9015 : 0"
70
- inkscape:vp_z="169.48441 : 147.10502 : 1"
71
- inkscape:persp3d-origin="-46.528689 : 100.30311 : 1"
72
- id="perspective3017-7" />
73
- </defs>
74
- <sodipodi:namedview
75
- id="base"
76
- pagecolor="#ffffff"
77
- bordercolor="#666666"
78
- borderopacity="1.0"
79
- inkscape:pageopacity="0.0"
80
- inkscape:pageshadow="2"
81
- inkscape:zoom="5.6"
82
- inkscape:cx="20.638508"
83
- inkscape:cy="69.417196"
84
- inkscape:document-units="px"
85
- inkscape:current-layer="layer1"
86
- showgrid="false"
87
- inkscape:window-width="1920"
88
- inkscape:window-height="1178"
89
- inkscape:window-x="1920"
90
- inkscape:window-y="0"
91
- inkscape:window-maximized="1" />
92
- <metadata
93
- id="metadata7">
94
- <rdf:RDF>
95
- <cc:Work
96
- rdf:about="">
97
- <dc:format>image/svg+xml</dc:format>
98
- <dc:type
99
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
100
- <dc:title />
101
- </cc:Work>
102
- </rdf:RDF>
103
- </metadata>
104
- <g
105
- inkscape:label="Layer 1"
106
- inkscape:groupmode="layer"
107
- id="layer1"
108
- transform="translate(0,-952.36218)">
109
- <path
110
- style="opacity:0.62735847000000000;fill:#cf9634;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:0.5,0.5;stroke-dashoffset:0"
111
- d="m 39.395949,26.76394 33.335035,-19.6979741 0,43.4365591 -33.335035,33.840111 z"
112
- id="path5430"
113
- inkscape:connector-curvature="0"
114
- transform="translate(0,952.36218)"
115
- sodipodi:nodetypes="ccccc" />
116
- <path
117
- style="opacity:0.62735847000000000;fill:#cf9634;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:0.5,0.5;stroke-dashoffset:0"
118
- d="m 46.189625,980.74322 31.727892,-20.41226 0,44.15084 -32.263606,34.733 z"
119
- id="path5430-1"
120
- inkscape:connector-curvature="0"
121
- sodipodi:nodetypes="ccccc" />
122
- <g
123
- sodipodi:type="inkscape:box3d"
124
- style="opacity:0.71698112;fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
125
- id="g3139"
126
- inkscape:perspectiveID="#perspective3017-7"
127
- inkscape:corner0="-0.23369865 : -0.00058071337 : 0 : 1"
128
- inkscape:corner7="-0.34871743 : -0.012607987 : 0.24117225 : 1">
129
- <path
130
- sodipodi:type="inkscape:box3dside"
131
- id="path3149"
132
- style="fill:none;stroke:#000000;stroke-opacity:1"
133
- inkscape:box3dsidetype="13"
134
- d="m 16.268086,1024.9343 47.454833,22.8302 28.580423,-38.5104 L 52.9455,996.28562 z" />
135
- <path
136
- sodipodi:type="inkscape:box3dside"
137
- id="path3141"
138
- style="fill:none;stroke:#000000;stroke-opacity:1"
139
- inkscape:box3dsidetype="6"
140
- d="m 16.268086,971.82322 0,53.11108 36.677414,-28.64868 0,-40.39719 z" />
141
- <path
142
- sodipodi:type="inkscape:box3dside"
143
- id="path3151"
144
- style="fill:none;stroke:#000000;stroke-opacity:1"
145
- inkscape:box3dsidetype="11"
146
- d="m 52.9455,955.88843 39.357842,7.76209 0,45.60358 L 52.9455,996.28562 z" />
147
- <path
148
- sodipodi:type="inkscape:box3dside"
149
- id="path3143"
150
- style="fill:none;stroke:#000000;stroke-opacity:1"
151
- inkscape:box3dsidetype="5"
152
- d="M 16.268086,971.82322 63.722919,985.27379 92.303342,963.65052 52.9455,955.88843 z" />
153
- <path
154
- sodipodi:type="inkscape:box3dside"
155
- id="path3147"
156
- style="fill:none;stroke:#000000;stroke-opacity:1"
157
- inkscape:box3dsidetype="14"
158
- d="m 63.722919,985.27379 0,62.49071 28.580423,-38.5104 0,-45.60358 z" />
159
- <path
160
- sodipodi:type="inkscape:box3dside"
161
- id="path3145"
162
- style="fill:none;stroke:#000000;stroke-opacity:1"
163
- inkscape:box3dsidetype="3"
164
- d="m 16.268086,971.82322 47.454833,13.45057 0,62.49071 -47.454833,-22.8302 z" />
165
- </g>
166
- <path
167
- style="fill:none;stroke:#000000;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Sstart);marker-end:url(#Arrow1Send);stroke-miterlimit:4;stroke-dasharray:none"
168
- d="M 44.285714,88.392857 38.75,85"
169
- id="path9519"
170
- inkscape:connector-curvature="0"
171
- transform="translate(0,952.36218)" />
172
- <g
173
- transform="scale(1.0145776,0.98563184)"
174
- style="font-size:10.3904047px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:IPAPMincho;-inkscape-font-specification:IPAPMincho"
175
- id="text10079">
176
- <path
177
- d="m 38.389152,1059.0296 c -0.0068,-0.01 -0.03045,-0.024 -0.07103,-0.051 -0.03045,-0.02 -0.05412,-0.039 -0.07103,-0.056 -0.865871,-0.6358 -1.298804,-1.1821 -1.2988,-1.6387 -4e-6,-0.3382 0.148817,-0.6054 0.446463,-0.8016 0.21308,-0.1319 0.466751,-0.1978 0.761015,-0.1978 0.720423,0 1.435777,0.2317 2.146066,0.695 0.223223,0.1488 0.334839,0.2943 0.334847,0.4363 -8e-6,0.23 -0.111624,0.345 -0.334847,0.345 -0.128535,0 -0.2689,-0.076 -0.421096,-0.2283 -0.608819,-0.575 -1.192264,-0.8625 -1.750337,-0.8625 -0.470143,0 -0.705212,0.1878 -0.705208,0.5632 -4e-6,0.3484 0.539471,0.8608 1.618427,1.5372 0.811744,0.5074 1.217619,1.1652 1.217626,1.9736 -7e-6,0.8185 -0.231694,1.5305 -0.695061,2.1359 -0.517497,0.6731 -1.17197,1.0096 -1.963421,1.0096 -0.399115,0 -0.749182,-0.1352 -1.050202,-0.4058 -0.416026,-0.3721 -0.624036,-0.8676 -0.624034,-1.4865 -2e-6,-1.0519 0.443078,-1.8958 1.329242,-2.5317 0.304402,-0.2097 0.681527,-0.3551 1.131377,-0.4363 m 0.167423,0.2993 c -0.618964,0 -1.141528,0.4025 -1.567693,1.2075 -0.250293,0.4668 -0.375438,0.9792 -0.375434,1.5373 -4e-6,1.018 0.339916,1.5271 1.019761,1.5271 0.497192,0 0.947037,-0.3146 1.349535,-0.9437 0.382193,-0.5885 0.573292,-1.2092 0.573299,-1.862 -7e-6,-0.5276 -0.13868,-0.9301 -0.416022,-1.2074 -0.172503,-0.1725 -0.366985,-0.2588 -0.583446,-0.2588"
178
- style=""
179
- id="path10084" />
180
- </g>
181
- </g>
182
- </svg>
tomwer/app/lamino.py DELETED
@@ -1,143 +0,0 @@
1
- #!/usr/bin/env python
2
- # -*- coding: utf-8 -*-
3
-
4
- import argparse
5
- import logging
6
- import os
7
- import signal
8
- import sys
9
-
10
- from silx.gui import qt
11
-
12
- from tomwer.core.process.reconstruction.lamino.tofu import LaminoReconstructionTask
13
- from tomwer.core.scan.scanbase import TomwerScanBase
14
- from tomwer.core.scan.scanfactory import ScanFactory
15
- from tomwer.core.utils.resource import increase_max_number_file
16
- from tomwer.gui import icons
17
- from tomwer.gui.reconstruction.lamino.tofu import TofuWindow
18
- from tomwer.gui.utils.splashscreen import getMainSplashScreen
19
-
20
- _logger = logging.getLogger(__name__)
21
- # logging.getLogger().setLevel(logging.INFO)
22
-
23
-
24
- def getinputinfo():
25
- return "tomwer lamino [scanDir]"
26
-
27
-
28
- def sigintHandler(*args):
29
- """Handler for the SIGINT signal."""
30
- qt.QApplication.quit()
31
-
32
-
33
- def main(argv):
34
- parser = argparse.ArgumentParser(description=__doc__)
35
- parser.add_argument(
36
- "scan_path", help="Data file to process (edf files only for now)"
37
- )
38
- parser.add_argument(
39
- "--debug",
40
- dest="debug",
41
- action="store_true",
42
- default=False,
43
- help="Set logging system in debug mode",
44
- )
45
- parser.add_argument(
46
- "--dry-run",
47
- dest="dry_run",
48
- action="store_true",
49
- default=False,
50
- help="Will not apply the tofu process but only display the command used"
51
- "to call tofu",
52
- )
53
- options = parser.parse_args(argv[1:])
54
-
55
- increase_max_number_file()
56
-
57
- global app # QApplication must be global to avoid seg fault on quit
58
- app = qt.QApplication.instance() or qt.QApplication(["tomwer"])
59
-
60
- qt.QLocale.setDefault(qt.QLocale(qt.QLocale.English))
61
- qt.QLocale.setDefault(qt.QLocale.c())
62
-
63
- signal.signal(signal.SIGINT, sigintHandler)
64
- sys.excepthook = qt.exceptionHandler
65
-
66
- timer = qt.QTimer()
67
- timer.start(500)
68
- # Application have to wake up Python interpreter, else SIGINT is not
69
- # catched
70
- timer.timeout.connect(lambda: None)
71
-
72
- splash = getMainSplashScreen()
73
- options.scan_path = os.path.abspath(options.scan_path.rstrip(os.path.sep))
74
- scan = ScanFactory.create_scan_object(scan_path=options.scan_path)
75
- scan.set_process_index_frm_tomwer_process_file()
76
- dialog = ToFuDialog(parent=None, scan=scan)
77
- # dialog.tofuWidget._mainWidget._tabs._outputWidget.setOutput('')
78
- # dialog.tofuWidget._mainWidget._tabs._inputWidget.setWhenApplyFFC('preprocessing')
79
- # dialog.tofuWidget._mainWidget._tabs._inputWidget.setHalfAcquisition(True)
80
- dialog._setDryRun(options.dry_run)
81
- splash.finish(dialog)
82
- dialog.exec_()
83
-
84
-
85
- class ToFuDialog(qt.QDialog):
86
- """Simple dialog to launch the lamino reconstruction using tofu"""
87
-
88
- def __init__(self, parent, scan):
89
- assert isinstance(scan, TomwerScanBase)
90
- qt.QDialog.__init__(self, parent)
91
- self._scan = scan
92
- self._dry_run = False
93
-
94
- self.setLayout(qt.QVBoxLayout())
95
- self.setWindowTitle("Lamino reconstruction using tofu")
96
-
97
- types = qt.QDialogButtonBox.Ok | qt.QDialogButtonBox.Cancel
98
- self._buttons = qt.QDialogButtonBox(parent=self)
99
- self._buttons.setStandardButtons(types)
100
- self.tofuWidget = TofuWindow(parent=self)
101
- self.tofuWidget.loadFromScan(self._scan.path)
102
- self.layout().addWidget(self.tofuWidget)
103
- self.layout().addWidget(self._buttons)
104
-
105
- self._buttons.button(qt.QDialogButtonBox.Ok).clicked.connect(self.accept)
106
- self._buttons.button(qt.QDialogButtonBox.Cancel).clicked.connect(self.reject)
107
-
108
- self.setWindowIcon(icons.getQIcon("tomwer"))
109
-
110
- def accept(self):
111
- recons_param = self.tofuWidget.getParameters()
112
- reco_add_options = self.tofuWidget.getAdditionalRecoOptions()
113
- preprocess_add_options = self.tofuWidget.getAdditionalPreprocessOptions()
114
- delete_existing = self.tofuWidget.removeOutputDir()
115
- self.tofuWidget.setEnabled(False)
116
- qt.QApplication.processEvents()
117
- qt.QApplication.setOverrideCursor(qt.Qt.WaitCursor)
118
- self._reconsProcess = LaminoReconstructionTask(
119
- inputs={
120
- "scan": self._scan,
121
- "serialize_output_data": False,
122
- }
123
- )
124
- self._reconsProcess.set_configuration(
125
- (preprocess_add_options, reco_add_options)
126
- )
127
- self._reconsProcess.delete_existing = delete_existing
128
- self._reconsProcess.reconstruction_parameters = recons_param
129
- if self._dry_run:
130
- self._reconsProcess.dry_run = self._dry_run
131
- try:
132
- self._reconsProcess.run()
133
- except Exception as e:
134
- _logger.error(e)
135
- self.tofuWidget.setEnabled(True)
136
- qt.QApplication.restoreOverrideCursor()
137
-
138
- def _setDryRun(self, forTest):
139
- self._dry_run = forTest
140
-
141
-
142
- if __name__ == "__main__":
143
- main(sys.argv)
@@ -1 +0,0 @@
1
- from .tofu import LaminoReconstructionTask # noqa F401