httomo-backends 0.6.3__tar.gz → 0.7.1__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.1}/PKG-INFO +1 -1
  2. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/methods_database/packages/backends/httomolibgpu/httomolibgpu.yaml +11 -2
  3. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/recon/algorithm.py +215 -47
  4. httomo_backends-0.7.1/httomo_backends/pipelines_full/FISTA3d_tomobar_directive.yaml +14 -0
  5. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/scripts/yaml_pipelines_generator.py +4 -11
  6. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.denoise/total_variation_PD.yaml +1 -0
  7. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.denoise/total_variation_ROF.yaml +1 -0
  8. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/CGLS3d_tomobar.yaml +2 -1
  9. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/FBP2d_astra.yaml +1 -1
  10. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/FBP3d_tomobar.yaml +1 -1
  11. httomo_backends-0.7.1/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/FISTA3d_tomobar.yaml +15 -0
  12. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/LPRec3d_tomobar.yaml +4 -1
  13. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/SIRT3d_tomobar.yaml +2 -1
  14. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends.egg-info/PKG-INFO +1 -1
  15. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends.egg-info/SOURCES.txt +2 -1
  16. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/pyproject.toml +1 -1
  17. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/tests/test_httomolibgpu.py +212 -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.1}/LICENSE +0 -0
  20. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/README.rst +0 -0
  21. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/__init__.py +0 -0
  22. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/cufft.py +0 -0
  23. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/methods_database/__init__.py +0 -0
  24. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/methods_database/packages/__init__.py +0 -0
  25. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/methods_database/packages/backends/httomolib/httomolib.yaml +0 -0
  26. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/methods_database/packages/backends/httomolib/httomolib_modules.yaml +0 -0
  27. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/methods_database/packages/backends/httomolibgpu/__init__.py +0 -0
  28. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/methods_database/packages/backends/httomolibgpu/httomolibgpu_modules.yaml +0 -0
  29. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/__init__.py +0 -0
  30. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/misc/__init__.py +0 -0
  31. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/misc/corr.py +0 -0
  32. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/misc/denoise.py +0 -0
  33. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/misc/morph.py +0 -0
  34. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/misc/rescale.py +0 -0
  35. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/prep/__init__.py +0 -0
  36. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/prep/normalize.py +0 -0
  37. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/prep/phase.py +0 -0
  38. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/prep/stripe.py +0 -0
  39. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/recon/__init__.py +0 -0
  40. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/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.1}/httomo_backends/methods_database/packages/backends/tomopy/__init__.py +0 -0
  42. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/__init__.py +0 -0
  43. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/misc/__init__.py +0 -0
  44. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/misc/corr.py +0 -0
  45. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/prep/__init__.py +0 -0
  46. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/prep/stripe.py +0 -0
  47. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/recon/__init__.py +0 -0
  48. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/recon/algorithm.py +0 -0
  49. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/methods_database/packages/backends/tomopy/tomopy.yaml +0 -0
  50. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/methods_database/packages/backends/tomopy/tomopy_modules.yaml +0 -0
  51. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/methods_database/packages/httomo.yaml +0 -0
  52. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/methods_database/query.py +0 -0
  53. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/pipelines_full/FBP2d_astra_directive.yaml +0 -0
  54. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/pipelines_full/FBP3d_tomobar_denoising_directive.yaml +0 -0
  55. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/pipelines_full/FBP3d_tomobar_directive.yaml +0 -0
  56. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/pipelines_full/FBP3d_tomobar_noimagesaving_directive.yaml +0 -0
  57. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/pipelines_full/LPRec3d_tomobar_directive.yaml +0 -0
  58. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/pipelines_full/__init__.py +0 -0
  59. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/pipelines_full/deg360_distortion_FBP3d_tomobar_directive.yaml +0 -0
  60. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/pipelines_full/deg360_paganin_FBP3d_tomobar_directive.yaml +0 -0
  61. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/pipelines_full/sweep_center_FBP3d_tomobar_directive.yaml +0 -0
  62. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/pipelines_full/sweep_paganin_FBP3d_tomobar_directive.yaml +0 -0
  63. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/pipelines_full/titaren_center_pc_FBP3d_resample_directive.yaml +0 -0
  64. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/pipelines_full/tomopy_gridrec_directive.yaml +0 -0
  65. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/scripts/__init__.py +0 -0
  66. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/scripts/json_pipelines_generator.py +0 -0
  67. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/scripts/yaml_templates_generator.py +0 -0
  68. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/scripts/yaml_unsupported_tomopy_remove.py +0 -0
  69. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/httomo/__init__.py +0 -0
  70. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/httomo/httomo.data.hdf.loaders/standard_tomo.yaml +0 -0
  71. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/httomo/httomo.methods/calculate_stats.yaml +0 -0
  72. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/httomo/httomo.methods/save_intermediate_data.yaml +0 -0
  73. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/httomolib/__init__.py +0 -0
  74. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/httomolib/httomolib.misc.images/save_to_images.yaml +0 -0
  75. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/httomolib/httomolib.misc.morph/data_reducer.yaml +0 -0
  76. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/httomolib/httomolib.misc.rescale/rescale_to_int.yaml +0 -0
  77. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/httomolib/httomolib.misc.segm/binary_thresholding.yaml +0 -0
  78. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/httomolib/httomolib.prep.phase/paganin_filter.yaml +0 -0
  79. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/httomolibgpu/__init__.py +0 -0
  80. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.corr/median_filter.yaml +0 -0
  81. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.corr/remove_outlier.yaml +0 -0
  82. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.morph/data_resampler.yaml +0 -0
  83. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/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.1}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.rescale/rescale_to_int.yaml +0 -0
  85. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/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.1}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.normalize/normalize.yaml +0 -0
  87. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.phase/paganin_filter_tomopy.yaml +0 -0
  88. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.stripe/raven_filter.yaml +0 -0
  89. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.stripe/remove_all_stripe.yaml +0 -0
  90. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/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.1}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.stripe/remove_stripe_ti.yaml +0 -0
  92. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.rotation/find_center_360.yaml +0 -0
  93. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.rotation/find_center_pc.yaml +0 -0
  94. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.rotation/find_center_vo.yaml +0 -0
  95. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/__init__.py +0 -0
  96. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/adjust_range.yaml +0 -0
  97. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/circ_mask.yaml +0 -0
  98. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/gaussian_filter.yaml +0 -0
  99. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/median_filter.yaml +0 -0
  100. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/median_filter3d.yaml +0 -0
  101. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/median_filter_nonfinite.yaml +0 -0
  102. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/remove_nan.yaml +0 -0
  103. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/remove_neg.yaml +0 -0
  104. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/remove_outlier.yaml +0 -0
  105. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/remove_outlier1d.yaml +0 -0
  106. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/remove_outlier3d.yaml +0 -0
  107. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/remove_ring.yaml +0 -0
  108. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/sobel_filter.yaml +0 -0
  109. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.misc.morph/downsample.yaml +0 -0
  110. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.misc.morph/pad.yaml +0 -0
  111. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/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.1}/httomo_backends/yaml_templates/tomopy/tomopy.misc.morph/trim_sinogram.yaml +0 -0
  113. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.misc.morph/upsample.yaml +0 -0
  114. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/add_jitter.yaml +0 -0
  115. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/add_noise.yaml +0 -0
  116. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/align_joint.yaml +0 -0
  117. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/align_seq.yaml +0 -0
  118. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/blur_edges.yaml +0 -0
  119. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/distortion_correction_proj.yaml +0 -0
  120. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/distortion_correction_sino.yaml +0 -0
  121. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/scale.yaml +0 -0
  122. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/shift_images.yaml +0 -0
  123. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.normalize/minus_log.yaml +0 -0
  124. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.normalize/normalize.yaml +0 -0
  125. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.normalize/normalize_bg.yaml +0 -0
  126. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.normalize/normalize_nf.yaml +0 -0
  127. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.normalize/normalize_roi.yaml +0 -0
  128. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.phase/retrieve_phase.yaml +0 -0
  129. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_all_stripe.yaml +0 -0
  130. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_dead_stripe.yaml +0 -0
  131. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_large_stripe.yaml +0 -0
  132. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/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.1}/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.1}/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.1}/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.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_stripe_fw.yaml +0 -0
  137. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_stripe_sf.yaml +0 -0
  138. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_stripe_ti.yaml +0 -0
  139. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/stripes_detect3d.yaml +0 -0
  140. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/stripes_mask3d.yaml +0 -0
  141. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.recon.algorithm/recon.yaml +0 -0
  142. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.recon.rotation/find_center.yaml +0 -0
  143. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.recon.rotation/find_center_pc.yaml +0 -0
  144. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.recon.rotation/find_center_vo.yaml +0 -0
  145. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/add_drift.yaml +0 -0
  146. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/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.1}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/add_gaussian.yaml +0 -0
  148. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/add_poisson.yaml +0 -0
  149. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/add_rings.yaml +0 -0
  150. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/add_salt_pepper.yaml +0 -0
  151. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/add_zingers.yaml +0 -0
  152. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/project.yaml +0 -0
  153. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/project2.yaml +0 -0
  154. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/project3.yaml +0 -0
  155. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends.egg-info/dependency_links.txt +0 -0
  156. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends.egg-info/requires.txt +0 -0
  157. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/httomo_backends.egg-info/top_level.txt +0 -0
  158. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/setup.cfg +0 -0
  159. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/tests/test_method_query.py +0 -0
  160. {httomo_backends-0.6.3 → httomo_backends-0.7.1}/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.1
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,20 @@ 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
+ if "min_mem_usage_filter" in kwargs:
196
+ min_mem_usage_filter = kwargs["min_mem_usage_filter"]
197
+ min_mem_usage_ifft2 = False
198
+ if "min_mem_usage_ifft2" in kwargs:
199
+ min_mem_usage_ifft2 = kwargs["min_mem_usage_ifft2"]
176
200
 
