httomo-backends 0.6.3__tar.gz → 0.7__tar.gz

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 (160) hide show
  1. {httomo_backends-0.6.3 → httomo_backends-0.7}/PKG-INFO +1 -1
  2. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/httomolibgpu/httomolibgpu.yaml +11 -2
  3. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/recon/algorithm.py +209 -47
  4. httomo_backends-0.7/httomo_backends/pipelines_full/FISTA3d_tomobar_directive.yaml +14 -0
  5. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/scripts/yaml_pipelines_generator.py +4 -11
  6. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.denoise/total_variation_PD.yaml +1 -0
  7. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.denoise/total_variation_ROF.yaml +1 -0
  8. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/CGLS3d_tomobar.yaml +2 -1
  9. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/FBP2d_astra.yaml +1 -1
  10. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/FBP3d_tomobar.yaml +1 -1
  11. httomo_backends-0.7/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/FISTA3d_tomobar.yaml +15 -0
  12. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/LPRec3d_tomobar.yaml +4 -1
  13. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/SIRT3d_tomobar.yaml +2 -1
  14. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends.egg-info/PKG-INFO +1 -1
  15. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends.egg-info/SOURCES.txt +2 -1
  16. {httomo_backends-0.6.3 → httomo_backends-0.7}/pyproject.toml +1 -1
  17. {httomo_backends-0.6.3 → httomo_backends-0.7}/tests/test_httomolibgpu.py +200 -10
  18. httomo_backends-0.6.3/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.phase/paganin_filter_savu.yaml +0 -11
  19. {httomo_backends-0.6.3 → httomo_backends-0.7}/LICENSE +0 -0
  20. {httomo_backends-0.6.3 → httomo_backends-0.7}/README.rst +0 -0
  21. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/__init__.py +0 -0
  22. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/cufft.py +0 -0
  23. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/methods_database/__init__.py +0 -0
  24. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/methods_database/packages/__init__.py +0 -0
  25. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/httomolib/httomolib.yaml +0 -0
  26. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/httomolib/httomolib_modules.yaml +0 -0
  27. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/httomolibgpu/__init__.py +0 -0
  28. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/httomolibgpu/httomolibgpu_modules.yaml +0 -0
  29. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/__init__.py +0 -0
  30. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/misc/__init__.py +0 -0
  31. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/misc/corr.py +0 -0
  32. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/misc/denoise.py +0 -0
  33. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/misc/morph.py +0 -0
  34. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/misc/rescale.py +0 -0
  35. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/prep/__init__.py +0 -0
  36. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/prep/normalize.py +0 -0
  37. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/prep/phase.py +0 -0
  38. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/prep/stripe.py +0 -0
  39. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/recon/__init__.py +0 -0
  40. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/recon/peak_memory_line_profile_hook.py +0 -0
  41. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/tomopy/__init__.py +0 -0
  42. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/__init__.py +0 -0
  43. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/misc/__init__.py +0 -0
  44. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/misc/corr.py +0 -0
  45. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/prep/__init__.py +0 -0
  46. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/prep/stripe.py +0 -0
  47. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/recon/__init__.py +0 -0
  48. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/recon/algorithm.py +0 -0
  49. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/tomopy/tomopy.yaml +0 -0
  50. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/tomopy/tomopy_modules.yaml +0 -0
  51. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/methods_database/packages/httomo.yaml +0 -0
  52. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/methods_database/query.py +0 -0
  53. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/pipelines_full/FBP2d_astra_directive.yaml +0 -0
  54. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/pipelines_full/FBP3d_tomobar_denoising_directive.yaml +0 -0
  55. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/pipelines_full/FBP3d_tomobar_directive.yaml +0 -0
  56. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/pipelines_full/FBP3d_tomobar_noimagesaving_directive.yaml +0 -0
  57. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/pipelines_full/LPRec3d_tomobar_directive.yaml +0 -0
  58. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/pipelines_full/__init__.py +0 -0
  59. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/pipelines_full/deg360_distortion_FBP3d_tomobar_directive.yaml +0 -0
  60. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/pipelines_full/deg360_paganin_FBP3d_tomobar_directive.yaml +0 -0
  61. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/pipelines_full/sweep_center_FBP3d_tomobar_directive.yaml +0 -0
  62. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/pipelines_full/sweep_paganin_FBP3d_tomobar_directive.yaml +0 -0
  63. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/pipelines_full/titaren_center_pc_FBP3d_resample_directive.yaml +0 -0
  64. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/pipelines_full/tomopy_gridrec_directive.yaml +0 -0
  65. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/scripts/__init__.py +0 -0
  66. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/scripts/json_pipelines_generator.py +0 -0
  67. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/scripts/yaml_templates_generator.py +0 -0
  68. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/scripts/yaml_unsupported_tomopy_remove.py +0 -0
  69. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomo/__init__.py +0 -0
  70. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomo/httomo.data.hdf.loaders/standard_tomo.yaml +0 -0
  71. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomo/httomo.methods/calculate_stats.yaml +0 -0
  72. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomo/httomo.methods/save_intermediate_data.yaml +0 -0
  73. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolib/__init__.py +0 -0
  74. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolib/httomolib.misc.images/save_to_images.yaml +0 -0
  75. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolib/httomolib.misc.morph/data_reducer.yaml +0 -0
  76. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolib/httomolib.misc.rescale/rescale_to_int.yaml +0 -0
  77. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolib/httomolib.misc.segm/binary_thresholding.yaml +0 -0
  78. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolib/httomolib.prep.phase/paganin_filter.yaml +0 -0
  79. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolibgpu/__init__.py +0 -0
  80. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.corr/median_filter.yaml +0 -0
  81. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.corr/remove_outlier.yaml +0 -0
  82. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.morph/data_resampler.yaml +0 -0
  83. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.morph/sino_360_to_180.yaml +0 -0
  84. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.rescale/rescale_to_int.yaml +0 -0
  85. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.alignment/distortion_correction_proj_discorpy.yaml +0 -0
  86. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.normalize/normalize.yaml +0 -0
  87. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.phase/paganin_filter_tomopy.yaml +0 -0
  88. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.stripe/raven_filter.yaml +0 -0
  89. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.stripe/remove_all_stripe.yaml +0 -0
  90. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.stripe/remove_stripe_based_sorting.yaml +0 -0
  91. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.stripe/remove_stripe_ti.yaml +0 -0
  92. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.rotation/find_center_360.yaml +0 -0
  93. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.rotation/find_center_pc.yaml +0 -0
  94. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.rotation/find_center_vo.yaml +0 -0
  95. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/__init__.py +0 -0
  96. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/adjust_range.yaml +0 -0
  97. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/circ_mask.yaml +0 -0
  98. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/gaussian_filter.yaml +0 -0
  99. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/median_filter.yaml +0 -0
  100. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/median_filter3d.yaml +0 -0
  101. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/median_filter_nonfinite.yaml +0 -0
  102. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/remove_nan.yaml +0 -0
  103. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/remove_neg.yaml +0 -0
  104. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/remove_outlier.yaml +0 -0
  105. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/remove_outlier1d.yaml +0 -0
  106. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/remove_outlier3d.yaml +0 -0
  107. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/remove_ring.yaml +0 -0
  108. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/sobel_filter.yaml +0 -0
  109. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.misc.morph/downsample.yaml +0 -0
  110. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.misc.morph/pad.yaml +0 -0
  111. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.misc.morph/sino_360_to_180.yaml +0 -0
  112. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.misc.morph/trim_sinogram.yaml +0 -0
  113. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.misc.morph/upsample.yaml +0 -0
  114. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/add_jitter.yaml +0 -0
  115. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/add_noise.yaml +0 -0
  116. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/align_joint.yaml +0 -0
  117. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/align_seq.yaml +0 -0
  118. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/blur_edges.yaml +0 -0
  119. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/distortion_correction_proj.yaml +0 -0
  120. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/distortion_correction_sino.yaml +0 -0
  121. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/scale.yaml +0 -0
  122. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/shift_images.yaml +0 -0
  123. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.normalize/minus_log.yaml +0 -0
  124. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.normalize/normalize.yaml +0 -0
  125. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.normalize/normalize_bg.yaml +0 -0
  126. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.normalize/normalize_nf.yaml +0 -0
  127. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.normalize/normalize_roi.yaml +0 -0
  128. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.phase/retrieve_phase.yaml +0 -0
  129. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_all_stripe.yaml +0 -0
  130. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_dead_stripe.yaml +0 -0
  131. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_large_stripe.yaml +0 -0
  132. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_stripe_based_filtering.yaml +0 -0
  133. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_stripe_based_fitting.yaml +0 -0
  134. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_stripe_based_interpolation.yaml +0 -0
  135. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_stripe_based_sorting.yaml +0 -0
  136. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_stripe_fw.yaml +0 -0
  137. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_stripe_sf.yaml +0 -0
  138. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_stripe_ti.yaml +0 -0
  139. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/stripes_detect3d.yaml +0 -0
  140. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/stripes_mask3d.yaml +0 -0
  141. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.recon.algorithm/recon.yaml +0 -0
  142. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.recon.rotation/find_center.yaml +0 -0
  143. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.recon.rotation/find_center_pc.yaml +0 -0
  144. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.recon.rotation/find_center_vo.yaml +0 -0
  145. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/add_drift.yaml +0 -0
  146. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/add_focal_spot_blur.yaml +0 -0
  147. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/add_gaussian.yaml +0 -0
  148. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/add_poisson.yaml +0 -0
  149. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/add_rings.yaml +0 -0
  150. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/add_salt_pepper.yaml +0 -0
  151. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/add_zingers.yaml +0 -0
  152. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/project.yaml +0 -0
  153. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/project2.yaml +0 -0
  154. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/project3.yaml +0 -0
  155. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends.egg-info/dependency_links.txt +0 -0
  156. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends.egg-info/requires.txt +0 -0
  157. {httomo_backends-0.6.3 → httomo_backends-0.7}/httomo_backends.egg-info/top_level.txt +0 -0
  158. {httomo_backends-0.6.3 → httomo_backends-0.7}/setup.cfg +0 -0
  159. {httomo_backends-0.6.3 → httomo_backends-0.7}/tests/test_method_query.py +0 -0
  160. {httomo_backends-0.6.3 → httomo_backends-0.7}/tests/test_tomopy.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: httomo-backends
