tomwer 1.2.1__py3-none-any.whl → 1.3.12__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 (334) hide show
  1. orangecontrib/tomwer/tutorials/icat_publication.ows +58 -0
  2. orangecontrib/tomwer/widgets/__init__.py +11 -11
  3. orangecontrib/tomwer/widgets/control/DataDiscoveryOW.py +2 -2
  4. orangecontrib/tomwer/widgets/control/DataListOW.py +9 -7
  5. orangecontrib/tomwer/widgets/control/DataListenerOW.py +6 -6
  6. orangecontrib/tomwer/widgets/control/DataSelectorOW.py +21 -10
  7. orangecontrib/tomwer/widgets/control/DataValidatorOW.py +6 -6
  8. orangecontrib/tomwer/widgets/control/EDF2NXTomomillOW.py +24 -7
  9. orangecontrib/tomwer/widgets/control/EmailOW.py +4 -4
  10. orangecontrib/tomwer/widgets/control/NXTomomillMixIn.py +3 -3
  11. orangecontrib/tomwer/widgets/control/NXTomomillOW.py +64 -23
  12. orangecontrib/tomwer/widgets/control/NXtomoConcatenate.py +20 -8
  13. orangecontrib/tomwer/widgets/control/NotifierOW.py +1 -0
  14. orangecontrib/tomwer/widgets/control/SingleTomoObjOW.py +6 -6
  15. orangecontrib/tomwer/widgets/control/VolumeSelector.py +7 -4
  16. orangecontrib/tomwer/widgets/control/VolumeSymLinkOW.py +182 -182
  17. orangecontrib/tomwer/widgets/debugtools/DatasetGeneratorOW.py +5 -5
  18. orangecontrib/tomwer/widgets/edit/DarkFlatPatchOW.py +4 -4
  19. orangecontrib/tomwer/widgets/edit/ImageKeyEditorOW.py +3 -3
  20. orangecontrib/tomwer/widgets/edit/ImageKeyUpgraderOW.py +8 -1
  21. orangecontrib/tomwer/widgets/edit/NXtomoEditorOW.py +3 -3
  22. orangecontrib/tomwer/widgets/edit/test/test_nxtomo_editor.py +3 -3
  23. orangecontrib/tomwer/widgets/icat/PublishProcessedDataOW.py +115 -0
  24. orangecontrib/tomwer/widgets/icat/RawDataScreenshotCreatorOW.py +98 -0
  25. orangecontrib/tomwer/widgets/icat/SaveToGalleryAndPublishOW.py +129 -0
  26. orangecontrib/tomwer/widgets/icat/__init__.py +13 -0
  27. orangecontrib/tomwer/widgets/icat/icons/add_gallery.png +0 -0
  28. orangecontrib/tomwer/widgets/icat/icons/add_gallery.svg +82 -0
  29. orangecontrib/tomwer/widgets/icat/icons/publish_processed_data.png +0 -0
  30. orangecontrib/tomwer/widgets/icat/icons/publish_processed_data.svg +95 -0
  31. orangecontrib/tomwer/widgets/icat/icons/raw_screenshots.png +0 -0
  32. orangecontrib/tomwer/widgets/icat/icons/raw_screenshots.svg +143 -0
  33. orangecontrib/tomwer/widgets/icons/tomwer_data_portal.png +0 -0
  34. orangecontrib/tomwer/widgets/icons/tomwer_data_portal.svg +76 -0
  35. orangecontrib/tomwer/widgets/reconstruction/AxisOW.py +22 -20
  36. orangecontrib/tomwer/widgets/reconstruction/CastNabuVolumeOW.py +19 -3
  37. orangecontrib/tomwer/widgets/reconstruction/NabuHelicalPrepareWeightsDoubleOW.py +184 -169
  38. orangecontrib/tomwer/widgets/reconstruction/NabuOW.py +23 -0
  39. orangecontrib/tomwer/widgets/reconstruction/NabuVolumeOW.py +39 -5
  40. orangecontrib/tomwer/widgets/reconstruction/SAAxisOW.py +18 -22
  41. orangecontrib/tomwer/widgets/reconstruction/SADeltaBetaOW.py +18 -26
  42. orangecontrib/tomwer/widgets/reconstruction/SinoNormOW.py +15 -19
  43. orangecontrib/tomwer/widgets/visualization/DataViewerOW.py +9 -9
  44. orangecontrib/tomwer/widgets/visualization/DiffViewerOW.py +1 -1
  45. orangecontrib/tomwer/widgets/visualization/LivesliceOW.py +1 -1
  46. orangecontrib/tomwer/widgets/visualization/NXtomoMetadataViewerOW.py +3 -3
  47. orangecontrib/tomwer/widgets/visualization/SinogramViewerOW.py +0 -1
  48. orangecontrib/tomwer/widgets/visualization/VolumeViewerOW.py +3 -29
  49. tomwer/__main__.py +7 -64
  50. tomwer/app/axis.py +3 -3
  51. tomwer/app/canvas.py +8 -0
  52. tomwer/app/canvas_launcher/config.py +16 -14
  53. tomwer/app/canvas_launcher/environ.py +1 -0
  54. tomwer/app/canvas_launcher/mainwindow.py +4 -1
  55. tomwer/app/darkref.py +1 -1
  56. tomwer/app/darkrefpatch.py +1 -1
  57. tomwer/app/diffframe.py +3 -3
  58. tomwer/app/imagekeyeditor.py +5 -5
  59. tomwer/app/imagekeyupgrader.py +5 -5
  60. tomwer/app/intensitynormalization.py +14 -13
  61. tomwer/app/{saaxis.py → multicor.py} +3 -3
  62. tomwer/app/{sadeltabeta.py → multipag.py} +3 -3
  63. tomwer/app/nabuapp.py +0 -11
  64. tomwer/app/radiostack.py +6 -4
  65. tomwer/app/samplemoved.py +3 -2
  66. tomwer/app/scanviewer.py +4 -2
  67. tomwer/app/sinogramviewer.py +3 -2
  68. tomwer/app/slicestack.py +3 -2
  69. tomwer/app/zstitching.py +88 -6
  70. tomwer/core/cluster/cluster.py +26 -0
  71. tomwer/core/log/logger.py +7 -5
  72. tomwer/core/process/conditions/filters.py +1 -1
  73. tomwer/core/process/control/datalistener/datalistener.py +19 -14
  74. tomwer/core/process/control/datawatcher/edfdwprocess.py +0 -9
  75. tomwer/core/process/control/nxtomoconcatenate.py +13 -13
  76. tomwer/core/process/control/nxtomomill.py +92 -34
  77. tomwer/core/process/control/scantransfer.py +20 -43
  78. tomwer/core/process/control/scanvalidator.py +3 -2
  79. tomwer/core/process/control/test/test_concatenate_nxtomos.py +9 -9
  80. tomwer/core/process/control/test/test_email.py +4 -4
  81. tomwer/core/process/control/test/test_h52nx_process.py +59 -7
  82. tomwer/core/process/control/test/test_volume_link.py +64 -64
  83. tomwer/core/process/control/timer.py +1 -1
  84. tomwer/core/process/control/volumesymlink.py +200 -200
  85. tomwer/core/process/edit/darkflatpatch.py +14 -15
  86. tomwer/core/process/edit/imagekeyeditor.py +41 -39
  87. tomwer/core/process/icat/__init__.py +0 -0
  88. tomwer/core/process/icat/createscreenshots.py +100 -0
  89. tomwer/core/process/icat/gallery.py +377 -0
  90. tomwer/core/process/icat/icatbase.py +36 -0
  91. tomwer/core/process/icat/publish.py +228 -0
  92. tomwer/core/process/icat/screenshots.py +27 -0
  93. tomwer/core/process/output.py +52 -0
  94. tomwer/core/process/reconstruction/axis/axis.py +280 -69
  95. tomwer/core/process/reconstruction/axis/mode.py +163 -48
  96. tomwer/core/process/reconstruction/axis/params.py +29 -21
  97. tomwer/core/process/reconstruction/darkref/darkrefs.py +41 -127
  98. tomwer/core/process/reconstruction/darkref/darkrefscopy.py +4 -3
  99. tomwer/core/process/reconstruction/darkref/params.py +1 -1
  100. tomwer/core/process/reconstruction/nabu/castvolume.py +4 -4
  101. tomwer/core/process/reconstruction/nabu/helical.py +9 -5
  102. tomwer/core/process/reconstruction/nabu/nabucommon.py +71 -78
  103. tomwer/core/process/reconstruction/nabu/nabuscores.py +425 -53
  104. tomwer/core/process/reconstruction/nabu/nabuslices.py +114 -93
  105. tomwer/core/process/reconstruction/nabu/nabuvolume.py +54 -27
  106. tomwer/core/process/reconstruction/nabu/plane.py +9 -0
  107. tomwer/core/process/reconstruction/nabu/settings.py +2 -2
  108. tomwer/core/process/reconstruction/nabu/utils.py +164 -26
  109. tomwer/core/process/reconstruction/output.py +108 -0
  110. tomwer/core/process/reconstruction/saaxis/saaxis.py +238 -264
  111. tomwer/core/process/reconstruction/sadeltabeta/sadeltabeta.py +151 -87
  112. tomwer/core/process/reconstruction/scores/params.py +7 -4
  113. tomwer/core/process/reconstruction/scores/scores.py +13 -0
  114. tomwer/core/process/reconstruction/test/test_axis_params.py +2 -2
  115. tomwer/core/process/reconstruction/test/test_darkref.py +3 -3
  116. tomwer/core/process/reconstruction/test/test_darkref_copy.py +7 -7
  117. tomwer/core/process/reconstruction/test/test_saaxis.py +3 -4
  118. tomwer/core/process/reconstruction/test/test_sadeltabeta.py +2 -2
  119. tomwer/core/process/stitching/nabustitcher.py +13 -12
  120. tomwer/core/process/task.py +34 -26
  121. tomwer/core/process/test/test_axis.py +13 -12
  122. tomwer/core/process/test/test_dark_and_flat.py +10 -7
  123. tomwer/core/process/test/test_data_transfer.py +10 -8
  124. tomwer/core/process/test/test_nabu.py +14 -6
  125. tomwer/core/process/test/test_normalization.py +4 -4
  126. tomwer/core/scan/blissscan.py +3 -3
  127. tomwer/core/scan/edfscan.py +13 -10
  128. tomwer/core/scan/hdf5scan.py +19 -530
  129. tomwer/core/scan/nxtomoscan.py +534 -0
  130. tomwer/core/scan/scanbase.py +72 -44
  131. tomwer/core/scan/scanfactory.py +13 -13
  132. tomwer/core/scan/test/test_edf.py +2 -2
  133. tomwer/core/scan/test/test_future_scan.py +3 -3
  134. tomwer/core/scan/test/test_h5.py +18 -16
  135. tomwer/core/scan/test/test_process_registration.py +4 -40
  136. tomwer/core/scan/test/test_scan.py +5 -78
  137. tomwer/core/settings.py +22 -2
  138. tomwer/core/test/test_scanutils.py +8 -7
  139. tomwer/core/test/test_utils.py +35 -28
  140. tomwer/core/tomwer_object.py +1 -1
  141. tomwer/core/utils/__init__.py +0 -466
  142. tomwer/core/utils/deprecation.py +1 -1
  143. tomwer/core/utils/dictutils.py +14 -0
  144. tomwer/core/utils/lbsram.py +35 -0
  145. tomwer/core/utils/nxtomoutils.py +1 -1
  146. tomwer/core/utils/scanutils.py +6 -6
  147. tomwer/core/utils/spec.py +263 -0
  148. tomwer/core/volume/edfvolume.py +6 -6
  149. tomwer/core/volume/hdf5volume.py +6 -6
  150. tomwer/core/volume/jp2kvolume.py +6 -6
  151. tomwer/core/volume/rawvolume.py +6 -6
  152. tomwer/core/volume/tiffvolume.py +12 -12
  153. tomwer/core/volume/volumefactory.py +2 -2
  154. tomwer/gui/cluster/slurm.py +274 -65
  155. tomwer/gui/cluster/supervisor.py +12 -0
  156. tomwer/gui/cluster/test/test_cluster.py +14 -2
  157. tomwer/gui/cluster/test/test_supervisor.py +3 -3
  158. tomwer/gui/configuration/__init__.py +0 -0
  159. tomwer/gui/{reconstruction/nabu → configuration}/action.py +1 -32
  160. tomwer/gui/configuration/level.py +22 -0
  161. tomwer/gui/control/actions.py +54 -0
  162. tomwer/gui/control/datalist.py +83 -16
  163. tomwer/gui/control/datalistener.py +4 -16
  164. tomwer/gui/control/datawatcher/controlwidget.py +2 -4
  165. tomwer/gui/control/datawatcher/datawatcher.py +1 -24
  166. tomwer/gui/control/{email.py → emailnotifier.py} +9 -18
  167. tomwer/gui/control/history.py +2 -2
  168. tomwer/gui/control/observations.py +2 -2
  169. tomwer/gui/control/reducedarkflatselector.py +9 -9
  170. tomwer/gui/control/selectorwidgetbase.py +36 -9
  171. tomwer/gui/control/serie/seriecreator.py +5 -22
  172. tomwer/gui/control/test/test_email.py +1 -1
  173. tomwer/gui/control/test/test_scanvalidator.py +6 -5
  174. tomwer/gui/control/test/test_single_tomo_obj.py +3 -3
  175. tomwer/gui/control/tomoobjdisplaymode.py +8 -0
  176. tomwer/gui/debugtools/datasetgenerator.py +3 -3
  177. tomwer/gui/edit/dkrfpatch.py +20 -26
  178. tomwer/gui/edit/imagekeyeditor.py +11 -12
  179. tomwer/gui/edit/nxtomoeditor.py +111 -44
  180. tomwer/gui/edit/nxtomowarmer.py +7 -6
  181. tomwer/gui/edit/test/test_dkrf_patch.py +13 -13
  182. tomwer/gui/edit/test/test_image_key_editor.py +3 -3
  183. tomwer/gui/edit/test/test_nx_editor.py +40 -16
  184. tomwer/gui/icat/__init__.py +0 -0
  185. tomwer/gui/icat/createscreenshots.py +80 -0
  186. tomwer/gui/icat/gallery.py +214 -0
  187. tomwer/gui/icat/publish.py +187 -0
  188. tomwer/gui/imagefromfile.py +2 -2
  189. tomwer/gui/qfolderdialog.py +24 -1
  190. tomwer/gui/reconstruction/axis/CompareImages.py +88 -168
  191. tomwer/gui/reconstruction/axis/axis.py +171 -57
  192. tomwer/gui/reconstruction/axis/radioaxis.py +122 -257
  193. tomwer/gui/reconstruction/darkref/darkrefcopywidget.py +3 -2
  194. tomwer/gui/reconstruction/darkref/darkrefwidget.py +2 -1
  195. tomwer/gui/reconstruction/nabu/castvolume.py +14 -3
  196. tomwer/gui/reconstruction/nabu/check.py +9 -9
  197. tomwer/gui/reconstruction/nabu/helical.py +29 -12
  198. tomwer/gui/reconstruction/nabu/nabuconfig/base.py +2 -4
  199. tomwer/gui/reconstruction/nabu/nabuconfig/nabuconfig.py +2 -1
  200. tomwer/gui/reconstruction/nabu/nabuconfig/output.py +126 -35
  201. tomwer/gui/reconstruction/nabu/nabuconfig/phase.py +39 -32
  202. tomwer/gui/reconstruction/nabu/nabuconfig/preprocessing.py +222 -31
  203. tomwer/gui/reconstruction/nabu/nabuconfig/reconstruction.py +57 -27
  204. tomwer/gui/reconstruction/nabu/nabuflow.py +12 -20
  205. tomwer/gui/reconstruction/nabu/slices.py +10 -11
  206. tomwer/gui/reconstruction/nabu/volume.py +22 -10
  207. tomwer/gui/reconstruction/normalization/intensity.py +18 -48
  208. tomwer/gui/reconstruction/saaxis/corrangeselector.py +8 -24
  209. tomwer/gui/reconstruction/saaxis/dimensionwidget.py +1 -1
  210. tomwer/gui/reconstruction/saaxis/saaxis.py +9 -21
  211. tomwer/gui/reconstruction/sadeltabeta/saadeltabeta.py +45 -12
  212. tomwer/gui/reconstruction/scores/control.py +2 -9
  213. tomwer/gui/reconstruction/scores/scoreplot.py +13 -11
  214. tomwer/gui/reconstruction/test/test_axis.py +41 -16
  215. tomwer/gui/reconstruction/test/test_nabu.py +31 -9
  216. tomwer/gui/reconstruction/test/test_saaxis.py +3 -3
  217. tomwer/gui/reconstruction/test/test_sadeltabeta.py +12 -2
  218. tomwer/gui/settings.py +5 -28
  219. tomwer/gui/stackplot.py +2 -5
  220. tomwer/gui/stitching/action.py +49 -0
  221. tomwer/gui/stitching/config/axisparams.py +7 -24
  222. tomwer/gui/stitching/config/output.py +10 -8
  223. tomwer/gui/stitching/config/positionoveraxis.py +22 -23
  224. tomwer/gui/stitching/normalization.py +117 -0
  225. tomwer/gui/stitching/stitchandbackground.py +4 -6
  226. tomwer/gui/stitching/stitching.py +267 -45
  227. tomwer/gui/stitching/stitching_preview.py +62 -55
  228. tomwer/gui/stitching/stitching_raw.py +13 -12
  229. tomwer/gui/stitching/z_stitching/fineestimation.py +0 -60
  230. tomwer/gui/utils/buttons.py +112 -29
  231. tomwer/gui/utils/inputwidget.py +43 -25
  232. tomwer/gui/utils/lineselector/lineselector.py +1 -1
  233. tomwer/gui/utils/scandescription.py +4 -0
  234. tomwer/gui/utils/step.py +144 -0
  235. tomwer/gui/utils/unitsystem.py +2 -5
  236. tomwer/gui/utils/vignettes.py +176 -15
  237. tomwer/gui/visualization/dataviewer.py +48 -35
  238. tomwer/gui/visualization/diffviewer/diffviewer.py +7 -16
  239. tomwer/gui/visualization/diffviewer/shiftwidget.py +2 -5
  240. tomwer/gui/visualization/scanoverview.py +1 -1
  241. tomwer/gui/visualization/sinogramviewer.py +20 -36
  242. tomwer/gui/visualization/test/test_diffviewer.py +3 -3
  243. tomwer/gui/visualization/test/test_nx_tomo_metadata_viewer.py +4 -4
  244. tomwer/gui/visualization/test/test_sinogramviewer.py +2 -2
  245. tomwer/gui/visualization/test/test_stacks.py +3 -3
  246. tomwer/gui/visualization/test/test_volumeviewer.py +65 -67
  247. tomwer/gui/visualization/volumeviewer.py +114 -113
  248. tomwer/io/utils/h5pyutils.py +3 -3
  249. tomwer/io/utils/raw_and_processed_data.py +84 -0
  250. tomwer/io/utils/tomoobj.py +4 -6
  251. tomwer/io/utils/utils.py +7 -7
  252. tomwer/resources/gui/icons/parameters.svg +1 -1
  253. tomwer/resources/gui/icons/ruler.png +0 -0
  254. tomwer/resources/gui/icons/ruler.svg +273 -0
  255. tomwer/resources/gui/icons/short_description.png +0 -0
  256. tomwer/resources/gui/icons/short_description.svg +58 -0
  257. tomwer/resources/gui/icons/url.png +0 -0
  258. tomwer/resources/gui/icons/url.svg +58 -0
  259. tomwer/resources/gui/illustrations/no_rot.svg +1 -1
  260. tomwer/synctools/stacks/edit/darkflatpatch.py +19 -14
  261. tomwer/synctools/stacks/edit/imagekeyeditor.py +2 -2
  262. tomwer/synctools/stacks/reconstruction/axis.py +4 -4
  263. tomwer/synctools/stacks/reconstruction/castvolume.py +22 -7
  264. tomwer/synctools/stacks/reconstruction/dkrefcopy.py +25 -20
  265. tomwer/synctools/stacks/reconstruction/nabu.py +2 -2
  266. tomwer/synctools/stacks/reconstruction/normalization.py +2 -2
  267. tomwer/synctools/stacks/reconstruction/saaxis.py +2 -2
  268. tomwer/synctools/stacks/reconstruction/sadeltabeta.py +2 -2
  269. tomwer/synctools/test/test_darkRefs.py +7 -58
  270. tomwer/synctools/test/test_foldertransfer.py +6 -6
  271. tomwer/synctools/utils/scanstages.py +6 -6
  272. tomwer/tests/conftest.py +34 -0
  273. tomwer/tests/datasets.py +13 -0
  274. tomwer/tests/test_scripts.py +91 -41
  275. tomwer/tests/utils.py +5 -0
  276. tomwer/third_part/WaitingOverlay.py +110 -0
  277. tomwer/third_part/__init__.py +0 -0
  278. tomwer/version.py +2 -2
  279. tomwer-1.3.12-py3.11-nspkg.pth +1 -0
  280. {tomwer-1.2.1.dist-info → tomwer-1.3.12.dist-info}/METADATA +73 -58
  281. {tomwer-1.2.1.dist-info → tomwer-1.3.12.dist-info}/RECORD +287 -286
  282. {tomwer-1.2.1.dist-info → tomwer-1.3.12.dist-info}/WHEEL +1 -1
  283. orangecontrib/tomwer/widgets/reconstruction/TofuOW.py +0 -197
  284. orangecontrib/tomwer/widgets/reconstruction/icons/XY_lamino.svg +0 -168
  285. orangecontrib/tomwer/widgets/reconstruction/icons/XZ_lamino.svg +0 -275
  286. orangecontrib/tomwer/widgets/reconstruction/icons/YZ_lamino.svg +0 -182
  287. tomwer/app/lamino.py +0 -143
  288. tomwer/core/process/reconstruction/lamino/__init__.py +0 -1
  289. tomwer/core/process/reconstruction/lamino/tofu.py +0 -1000
  290. tomwer/core/process/test/test_lamino.py +0 -76
  291. tomwer/core/test/test_lamino.py +0 -92
  292. tomwer/gui/reconstruction/lamino/__init__.py +0 -31
  293. tomwer/gui/reconstruction/lamino/tofu/TofuOptionLoader.py +0 -107
  294. tomwer/gui/reconstruction/lamino/tofu/__init__.py +0 -1
  295. tomwer/gui/reconstruction/lamino/tofu/misc.py +0 -148
  296. tomwer/gui/reconstruction/lamino/tofu/projections.py +0 -896
  297. tomwer/gui/reconstruction/lamino/tofu/settings.py +0 -75
  298. tomwer/gui/reconstruction/lamino/tofu/tofu.py +0 -432
  299. tomwer/gui/reconstruction/lamino/tofu/tofuexpert.py +0 -567
  300. tomwer/gui/reconstruction/lamino/tofu/tofuoutput.py +0 -760
  301. tomwer/gui/reconstruction/test/test_lamino.py +0 -189
  302. tomwer/resources/gui/icons/esrf_1.svg +0 -307
  303. tomwer/resources/gui/icons/lamino_parameters.svg +0 -70
  304. tomwer/resources/gui/icons/triangle.svg +0 -80
  305. tomwer/resources/gui/illustrations/lamino_angle.png +0 -0
  306. tomwer/resources/gui/illustrations/lamino_angle.svg +0 -509
  307. tomwer/resources/gui/illustrations/lamino_beta_angle.png +0 -0
  308. tomwer/resources/gui/illustrations/lamino_beta_angle.svg +0 -97
  309. tomwer/resources/gui/illustrations/lamino_theta_angle.png +0 -0
  310. tomwer/resources/gui/illustrations/lamino_theta_angle.svg +0 -368
  311. tomwer/resources/gui/illustrations/manual_slice.png +0 -0
  312. tomwer/resources/gui/illustrations/manual_slice.svg +0 -221
  313. tomwer/resources/gui/illustrations/psi_angle.png +0 -0
  314. tomwer/resources/gui/illustrations/psi_angle.svg +0 -479
  315. tomwer/resources/gui/illustrations/rotation_center.png +0 -0
  316. tomwer/resources/gui/illustrations/rotation_center.svg +0 -276
  317. tomwer/resources/gui/illustrations/slice_stack.png +0 -0
  318. tomwer/resources/gui/illustrations/slice_stack.svg +0 -266
  319. tomwer/resources/gui/illustrations/xy_slice.png +0 -0
  320. tomwer/resources/gui/illustrations/xy_slice.svg +0 -269
  321. tomwer/resources/gui/illustrations/xz_slice.png +0 -0
  322. tomwer/resources/gui/illustrations/xz_slice.svg +0 -270
  323. tomwer/resources/gui/illustrations/yz_slice.png +0 -0
  324. tomwer/resources/gui/illustrations/yz_slice.svg +0 -270
  325. tomwer/synctools/stacks/reconstruction/lamino.py +0 -233
  326. tomwer/synctools/test/test_scanstages.py +0 -162
  327. tomwer/tests/utils/__init__.py +0 -247
  328. tomwer/tests/utils/utilstest.py +0 -220
  329. tomwer-1.2.1-py3.11-nspkg.pth +0 -1
  330. /tomwer/core/process/control/{email.py → emailnotifier.py} +0 -0
  331. {tomwer-1.2.1.dist-info → tomwer-1.3.12.dist-info}/LICENSE +0 -0
  332. {tomwer-1.2.1.dist-info → tomwer-1.3.12.dist-info}/entry_points.txt +0 -0
  333. {tomwer-1.2.1.dist-info → tomwer-1.3.12.dist-info}/namespace_packages.txt +0 -0
  334. {tomwer-1.2.1.dist-info → tomwer-1.3.12.dist-info}/top_level.txt +0 -0
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.40.0)
2
+ Generator: bdist_wheel (0.43.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,197 +0,0 @@
1
- # coding: utf-8
2
- # /*##########################################################################
3
- #
4
- # Copyright (c) 2016-2020 European Synchrotron Radiation Facility
5
- #
6
- # Permission is hereby granted, free of charge, to any person obtaining a copy
7
- # of this software and associated documentation files (the "Software"), to deal
8
- # in the Software without restriction, including without limitation the rights
9
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
- # copies of the Software, and to permit persons to whom the Software is
11
- # furnished to do so, subject to the following conditions:
12
- #
13
- # The above copyright notice and this permission notice shall be included in
14
- # all copies or substantial portions of the Software.
15
- #
16
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22
- # THE SOFTWARE.
23
- #
24
- # ###########################################################################*/
25
-
26
- __authors__ = ["C. Nemoz", "H. Payno"]
27
- __license__ = "MIT"
28
- __date__ = "10/01/2018"
29
-
30
-
31
- import copy
32
- import functools
33
- import logging
34
- import os
35
-
36
- from orangewidget import gui, settings
37
- from orangewidget.widget import Input, Output
38
- from silx.gui import qt
39
-
40
- import tomwer.core.process.reconstruction.lamino.tofu
41
- from orangecontrib.tomwer.orange.settings import CallbackSettingsHandler
42
- from tomwer.core.process.reconstruction.lamino import LaminoReconstructionTask
43
- from tomwer.core.scan.scanbase import TomwerScanBase
44
- from tomwer.gui.reconstruction.lamino.tofu import TofuWindow
45
- from tomwer.synctools.stacks.reconstruction.lamino import LaminoReconstructionStack
46
- from tomwer.utils import docstring
47
-
48
- from ...orange.managedprocess import SuperviseOW
49
- from ..utils import WidgetLongProcessing
50
-
51
- _logger = logging.getLogger(__name__)
52
-
53
-
54
- class TofuOW(WidgetLongProcessing, SuperviseOW):
55
- """
56
- A simple widget managing the copy of an incoming folder to an other one
57
-
58
- :param parent: the parent widget
59
- """
60
-
61
- # note of this widget should be the one registered on the documentation
62
- name = "tofu reconstruction"
63
- id = "orange.widgets.tomwer.reconstruction.TofuOW.TofuOW"
64
- description = "This widget will call tofu for running a reconstruction "
65
- icon = "icons/XY_lamino.svg"
66
- priority = 25
67
- keywords = ["tomography", "tofu", "reconstruction", "lamino", "laminography"]
68
-
69
- want_main_area = True
70
- resizing_enabled = True
71
-
72
- settingsHandler = CallbackSettingsHandler()
73
-
74
- ewokstaskclass = (
75
- tomwer.core.process.reconstruction.lamino.tofu.LaminoReconstructionTask
76
- )
77
-
78
- _reconsParams = settings.Setting(dict())
79
- """Parameters directly editabled from the TOFU interface"""
80
- # kept for compatibility
81
- _ewoks_default_inputs = settings.Setting({"data": None, "lamino_params": None})
82
-
83
- _additionalOpts = settings.Setting(dict())
84
- """Parameters which can be add on the expert tab from TOFU"""
85
- _delete_existing = settings.Setting(bool())
86
- """Should we remove the output directory if exists already"""
87
-
88
- class Inputs:
89
- data = Input(name="data", type=TomwerScanBase, doc="one scan to be process")
90
-
91
- class Outputs:
92
- data = Output(name="data", type=TomwerScanBase, doc="one scan to be process")
93
-
94
- def __init__(self, parent=None):
95
- SuperviseOW.__init__(self, parent=parent)
96
- WidgetLongProcessing.__init__(self)
97
- self._lastScan = None
98
- self._box = gui.vBox(self.mainArea, self.name)
99
- self._mainWidget = TofuWindow(parent=self)
100
- self._box.layout().addWidget(self._mainWidget)
101
- self._widgetControl = qt.QWidget(self)
102
- self._widgetControl.setLayout(qt.QHBoxLayout())
103
- self._executeButton = qt.QPushButton("reprocess", self._widgetControl)
104
- self._executeButton.clicked.connect(self._reprocess)
105
- self._executeButton.setEnabled(False)
106
- spacer = qt.QWidget(self)
107
- spacer.setSizePolicy(qt.QSizePolicy.Expanding, qt.QSizePolicy.Minimum)
108
- self._widgetControl.layout().addWidget(spacer)
109
- self._widgetControl.layout().addWidget(self._executeButton)
110
-
111
- self._box.layout().addWidget(self._mainWidget)
112
- self._box.layout().addWidget(self._widgetControl)
113
-
114
- lamino_params = self._ewoks_default_inputs.get( # pylint: disable=E1101
115
- "lamino_params", None
116
- )
117
- if lamino_params is None:
118
- lamino_params = self._reconsParams
119
- self._mainWidget.setParameters(lamino_params)
120
- if len(self._additionalOpts) > 0:
121
- self._mainWidget.setAdditionalRecoOptions(self._additionalOpts)
122
- self._mainWidget.setRemoveOutputDir(self._delete_existing)
123
-
124
- self.settingsHandler.addCallback(self._updateSettingsVals)
125
-
126
- self._reconsStack = LaminoReconstructionStack(process_id=self.process_id)
127
-
128
- # signal / slot connections
129
- self._reconsStack.sigReconsStarted.connect(self.__processing_start)
130
- self._reconsStack.sigReconsFinished.connect(self.__processing_end)
131
- self._reconsStack.sigReconsFailed.connect(self.__processing_end)
132
- self._reconsStack.sigReconsMissParams.connect(self.__processing_end)
133
-
134
- @Inputs.data
135
- def process(self, scan):
136
- if scan is not None:
137
- assert isinstance(scan, TomwerScanBase)
138
- scan_ = copy.copy(scan)
139
- self._executeButton.setEnabled(True)
140
- self._lastScan = scan_
141
- self._mainWidget.loadFromScan(scan_.path)
142
- recons_param = self._mainWidget.getParameters()
143
- add_options = self._mainWidget.getAdditionalRecoOptions()
144
- # TODO: should be recorded in self._viewer widget
145
-
146
- remove_existing = self._mainWidget.removeOutputDir()
147
-
148
- callback = functools.partial(self.Outputs.data.send, scan_)
149
- self._reconsStack.add(
150
- recons_obj=LaminoReconstructionTask(),
151
- scan_id=scan_,
152
- recons_params=recons_param,
153
- additional_opts=add_options,
154
- remove_existing=remove_existing,
155
- callback=callback,
156
- )
157
-
158
- @docstring(SuperviseOW)
159
- def reprocess(self, dataset):
160
- self.process(dataset)
161
-
162
- def _reprocess(self):
163
- if self._lastScan is None:
164
- _logger.warning("No scan has been process yet")
165
- elif os.path.isdir(self._lastScan) is False:
166
- _logger.warning("Last scan %s, does not exist anymore" % self._lastScan)
167
- self._executeButton.setEnabled(False)
168
- else:
169
- self.process(self._lastScan)
170
-
171
- def _updateSettingsVals(self):
172
- """function used to update the settings values"""
173
- self._reconsParams = self._mainWidget.getParameters()
174
- self.lamino_params = {
175
- "data": None,
176
- "lamino_params": self._mainWidget.getParameters(),
177
- }
178
-
179
- self._additionalOpts = self._mainWidget.getAdditionalRecoOptions()
180
- self._delete_existing = self._mainWidget.removeOutputDir()
181
-
182
- def __processing_start(self, scan):
183
- self.processing_state(scan=scan, working=True)
184
-
185
- def __processing_end(self, scan):
186
- self.processing_state(scan=scan, working=False)
187
-
188
- def processing_state(self, scan, working: bool) -> None:
189
- # default orange version don't have Processing.
190
- try:
191
- if working:
192
- self.processing_info("processing %s" % scan.path)
193
-
194
- else:
195
- self.Processing.clear()
196
- except Exception:
197
- pass
@@ -1,168 +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_z.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
- <inkscape:perspective
47
- sodipodi:type="inkscape:persp3d"
48
- inkscape:vp_x="-252.62268 : 156.72032 : 1"
49
- inkscape:vp_y="0 : 3383.9015 : 0"
50
- inkscape:vp_z="169.30198 : 147.12387 : 1"
51
- inkscape:persp3d-origin="-46.711117 : 100.32196 : 1"
52
- id="perspective3017" />
53
- <inkscape:perspective
54
- sodipodi:type="inkscape:persp3d"
55
- inkscape:vp_x="-253.15453 : 157.7729 : 1"
56
- inkscape:vp_y="0 : 3383.9015 : 0"
57
- inkscape:vp_z="168.77013 : 148.17645 : 1"
58
- inkscape:persp3d-origin="-47.242975 : 101.37454 : 1"
59
- id="perspective3017-1" />
60
- </defs>
61
- <sodipodi:namedview
62
- id="base"
63
- pagecolor="#ffffff"
64
- bordercolor="#666666"
65
- borderopacity="1.0"
66
- inkscape:pageopacity="0.0"
67
- inkscape:pageshadow="2"
68
- inkscape:zoom="5.6"
69
- inkscape:cx="25.816178"
70
- inkscape:cy="64.83126"
71
- inkscape:document-units="px"
72
- inkscape:current-layer="layer1"
73
- showgrid="false"
74
- inkscape:window-width="1920"
75
- inkscape:window-height="1178"
76
- inkscape:window-x="1920"
77
- inkscape:window-y="0"
78
- inkscape:window-maximized="1" />
79
- <metadata
80
- id="metadata7">
81
- <rdf:RDF>
82
- <cc:Work
83
- rdf:about="">
84
- <dc:format>image/svg+xml</dc:format>
85
- <dc:type
86
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
87
- <dc:title />
88
- </cc:Work>
89
- </rdf:RDF>
90
- </metadata>
91
- <g
92
- inkscape:label="Layer 1"
93
- inkscape:groupmode="layer"
94
- id="layer1"
95
- transform="translate(0,-952.36218)">
96
- <path
97
- 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"
98
- d="M 15.657364,44.946686 51.783009,25.753788 91.418806,36.36039 63.134534,64.139585 z"
99
- id="path5430"
100
- inkscape:connector-curvature="0"
101
- transform="translate(0,952.36218)"
102
- sodipodi:nodetypes="ccccc" />
103
- <path
104
- 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"
105
- d="m 15.333564,1003.0765 37.018502,-20.08579 39.457226,9.89231 -28.819986,30.10068 z"
106
- id="path5430-4"
107
- inkscape:connector-curvature="0"
108
- sodipodi:nodetypes="ccccc" />
109
- <g
110
- sodipodi:type="inkscape:box3d"
111
- 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"
112
- id="g3139"
113
- inkscape:perspectiveID="#perspective3017-1"
114
- inkscape:corner0="-0.23369865 : -0.00058071337 : 0 : 1"
115
- inkscape:corner7="-0.34871743 : -0.012607987 : 0.24117225 : 1">
116
- <path
117
- sodipodi:type="inkscape:box3dside"
118
- id="path3149"
119
- style="fill:none;stroke:#000000;stroke-opacity:1"
120
- inkscape:box3dsidetype="13"
121
- d="m 15.553799,1023.8629 47.45483,22.8302 28.580427,-38.5105 -39.357842,-12.96841 z" />
122
- <path
123
- sodipodi:type="inkscape:box3dside"
124
- id="path3141"
125
- style="fill:none;stroke:#000000;stroke-opacity:1"
126
- inkscape:box3dsidetype="6"
127
- d="m 15.553799,970.75179 0,53.11111 36.677415,-28.64871 0,-40.39719 z" />
128
- <path
129
- sodipodi:type="inkscape:box3dside"
130
- id="path3151"
131
- style="fill:none;stroke:#000000;stroke-opacity:1"
132
- inkscape:box3dsidetype="11"
133
- d="m 52.231214,954.817 39.357842,7.76209 0,45.60351 -39.357842,-12.96841 z" />
134
- <path
135
- sodipodi:type="inkscape:box3dside"
136
- id="path3143"
137
- style="fill:none;stroke:#000000;stroke-opacity:1"
138
- inkscape:box3dsidetype="5"
139
- d="M 15.553799,970.75179 63.008629,984.20236 91.589056,962.57909 52.231214,954.817 z" />
140
- <path
141
- sodipodi:type="inkscape:box3dside"
142
- id="path3147"
143
- style="fill:none;stroke:#000000;stroke-opacity:1"
144
- inkscape:box3dsidetype="14"
145
- d="m 63.008629,984.20236 0,62.49074 28.580427,-38.5105 0,-45.60351 z" />
146
- <path
147
- sodipodi:type="inkscape:box3dside"
148
- id="path3145"
149
- style="fill:none;stroke:#000000;stroke-opacity:1"
150
- inkscape:box3dsidetype="3"
151
- d="m 15.553799,970.75179 47.45483,13.45057 0,62.49074 -47.45483,-22.8302 z" />
152
- </g>
153
- <path
154
- style="fill:none;stroke:#000000;stroke-width:0.88711488;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow1Sstart);marker-end:url(#Arrow1Send)"
155
- d="m 13.092466,997.21321 0.243639,6.72649"
156
- id="path10665"
157
- inkscape:connector-curvature="0" />
158
- <g
159
- transform="scale(1.0276261,0.9731166)"
160
- style="font-size:11.02545929px;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"
161
- id="text11058">
162
- <path
163
- d="m 8.5422963,1027.4565 c -0.00718,-0.01 -0.032307,-0.025 -0.075369,-0.054 -0.032307,-0.022 -0.05743,-0.041 -0.075369,-0.059 -0.9187927,-0.6748 -1.3781864,-1.2544 -1.3781824,-1.7389 -4e-6,-0.3589 0.1579126,-0.6424 0.4737502,-0.8506 0.2261033,-0.14 0.4952793,-0.2099 0.8075288,-0.21 0.7644544,10e-5 1.5235307,0.2459 2.2772308,0.7376 0.236868,0.1579 0.355305,0.3122 0.355313,0.463 -8e-6,0.244 -0.118445,0.3661 -0.355313,0.366 -0.13639,10e-5 -0.285334,-0.081 -0.446832,-0.2422 -0.6460298,-0.6101 -1.2651346,-0.9152 -1.8573164,-0.9152 -0.4988782,0 -0.7483146,0.1992 -0.74831,0.5976 -4.6e-6,0.3696 0.572443,0.9134 1.7173445,1.6312 0.8613569,0.5383 1.2920389,1.2364 1.2920459,2.0942 -7e-6,0.8685 -0.245855,1.624 -0.7375429,2.2664 -0.5491258,0.7142 -1.2435998,1.0713 -2.0834241,1.0713 -0.4235083,0 -0.7949712,-0.1435 -1.1143897,-0.4306 -0.4414523,-0.3948 -0.6621766,-0.9206 -0.6621736,-1.5774 -3e-6,-1.1162 0.4701577,-2.0116 1.4104836,-2.6864 0.3230068,-0.2225 0.7231817,-0.3768 1.200526,-0.463 m 0.1776564,0.3177 c -0.6567952,0 -1.2112977,0.4271 -1.6635093,1.2812 -0.265591,0.4953 -0.3983845,1.0391 -0.3983808,1.6312 -3.7e-6,1.0803 0.3606921,1.6205 1.0820885,1.6205 0.5275802,0 1.0049189,-0.3338 1.4320177,-1.0013 0.4055522,-0.6245 0.6083315,-1.2831 0.6083383,-1.9758 -6.8e-6,-0.5599 -0.1471564,-0.987 -0.4414491,-1.2813 -0.183046,-0.183 -0.3894143,-0.2745 -0.6191053,-0.2745"
164
- style=""
165
- id="path11063" />
166
- </g>
167
- </g>
168
- </svg>
@@ -1,275 +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_y.svg">
18
- <defs
19
- id="defs4">
20
- <marker
21
- inkscape:stockid="Arrow2Send"
22
- orient="auto"
23
- refY="0.0"
24
- refX="0.0"
25
- id="Arrow2Send"
26
- style="overflow:visible;">
27
- <path
28
- id="path3806"
29
- style="fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
30
- d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
31
- transform="scale(0.3) rotate(180) translate(-2.3,0)" />
32
- </marker>
33
- <marker
34
- inkscape:stockid="Arrow2Mend"
35
- orient="auto"
36
- refY="0.0"
37
- refX="0.0"
38
- id="Arrow2Mend"
39
- style="overflow:visible;">
40
- <path
41
- id="path3800"
42
- style="fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
43
- d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
44
- transform="scale(0.6) rotate(180) translate(0,0)" />
45
- </marker>
46
- <marker
47
- inkscape:stockid="Arrow1Mend"
48
- orient="auto"
49
- refY="0.0"
50
- refX="0.0"
51
- id="Arrow1Mend"
52
- style="overflow:visible;">
53
- <path
54
- id="path3782"
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) rotate(180) translate(10,0)" />
58
- </marker>
59
- <marker
60
- inkscape:stockid="Arrow1Mstart"
61
- orient="auto"
62
- refY="0.0"
63
- refX="0.0"
64
- id="Arrow1Mstart"
65
- style="overflow:visible">
66
- <path
67
- id="path3779"
68
- 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 "
69
- style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
70
- transform="scale(0.4) translate(10,0)" />
71
- </marker>
72
- <marker
73
- inkscape:stockid="Arrow2Sstart"
74
- orient="auto"
75
- refY="0.0"
76
- refX="0.0"
77
- id="Arrow2Sstart"
78
- style="overflow:visible">
79
- <path
80
- id="path3803"
81
- style="fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round"
82
- d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
83
- transform="scale(0.3) translate(-2.3,0)" />
84
- </marker>
85
- <marker
86
- inkscape:stockid="Arrow2Mstart"
87
- orient="auto"
88
- refY="0.0"
89
- refX="0.0"
90
- id="Arrow2Mstart"
91
- style="overflow:visible">
92
- <path
93
- id="path3797"
94
- style="fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round"
95
- d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
96
- transform="scale(0.6) translate(0,0)" />
97
- </marker>
98
- <inkscape:perspective
99
- sodipodi:type="inkscape:persp3d"
100
- inkscape:vp_x="-252.62268 : 156.72032 : 1"
101
- inkscape:vp_y="0 : 3383.9015 : 0"
102
- inkscape:vp_z="169.30198 : 147.12387 : 1"
103
- inkscape:persp3d-origin="-46.711117 : 100.32196 : 1"
104
- id="perspective3017" />
105
- <marker
106
- inkscape:stockid="Arrow1Mstart"
107
- orient="auto"
108
- refY="0"
109
- refX="0"
110
- id="Arrow1Mstart-7"
111
- style="overflow:visible">
112
- <path
113
- inkscape:connector-curvature="0"
114
- id="path3779-3"
115
- d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
116
- style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
117
- transform="matrix(0.4,0,0,0.4,4,0)" />
118
- </marker>
119
- <marker
120
- inkscape:stockid="Arrow2Mend"
121
- orient="auto"
122
- refY="0"
123
- refX="0"
124
- id="Arrow2Mend-7"
125
- style="overflow:visible">
126
- <path
127
- inkscape:connector-curvature="0"
128
- id="path3800-1"
129
- style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
130
- d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
131
- transform="scale(-0.6,-0.6)" />
132
- </marker>
133
- <marker
134
- inkscape:stockid="Arrow1Mstart"
135
- orient="auto"
136
- refY="0"
137
- refX="0"
138
- id="Arrow1Mstart-2"
139
- style="overflow:visible">
140
- <path
141
- inkscape:connector-curvature="0"
142
- id="path3779-1"
143
- d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
144
- style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
145
- transform="matrix(0.4,0,0,0.4,4,0)" />
146
- </marker>
147
- <marker
148
- inkscape:stockid="Arrow2Mend"
149
- orient="auto"
150
- refY="0"
151
- refX="0"
152
- id="Arrow2Mend-5"
153
- style="overflow:visible">
154
- <path
155
- inkscape:connector-curvature="0"
156
- id="path3800-0"
157
- style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
158
- d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
159
- transform="scale(-0.6,-0.6)" />
160
- </marker>
161
- </defs>
162
- <sodipodi:namedview
163
- id="base"
164
- pagecolor="#ffffff"
165
- bordercolor="#666666"
166
- borderopacity="1.0"
167
- inkscape:pageopacity="0.0"
168
- inkscape:pageshadow="2"
169
- inkscape:zoom="7.919596"
170
- inkscape:cx="17.453072"
171
- inkscape:cy="48.794915"
172
- inkscape:document-units="px"
173
- inkscape:current-layer="text8757"
174
- showgrid="false"
175
- inkscape:window-width="1920"
176
- inkscape:window-height="1178"
177
- inkscape:window-x="1920"
178
- inkscape:window-y="0"
179
- inkscape:window-maximized="1"
180
- showguides="true"
181
- inkscape:guide-bbox="true" />
182
- <metadata
183
- id="metadata7">
184
- <rdf:RDF>
185
- <cc:Work
186
- rdf:about="">
187
- <dc:format>image/svg+xml</dc:format>
188
- <dc:type
189
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
190
- <dc:title />
191
- </cc:Work>
192
- </rdf:RDF>
193
- </metadata>
194
- <g
195
- inkscape:label="Layer 1"
196
- inkscape:groupmode="layer"
197
- id="layer1"
198
- transform="translate(0,-952.36218)">
199
- <g
200
- sodipodi:type="inkscape:box3d"
201
- style="fill:none;stroke:#000000;stroke-width:0.50000000000000000;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;opacity:0.71698113"
202
- id="g3139"
203
- inkscape:perspectiveID="#perspective3017"
204
- inkscape:corner0="-0.23369865 : -0.00058071337 : 0 : 1"
205
- inkscape:corner7="-0.34871743 : -0.012607987 : 0.24117225 : 1">
206
- <path
207
- sodipodi:type="inkscape:box3dside"
208
- id="path3149"
209
- style="fill:none;stroke:#000000;stroke-opacity:1"
210
- inkscape:box3dsidetype="13"
211
- d="m 16.085659,1024.9155 47.454833,22.8301 28.580423,-38.5104 -39.357843,-12.96843 z" />
212
- <path
213
- sodipodi:type="inkscape:box3dside"
214
- id="path3141"
215
- style="fill:none;stroke:#000000;stroke-opacity:1"
216
- inkscape:box3dsidetype="6"
217
- d="m 16.085659,971.80437 0,53.11113 36.677413,-28.64873 0,-40.39719 z" />
218
- <path
219
- sodipodi:type="inkscape:box3dside"
220
- id="path3151"
221
- style="fill:none;stroke:#000000;stroke-opacity:1"
222
- inkscape:box3dsidetype="11"
223
- d="m 52.763072,955.86958 39.357843,7.76209 0,45.60353 -39.357843,-12.96843 z" />
224
- <path
225
- sodipodi:type="inkscape:box3dside"
226
- id="path3143"
227
- style="fill:none;stroke:#000000;stroke-opacity:1"
228
- inkscape:box3dsidetype="5"
229
- d="m 16.085659,971.80437 47.454833,13.45057 28.580423,-21.62327 -39.357843,-7.76209 z" />
230
- <path
231
- sodipodi:type="inkscape:box3dside"
232
- id="path3147"
233
- style="fill:none;stroke:#000000;stroke-opacity:1"
234
- inkscape:box3dsidetype="14"
235
- d="m 63.540492,985.25494 0,62.49066 28.580423,-38.5104 0,-45.60353 z" />
236
- <path
237
- sodipodi:type="inkscape:box3dside"
238
- id="path3145"
239
- style="fill:none;stroke:#000000;stroke-opacity:1"
240
- inkscape:box3dsidetype="3"
241
- d="m 16.085659,971.80437 47.454833,13.45057 0,62.49066 -47.454833,-22.8301 z" />
242
- </g>
243
- <path
244
- 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"
245
- d="m 36.870567,962.4586 42.426408,10.73287 1.010153,52.52793 -43.815368,-16.92 z"
246
- id="path5430"
247
- inkscape:connector-curvature="0"
248
- sodipodi:nodetypes="ccccc" />
249
- <path
250
- 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"
251
- d="m 30.809651,965.55216 43.56283,11.61676 0.883884,54.92718 -44.446714,-18.4353 z"
252
- id="path5430-2"
253
- inkscape:connector-curvature="0"
254
- sodipodi:nodetypes="ccccc" />
255
- <g
256
- transform="translate(-50.615552,-27.210049)"
257
- id="g8797">
258
- <path
259
- inkscape:connector-curvature="0"
260
- id="path7607"
261
- d="m 80.532527,991.82959 6.077313,-3.22308"
262
- style="fill:none;stroke:#000000;stroke-width:0.30499999999999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow1Mstart);marker-end:url(#Arrow2Mend)"
263
- sodipodi:nodetypes="cc" />
264
- <g
265
- transform="scale(1.0271382,0.97357883)"
266
- style="font-size:14.04557323px;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"
267
- id="text8757">
268
- <path
269
- d="m 81.111478,1012.2466 c -0.0055,-0.01 -0.02469,-0.019 -0.05761,-0.041 -0.02469,-0.017 -0.0439,-0.032 -0.05761,-0.045 -0.702282,-0.5157 -1.053421,-0.9587 -1.053418,-1.3291 -3e-6,-0.2743 0.120701,-0.491 0.362113,-0.6502 0.172823,-0.1069 0.378568,-0.1604 0.617237,-0.1604 0.584313,0 1.164515,0.1879 1.740609,0.5637 0.18105,0.1207 0.271578,0.2387 0.271584,0.3539 -6e-6,0.1865 -0.09053,0.2798 -0.271584,0.2798 -0.104251,0 -0.218096,-0.062 -0.341538,-0.1852 -0.493795,-0.4663 -0.96701,-0.6995 -1.419646,-0.6995 -0.381319,0 -0.571976,0.1523 -0.571973,0.4568 -3e-6,0.2825 0.437549,0.6981 1.312658,1.2468 0.658381,0.4115 0.987574,0.945 0.987579,1.6007 -5e-6,0.6638 -0.18792,1.2413 -0.563743,1.7324 -0.419726,0.5459 -0.950549,0.8188 -1.592472,0.8188 -0.32371,0 -0.607638,-0.1097 -0.851787,-0.3292 -0.337425,-0.3017 -0.506137,-0.7036 -0.506134,-1.2056 -3e-6,-0.8532 0.359366,-1.5376 1.078107,-2.0534 0.246891,-0.1701 0.552766,-0.288 0.917626,-0.3539 m 0.135792,0.2428 c -0.502023,0 -0.925859,0.3265 -1.271508,0.9794 -0.203006,0.3785 -0.304507,0.7941 -0.304504,1.2468 -3e-6,0.8257 0.275696,1.2386 0.827098,1.2386 0.403257,0 0.768113,-0.2552 1.094567,-0.7654 0.309985,-0.4773 0.46498,-0.9807 0.464985,-1.5102 -5e-6,-0.4279 -0.112479,-0.7544 -0.337423,-0.9793 -0.139912,-0.1399 -0.29765,-0.2099 -0.473215,-0.2099"
270
- style="font-size:8.42734432px"
271
- id="path8899" />
272
- </g>
273
- </g>
274
- </g>
275
- </svg>