177
201
  angles_tot = non_slice_dims_shape[0]
178
202
  DetectorsLengthH_prepad = non_slice_dims_shape[1]
@@ -195,11 +219,22 @@ def _calc_memory_bytes_LPRec3d_tomobar(
195
219
  )
196
220
  )
197
221
 
198
- center_size = 6144
199
- center_size = min(center_size, n * 2 + m * 2)
222
+ center_size = 32768
223
+ center_size = min(center_size, n * 2)
224
+
225
+ chunk_count = 4
226
+ projection_chunk_count = 4
227
+ oversampling_level = 4 # at least 3 or larger required
228
+ power_of_2_oversampling = True
229
+
230
+ if power_of_2_oversampling:
231
+ ne = 2 ** math.ceil(math.log2(DetectorsLengthH_prepad * 3))
232
+ if n > ne:
233
+ ne = 2 ** math.ceil(math.log2(n))
234
+ else:
235
+ ne = int(oversampling_level * DetectorsLengthH_prepad)
236
+ ne = max(ne, n)
200
237
 
201
- oversampling_level = 2 # at least 2 or larger required
202
- ne = oversampling_level * n
203
238
  padding_m = ne // 2 - n // 2
204
239
 
205
240
  if "angles" in kwargs:
@@ -213,8 +248,6 @@ def _calc_memory_bytes_LPRec3d_tomobar(
213
248
  np.ceil(2)
214
249
  ) # assume a 2 * PI projection angle range