3
- Version: 0.6.3
3
+ Version: 0.7
4
4
  Summary: Supplementary files for HTTomo backends.
5
5
  Author: Garry ODonnell, Jacob Williamson
6
6
  Author-email: Daniil Kazantsev <daniil.kazantsev@diamond.ac.uk>, Yousef Moazzam <yousef.moazzam@diamond.ac.uk>, Jessica Verschoyle <jessica.verschoyle@diamond.ac.uk>, Naman Gera <naman.gera@diamond.ac.uk>, scientificsoftware@diamond.ac.uk
@@ -26,7 +26,7 @@ misc:
26
26
  save_result_default: False
27
27
  padding: True
28
28
  memory_gpu:
29
- multiplier: 5
29
+ multiplier: 6.1
30
30
  method: direct
31
31
  total_variation_PD:
32
32
  pattern: all
@@ -35,7 +35,7 @@ misc:
35
35
  save_result_default: False
36
36
  padding: True
37
37
  memory_gpu:
38
- multiplier: 7
38
+ multiplier: 9.1
39
39
  method: direct
40
40
  morph:
41
41
  sino_360_to_180:
@@ -181,6 +181,15 @@ recon:
181
181
  memory_gpu:
182
182
  multiplier: None
183
183
  method: module
184
+ FISTA3d_tomobar:
185
+ pattern: sinogram
186
+ output_dims_change: True
187
+ implementation: gpu_cupy
188
+ save_result_default: True
189
+ padding: True
190
+ memory_gpu:
191
+ multiplier: None
192
+ method: module
184
193
  rotation:
