httomo-backends 0.9.0__tar.gz → 1.0__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 (165) hide show
  1. {httomo_backends-0.9.0 → httomo_backends-1.0}/PKG-INFO +1 -1
  2. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/methods_database/packages/backends/httomolibgpu/httomolibgpu.yaml +11 -2
  3. httomo_backends-1.0/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/prep/phase.py +47 -0
  4. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/prep/stripe.py +10 -0
  5. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/methods_database/query.py +10 -0
  6. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/scripts/yaml_templates_generator.py +1 -0
  7. httomo_backends-1.0/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.stripe/remove_stripe_fw.yaml +6 -0
  8. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends.egg-info/PKG-INFO +1 -1
  9. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends.egg-info/SOURCES.txt +1 -0
  10. {httomo_backends-0.9.0 → httomo_backends-1.0}/pyproject.toml +1 -1
  11. {httomo_backends-0.9.0 → httomo_backends-1.0}/tests/test_httomolibgpu.py +68 -6
  12. httomo_backends-0.9.0/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/prep/phase.py +0 -120
  13. {httomo_backends-0.9.0 → httomo_backends-1.0}/LICENSE +0 -0
  14. {httomo_backends-0.9.0 → httomo_backends-1.0}/README.rst +0 -0
  15. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/__init__.py +0 -0
  16. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/cufft.py +0 -0
  17. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/methods_database/__init__.py +0 -0
  18. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/methods_database/packages/__init__.py +0 -0
  19. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/methods_database/packages/backends/httomolib/httomolib.yaml +0 -0
  20. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/methods_database/packages/backends/httomolib/httomolib_modules.yaml +0 -0
  21. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/methods_database/packages/backends/httomolibgpu/__init__.py +0 -0
  22. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/methods_database/packages/backends/httomolibgpu/httomolibgpu_modules.yaml +0 -0
  23. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/__init__.py +0 -0
  24. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/misc/__init__.py +0 -0
  25. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/misc/corr.py +0 -0
  26. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/misc/denoise.py +0 -0
  27. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/misc/morph.py +0 -0
  28. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/misc/rescale.py +0 -0
  29. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/prep/__init__.py +0 -0
  30. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/prep/normalize.py +0 -0
  31. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/recon/__init__.py +0 -0
  32. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/recon/algorithm.py +0 -0
  33. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/recon/peak_memory_line_profile_hook.py +0 -0
  34. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/methods_database/packages/backends/tomopy/__init__.py +0 -0
  35. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/__init__.py +0 -0
  36. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/misc/__init__.py +0 -0
  37. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/misc/corr.py +0 -0
  38. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/prep/__init__.py +0 -0
  39. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/prep/stripe.py +0 -0
  40. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/recon/__init__.py +0 -0
  41. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/recon/algorithm.py +0 -0
  42. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/methods_database/packages/backends/tomopy/tomopy.yaml +0 -0
  43. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/methods_database/packages/backends/tomopy/tomopy_modules.yaml +0 -0
  44. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/methods_database/packages/httomo.yaml +0 -0
  45. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/pipelines_full/FBP2d_astra_directive.yaml +0 -0
  46. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/pipelines_full/FBP3d_tomobar_denoising_directive.yaml +0 -0
  47. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/pipelines_full/FBP3d_tomobar_directive.yaml +0 -0
  48. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/pipelines_full/FBP3d_tomobar_noimagesaving_directive.yaml +0 -0
  49. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/pipelines_full/FISTA3d_tomobar_directive.yaml +0 -0
  50. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/pipelines_full/LPRec3d_tomobar_directive.yaml +0 -0
  51. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/pipelines_full/__init__.py +0 -0
  52. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/pipelines_full/deg360_distortion_FBP3d_tomobar_directive.yaml +0 -0
  53. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/pipelines_full/deg360_paganin_FBP3d_tomobar_directive.yaml +0 -0
  54. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/pipelines_full/sweep_center_FBP3d_tomobar_directive.yaml +0 -0
  55. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/pipelines_full/sweep_paganin_FBP3d_tomobar_directive.yaml +0 -0
  56. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/pipelines_full/titaren_center_pc_FBP3d_resample_directive.yaml +0 -0
  57. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/pipelines_full/tomopy_gridrec_directive.yaml +0 -0
  58. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/scripts/__init__.py +0 -0
  59. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/scripts/json_pipelines_generator.py +0 -0
  60. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/scripts/yaml_pipelines_generator.py +0 -0
  61. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/scripts/yaml_unsupported_tomopy_remove.py +0 -0
  62. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/httomo/__init__.py +0 -0
  63. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/httomo/httomo.data.hdf.loaders/standard_tomo.yaml +0 -0
  64. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/httomo/httomo.methods/calculate_stats.yaml +0 -0
  65. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/httomo/httomo.methods/save_intermediate_data.yaml +0 -0
  66. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/httomolib/__init__.py +0 -0
  67. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/httomolib/httomolib.misc.images/save_to_images.yaml +0 -0
  68. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/httomolib/httomolib.misc.morph/data_reducer.yaml +0 -0
  69. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/httomolib/httomolib.misc.rescale/rescale_to_int.yaml +0 -0
  70. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/httomolib/httomolib.misc.segm/binary_thresholding.yaml +0 -0
  71. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/httomolib/httomolib.misc.utils/data_checker.yaml +0 -0
  72. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/httomolib/httomolib.prep.phase/paganin_filter.yaml +0 -0
  73. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/httomolibgpu/__init__.py +0 -0
  74. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.corr/median_filter.yaml +0 -0
  75. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.corr/remove_outlier.yaml +0 -0
  76. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.denoise/total_variation_PD.yaml +0 -0
  77. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.denoise/total_variation_ROF.yaml +0 -0
  78. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.morph/data_resampler.yaml +0 -0
  79. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.morph/sino_360_to_180.yaml +0 -0
  80. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.rescale/rescale_to_int.yaml +0 -0
  81. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.utils/data_checker.yaml +0 -0
  82. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.alignment/distortion_correction_proj_discorpy.yaml +0 -0
  83. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.normalize/dark_flat_field_correction.yaml +0 -0
  84. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.normalize/minus_log.yaml +0 -0
  85. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.phase/paganin_filter.yaml +0 -0
  86. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.phase/paganin_filter_savu_legacy.yaml +0 -0
  87. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.stripe/raven_filter.yaml +0 -0
  88. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.stripe/remove_all_stripe.yaml +0 -0
  89. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.stripe/remove_stripe_based_sorting.yaml +0 -0
  90. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.stripe/remove_stripe_ti.yaml +0 -0
  91. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/CGLS3d_tomobar.yaml +0 -0
  92. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/FBP2d_astra.yaml +0 -0
  93. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/FBP3d_tomobar.yaml +0 -0
  94. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/FISTA3d_tomobar.yaml +0 -0
  95. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/LPRec3d_tomobar.yaml +0 -0
  96. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/SIRT3d_tomobar.yaml +0 -0
  97. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.rotation/find_center_360.yaml +0 -0
  98. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.rotation/find_center_pc.yaml +0 -0
  99. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.rotation/find_center_vo.yaml +0 -0
  100. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/__init__.py +0 -0
  101. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/adjust_range.yaml +0 -0
  102. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/circ_mask.yaml +0 -0
  103. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/gaussian_filter.yaml +0 -0
  104. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/median_filter.yaml +0 -0
  105. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/median_filter3d.yaml +0 -0
  106. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/median_filter_nonfinite.yaml +0 -0
  107. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/remove_nan.yaml +0 -0
  108. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/remove_neg.yaml +0 -0
  109. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/remove_outlier.yaml +0 -0
  110. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/remove_outlier1d.yaml +0 -0
  111. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/remove_outlier3d.yaml +0 -0
  112. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/remove_ring.yaml +0 -0
  113. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/sobel_filter.yaml +0 -0
  114. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.morph/downsample.yaml +0 -0
  115. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.morph/pad.yaml +0 -0
  116. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.morph/sino_360_to_180.yaml +0 -0
  117. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.morph/trim_sinogram.yaml +0 -0
  118. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.morph/upsample.yaml +0 -0
  119. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/add_jitter.yaml +0 -0
  120. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/add_noise.yaml +0 -0
  121. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/align_joint.yaml +0 -0
  122. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/align_seq.yaml +0 -0
  123. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/blur_edges.yaml +0 -0
  124. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/distortion_correction_proj.yaml +0 -0
  125. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/distortion_correction_sino.yaml +0 -0
  126. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/scale.yaml +0 -0
  127. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/shift_images.yaml +0 -0
  128. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.normalize/minus_log.yaml +0 -0
  129. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.normalize/normalize.yaml +0 -0
  130. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.normalize/normalize_bg.yaml +0 -0
  131. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.normalize/normalize_nf.yaml +0 -0
  132. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.normalize/normalize_roi.yaml +0 -0
  133. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.phase/retrieve_phase.yaml +0 -0
  134. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_all_stripe.yaml +0 -0
  135. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_dead_stripe.yaml +0 -0
  136. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_large_stripe.yaml +0 -0
  137. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_stripe_based_filtering.yaml +0 -0
  138. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_stripe_based_fitting.yaml +0 -0
  139. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_stripe_based_interpolation.yaml +0 -0
  140. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_stripe_based_sorting.yaml +0 -0
  141. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_stripe_fw.yaml +0 -0
  142. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_stripe_sf.yaml +0 -0
  143. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_stripe_ti.yaml +0 -0
  144. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/stripes_detect3d.yaml +0 -0
  145. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/stripes_mask3d.yaml +0 -0
  146. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.recon.algorithm/recon.yaml +0 -0
  147. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.recon.rotation/find_center.yaml +0 -0
  148. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.recon.rotation/find_center_pc.yaml +0 -0
  149. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.recon.rotation/find_center_vo.yaml +0 -0
  150. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/add_drift.yaml +0 -0
  151. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/add_focal_spot_blur.yaml +0 -0
  152. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/add_gaussian.yaml +0 -0
  153. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/add_poisson.yaml +0 -0
  154. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/add_rings.yaml +0 -0
  155. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/add_salt_pepper.yaml +0 -0
  156. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/add_zingers.yaml +0 -0
  157. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/project.yaml +0 -0
  158. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/project2.yaml +0 -0
  159. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/project3.yaml +0 -0
  160. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends.egg-info/dependency_links.txt +0 -0
  161. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends.egg-info/requires.txt +0 -0
  162. {httomo_backends-0.9.0 → httomo_backends-1.0}/httomo_backends.egg-info/top_level.txt +0 -0
  163. {httomo_backends-0.9.0 → httomo_backends-1.0}/setup.cfg +0 -0
  164. {httomo_backends-0.9.0 → httomo_backends-1.0}/tests/test_method_query.py +0 -0
  165. {httomo_backends-0.9.0 → httomo_backends-1.0}/tests/test_tomopy.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: httomo-backends