215
250
 
216
- chunk_count = 4
217
-
218
251
  output_dims = __calc_output_dim_recon(non_slice_dims_shape, **kwargs)
219
252
  if odd_horiz:
220
253
  output_dims = tuple(x + 1 for x in output_dims)
@@ -252,7 +285,7 @@ def _calc_memory_bytes_LPRec3d_tomobar(
252
285
  irfft_result_size = angles_tot * (n + padding_m * 2) * np.float32().itemsize
253
286
 
254
287
  datac_size = angles_tot * n * np.complex64().itemsize / 2
255
- fde_size = (2 * m + 2 * n) * (2 * m + 2 * n) * np.complex64().itemsize / 2
288
+ fde_size = 2 * n * 2 * n * np.complex64().itemsize / 2
256
289
  fft_plan_slice_size = (
257
290
  cufft_estimate_1d(nx=n, fft_type=CufftType.CUFFT_C2C, batch=angles_tot * SLICES)
258
291
  / SLICES
@@ -270,7 +303,7 @@ def _calc_memory_bytes_LPRec3d_tomobar(
270
303
  )
271
304
  ifft2_plan_slice_size = (
272
305
  cufft_estimate_2d(
273
- nx=(2 * m + 2 * n), ny=(2 * m + 2 * n), fft_type=CufftType.CUFFT_C2C
306
+ nx=2 * n, ny=2 * n, fft_type=CufftType.CUFFT_C2C
274
307
  )
275
308
  / 2
276
309
  )
@@ -309,24 +342,40 @@ def _calc_memory_bytes_LPRec3d_tomobar(
309
342
  add_to_memory_counters(scaled_filter_size, False)
310
343
 
311
344
  add_to_memory_counters(tmp_p_input_slice, True)
345
+ if min_mem_usage_filter:
346
+ add_to_memory_counters(rfft_plan_slice_size / 4 / projection_chunk_count, False)
347
+ add_to_memory_counters(irfft_plan_slice_size / 4 / projection_chunk_count, False)
348
+ add_to_memory_counters(padded_tmp_p_input_slice / projection_chunk_count, False)
349
+
350
+ add_to_memory_counters(rfft_result_size / projection_chunk_count, False)
351
+ add_to_memory_counters(filtered_rfft_result_size / projection_chunk_count, False)
352
+ add_to_memory_counters(-rfft_result_size / projection_chunk_count, False)
353
+ add_to_memory_counters(-padded_tmp_p_input_slice / projection_chunk_count, False)
354
+
355
+ add_to_memory_counters(irfft_scratch_memory_size / projection_chunk_count, False)
356
+ add_to_memory_counters(-irfft_scratch_memory_size / projection_chunk_count, False)
357
+ add_to_memory_counters(irfft_result_size / projection_chunk_count, False)
358
+ add_to_memory_counters(-filtered_rfft_result_size / projection_chunk_count, False)
359
+
360
+ add_to_memory_counters(-irfft_result_size / projection_chunk_count, False)
361
+ else:
362
+ add_to_memory_counters(rfft_plan_slice_size / chunk_count / projection_chunk_count * 2, True)
363
+ add_to_memory_counters(irfft_plan_slice_size / chunk_count / projection_chunk_count * 2, True)
364
+ # add_to_memory_counters(irfft_scratch_memory_size / chunk_count / projection_chunk_count, True)
365
+ for _ in range(0, chunk_count):
366
+ add_to_memory_counters(padded_tmp_p_input_slice / chunk_count / projection_chunk_count, True)
312
367
 
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)
368
+ add_to_memory_counters(rfft_result_size / chunk_count / projection_chunk_count, True)
369
+ add_to_memory_counters(filtered_rfft_result_size / chunk_count / projection_chunk_count, True)
370
+ add_to_memory_counters(-rfft_result_size / chunk_count / projection_chunk_count, True)
371
+ add_to_memory_counters(-padded_tmp_p_input_slice / chunk_count / projection_chunk_count, True)
323
372
 
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)
373
+ add_to_memory_counters(irfft_scratch_memory_size / chunk_count / projection_chunk_count, True)
374
+ add_to_memory_counters(-irfft_scratch_memory_size / chunk_count / projection_chunk_count, True)
375
+ add_to_memory_counters(irfft_result_size / chunk_count / projection_chunk_count, True)
376
+ add_to_memory_counters(-filtered_rfft_result_size / chunk_count / projection_chunk_count, True)
328
377
 
329
- add_to_memory_counters(-irfft_result_size / chunk_count, True)
378
+ add_to_memory_counters(-irfft_result_size / chunk_count / projection_chunk_count, True)
330
379
 
331
380
  add_to_memory_counters(-padded_in_slice_size, True)
332
381
  add_to_memory_counters(-filter_size, False)
@@ -342,17 +391,27 @@ def _calc_memory_bytes_LPRec3d_tomobar(
342
391
 
343
392
  add_to_memory_counters(-fft_result_size, True)
344
393
 
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)
394
+ if min_mem_usage_ifft2:
395
+ add_to_memory_counters(ifft2_plan_slice_size, False)
396
+ add_to_memory_counters(fde_size * 2, False)
397
+ add_to_memory_counters(-fde_size * 2, False)
398
+ else:
399
+ add_to_memory_counters(ifft2_plan_slice_size / chunk_count * 2, True)
400
+ for _ in range(0, chunk_count):
401
+ add_to_memory_counters(fde_size / chunk_count, True)
402
+ add_to_memory_counters(-fde_size / chunk_count, True)
349
403
 
350
404
  add_to_memory_counters(recon_output_size, True)
351
405
  add_to_memory_counters(-fde_size, True)
352
406
  add_to_memory_counters(circular_mask_size, False)
353
407
  add_to_memory_counters(after_recon_swapaxis_slice, True)
354
408
 
355
- return (tot_memory_bytes * 1.05, fixed_amount + 250 * 1024 * 1024)
409
+ if min_mem_usage_filter and min_mem_usage_ifft2:
410
+ return (tot_memory_bytes * 1.15, fixed_amount)
411
+ elif min_mem_usage_filter and not min_mem_usage_ifft2:
412
+ return (tot_memory_bytes + 60 * 1024 * 1024, fixed_amount)
413
+ else:
414
+ return (tot_memory_bytes * 1.1, fixed_amount)
356
415
 
357
416
 
358
417
  def _calc_memory_bytes_SIRT3d_tomobar(
@@ -361,21 +420,48 @@ def _calc_memory_bytes_SIRT3d_tomobar(
361
420
  **kwargs,
362
421
  ) -> Tuple[int, int]:
363
422
 
423
+ detector_pad = 0
364
424
  if "detector_pad" in kwargs:
365
425
  detector_pad = kwargs["detector_pad"]
366
- else:
367
- detector_pad = 0
426
+ if detector_pad is True:
427
+ detector_pad = __estimate_detectorHoriz_padding(non_slice_dims_shape[1])
428
+ elif detector_pad is False:
429
+ detector_pad = 0
430
+
368
431
  anglesnum = non_slice_dims_shape[0]
369
- DetectorsLengthH = non_slice_dims_shape[1] + 2 * detector_pad
432
+ DetectorsLengthH_padded = non_slice_dims_shape[1] + 2 * detector_pad
370
433
  # calculate the output shape
371
434
  output_dims = _calc_output_dim_SIRT3d_tomobar(non_slice_dims_shape, **kwargs)
435
+ recon_data_size_original = (
436
+ np.prod(output_dims) * dtype.itemsize
437
+ ) # x_rec user-defined size
438
+
439
+ in_data_size = (anglesnum * DetectorsLengthH_padded) * dtype.itemsize
440
+
441
+ output_dims_larger_grid = (DetectorsLengthH_padded, DetectorsLengthH_padded)
372
442
 
373
- in_data_size = (anglesnum * DetectorsLengthH) * dtype.itemsize
374
- out_data_size = np.prod(output_dims) * dtype.itemsize
443
+ out_data_size = np.prod(output_dims_larger_grid) * dtype.itemsize
375
444
 
376
- astra_projection = 2.5 * (in_data_size + out_data_size)
445
+ R = in_data_size
446
+ C = out_data_size
377
447
 
378
- tot_memory_bytes = int(2 * in_data_size + 2 * out_data_size + astra_projection)
448
+ Res = in_data_size
449
+ Res_times_R = Res
450
+ C_times_res = out_data_size
451
+
452
+ astra_projection = (in_data_size + out_data_size)
453
+
454
+ tot_memory_bytes = int(
455
+ recon_data_size_original
456
+ + in_data_size
457
+ + out_data_size
458
+ + R
459
+ + C
460
+ + Res
461
+ + Res_times_R
462
+ + C_times_res
463
+ + astra_projection
464
+ )
379
465
  return (tot_memory_bytes, 0)
380
466
 
381
467
 
@@ -384,20 +470,102 @@ def _calc_memory_bytes_CGLS3d_tomobar(
384
470
  dtype: np.dtype,
385
471
  **kwargs,
386
472
  ) -> Tuple[int, int]:
473
+ detector_pad = 0
387
474
  if "detector_pad" in kwargs:
388
475
  detector_pad = kwargs["detector_pad"]
389
- else:
390
- detector_pad = 0
476
+ if detector_pad is True:
477
+ detector_pad = __estimate_detectorHoriz_padding(non_slice_dims_shape[1])
478
+ elif detector_pad is False:
479
+ detector_pad = 0
391
480
 
392
481
  anglesnum = non_slice_dims_shape[0]
393
- DetectorsLengthH = non_slice_dims_shape[1] + 2 * detector_pad
482
+ DetectorsLengthH_padded = non_slice_dims_shape[1] + 2 * detector_pad
394
483
  # calculate the output shape
395
484
  output_dims = _calc_output_dim_CGLS3d_tomobar(non_slice_dims_shape, **kwargs)
485
+ recon_data_size_original = (
486
+ np.prod(output_dims) * dtype.itemsize
487
+ ) # x_rec user-defined size
488
+
489
+ in_data_size = (anglesnum * DetectorsLengthH_padded) * dtype.itemsize
490
+ output_dims_larger_grid = (DetectorsLengthH_padded, DetectorsLengthH_padded)
491
+ recon_data_size = (
492
+ np.prod(output_dims_larger_grid) * dtype.itemsize
493
+ ) # large volume in the algorithm
494
+ recon_data_size2 = recon_data_size # x_rec linearised
495
+ d_recon = recon_data_size
496
+ d_recon2 = d_recon # linearised, possibly a copy
497
+
498
+ data_r = in_data_size
499
+ Ad = recon_data_size
500
+ Ad2 = Ad
501
+ s = data_r
502
+ collection = (
503
+ in_data_size
504
+ + recon_data_size_original
505
+ + recon_data_size
506
+ + recon_data_size2
507
+ + d_recon
508
+ + d_recon2
509
+ + data_r
510
+ + Ad
511
+ + Ad2
512
+ + s
513
+ )
514
+ astra_contribution = in_data_size + recon_data_size
396
515
 
397
- in_data_size = (anglesnum * DetectorsLengthH) * dtype.itemsize
398
- out_data_size = np.prod(output_dims) * dtype.itemsize
516
+ tot_memory_bytes = int(collection + astra_contribution)
517
+ return (tot_memory_bytes, 0)
399
518
 
400
- astra_projection = 2.5 * (in_data_size + out_data_size)
401
519
 
402
- tot_memory_bytes = int(2 * in_data_size + 2 * out_data_size + astra_projection)
520
+ def _calc_memory_bytes_FISTA3d_tomobar(
521
+ non_slice_dims_shape: Tuple[int, int],
522
+ dtype: np.dtype,
523
+ **kwargs,
524
+ ) -> Tuple[int, int]:
525
+ detector_pad = 0
526
+ if "detector_pad" in kwargs:
527
+ detector_pad = kwargs["detector_pad"]
528
+ if detector_pad is True:
529
+ detector_pad = __estimate_detectorHoriz_padding(non_slice_dims_shape[1])
530
+ elif detector_pad is False:
531
+ detector_pad = 0
532
+
533
+ anglesnum = non_slice_dims_shape[0]
534
+ DetectorsLengthH_padded = non_slice_dims_shape[1] + 2 * detector_pad
535
+
536
+ # calculate the output shape
537
+ output_dims = _calc_output_dim_FISTA3d_tomobar(non_slice_dims_shape, **kwargs)
538
+ recon_data_size_original = (
539
+ np.prod(output_dims) * dtype.itemsize
540
+ ) # recon user-defined size
541
+
542
+ in_data_siz_pad = (anglesnum * DetectorsLengthH_padded) * dtype.itemsize
543
+ output_dims_larger_grid = (DetectorsLengthH_padded, DetectorsLengthH_padded)
544
+
545
+ residual_grad = in_data_siz_pad
546
+ out_data_size = np.prod(output_dims_larger_grid) * dtype.itemsize
547
+ X_t = out_data_size
548
+ X_old = out_data_size
549
+
550
+ grad_fidelity = out_data_size
551
+
552
+ fista_part = (
553
+ recon_data_size_original
554
+ + in_data_siz_pad
555
+ + residual_grad
556
+ + grad_fidelity
557
+ + X_t
558
+ + X_old
559
+ + out_data_size
560
+ )
561
+ regul_part = 8 * np.prod(output_dims_larger_grid) * dtype.itemsize
562
+
563
+ tot_memory_bytes = int(fista_part + regul_part)
403
564
  return (tot_memory_bytes, 0)
565
+
566
+
567
+ def __estimate_detectorHoriz_padding(detX_size) -> int:
568
+ det_half = detX_size // 2
569
+ padded_value_exact = int(np.sqrt(2 * (det_half**2))) - det_half
570
+ padded_add_margin = int(0.1 * padded_value_exact)
571
+ 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.1
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.1"
28
28
  description = "Supplementary files for HTTomo backends."
29
29
  readme = "README.rst"
30
30
  license = {text = "BSD-3-Clause"}