185
194
  find_center_vo:
186
195
  pattern: projection
@@ -30,14 +30,21 @@ __all__ = [
30
30
  "_calc_memory_bytes_LPRec3d_tomobar",
31
31
  "_calc_memory_bytes_SIRT3d_tomobar",
32
32
  "_calc_memory_bytes_CGLS3d_tomobar",
33
+ "_calc_memory_bytes_FISTA3d_tomobar",
33
34
  "_calc_output_dim_FBP2d_astra",
34
35
  "_calc_output_dim_FBP3d_tomobar",
35
36
  "_calc_output_dim_LPRec3d_tomobar",
36
37
  "_calc_output_dim_SIRT3d_tomobar",
37
38
  "_calc_output_dim_CGLS3d_tomobar",
39
+ "_calc_output_dim_FISTA3d_tomobar",
40
+ "_calc_padding_FISTA3d_tomobar",
38
41
  ]
39
42
 
40
43
 
44
+ def _calc_padding_FISTA3d_tomobar(**kwargs) -> Tuple[int, int]:
45
+ return (5, 5)
46
+
47
+
41
48
  def __calc_output_dim_recon(non_slice_dims_shape, **kwargs):
42
49
  """Function to calculate output dimensions for all reconstructors.
43
50
  The change of the dimension depends either on the user-provided "recon_size"
@@ -72,14 +79,21 @@ def _calc_output_dim_CGLS3d_tomobar(non_slice_dims_shape, **kwargs):
72
79
  return __calc_output_dim_recon(non_slice_dims_shape, **kwargs)
73
80
 
74
81
 
82
+ def _calc_output_dim_FISTA3d_tomobar(non_slice_dims_shape, **kwargs):
83
+ return __calc_output_dim_recon(non_slice_dims_shape, **kwargs)
84
+
85
+
75
86
  def _calc_memory_bytes_FBP3d_tomobar(
76
87
  non_slice_dims_shape: Tuple[int, int],
77
88
  dtype: np.dtype,
78
89
  **kwargs,
79
90
  ) -> Tuple[int, int]:
91
+ detector_pad = 0
80
92
  if "detector_pad" in kwargs:
81
93
  detector_pad = kwargs["detector_pad"]
82
- else:
94
+ if detector_pad is True:
95
+ detector_pad = __estimate_detectorHoriz_padding(non_slice_dims_shape[1])
96
+ elif detector_pad is False:
83
97
  detector_pad = 0
84
98
 
85
99
  angles_tot = non_slice_dims_shape[0]
@@ -132,11 +146,11 @@ def _calc_memory_bytes_FBP3d_tomobar(
132
146
 
133
147
  # 7. astra backprojection will generate an output array
134
148
  # https://github.com/dkazanc/ToMoBAR/blob/54137829b6326406e09f6ef9c95eb35c213838a7/tomobar/astra_wrappers/astra_base.py#L524
135
- output_dims = _calc_output_dim_FBP3d_tomobar(non_slice_dims_shape, **kwargs)
149
+ output_dims = _calc_output_dim_FBP3d_tomobar((angles_tot, det_width), **kwargs)
136
150
  recon_output_size = np.prod(output_dims) * np.float32().itemsize
137
151
 
138
152
  # 7. astra backprojection makes a copy of the input
139
- astra_input_slice_size = np.prod(non_slice_dims_shape) * np.float32().itemsize
153
+ astra_input_slice_size = (angles_tot * det_width) * np.float32().itemsize
140
154
 
141
155
  ## now we calculate back projection memory (2 copies of the input + reconstruction output)
142
156
  projection_mem_size = (
@@ -169,10 +183,16 @@ def _calc_memory_bytes_LPRec3d_tomobar(
169
183
  ) -> Tuple[int, int]:
170
184
  # Based on: https://github.com/dkazanc/ToMoBAR/pull/112/commits/4704ecdc6ded3dd5ec0583c2008aa104f30a8a39
171
185
 
186
+ detector_pad = 0
172
187
  if "detector_pad" in kwargs:
173
188
  detector_pad = kwargs["detector_pad"]
174
- else:
175
- detector_pad = 0
189
+ if detector_pad is True:
190
+ detector_pad = __estimate_detectorHoriz_padding(non_slice_dims_shape[1])
191
+ elif detector_pad is False:
192
+ detector_pad = 0
193
+
194
+ min_mem_usage_filter = False
195
+ min_mem_usage_ifft2 = False
176
196
 
177
197
  angles_tot = non_slice_dims_shape[0]
178
198
  DetectorsLengthH_prepad = non_slice_dims_shape[1]
@@ -195,11 +215,22 @@ def _calc_memory_bytes_LPRec3d_tomobar(
195
215
  )
196
216
  )
197
217
 
198
- center_size = 6144
199
- center_size = min(center_size, n * 2 + m * 2)
218
+ center_size = 32768
219
+ center_size = min(center_size, n * 2)
220
+
221
+ chunk_count = 4
222
+ projection_chunk_count = 4
223
+ oversampling_level = 4 # at least 3 or larger required
224
+ power_of_2_oversampling = True
225
+
226
+ if power_of_2_oversampling:
227
+ ne = 2 ** math.ceil(math.log2(DetectorsLengthH_prepad * 3))
228
+ if n > ne:
229
+ ne = 2 ** math.ceil(math.log2(n))
230
+ else:
231
+ ne = int(oversampling_level * DetectorsLengthH_prepad)
232
+ ne = max(ne, n)
200
233
 
201
- oversampling_level = 2 # at least 2 or larger required
202
- ne = oversampling_level * n
203
234
  padding_m = ne // 2 - n // 2
204
235
 
205
236
  if "angles" in kwargs:
@@ -213,8 +244,6 @@ def _calc_memory_bytes_LPRec3d_tomobar(
213
244
  np.ceil(2)
214
245
  ) # assume a 2 * PI projection angle range
215
246
 
216
- chunk_count = 4
217
-
218
247
  output_dims = __calc_output_dim_recon(non_slice_dims_shape, **kwargs)
219
248
  if odd_horiz:
220
249
  output_dims = tuple(x + 1 for x in output_dims)
@@ -252,7 +281,7 @@ def _calc_memory_bytes_LPRec3d_tomobar(
252
281
  irfft_result_size = angles_tot * (n + padding_m * 2) * np.float32().itemsize
253
282
 
254
283
  datac_size = angles_tot * n * np.complex64().itemsize / 2
255
- fde_size = (2 * m + 2 * n) * (2 * m + 2 * n) * np.complex64().itemsize / 2
284
+ fde_size = 2 * n * 2 * n * np.complex64().itemsize / 2
256
285
  fft_plan_slice_size = (
257
286
  cufft_estimate_1d(nx=n, fft_type=CufftType.CUFFT_C2C, batch=angles_tot * SLICES)
258
287
  / SLICES
@@ -270,7 +299,7 @@ def _calc_memory_bytes_LPRec3d_tomobar(
270
299
  )
271
300
  ifft2_plan_slice_size = (
272
301
  cufft_estimate_2d(
273
- nx=(2 * m + 2 * n), ny=(2 * m + 2 * n), fft_type=CufftType.CUFFT_C2C
302
+ nx=2 * n, ny=2 * n, fft_type=CufftType.CUFFT_C2C
274
303
  )
275
304
  / 2
276
305
  )
@@ -309,24 +338,40 @@ def _calc_memory_bytes_LPRec3d_tomobar(
309
338
  add_to_memory_counters(scaled_filter_size, False)
310
339
 
311
340
  add_to_memory_counters(tmp_p_input_slice, True)
341
+ if min_mem_usage_filter:
342
+ add_to_memory_counters(rfft_plan_slice_size / 4, False)
343
+ add_to_memory_counters(irfft_plan_slice_size / 4, False)
344
+ add_to_memory_counters(padded_tmp_p_input_slice, False)
345
+
346
+ add_to_memory_counters(rfft_result_size, False)
347
+ add_to_memory_counters(filtered_rfft_result_size, False)
348
+ add_to_memory_counters(-rfft_result_size, False)
349
+ add_to_memory_counters(-padded_tmp_p_input_slice, False)
350
+
351
+ add_to_memory_counters(irfft_scratch_memory_size, False)
352
+ add_to_memory_counters(-irfft_scratch_memory_size, False)
353
+ add_to_memory_counters(irfft_result_size, False)
354
+ add_to_memory_counters(-filtered_rfft_result_size, False)
355
+
356
+ add_to_memory_counters(-irfft_result_size, False)
357
+ else:
358
+ add_to_memory_counters(rfft_plan_slice_size / chunk_count / projection_chunk_count * 2, True)
359
+ add_to_memory_counters(irfft_plan_slice_size / chunk_count / projection_chunk_count * 2, True)
360
+ # add_to_memory_counters(irfft_scratch_memory_size / chunk_count / projection_chunk_count, True)
361
+ for _ in range(0, chunk_count):
362
+ add_to_memory_counters(padded_tmp_p_input_slice / chunk_count / projection_chunk_count, True)
312
363
 
313
- add_to_memory_counters(rfft_plan_slice_size / chunk_count * 2, True)
314
- add_to_memory_counters(irfft_plan_slice_size / chunk_count * 2, True)
315
- # add_to_memory_counters(irfft_scratch_memory_size / chunk_count, True)
316
- for _ in range(0, chunk_count):
317
- add_to_memory_counters(padded_tmp_p_input_slice / chunk_count, True)
318
-
319
- add_to_memory_counters(rfft_result_size / chunk_count, True)
320
- add_to_memory_counters(filtered_rfft_result_size / chunk_count, True)
321
- add_to_memory_counters(-rfft_result_size / chunk_count, True)
322
- add_to_memory_counters(-padded_tmp_p_input_slice / chunk_count, True)
364
+ add_to_memory_counters(rfft_result_size / chunk_count / projection_chunk_count, True)
365
+ add_to_memory_counters(filtered_rfft_result_size / chunk_count / projection_chunk_count, True)
366
+ add_to_memory_counters(-rfft_result_size / chunk_count / projection_chunk_count, True)
367
+ add_to_memory_counters(-padded_tmp_p_input_slice / chunk_count / projection_chunk_count, True)
323
368
 
324
- add_to_memory_counters(irfft_scratch_memory_size / chunk_count, True)
325
- add_to_memory_counters(-irfft_scratch_memory_size / chunk_count, True)
326
- add_to_memory_counters(irfft_result_size / chunk_count, True)
327
- add_to_memory_counters(-filtered_rfft_result_size / chunk_count, True)
369
+ add_to_memory_counters(irfft_scratch_memory_size / chunk_count / projection_chunk_count, True)
370
+ add_to_memory_counters(-irfft_scratch_memory_size / chunk_count / projection_chunk_count, True)
371
+ add_to_memory_counters(irfft_result_size / chunk_count / projection_chunk_count, True)
372
+ add_to_memory_counters(-filtered_rfft_result_size / chunk_count / projection_chunk_count, True)
328
373
 
329
- add_to_memory_counters(-irfft_result_size / chunk_count, True)
374
+ add_to_memory_counters(-irfft_result_size / chunk_count / projection_chunk_count, True)
330
375
 
331
376
  add_to_memory_counters(-padded_in_slice_size, True)
332
377
  add_to_memory_counters(-filter_size, False)
@@ -342,17 +387,25 @@ def _calc_memory_bytes_LPRec3d_tomobar(
342
387
 
343
388
  add_to_memory_counters(-fft_result_size, True)
344
389
 
345
- add_to_memory_counters(ifft2_plan_slice_size / chunk_count * 2, True)
346
- for _ in range(0, chunk_count):
347
- add_to_memory_counters(fde_size / chunk_count, True)
348
- add_to_memory_counters(-fde_size / chunk_count, True)
390
+ if min_mem_usage_ifft2:
391
+ add_to_memory_counters(ifft2_plan_slice_size, False)
392
+ add_to_memory_counters(fde_size * 2, False)
393
+ add_to_memory_counters(-fde_size * 2, False)
394
+ else:
395
+ add_to_memory_counters(ifft2_plan_slice_size / chunk_count * 2, True)
396
+ for _ in range(0, chunk_count):
397
+ add_to_memory_counters(fde_size / chunk_count, True)
398
+ add_to_memory_counters(-fde_size / chunk_count, True)
349
399
 
350
400
  add_to_memory_counters(recon_output_size, True)
351
401
  add_to_memory_counters(-fde_size, True)
352
402
  add_to_memory_counters(circular_mask_size, False)
353
403
  add_to_memory_counters(after_recon_swapaxis_slice, True)
354
404
 
355
- return (tot_memory_bytes * 1.05, fixed_amount + 250 * 1024 * 1024)
405
+ if min_mem_usage_ifft2 and min_mem_usage_filter:
406
+ return (tot_memory_bytes * 1.1 + 30 * 1024 * 1024, fixed_amount)
407
+ else:
408
+ return (tot_memory_bytes * 1.1, fixed_amount)
356
409
 
357
410
 
358
411
  def _calc_memory_bytes_SIRT3d_tomobar(
@@ -361,21 +414,48 @@ def _calc_memory_bytes_SIRT3d_tomobar(
361
414
  **kwargs,
362
415
  ) -> Tuple[int, int]:
363
416
 
417
+ detector_pad = 0
364
418
  if "detector_pad" in kwargs:
365
419
  detector_pad = kwargs["detector_pad"]
366
- else:
367
- detector_pad = 0
420
+ if detector_pad is True:
421
+ detector_pad = __estimate_detectorHoriz_padding(non_slice_dims_shape[1])
422
+ elif detector_pad is False:
423
+ detector_pad = 0
424
+
368
425
  anglesnum = non_slice_dims_shape[0]
369
- DetectorsLengthH = non_slice_dims_shape[1] + 2 * detector_pad
426
+ DetectorsLengthH_padded = non_slice_dims_shape[1] + 2 * detector_pad
370
427
  # calculate the output shape
371
428
  output_dims = _calc_output_dim_SIRT3d_tomobar(non_slice_dims_shape, **kwargs)
429
+ recon_data_size_original = (
430
+ np.prod(output_dims) * dtype.itemsize
431
+ ) # x_rec user-defined size
432
+
433
+ in_data_size = (anglesnum * DetectorsLengthH_padded) * dtype.itemsize
434
+
435
+ output_dims_larger_grid = (DetectorsLengthH_padded, DetectorsLengthH_padded)
372
436
 
373
- in_data_size = (anglesnum * DetectorsLengthH) * dtype.itemsize
374
- out_data_size = np.prod(output_dims) * dtype.itemsize
437
+ out_data_size = np.prod(output_dims_larger_grid) * dtype.itemsize
375
438
 
376
- astra_projection = 2.5 * (in_data_size + out_data_size)
439
+ R = in_data_size
440
+ C = out_data_size
377
441
 
378
- tot_memory_bytes = int(2 * in_data_size + 2 * out_data_size + astra_projection)
442
+ Res = in_data_size
443
+ Res_times_R = Res
444
+ C_times_res = out_data_size
445
+
446
+ astra_projection = (in_data_size + out_data_size)
447
+
448
+ tot_memory_bytes = int(
449
+ recon_data_size_original
450
+ + in_data_size
451
+ + out_data_size
452
+ + R
453
+ + C
454
+ + Res
455
+ + Res_times_R
456
+ + C_times_res
457
+ + astra_projection
458
+ )
379
459
  return (tot_memory_bytes, 0)
380
460
 
381
461
 
@@ -384,20 +464,102 @@ def _calc_memory_bytes_CGLS3d_tomobar(
384
464
  dtype: np.dtype,
385
465
  **kwargs,
386
466
  ) -> Tuple[int, int]:
467
+ detector_pad = 0
387
468
  if "detector_pad" in kwargs:
388
469
  detector_pad = kwargs["detector_pad"]
389
- else:
390
- detector_pad = 0
470
+ if detector_pad is True:
471
+ detector_pad = __estimate_detectorHoriz_padding(non_slice_dims_shape[1])
472
+ elif detector_pad is False:
473
+ detector_pad = 0
391
474
 
392
475
  anglesnum = non_slice_dims_shape[0]
393
- DetectorsLengthH = non_slice_dims_shape[1] + 2 * detector_pad
476
+ DetectorsLengthH_padded = non_slice_dims_shape[1] + 2 * detector_pad
394
477
  # calculate the output shape
395
478
  output_dims = _calc_output_dim_CGLS3d_tomobar(non_slice_dims_shape, **kwargs)
479
+ recon_data_size_original = (
480
+ np.prod(output_dims) * dtype.itemsize
481
+ ) # x_rec user-defined size
482
+
483
+ in_data_size = (anglesnum * DetectorsLengthH_padded) * dtype.itemsize
484
+ output_dims_larger_grid = (DetectorsLengthH_padded, DetectorsLengthH_padded)
485
+ recon_data_size = (
486
+ np.prod(output_dims_larger_grid) * dtype.itemsize
487
+ ) # large volume in the algorithm
488
+ recon_data_size2 = recon_data_size # x_rec linearised
489
+ d_recon = recon_data_size
490
+ d_recon2 = d_recon # linearised, possibly a copy
491
+
492
+ data_r = in_data_size
493
+ Ad = recon_data_size
494
+ Ad2 = Ad
495
+ s = data_r
496
+ collection = (
497
+ in_data_size
498
+ + recon_data_size_original
499
+ + recon_data_size
500
+ + recon_data_size2
501
+ + d_recon
502
+ + d_recon2
503
+ + data_r
504
+ + Ad
505
+ + Ad2
506
+ + s
507
+ )
508
+ astra_contribution = in_data_size + recon_data_size
396
509
 
397
- in_data_size = (anglesnum * DetectorsLengthH) * dtype.itemsize
398
- out_data_size = np.prod(output_dims) * dtype.itemsize
510
+ tot_memory_bytes = int(collection + astra_contribution)
511
+ return (tot_memory_bytes, 0)
399
512
 
400
- astra_projection = 2.5 * (in_data_size + out_data_size)
401
513
 
402
- tot_memory_bytes = int(2 * in_data_size + 2 * out_data_size + astra_projection)
514
+ def _calc_memory_bytes_FISTA3d_tomobar(
515
+ non_slice_dims_shape: Tuple[int, int],
516
+ dtype: np.dtype,
517
+ **kwargs,
518
+ ) -> Tuple[int, int]:
519
+ detector_pad = 0
520
+ if "detector_pad" in kwargs:
521
+ detector_pad = kwargs["detector_pad"]
522
+ if detector_pad is True:
523
+ detector_pad = __estimate_detectorHoriz_padding(non_slice_dims_shape[1])
524
+ elif detector_pad is False:
525
+ detector_pad = 0
526
+
527
+ anglesnum = non_slice_dims_shape[0]
528
+ DetectorsLengthH_padded = non_slice_dims_shape[1] + 2 * detector_pad
529
+
530
+ # calculate the output shape
531
+ output_dims = _calc_output_dim_FISTA3d_tomobar(non_slice_dims_shape, **kwargs)
532
+ recon_data_size_original = (
533
+ np.prod(output_dims) * dtype.itemsize
534
+ ) # recon user-defined size
535
+
536
+ in_data_siz_pad = (anglesnum * DetectorsLengthH_padded) * dtype.itemsize
537
+ output_dims_larger_grid = (DetectorsLengthH_padded, DetectorsLengthH_padded)
538
+
539
+ residual_grad = in_data_siz_pad
540
+ out_data_size = np.prod(output_dims_larger_grid) * dtype.itemsize
541
+ X_t = out_data_size
542
+ X_old = out_data_size
543
+
544
+ grad_fidelity = out_data_size
545
+
546
+ fista_part = (
547
+ recon_data_size_original
548
+ + in_data_siz_pad
549
+ + residual_grad
550
+ + grad_fidelity
551
+ + X_t
552
+ + X_old
553
+ + out_data_size
554
+ )
555
+ regul_part = 8 * np.prod(output_dims_larger_grid) * dtype.itemsize
556
+
557
+ tot_memory_bytes = int(fista_part + regul_part)
403
558
  return (tot_memory_bytes, 0)
559
+
560
+
561
+ def __estimate_detectorHoriz_padding(detX_size) -> int:
562
+ det_half = detX_size // 2
563
+ padded_value_exact = int(np.sqrt(2 * (det_half**2))) - det_half
564
+ padded_add_margin = int(0.1 * padded_value_exact)
565
+ return padded_value_exact + padded_add_margin
@@ -0,0 +1,14 @@
1
+ - method: standard_tomo
2
+ module_path: httomo.data.hdf.loaders
3
+ - method: find_center_vo
4
+ module_path: httomolibgpu.recon.rotation
5
+ - method: normalize
6
+ module_path: httomolibgpu.prep.normalize
7
+ - method: FISTA3d_tomobar
8
+ module_path: httomolibgpu.recon.algorithm
9
+ - method: calculate_stats
10
+ module_path: httomo.methods
11
+ - method: rescale_to_int
12
+ module_path: httomolib.misc.rescale
13
+ - method: save_to_images
14
+ module_path: httomolib.misc.images
@@ -31,14 +31,10 @@ import ruamel.yaml
31
31
  import httomo_backends
32
32
  import yaml
33
33
 
34
- try:
35
- from httomo import __version__ as httomo_version
36
- except:
37
- httomo_version = "2.6" # temporary version fix for sphinx build
38
- pass
39
34
 
40
35
  CS = ruamel.yaml.comments.CommentedSeq # defaults to block style
41
36
 
37
+
42
38
  class SweepRange:
43
39
  """SweepRange class."""
44
40
 
@@ -140,11 +136,8 @@ def yaml_pipelines_generator(
140
136
  except OSError as e:
141
137
  print("loading yaml template failed", e)
142
138
 
143
- version_split = httomo_version.split(".")
144
- major = version_split[0]
145
- minor = version_split[1]
146
139
  pipeline_full.yaml_set_start_comment(
147
- f"This pipeline is supported by HTTomo ver. {major}.{minor}"
140
+ "This pipeline should be supported by the latest developments of HTTomo. Use module load httomo/latest module at Diamond."
148
141
  )
149
142
 
150
143
  if "loaders" in module_name:
@@ -254,7 +247,7 @@ def yaml_pipelines_generator(
254
247
  pipeline_full += yaml_template_method
255
248
  pipeline_full[i]["parameters"].yaml_add_eol_comment(
256
249
  key="alpha",
257
- comment="Controls the balance between the strength of the filter and the amount of noise reduction. Higher leads to less noise and more blur.",
250
+ comment="Controls the balance between the strength of the filter and the amount of noise reduction. Smaller values lead to less noise and more blur.",
258
251
  )
259
252
  elif "stripe" in module_name:
260
253
  pipeline_full.yaml_set_comment_before_after_key(
@@ -276,7 +269,7 @@ def yaml_pipelines_generator(
276
269
  )
277
270
  pipeline_full[i]["parameters"].yaml_add_eol_comment(
278
271
  key="detector_pad",
279
- comment="Horizontal detector padding to minimise circle/arc-type artifacts in the reconstruction",
272
+ comment="Horizontal detector padding to minimise circle/arc-type artifacts in the reconstruction. Set to true to enable automatic padding or an integer",
280
273
  )
281
274
  pipeline_full[i]["parameters"].yaml_add_eol_comment(
282
275
  key="recon_mask_radius",
@@ -6,3 +6,4 @@
6
6
  isotropic: true
7
7
  nonnegativity: false
8
8
  lipschitz_const: 8.0
9
+ half_precision: false
@@ -4,3 +4,4 @@
4
4
  regularisation_parameter: 1.0e-05
5
5
  iterations: 3000
6
6
  time_marching_parameter: 0.001
7
+ half_precision: false
@@ -2,8 +2,9 @@
2
2
  module_path: httomolibgpu.recon.algorithm
3
3
  parameters:
4
4
  center: ${{centering.side_outputs.centre_of_rotation}}
5
- detector_pad: 0
5
+ detector_pad: false
6
6
  recon_size: null
7
+ recon_mask_radius: 0.95
7
8
  iterations: 20
8
9
  nonnegativity: true
9
10
  neglog: false
@@ -2,7 +2,7 @@
2
2
  module_path: httomolibgpu.recon.algorithm
3
3
  parameters:
4
4
  center: ${{centering.side_outputs.centre_of_rotation}}
5
- detector_pad: 0
5
+ detector_pad: false
6
6
  filter_type: ram-lak
7
7
  filter_parameter: null
8
8
  filter_d: null
@@ -2,7 +2,7 @@
2
2
  module_path: httomolibgpu.recon.algorithm
3
3
  parameters:
4
4
  center: ${{centering.side_outputs.centre_of_rotation}}
5
- detector_pad: 0
5
+ detector_pad: false
6
6
  filter_freq_cutoff: 0.35
7
7
  recon_size: null
8
8
  recon_mask_radius: 0.95
@@ -0,0 +1,15 @@
1
+ - method: FISTA3d_tomobar
2
+ module_path: httomolibgpu.recon.algorithm
3
+ parameters:
4
+ center: ${{centering.side_outputs.centre_of_rotation}}
5
+ detector_pad: false
6
+ recon_size: null
7
+ recon_mask_radius: 0.95
8
+ iterations: 20
9
+ subsets_number: 6
10
+ regularisation_type: PD_TV
11
+ regularisation_parameter: 1.0e-06
12
+ regularisation_iterations: 50
13
+ regularisation_half_precision: true
14
+ nonnegativity: true
15
+ neglog: false
@@ -2,9 +2,12 @@
2
2
  module_path: httomolibgpu.recon.algorithm
3
3
  parameters:
4
4
  center: ${{centering.side_outputs.centre_of_rotation}}
5
- detector_pad: 0
5
+ detector_pad: false
6
6
  filter_type: shepp
7
7
  filter_freq_cutoff: 1.0
8
8
  recon_size: null
9
9
  recon_mask_radius: 0.95
10
+ power_of_2_oversampling: true
11
+ min_mem_usage_filter: false
12
+ min_mem_usage_ifft2: false
10
13
  neglog: false
@@ -2,8 +2,9 @@
2
2
  module_path: httomolibgpu.recon.algorithm
3
3
  parameters:
4
4
  center: ${{centering.side_outputs.centre_of_rotation}}
5
- detector_pad: 0
5
+ detector_pad: false
6
6
  recon_size: null
7
+ recon_mask_radius: 0.95
7
8
  iterations: 300
8
9
  nonnegativity: true
9
10
  neglog: false
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: httomo-backends
3
- Version: 0.6.3
3
+ Version: 0.7
4
4
  Summary: Supplementary files for HTTomo backends.
5
5
  Author: Garry ODonnell, Jacob Williamson
6
6
  Author-email: Daniil Kazantsev <daniil.kazantsev@diamond.ac.uk>, Yousef Moazzam <yousef.moazzam@diamond.ac.uk>, Jessica Verschoyle <jessica.verschoyle@diamond.ac.uk>, Naman Gera <naman.gera@diamond.ac.uk>, scientificsoftware@diamond.ac.uk
@@ -44,6 +44,7 @@ httomo_backends/pipelines_full/FBP2d_astra_directive.yaml
44
44
  httomo_backends/pipelines_full/FBP3d_tomobar_denoising_directive.yaml
45
45
  httomo_backends/pipelines_full/FBP3d_tomobar_directive.yaml
46
46
  httomo_backends/pipelines_full/FBP3d_tomobar_noimagesaving_directive.yaml
47
+ httomo_backends/pipelines_full/FISTA3d_tomobar_directive.yaml
47
48
  httomo_backends/pipelines_full/LPRec3d_tomobar_directive.yaml
48
49
  httomo_backends/pipelines_full/__init__.py
49
50
  httomo_backends/pipelines_full/deg360_distortion_FBP3d_tomobar_directive.yaml
@@ -77,7 +78,6 @@ httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.morph/sino_360_to_
77
78
  httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.rescale/rescale_to_int.yaml
78
79
  httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.alignment/distortion_correction_proj_discorpy.yaml
79
80
  httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.normalize/normalize.yaml
80
- httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.phase/paganin_filter_savu.yaml
81
81
  httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.phase/paganin_filter_tomopy.yaml
82
82
  httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.stripe/raven_filter.yaml
83
83
  httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.stripe/remove_all_stripe.yaml
@@ -86,6 +86,7 @@ httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.stripe/remove_stri
86
86
  httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/CGLS3d_tomobar.yaml
87
87
  httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/FBP2d_astra.yaml
88
88
  httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/FBP3d_tomobar.yaml
89
+ httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/FISTA3d_tomobar.yaml
89
90
  httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/LPRec3d_tomobar.yaml
90
91
  httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/SIRT3d_tomobar.yaml
91
92
  httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.rotation/find_center_360.yaml
@@ -24,7 +24,7 @@ dev_template = "{tag}"
24
24
 
25
25
  [project]
26
26
  name = "httomo-backends"
27
- version = "0.6.3"
27
+ version = "0.7"
28
28
  description = "Supplementary files for HTTomo backends."
29
29
  readme = "README.rst"
30
30
  license = {text = "BSD-3-Clause"}