3
- Version: 0.9.0
3
+ Version: 1.0
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
@@ -105,7 +105,7 @@ prep:
105
105
  padding: False
106
106
  memory_gpu:
107
107
  multiplier: None
108
- method: module
108
+ method: iterative
109
109
  paganin_filter_savu_legacy:
110
110
  pattern: projection
111
111
  output_dims_change: False
@@ -114,7 +114,7 @@ prep:
114
114
  padding: False
115
115
  memory_gpu:
116
116
  multiplier: None
117
- method: module
117
+ method: iterative
118
118
  alignment:
119
119
  distortion_correction_proj_discorpy:
120
120
  pattern: projection
@@ -135,6 +135,15 @@ prep:
135
135
  memory_gpu:
136
136
  multiplier: 1.17
137
137
  method: direct
138
+ remove_stripe_fw:
139
+ pattern: sinogram
140
+ output_dims_change: False
141
+ implementation: gpu_cupy
142
+ save_result_default: False
143
+ padding: False
144
+ memory_gpu:
145
+ multiplier: None
146
+ method: iterative
138
147
  remove_stripe_ti:
139
148
  pattern: sinogram
140
149
  output_dims_change: False
@@ -0,0 +1,47 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # ---------------------------------------------------------------------------
4
+ # Copyright 2022 Diamond Light Source Ltd.
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ # ---------------------------------------------------------------------------
18
+ # Created By : Tomography Team at DLS <scientificsoftware@diamond.ac.uk>
19
+ # Created Date: 21 September 2023
20
+ # ---------------------------------------------------------------------------
21
+ """Modules for memory estimation for phase retrieval and phase-contrast enhancement"""
22
+
23
+ from typing import Tuple
24
+ import numpy as np
25
+
26
+ from httomolibgpu.prep.phase import paganin_filter, paganin_filter_savu_legacy
27
+
28
+ __all__ = [
29
+ "_calc_memory_bytes_for_slices_paganin_filter",
30
+ "_calc_memory_bytes_for_slices_paganin_filter_savu_legacy",
31
+ ]
32
+
33
+
34
+ def _calc_memory_bytes_for_slices_paganin_filter(
35
+ dims_shape: Tuple[int, int, int],
36
+ dtype: np.dtype,
37
+ **kwargs,
38
+ ) -> int:
39
+ return paganin_filter(dims_shape, calc_peak_gpu_mem=True, **kwargs)
40
+
41
+
42
+ def _calc_memory_bytes_for_slices_paganin_filter_savu_legacy(
43
+ dims_shape: Tuple[int, int, int],
44
+ dtype: np.dtype,
45
+ **kwargs,
46
+ ) -> int:
47
+ return paganin_filter_savu_legacy(dims_shape, calc_peak_gpu_mem=True, **kwargs)
@@ -25,9 +25,11 @@ from typing import Tuple
25
25
  import numpy as np
26
26
 
27
27
  from httomo_backends.cufft import CufftType, cufft_estimate_1d
28
+ from httomolibgpu.prep.stripe import remove_stripe_fw
28
29
 
29
30
 
30
31
  __all__ = [
32
+ "_calc_memory_bytes_for_slices_remove_stripe_fw",
31
33
  "_calc_memory_bytes_remove_stripe_ti",
32
34
  "_calc_memory_bytes_remove_all_stripe",
33
35
  "_calc_memory_bytes_raven_filter",
@@ -53,6 +55,14 @@ def _calc_memory_bytes_remove_stripe_ti(
53
55
  return (tot_memory_bytes, gamma_mem)
54
56
 
55
57
 
58
+ def _calc_memory_bytes_for_slices_remove_stripe_fw(
59
+ dims_shape: Tuple[int, int, int],
60
+ dtype: np.dtype,
61
+ **kwargs,
62
+ ) -> int:
63
+ return remove_stripe_fw(dims_shape, calc_peak_gpu_mem=True, **kwargs)
64
+
65
+
56
66
  def _calc_memory_bytes_remove_all_stripe(
57
67
  non_slice_dims_shape: Tuple[int, int],
58
68
  dtype: np.dtype,
@@ -143,6 +143,16 @@ class MethodsDatabaseQuery:
143
143
  )
144
144
  return memory_bytes
145
145
 
146
+ def calculate_memory_bytes_for_slices(
147
+ self, dims_shape: Tuple[int, int, int], dtype: np.dtype, **kwargs
148
+ ) -> int:
149
+ smodule = self._import_supporting_funcs_module()
150
+ module_mem: Callable = getattr(
151
+ smodule, "_calc_memory_bytes_for_slices_" + self.method_name
152
+ )
153
+ memory_bytes: int = module_mem(dims_shape, dtype, **kwargs)
154
+ return memory_bytes
155
+
146
156
  def calculate_output_dims(
147
157
  self, non_slice_dims_shape: Tuple[int, int], **kwargs
148
158
  ) -> Tuple[int, int]:
@@ -225,6 +225,7 @@ def _get_discard_keys() -> List[str]:
225
225
  "power_of_2_cropping",
226
226
  "min_mem_usage_filter",
227
227
  "min_mem_usage_ifft2",
228
+ "calc_peak_gpu_mem",
228
229
  ]
229
230
  return discard_keys
230
231
 
@@ -0,0 +1,6 @@
1
+ - method: remove_stripe_fw
2
+ module_path: httomolibgpu.prep.stripe
3
+ parameters:
4
+ sigma: 2
5
+ wname: db5
6
+ level: null
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: httomo-backends
3
- Version: 0.9.0
3
+ Version: 1.0
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
@@ -86,6 +86,7 @@ httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.phase/paganin_filt
86
86
  httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.stripe/raven_filter.yaml
87
87
  httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.stripe/remove_all_stripe.yaml
88
88
  httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.stripe/remove_stripe_based_sorting.yaml
89
+ httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.stripe/remove_stripe_fw.yaml
89
90
  httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.stripe/remove_stripe_ti.yaml
90
91
  httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/CGLS3d_tomobar.yaml
91
92
  httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/FBP2d_astra.yaml
@@ -24,7 +24,7 @@ dev_template = "{tag}"
24
24
 
25
25
  [project]
26
26
  name = "httomo-backends"
27
- version = "0.9.0"
27
+ version = "1.0"
28
28
  description = "Supplementary files for HTTomo backends."
29
29
  readme = "README.rst"
30
30
  license = {text = "BSD-3-Clause"}
@@ -15,10 +15,11 @@ from httomo_backends.methods_database.query import MethodsDatabaseQuery
15
15
 
16
16
  from httomolibgpu.misc.morph import data_resampler, sino_360_to_180
17
17
  from httomolibgpu.prep.normalize import dark_flat_field_correction, minus_log
18
- from httomolibgpu.prep.phase import paganin_filter
18
+ from httomolibgpu.prep.phase import paganin_filter, paganin_filter_savu_legacy
19
19
  from httomolibgpu.prep.alignment import distortion_correction_proj_discorpy
20
20
  from httomolibgpu.prep.stripe import (
21
21
  remove_stripe_based_sorting,
22
+ remove_stripe_fw,
22
23
  remove_stripe_ti,
23
24
  remove_all_stripe,
24
25
  raven_filter,
@@ -277,11 +278,10 @@ def test_paganin_filter_memoryhook(slices, dim_x, dim_y, ensure_clean_memory):
277
278
  ) # the amount of memory in bytes needed for the method according to memoryhook
278
279
 
279
280
  # now we estimate how much of the total memory required for this data
280
- (estimated_memory_bytes, subtract_bytes) = _calc_memory_bytes_paganin_filter(
281
- (dim_x, dim_y), dtype=np.float32()
281
+ estimated_memory_bytes = _calc_memory_bytes_for_slices_paganin_filter(
282
+ (slices, dim_x, dim_y), dtype=np.float32()
282
283
  )
283
- estimated_memory_mb = round(slices * estimated_memory_bytes / (1024**2), 2)
284
- max_mem -= subtract_bytes
284
+ estimated_memory_mb = round(estimated_memory_bytes / (1024**2), 2)
285
285
  max_mem_mb = round(max_mem / (1024**2), 2)
286
286
 
287
287
  # now we compare both memory estimations
@@ -290,7 +290,40 @@ def test_paganin_filter_memoryhook(slices, dim_x, dim_y, ensure_clean_memory):
290
290
  # the estimated_memory_mb should be LARGER or EQUAL to max_mem_mb
291
291
  # the resulting percent value should not deviate from max_mem on more than 20%
292
292
  assert estimated_memory_mb >= max_mem_mb
293
- assert percents_relative_maxmem <= 20
293
+ assert percents_relative_maxmem <= 1
294
+
295
+
296
+ @pytest.mark.cupy
297
+ @pytest.mark.parametrize("slices", [64, 128])
298
+ @pytest.mark.parametrize("dim_x", [81, 260, 320])
299
+ @pytest.mark.parametrize("dim_y", [340, 135, 96])
300
+ def test_paganin_filter_savu_legacy_memoryhook(
301
+ slices, dim_x, dim_y, ensure_clean_memory
302
+ ):
303
+ data = cp.random.random_sample((slices, dim_x, dim_y), dtype=np.float32)
304
+ hook = MaxMemoryHook()
305
+ with hook:
306
+ data_filtered = paganin_filter_savu_legacy(cp.copy(data)).get()
307
+
308
+ # make sure estimator function is within range (80% min, 100% max)
309
+ max_mem = (
310
+ hook.max_mem
311
+ ) # the amount of memory in bytes needed for the method according to memoryhook
312
+
313
+ # now we estimate how much of the total memory required for this data
314
+ estimated_memory_bytes = _calc_memory_bytes_for_slices_paganin_filter_savu_legacy(
315
+ (slices, dim_x, dim_y), dtype=np.float32()
316
+ )
317
+ estimated_memory_mb = round(estimated_memory_bytes / (1024**2), 2)
318
+ max_mem_mb = round(max_mem / (1024**2), 2)
319
+
320
+ # now we compare both memory estimations
321
+ difference_mb = abs(estimated_memory_mb - max_mem_mb)
322
+ percents_relative_maxmem = round((difference_mb / max_mem_mb) * 100)
323
+ # the estimated_memory_mb should be LARGER or EQUAL to max_mem_mb
324
+ # the resulting percent value should not deviate from max_mem on more than 20%
325
+ assert estimated_memory_mb >= max_mem_mb
326
+ assert percents_relative_maxmem <= 1
294
327
 
295
328
 
296
329
  @pytest.mark.cupy
@@ -413,6 +446,35 @@ def test_remove_stripe_ti_memoryhook(slices, ensure_clean_memory):
413
446
  assert percents_relative_maxmem <= 20
414
447
 
415
448
 
449
+ @pytest.mark.cupy
450
+ @pytest.mark.parametrize("slices", [64, 129])
451
+ def test_remove_stripe_fw_memoryhook(slices, ensure_clean_memory):
452
+ dim_x = 156
453
+ dim_y = 216
454
+ data = cp.random.random_sample((slices, dim_x, dim_y), dtype=np.float32)
455
+ hook = MaxMemoryHook()
456
+ with hook:
457
+ remove_stripe_fw(cp.copy(data)).get()
458
+ max_mem = (
459
+ hook.max_mem
460
+ ) # the amount of memory in bytes needed for the method according to memoryhook
461
+
462
+ # now we estimate how much of the total memory required for this data
463
+ estimated_memory_bytes = _calc_memory_bytes_for_slices_remove_stripe_fw(
464
+ (slices, dim_x, dim_y), dtype=np.float32()
465
+ )
466
+ estimated_memory_mb = round(estimated_memory_bytes / (1024**2), 2)
467
+ max_mem_mb = round(max_mem / (1024**2), 2)
468
+
469
+ # now we compare both memory estimations
470
+ difference_mb = abs(estimated_memory_mb - max_mem_mb)
471
+ percents_relative_maxmem = round((difference_mb / max_mem_mb) * 100)
472
+ # the estimated_memory_mb should be LARGER or EQUAL to max_mem_mb
473
+ # the resulting percent value should not deviate from max_mem on more than 1%
474
+ assert estimated_memory_mb >= max_mem_mb
475
+ assert percents_relative_maxmem <= 20
476
+
477
+
416
478
  @pytest.mark.cupy
417
479
  @pytest.mark.parametrize("projections", [180, 360, 720, 1080, 1440])
418
480
  def test_raven_filter_memoryhook(projections, ensure_clean_memory):
@@ -1,120 +0,0 @@
1
- #!/usr/bin/env python3
2
- # -*- coding: utf-8 -*-
3
- # ---------------------------------------------------------------------------
4
- # Copyright 2022 Diamond Light Source Ltd.
5
- #
6
- # Licensed under the Apache License, Version 2.0 (the "License");
7
- # you may not use this file except in compliance with the License.
8
- # You may obtain a copy of the License at
9
- #
10
- # http://www.apache.org/licenses/LICENSE-2.0
11
- #
12
- # Unless required by applicable law or agreed to in writing, software
13
- # distributed under the License is distributed on an "AS IS" BASIS,
14
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
- # See the License for the specific language governing permissions and
16
- # limitations under the License.
17
- # ---------------------------------------------------------------------------
18
- # Created By : Tomography Team at DLS <scientificsoftware@diamond.ac.uk>
19
- # Created Date: 21 September 2023
20
- # ---------------------------------------------------------------------------
21
- """Modules for memory estimation for phase retrieval and phase-contrast enhancement"""
22
-
23
- from typing import Tuple
24
- import numpy as np
25
-
26
- from httomo_backends.cufft import CufftType, cufft_estimate_2d
27
-
28
- __all__ = [
29
- "_calc_memory_bytes_paganin_filter",
30
- "_calc_memory_bytes_paganin_filter_savu_legacy",
31
- ]
32
-
33
-
34
- def _calc_memory_bytes_paganin_filter_savu_legacy(
35
- non_slice_dims_shape: Tuple[int, int],
36
- dtype: np.dtype,
37
- **kwargs,
38
- ) -> Tuple[int, int]:
39
- return _calc_memory_bytes_paganin_filter(non_slice_dims_shape, dtype, **kwargs)
40
-
41
-
42
- def _calc_memory_bytes_paganin_filter(
43
- non_slice_dims_shape: Tuple[int, int],
44
- dtype: np.dtype,
45
- **kwargs,
46
- ) -> Tuple[int, int]:
47
-
48
- # Input (unpadded)
49
- unpadded_in_slice_size = np.prod(non_slice_dims_shape) * dtype.itemsize
50
-
51
- # estimate padding size here based on non_slice dimensions
52
- pad_tup = []
53
- for dim_len in non_slice_dims_shape:
54
- diff = __shift_bit_length(dim_len + 1) - dim_len
55
- if dim_len % 2 == 0:
56
- pad_width = diff // 2
57
- pad_width = (pad_width, pad_width)
58
- else:
59
- # need an uneven padding for odd-number lengths
60
- left_pad = diff // 2
61
- right_pad = diff - left_pad
62
- pad_width = (left_pad, right_pad)
63
- pad_tup.append(pad_width)
64
-
65
- # Padded input
66
- padded_in_slice_size = (
67
- (non_slice_dims_shape[0] + pad_tup[0][0] + pad_tup[0][1])
68
- * (non_slice_dims_shape[1] + pad_tup[1][0] + pad_tup[1][1])
69
- * dtype.itemsize
70
- )
71
-
72
- # Padded input cast to `complex64`
73
- complex_slice = padded_in_slice_size / dtype.itemsize * np.complex64().nbytes
74
-
75
- # Plan size for 2D FFT
76
- ny = non_slice_dims_shape[0] + pad_tup[0][0] + pad_tup[0][1]
77
- nx = non_slice_dims_shape[1] + pad_tup[1][0] + pad_tup[1][1]
78
- fftplan_slice_size = cufft_estimate_2d(
79
- nx=nx,
80
- ny=ny,
81
- fft_type=CufftType.CUFFT_C2C,
82
- )
83
-
84
- # Size of "reciprocal grid" generated, based on padded projections shape
85
- grid_size = np.prod((ny, nx)) * np.float32().nbytes
86
- filter_size = grid_size
87
-
88
- # Size of cropped/unpadded + cast to float32 result of 2D IFFT
89
- cropped_float32_res_slice = np.prod(non_slice_dims_shape) * np.float32().nbytes
90
-
91
- # Size of negative log of cropped float32 result of 2D IFFT
92
- negative_log_slice = cropped_float32_res_slice
93
-
94
- # If the FFT plan size is negligible for some reason, this changes where the peak GPU
95
- # memory usage occurs. Hence, the if/else branching below for calculating the total bytes.
96
- NEGLIGIBLE_FFT_PLAN_SIZE = 16
97
- if fftplan_slice_size < NEGLIGIBLE_FFT_PLAN_SIZE:
98
- tot_memory_bytes = int(
99
- unpadded_in_slice_size + padded_in_slice_size + complex_slice
100
- )
101
- else:
102
- tot_memory_bytes = int(
103
- unpadded_in_slice_size
104
- + padded_in_slice_size
105
- + complex_slice
106
- # The padded float32 array is deallocated when a copy is made when casting to complex64
107
- # and the variable `padded_tomo` is reassigned to the complex64 version
108
- - padded_in_slice_size
109
- + fftplan_slice_size
110
- + cropped_float32_res_slice
111
- + negative_log_slice
112
- )
113
-
114
- subtract_bytes = int(filter_size + grid_size)
115
-
116
- return (tot_memory_bytes, subtract_bytes)
117
-
118
-
119
- def __shift_bit_length(x: int) -> int:
120
- return 1 << (x - 1).bit_length()
File without changes
File without changes