httomo-backends 0.7.1__tar.gz → 0.8.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.
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/PKG-INFO +1 -2
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/methods_database/packages/backends/httomolibgpu/httomolibgpu.yaml +1 -1
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/prep/phase.py +7 -5
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/recon/algorithm.py +71 -31
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/pipelines_full/deg360_paganin_FBP3d_tomobar_directive.yaml +1 -1
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/pipelines_full/sweep_paganin_FBP3d_tomobar_directive.yaml +4 -4
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/scripts/yaml_pipelines_generator.py +23 -11
- httomo_backends-0.8.0/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.phase/paganin_filter.yaml +7 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/LPRec3d_tomobar.yaml +3 -2
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends.egg-info/PKG-INFO +1 -2
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends.egg-info/SOURCES.txt +1 -1
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends.egg-info/requires.txt +0 -1
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/pyproject.toml +1 -2
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/tests/test_httomolibgpu.py +36 -15
- httomo_backends-0.7.1/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.phase/paganin_filter_tomopy.yaml +0 -7
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/LICENSE +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/README.rst +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/__init__.py +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/cufft.py +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/methods_database/__init__.py +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/methods_database/packages/__init__.py +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/methods_database/packages/backends/httomolib/httomolib.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/methods_database/packages/backends/httomolib/httomolib_modules.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/methods_database/packages/backends/httomolibgpu/__init__.py +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/methods_database/packages/backends/httomolibgpu/httomolibgpu_modules.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/__init__.py +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/misc/__init__.py +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/misc/corr.py +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/misc/denoise.py +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/misc/morph.py +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/misc/rescale.py +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/prep/__init__.py +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/prep/normalize.py +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/prep/stripe.py +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/recon/__init__.py +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/recon/peak_memory_line_profile_hook.py +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/methods_database/packages/backends/tomopy/__init__.py +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/__init__.py +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/misc/__init__.py +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/misc/corr.py +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/prep/__init__.py +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/prep/stripe.py +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/recon/__init__.py +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/recon/algorithm.py +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/methods_database/packages/backends/tomopy/tomopy.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/methods_database/packages/backends/tomopy/tomopy_modules.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/methods_database/packages/httomo.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/methods_database/query.py +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/pipelines_full/FBP2d_astra_directive.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/pipelines_full/FBP3d_tomobar_denoising_directive.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/pipelines_full/FBP3d_tomobar_directive.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/pipelines_full/FBP3d_tomobar_noimagesaving_directive.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/pipelines_full/FISTA3d_tomobar_directive.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/pipelines_full/LPRec3d_tomobar_directive.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/pipelines_full/__init__.py +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/pipelines_full/deg360_distortion_FBP3d_tomobar_directive.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/pipelines_full/sweep_center_FBP3d_tomobar_directive.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/pipelines_full/titaren_center_pc_FBP3d_resample_directive.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/pipelines_full/tomopy_gridrec_directive.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/scripts/__init__.py +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/scripts/json_pipelines_generator.py +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/scripts/yaml_templates_generator.py +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/scripts/yaml_unsupported_tomopy_remove.py +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/httomo/__init__.py +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/httomo/httomo.data.hdf.loaders/standard_tomo.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/httomo/httomo.methods/calculate_stats.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/httomo/httomo.methods/save_intermediate_data.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/httomolib/__init__.py +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/httomolib/httomolib.misc.images/save_to_images.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/httomolib/httomolib.misc.morph/data_reducer.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/httomolib/httomolib.misc.rescale/rescale_to_int.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/httomolib/httomolib.misc.segm/binary_thresholding.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/httomolib/httomolib.prep.phase/paganin_filter.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/httomolibgpu/__init__.py +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.corr/median_filter.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.corr/remove_outlier.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.denoise/total_variation_PD.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.denoise/total_variation_ROF.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.morph/data_resampler.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.morph/sino_360_to_180.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.rescale/rescale_to_int.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.alignment/distortion_correction_proj_discorpy.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.normalize/normalize.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.stripe/raven_filter.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.stripe/remove_all_stripe.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.stripe/remove_stripe_based_sorting.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.stripe/remove_stripe_ti.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/CGLS3d_tomobar.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/FBP2d_astra.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/FBP3d_tomobar.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/FISTA3d_tomobar.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/SIRT3d_tomobar.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.rotation/find_center_360.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.rotation/find_center_pc.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.rotation/find_center_vo.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/__init__.py +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/adjust_range.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/circ_mask.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/gaussian_filter.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/median_filter.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/median_filter3d.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/median_filter_nonfinite.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/remove_nan.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/remove_neg.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/remove_outlier.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/remove_outlier1d.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/remove_outlier3d.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/remove_ring.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/sobel_filter.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.morph/downsample.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.morph/pad.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.morph/sino_360_to_180.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.morph/trim_sinogram.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.misc.morph/upsample.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/add_jitter.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/add_noise.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/align_joint.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/align_seq.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/blur_edges.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/distortion_correction_proj.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/distortion_correction_sino.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/scale.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/shift_images.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.normalize/minus_log.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.normalize/normalize.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.normalize/normalize_bg.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.normalize/normalize_nf.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.normalize/normalize_roi.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.phase/retrieve_phase.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_all_stripe.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_dead_stripe.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_large_stripe.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_stripe_based_filtering.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_stripe_based_fitting.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_stripe_based_interpolation.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_stripe_based_sorting.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_stripe_fw.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_stripe_sf.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_stripe_ti.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/stripes_detect3d.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/stripes_mask3d.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.recon.algorithm/recon.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.recon.rotation/find_center.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.recon.rotation/find_center_pc.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.recon.rotation/find_center_vo.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/add_drift.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/add_focal_spot_blur.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/add_gaussian.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/add_poisson.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/add_rings.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/add_salt_pepper.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/add_zingers.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/project.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/project2.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/project3.yaml +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends.egg-info/dependency_links.txt +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends.egg-info/top_level.txt +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/setup.cfg +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.0}/tests/test_method_query.py +0 -0
- {httomo_backends-0.7.1 → httomo_backends-0.8.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.
|
|
3
|
+
Version: 0.8.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
|
|
@@ -22,7 +22,6 @@ Requires-Dist: h5py
|
|
|
22
22
|
Requires-Dist: astra-toolbox
|
|
23
23
|
Requires-Dist: tomobar
|
|
24
24
|
Requires-Dist: scikit-image
|
|
25
|
-
Requires-Dist: ccpi-regularisation-cupy
|
|
26
25
|
Provides-Extra: dev
|
|
27
26
|
Requires-Dist: pytest; extra == "dev"
|
|
28
27
|
Requires-Dist: pytest-mock; extra == "dev"
|
|
@@ -20,23 +20,21 @@
|
|
|
20
20
|
# ---------------------------------------------------------------------------
|
|
21
21
|
"""Modules for memory estimation for phase retrieval and phase-contrast enhancement"""
|
|
22
22
|
|
|
23
|
-
import math
|
|
24
23
|
from typing import Tuple
|
|
25
24
|
import numpy as np
|
|
26
25
|
|
|
27
26
|
from httomo_backends.cufft import CufftType, cufft_estimate_2d
|
|
28
27
|
|
|
29
28
|
__all__ = [
|
|
30
|
-
"
|
|
29
|
+
"_calc_memory_bytes_paganin_filter",
|
|
31
30
|
]
|
|
32
31
|
|
|
33
32
|
|
|
34
|
-
def
|
|
33
|
+
def _calc_memory_bytes_paganin_filter(
|
|
35
34
|
non_slice_dims_shape: Tuple[int, int],
|
|
36
35
|
dtype: np.dtype,
|
|
37
36
|
**kwargs,
|
|
38
37
|
) -> Tuple[int, int]:
|
|
39
|
-
from httomolibgpu.prep.phase import _shift_bit_length
|
|
40
38
|
|
|
41
39
|
# Input (unpadded)
|
|
42
40
|
unpadded_in_slice_size = np.prod(non_slice_dims_shape) * dtype.itemsize
|
|
@@ -44,7 +42,7 @@ def _calc_memory_bytes_paganin_filter_tomopy(
|
|
|
44
42
|
# estimate padding size here based on non_slice dimensions
|
|
45
43
|
pad_tup = []
|
|
46
44
|
for dim_len in non_slice_dims_shape:
|
|
47
|
-
diff =
|
|
45
|
+
diff = __shift_bit_length(dim_len + 1) - dim_len
|
|
48
46
|
if dim_len % 2 == 0:
|
|
49
47
|
pad_width = diff // 2
|
|
50
48
|
pad_width = (pad_width, pad_width)
|
|
@@ -107,3 +105,7 @@ def _calc_memory_bytes_paganin_filter_tomopy(
|
|
|
107
105
|
subtract_bytes = int(filter_size + grid_size)
|
|
108
106
|
|
|
109
107
|
return (tot_memory_bytes, subtract_bytes)
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
def __shift_bit_length(x: int) -> int:
|
|
111
|
+
return 1 << (x - 1).bit_length()
|
|
@@ -189,7 +189,7 @@ def _calc_memory_bytes_LPRec3d_tomobar(
|
|
|
189
189
|
if detector_pad is True:
|
|
190
190
|
detector_pad = __estimate_detectorHoriz_padding(non_slice_dims_shape[1])
|
|
191
191
|
elif detector_pad is False:
|
|
192
|
-
detector_pad = 0
|
|
192
|
+
detector_pad = 0
|
|
193
193
|
|
|
194
194
|
min_mem_usage_filter = False
|
|
195
195
|
if "min_mem_usage_filter" in kwargs:
|
|
@@ -197,6 +197,9 @@ def _calc_memory_bytes_LPRec3d_tomobar(
|
|
|
197
197
|
min_mem_usage_ifft2 = False
|
|
198
198
|
if "min_mem_usage_ifft2" in kwargs:
|
|
199
199
|
min_mem_usage_ifft2 = kwargs["min_mem_usage_ifft2"]
|
|
200
|
+
power_of_2_cropping = False
|
|
201
|
+
if "power_of_2_cropping" in kwargs:
|
|
202
|
+
power_of_2_cropping = kwargs["power_of_2_cropping"]
|
|
200
203
|
|
|
201
204
|
angles_tot = non_slice_dims_shape[0]
|
|
202
205
|
DetectorsLengthH_prepad = non_slice_dims_shape[1]
|
|
@@ -205,6 +208,10 @@ def _calc_memory_bytes_LPRec3d_tomobar(
|
|
|
205
208
|
_CENTER_SIZE_MIN = 192 # must be divisible by 8
|
|
206
209
|
|
|
207
210
|
n = DetectorsLengthH
|
|
211
|
+
if power_of_2_cropping:
|
|
212
|
+
n_pow2 = 2 ** math.ceil(math.log2(n))
|
|
213
|
+
if 0.9 < n / n_pow2:
|
|
214
|
+
n = n_pow2
|
|
208
215
|
|
|
209
216
|
odd_horiz = False
|
|
210
217
|
if (n % 2) != 0:
|
|
@@ -302,10 +309,7 @@ def _calc_memory_bytes_LPRec3d_tomobar(
|
|
|
302
309
|
DetectorsLengthH_prepad * DetectorsLengthH_prepad * np.float32().itemsize
|
|
303
310
|
)
|
|
304
311
|
ifft2_plan_slice_size = (
|
|
305
|
-
cufft_estimate_2d(
|
|
306
|
-
nx=2 * n, ny=2 * n, fft_type=CufftType.CUFFT_C2C
|
|
307
|
-
)
|
|
308
|
-
/ 2
|
|
312
|
+
cufft_estimate_2d(nx=2 * n, ny=2 * n, fft_type=CufftType.CUFFT_C2C) / 2
|
|
309
313
|
)
|
|
310
314
|
circular_mask_size = np.prod(output_dims) / 2 * np.int64().itemsize * 4
|
|
311
315
|
after_recon_swapaxis_slice = recon_output_size
|
|
@@ -344,38 +348,74 @@ def _calc_memory_bytes_LPRec3d_tomobar(
|
|
|
344
348
|
add_to_memory_counters(tmp_p_input_slice, True)
|
|
345
349
|
if min_mem_usage_filter:
|
|
346
350
|
add_to_memory_counters(rfft_plan_slice_size / 4 / projection_chunk_count, False)
|
|
347
|
-
add_to_memory_counters(
|
|
351
|
+
add_to_memory_counters(
|
|
352
|
+
irfft_plan_slice_size / 4 / projection_chunk_count, False
|
|
353
|
+
)
|
|
348
354
|
add_to_memory_counters(padded_tmp_p_input_slice / projection_chunk_count, False)
|
|
349
355
|
|
|
350
356
|
add_to_memory_counters(rfft_result_size / projection_chunk_count, False)
|
|
351
|
-
add_to_memory_counters(
|
|
357
|
+
add_to_memory_counters(
|
|
358
|
+
filtered_rfft_result_size / projection_chunk_count, False
|
|
359
|
+
)
|
|
352
360
|
add_to_memory_counters(-rfft_result_size / projection_chunk_count, False)
|
|
353
|
-
add_to_memory_counters(
|
|
361
|
+
add_to_memory_counters(
|
|
362
|
+
-padded_tmp_p_input_slice / projection_chunk_count, False
|
|
363
|
+
)
|
|
354
364
|
|
|
355
|
-
add_to_memory_counters(
|
|
356
|
-
|
|
365
|
+
add_to_memory_counters(
|
|
366
|
+
irfft_scratch_memory_size / projection_chunk_count, False
|
|
367
|
+
)
|
|
368
|
+
add_to_memory_counters(
|
|
369
|
+
-irfft_scratch_memory_size / projection_chunk_count, False
|
|
370
|
+
)
|
|
357
371
|
add_to_memory_counters(irfft_result_size / projection_chunk_count, False)
|
|
358
|
-
add_to_memory_counters(
|
|
372
|
+
add_to_memory_counters(
|
|
373
|
+
-filtered_rfft_result_size / projection_chunk_count, False
|
|
374
|
+
)
|
|
359
375
|
|
|
360
376
|
add_to_memory_counters(-irfft_result_size / projection_chunk_count, False)
|
|
361
377
|
else:
|
|
362
|
-
add_to_memory_counters(
|
|
363
|
-
|
|
378
|
+
add_to_memory_counters(
|
|
379
|
+
rfft_plan_slice_size / chunk_count / projection_chunk_count * 2, True
|
|
380
|
+
)
|
|
381
|
+
add_to_memory_counters(
|
|
382
|
+
irfft_plan_slice_size / chunk_count / projection_chunk_count * 2, True
|
|
383
|
+
)
|
|
364
384
|
# add_to_memory_counters(irfft_scratch_memory_size / chunk_count / projection_chunk_count, True)
|
|
365
385
|
for _ in range(0, chunk_count):
|
|
366
|
-
add_to_memory_counters(
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
add_to_memory_counters(
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
add_to_memory_counters(
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
add_to_memory_counters(
|
|
377
|
-
|
|
378
|
-
|
|
386
|
+
add_to_memory_counters(
|
|
387
|
+
padded_tmp_p_input_slice / chunk_count / projection_chunk_count, True
|
|
388
|
+
)
|
|
389
|
+
|
|
390
|
+
add_to_memory_counters(
|
|
391
|
+
rfft_result_size / chunk_count / projection_chunk_count, True
|
|
392
|
+
)
|
|
393
|
+
add_to_memory_counters(
|
|
394
|
+
filtered_rfft_result_size / chunk_count / projection_chunk_count, True
|
|
395
|
+
)
|
|
396
|
+
add_to_memory_counters(
|
|
397
|
+
-rfft_result_size / chunk_count / projection_chunk_count, True
|
|
398
|
+
)
|
|
399
|
+
add_to_memory_counters(
|
|
400
|
+
-padded_tmp_p_input_slice / chunk_count / projection_chunk_count, True
|
|
401
|
+
)
|
|
402
|
+
|
|
403
|
+
add_to_memory_counters(
|
|
404
|
+
irfft_scratch_memory_size / chunk_count / projection_chunk_count, True
|
|
405
|
+
)
|
|
406
|
+
add_to_memory_counters(
|
|
407
|
+
-irfft_scratch_memory_size / chunk_count / projection_chunk_count, True
|
|
408
|
+
)
|
|
409
|
+
add_to_memory_counters(
|
|
410
|
+
irfft_result_size / chunk_count / projection_chunk_count, True
|
|
411
|
+
)
|
|
412
|
+
add_to_memory_counters(
|
|
413
|
+
-filtered_rfft_result_size / chunk_count / projection_chunk_count, True
|
|
414
|
+
)
|
|
415
|
+
|
|
416
|
+
add_to_memory_counters(
|
|
417
|
+
-irfft_result_size / chunk_count / projection_chunk_count, True
|
|
418
|
+
)
|
|
379
419
|
|
|
380
420
|
add_to_memory_counters(-padded_in_slice_size, True)
|
|
381
421
|
add_to_memory_counters(-filter_size, False)
|
|
@@ -426,7 +466,7 @@ def _calc_memory_bytes_SIRT3d_tomobar(
|
|
|
426
466
|
if detector_pad is True:
|
|
427
467
|
detector_pad = __estimate_detectorHoriz_padding(non_slice_dims_shape[1])
|
|
428
468
|
elif detector_pad is False:
|
|
429
|
-
detector_pad = 0
|
|
469
|
+
detector_pad = 0
|
|
430
470
|
|
|
431
471
|
anglesnum = non_slice_dims_shape[0]
|
|
432
472
|
DetectorsLengthH_padded = non_slice_dims_shape[1] + 2 * detector_pad
|
|
@@ -449,7 +489,7 @@ def _calc_memory_bytes_SIRT3d_tomobar(
|
|
|
449
489
|
Res_times_R = Res
|
|
450
490
|
C_times_res = out_data_size
|
|
451
491
|
|
|
452
|
-
astra_projection =
|
|
492
|
+
astra_projection = in_data_size + out_data_size
|
|
453
493
|
|
|
454
494
|
tot_memory_bytes = int(
|
|
455
495
|
recon_data_size_original
|
|
@@ -476,7 +516,7 @@ def _calc_memory_bytes_CGLS3d_tomobar(
|
|
|
476
516
|
if detector_pad is True:
|
|
477
517
|
detector_pad = __estimate_detectorHoriz_padding(non_slice_dims_shape[1])
|
|
478
518
|
elif detector_pad is False:
|
|
479
|
-
detector_pad = 0
|
|
519
|
+
detector_pad = 0
|
|
480
520
|
|
|
481
521
|
anglesnum = non_slice_dims_shape[0]
|
|
482
522
|
DetectorsLengthH_padded = non_slice_dims_shape[1] + 2 * detector_pad
|
|
@@ -528,7 +568,7 @@ def _calc_memory_bytes_FISTA3d_tomobar(
|
|
|
528
568
|
if detector_pad is True:
|
|
529
569
|
detector_pad = __estimate_detectorHoriz_padding(non_slice_dims_shape[1])
|
|
530
570
|
elif detector_pad is False:
|
|
531
|
-
detector_pad = 0
|
|
571
|
+
detector_pad = 0
|
|
532
572
|
|
|
533
573
|
anglesnum = non_slice_dims_shape[0]
|
|
534
574
|
DetectorsLengthH_padded = non_slice_dims_shape[1] + 2 * detector_pad
|
|
@@ -567,5 +607,5 @@ def _calc_memory_bytes_FISTA3d_tomobar(
|
|
|
567
607
|
def __estimate_detectorHoriz_padding(detX_size) -> int:
|
|
568
608
|
det_half = detX_size // 2
|
|
569
609
|
padded_value_exact = int(np.sqrt(2 * (det_half**2))) - det_half
|
|
570
|
-
padded_add_margin =
|
|
610
|
+
padded_add_margin = padded_value_exact // 2
|
|
571
611
|
return padded_value_exact + padded_add_margin
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
module_path: httomolibgpu.misc.morph
|
|
9
9
|
- method: remove_stripe_based_sorting
|
|
10
10
|
module_path: httomolibgpu.prep.stripe
|
|
11
|
-
- method:
|
|
11
|
+
- method: paganin_filter
|
|
12
12
|
module_path: httomolibgpu.prep.phase
|
|
13
13
|
- method: FBP3d_tomobar
|
|
14
14
|
module_path: httomolibgpu.recon.algorithm
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
module_path: httomolibgpu.recon.rotation
|
|
5
5
|
- method: normalize
|
|
6
6
|
module_path: httomolibgpu.prep.normalize
|
|
7
|
-
- method:
|
|
7
|
+
- method: paganin_filter
|
|
8
8
|
module_path: httomolibgpu.prep.phase
|
|
9
|
-
sweep_parameter:
|
|
10
|
-
sweep_values: [
|
|
9
|
+
sweep_parameter: ratio_delta_beta
|
|
10
|
+
sweep_values: [10, 150, 350]
|
|
11
11
|
- method: FBP3d_tomobar
|
|
12
|
-
module_path: httomolibgpu.recon.algorithm
|
|
12
|
+
module_path: httomolibgpu.recon.algorithm
|
{httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/scripts/yaml_pipelines_generator.py
RENAMED
|
@@ -138,7 +138,7 @@ def yaml_pipelines_generator(
|
|
|
138
138
|
|
|
139
139
|
pipeline_full.yaml_set_start_comment(
|
|
140
140
|
"This pipeline should be supported by the latest developments of HTTomo. Use module load httomo/latest module at Diamond."
|
|
141
|
-
)
|
|
141
|
+
)
|
|
142
142
|
|
|
143
143
|
if "loaders" in module_name:
|
|
144
144
|
# should be the first method in the list
|
|
@@ -157,7 +157,7 @@ def yaml_pipelines_generator(
|
|
|
157
157
|
pipeline_full += yaml_template_method
|
|
158
158
|
pipeline_full[i]["parameters"].yaml_add_eol_comment(
|
|
159
159
|
key="ind",
|
|
160
|
-
comment="A vertical slice (sinogram) index to calculate CoR,
|
|
160
|
+
comment="A vertical slice (sinogram) index to calculate CoR, 'mid' can be used for middle",
|
|
161
161
|
)
|
|
162
162
|
pipeline_full[i]["parameters"].yaml_add_eol_comment(
|
|
163
163
|
key="cor_initialisation_value",
|
|
@@ -169,7 +169,7 @@ def yaml_pipelines_generator(
|
|
|
169
169
|
)
|
|
170
170
|
pipeline_full[i]["parameters"].yaml_add_eol_comment(
|
|
171
171
|
key="side",
|
|
172
|
-
comment="'None' corresponds to fully automated determination, '
|
|
172
|
+
comment="'None' corresponds to fully automated determination, 'left' to the left side, 'right' to the right side.",
|
|
173
173
|
)
|
|
174
174
|
pipeline_full[i]["side_outputs"].yaml_add_eol_comment(
|
|
175
175
|
key="cor",
|
|
@@ -182,7 +182,7 @@ def yaml_pipelines_generator(
|
|
|
182
182
|
elif "corr" in module_name and "remove_outlier" in method_name:
|
|
183
183
|
pipeline_full.yaml_set_comment_before_after_key(
|
|
184
184
|
i,
|
|
185
|
-
"--- Removing unresponsive pixels in the data, aka zingers. Use if sharp streaks are present in the reconstruction. To be applied before normalisation. ---",
|
|
185
|
+
"--- Removing unresponsive/dead pixels in the data, aka zingers. Use if sharp streaks are present in the reconstruction. To be applied before normalisation. ---",
|
|
186
186
|
indent=0,
|
|
187
187
|
)
|
|
188
188
|
pipeline_full += yaml_template_method
|
|
@@ -223,7 +223,7 @@ def yaml_pipelines_generator(
|
|
|
223
223
|
elif "sino_360_to_180" in method_name:
|
|
224
224
|
pipeline_full.yaml_set_comment_before_after_key(
|
|
225
225
|
i,
|
|
226
|
-
"--- Using the overlap provided, converting 360 degrees scan to 180 degrees scan. --- ",
|
|
226
|
+
"--- Using the overlap and side provided, converting 360 degrees scan to 180 degrees scan. --- ",
|
|
227
227
|
indent=0,
|
|
228
228
|
)
|
|
229
229
|
pipeline_full += yaml_template_method
|
|
@@ -236,7 +236,7 @@ def yaml_pipelines_generator(
|
|
|
236
236
|
pipeline_full += yaml_template_method
|
|
237
237
|
pipeline_full[i]["parameters"].yaml_add_eol_comment(
|
|
238
238
|
key="minus_log",
|
|
239
|
-
comment="If Paganin method is used bellow, set it to false.",
|
|
239
|
+
comment="If Paganin method is used bellow, set it to 'false'.",
|
|
240
240
|
)
|
|
241
241
|
elif "phase" in module_name:
|
|
242
242
|
pipeline_full.yaml_set_comment_before_after_key(
|
|
@@ -246,8 +246,20 @@ def yaml_pipelines_generator(
|
|
|
246
246
|
)
|
|
247
247
|
pipeline_full += yaml_template_method
|
|
248
248
|
pipeline_full[i]["parameters"].yaml_add_eol_comment(
|
|
249
|
-
key="
|
|
250
|
-
comment="
|
|
249
|
+
key="ratio_delta_beta",
|
|
250
|
+
comment="The ratio of delta/beta for filter strength control. Larger values lead to more smoothing.",
|
|
251
|
+
)
|
|
252
|
+
pipeline_full[i]["parameters"].yaml_add_eol_comment(
|
|
253
|
+
key="pixel_size",
|
|
254
|
+
comment="Detector pixel size (resolution) in MICRON units.",
|
|
255
|
+
)
|
|
256
|
+
pipeline_full[i]["parameters"].yaml_add_eol_comment(
|
|
257
|
+
key="distance",
|
|
258
|
+
comment="Propagation distance of the wavefront from sample to detector in METRE units.",
|
|
259
|
+
)
|
|
260
|
+
pipeline_full[i]["parameters"].yaml_add_eol_comment(
|
|
261
|
+
key="energy",
|
|
262
|
+
comment="Beam energy in keV.",
|
|
251
263
|
)
|
|
252
264
|
elif "stripe" in module_name:
|
|
253
265
|
pipeline_full.yaml_set_comment_before_after_key(
|
|
@@ -269,11 +281,11 @@ def yaml_pipelines_generator(
|
|
|
269
281
|
)
|
|
270
282
|
pipeline_full[i]["parameters"].yaml_add_eol_comment(
|
|
271
283
|
key="detector_pad",
|
|
272
|
-
comment="Horizontal detector padding to minimise circle/arc-type artifacts in the reconstruction. Set to true to enable automatic padding or an integer",
|
|
284
|
+
comment="Horizontal detector padding to minimise circle/arc-type artifacts in the reconstruction. Set to 'true' to enable automatic padding or an integer",
|
|
273
285
|
)
|
|
274
286
|
pipeline_full[i]["parameters"].yaml_add_eol_comment(
|
|
275
287
|
key="recon_mask_radius",
|
|
276
|
-
comment="Zero pixels outside the mask-circle radius.",
|
|
288
|
+
comment="Zero pixels outside the mask-circle radius. Make radius equal to 2.0 to remove the mask effect.",
|
|
277
289
|
)
|
|
278
290
|
pipeline_full[i]["parameters"].yaml_add_eol_comment(
|
|
279
291
|
key="neglog",
|
|
@@ -284,7 +296,7 @@ def yaml_pipelines_generator(
|
|
|
284
296
|
pipeline_full[i]["parameters"]["algorithm"] = "gridrec"
|
|
285
297
|
pipeline_full[i]["parameters"].yaml_add_eol_comment(
|
|
286
298
|
key="algorithm",
|
|
287
|
-
comment="Select the required algorithm, e.g.
|
|
299
|
+
comment="Select the required algorithm, e.g. 'gridrec'",
|
|
288
300
|
)
|
|
289
301
|
elif "denoise" in module_name:
|
|
290
302
|
pipeline_full.yaml_set_comment_before_after_key(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: httomo-backends
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.8.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
|
|
@@ -22,7 +22,6 @@ Requires-Dist: h5py
|
|
|
22
22
|
Requires-Dist: astra-toolbox
|
|
23
23
|
Requires-Dist: tomobar
|
|
24
24
|
Requires-Dist: scikit-image
|
|
25
|
-
Requires-Dist: ccpi-regularisation-cupy
|
|
26
25
|
Provides-Extra: dev
|
|
27
26
|
Requires-Dist: pytest; extra == "dev"
|
|
28
27
|
Requires-Dist: pytest-mock; extra == "dev"
|
|
@@ -78,7 +78,7 @@ httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.morph/sino_360_to_
|
|
|
78
78
|
httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.rescale/rescale_to_int.yaml
|
|
79
79
|
httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.alignment/distortion_correction_proj_discorpy.yaml
|
|
80
80
|
httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.normalize/normalize.yaml
|
|
81
|
-
httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.phase/
|
|
81
|
+
httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.phase/paganin_filter.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
|
|
84
84
|
httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.stripe/remove_stripe_based_sorting.yaml
|
|
@@ -24,7 +24,7 @@ dev_template = "{tag}"
|
|
|
24
24
|
|
|
25
25
|
[project]
|
|
26
26
|
name = "httomo-backends"
|
|
27
|
-
version = "0.
|
|
27
|
+
version = "0.8.0"
|
|
28
28
|
description = "Supplementary files for HTTomo backends."
|
|
29
29
|
readme = "README.rst"
|
|
30
30
|
license = {text = "BSD-3-Clause"}
|
|
@@ -55,7 +55,6 @@ dependencies = [
|
|
|
55
55
|
"astra-toolbox",
|
|
56
56
|
"tomobar",
|
|
57
57
|
"scikit-image",
|
|
58
|
-
"ccpi-regularisation-cupy",
|
|
59
58
|
]
|
|
60
59
|
|
|
61
60
|
[project.optional-dependencies]
|
|
@@ -15,7 +15,7 @@ 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 normalize
|
|
18
|
-
from httomolibgpu.prep.phase import
|
|
18
|
+
from httomolibgpu.prep.phase import paganin_filter
|
|
19
19
|
from httomolibgpu.prep.alignment import distortion_correction_proj_discorpy
|
|
20
20
|
from httomolibgpu.prep.stripe import (
|
|
21
21
|
remove_stripe_based_sorting,
|
|
@@ -228,11 +228,11 @@ def test_denoiser_PD_TV_memoryhook(ensure_clean_memory, slices):
|
|
|
228
228
|
@pytest.mark.parametrize("slices", [64, 128])
|
|
229
229
|
@pytest.mark.parametrize("dim_x", [81, 260, 320])
|
|
230
230
|
@pytest.mark.parametrize("dim_y", [340, 135, 96])
|
|
231
|
-
def
|
|
231
|
+
def test_paganin_filter_memoryhook(slices, dim_x, dim_y, ensure_clean_memory):
|
|
232
232
|
data = cp.random.random_sample((slices, dim_x, dim_y), dtype=np.float32)
|
|
233
233
|
hook = MaxMemoryHook()
|
|
234
234
|
with hook:
|
|
235
|
-
data_filtered =
|
|
235
|
+
data_filtered = paganin_filter(cp.copy(data)).get()
|
|
236
236
|
|
|
237
237
|
# make sure estimator function is within range (80% min, 100% max)
|
|
238
238
|
max_mem = (
|
|
@@ -240,7 +240,7 @@ def test_paganin_filter_tomopy_memoryhook(slices, dim_x, dim_y, ensure_clean_mem
|
|
|
240
240
|
) # the amount of memory in bytes needed for the method according to memoryhook
|
|
241
241
|
|
|
242
242
|
# now we estimate how much of the total memory required for this data
|
|
243
|
-
(estimated_memory_bytes, subtract_bytes) =
|
|
243
|
+
(estimated_memory_bytes, subtract_bytes) = _calc_memory_bytes_paganin_filter(
|
|
244
244
|
(dim_x, dim_y), dtype=np.float32()
|
|
245
245
|
)
|
|
246
246
|
estimated_memory_mb = round(slices * estimated_memory_bytes / (1024**2), 2)
|
|
@@ -543,7 +543,8 @@ def test_recon_FBP3d_tomobar_memoryhook(
|
|
|
543
543
|
|
|
544
544
|
|
|
545
545
|
@pytest.mark.cupy
|
|
546
|
-
@pytest.mark.parametrize("min_mem_usage_filter_ifft2", [(False, False)
|
|
546
|
+
@pytest.mark.parametrize("min_mem_usage_filter_ifft2", [(False, False)])
|
|
547
|
+
@pytest.mark.parametrize("power_of_2_cropping", [False])
|
|
547
548
|
@pytest.mark.parametrize("padding_detx", [0, 10, 50, 100])
|
|
548
549
|
@pytest.mark.parametrize("projections", [1500, 1801, 2560])
|
|
549
550
|
@pytest.mark.parametrize("detX_size", [2560])
|
|
@@ -556,6 +557,7 @@ def test_recon_LPRec3d_tomobar_0_pi_memoryhook(
|
|
|
556
557
|
projection_angle_range,
|
|
557
558
|
min_mem_usage_filter_ifft2,
|
|
558
559
|
padding_detx,
|
|
560
|
+
power_of_2_cropping,
|
|
559
561
|
ensure_clean_memory,
|
|
560
562
|
):
|
|
561
563
|
__test_recon_LPRec3d_tomobar_memoryhook_common(
|
|
@@ -565,13 +567,17 @@ def test_recon_LPRec3d_tomobar_0_pi_memoryhook(
|
|
|
565
567
|
projection_angle_range,
|
|
566
568
|
padding_detx,
|
|
567
569
|
min_mem_usage_filter_ifft2,
|
|
570
|
+
power_of_2_cropping,
|
|
568
571
|
ensure_clean_memory,
|
|
569
572
|
)
|
|
570
573
|
|
|
571
574
|
|
|
572
575
|
@pytest.mark.full
|
|
573
576
|
@pytest.mark.cupy
|
|
574
|
-
@pytest.mark.parametrize(
|
|
577
|
+
@pytest.mark.parametrize(
|
|
578
|
+
"min_mem_usage_filter_ifft2", [(False, False), (True, False), (True, True)]
|
|
579
|
+
)
|
|
580
|
+
@pytest.mark.parametrize("power_of_2_cropping", [False, True])
|
|
575
581
|
@pytest.mark.parametrize("padding_detx", [0, 10, 50, 100, 800])
|
|
576
582
|
@pytest.mark.parametrize("projections", [1500, 1801, 2560, 3601])
|
|
577
583
|
@pytest.mark.parametrize("detX_size", [2560])
|
|
@@ -584,6 +590,7 @@ def test_recon_LPRec3d_tomobar_0_pi_memoryhook_full(
|
|
|
584
590
|
projection_angle_range,
|
|
585
591
|
padding_detx,
|
|
586
592
|
min_mem_usage_filter_ifft2,
|
|
593
|
+
power_of_2_cropping,
|
|
587
594
|
ensure_clean_memory,
|
|
588
595
|
):
|
|
589
596
|
__test_recon_LPRec3d_tomobar_memoryhook_common(
|
|
@@ -593,13 +600,17 @@ def test_recon_LPRec3d_tomobar_0_pi_memoryhook_full(
|
|
|
593
600
|
projection_angle_range,
|
|
594
601
|
padding_detx,
|
|
595
602
|
min_mem_usage_filter_ifft2,
|
|
603
|
+
power_of_2_cropping,
|
|
596
604
|
ensure_clean_memory,
|
|
597
605
|
)
|
|
598
606
|
|
|
599
607
|
|
|
600
608
|
@pytest.mark.full
|
|
601
609
|
@pytest.mark.cupy
|
|
602
|
-
@pytest.mark.parametrize(
|
|
610
|
+
@pytest.mark.parametrize(
|
|
611
|
+
"min_mem_usage_filter_ifft2", [(False, False), (True, False), (True, True)]
|
|
612
|
+
)
|
|
613
|
+
@pytest.mark.parametrize("power_of_2_cropping", [False, True])
|
|
603
614
|
@pytest.mark.parametrize("padding_detx", [0, 10, 50, 100, 800])
|
|
604
615
|
@pytest.mark.parametrize("projections", [1500, 1801, 2560, 3601])
|
|
605
616
|
@pytest.mark.parametrize("detX_size", [2560])
|
|
@@ -614,6 +625,7 @@ def test_recon_LPRec3d_tomobar_memoryhook_full(
|
|
|
614
625
|
projection_angle_range,
|
|
615
626
|
padding_detx,
|
|
616
627
|
min_mem_usage_filter_ifft2,
|
|
628
|
+
power_of_2_cropping,
|
|
617
629
|
ensure_clean_memory,
|
|
618
630
|
):
|
|
619
631
|
__test_recon_LPRec3d_tomobar_memoryhook_common(
|
|
@@ -623,6 +635,7 @@ def test_recon_LPRec3d_tomobar_memoryhook_full(
|
|
|
623
635
|
projection_angle_range,
|
|
624
636
|
padding_detx,
|
|
625
637
|
min_mem_usage_filter_ifft2,
|
|
638
|
+
power_of_2_cropping,
|
|
626
639
|
ensure_clean_memory,
|
|
627
640
|
)
|
|
628
641
|
|
|
@@ -634,6 +647,7 @@ def __test_recon_LPRec3d_tomobar_memoryhook_common(
|
|
|
634
647
|
projection_angle_range,
|
|
635
648
|
padding_detx,
|
|
636
649
|
min_mem_usage_filter_ifft2,
|
|
650
|
+
power_of_2_cropping,
|
|
637
651
|
ensure_clean_memory,
|
|
638
652
|
):
|
|
639
653
|
angles_number = projections
|
|
@@ -646,6 +660,7 @@ def __test_recon_LPRec3d_tomobar_memoryhook_common(
|
|
|
646
660
|
kwargs["detector_pad"] = padding_detx
|
|
647
661
|
kwargs["min_mem_usage_filter"] = min_mem_usage_filter_ifft2[0]
|
|
648
662
|
kwargs["min_mem_usage_ifft2"] = min_mem_usage_filter_ifft2[1]
|
|
663
|
+
kwargs["power_of_2_cropping"] = power_of_2_cropping
|
|
649
664
|
kwargs["recon_size"] = detX_size
|
|
650
665
|
kwargs["recon_mask_radius"] = 0.8
|
|
651
666
|
|
|
@@ -731,10 +746,13 @@ def test_recon_SIRT3d_tomobar_memoryhook(slices, recon_size_it, ensure_clean_mem
|
|
|
731
746
|
assert estimated_memory_mb >= max_mem_mb
|
|
732
747
|
assert percents_relative_maxmem <= 100
|
|
733
748
|
|
|
749
|
+
|
|
734
750
|
@pytest.mark.cupy
|
|
735
751
|
@pytest.mark.parametrize("slices", [3])
|
|
736
752
|
@pytest.mark.parametrize("recon_size_it", [2560])
|
|
737
|
-
def test_recon_SIRT3d_tomobar_autopad_memoryhook(
|
|
753
|
+
def test_recon_SIRT3d_tomobar_autopad_memoryhook(
|
|
754
|
+
slices, recon_size_it, ensure_clean_memory
|
|
755
|
+
):
|
|
738
756
|
angles_tot = 901
|
|
739
757
|
det_size = 2560
|
|
740
758
|
data = cp.random.random_sample((angles_tot, slices, det_size), dtype=np.float32)
|
|
@@ -747,8 +765,8 @@ def test_recon_SIRT3d_tomobar_autopad_memoryhook(slices, recon_size_it, ensure_c
|
|
|
747
765
|
recon_data = SIRT3d_tomobar(
|
|
748
766
|
cp.copy(data),
|
|
749
767
|
np.linspace(0.0 * np.pi / 180.0, 180.0 * np.pi / 180.0, data.shape[0]),
|
|
750
|
-
center
|
|
751
|
-
detector_pad
|
|
768
|
+
center=1200,
|
|
769
|
+
detector_pad=True,
|
|
752
770
|
recon_size=recon_size_it,
|
|
753
771
|
iterations=2,
|
|
754
772
|
nonnegativity=True,
|
|
@@ -792,8 +810,8 @@ def test_recon_CGLS3d_tomobar_memoryhook(slices, recon_size_it, ensure_clean_mem
|
|
|
792
810
|
recon_data = CGLS3d_tomobar(
|
|
793
811
|
cp.copy(data),
|
|
794
812
|
np.linspace(0.0 * np.pi / 180.0, 180.0 * np.pi / 180.0, data.shape[0]),
|
|
795
|
-
center
|
|
796
|
-
detector_pad
|
|
813
|
+
center=1200,
|
|
814
|
+
detector_pad=False,
|
|
797
815
|
recon_size=recon_size_it,
|
|
798
816
|
iterations=2,
|
|
799
817
|
nonnegativity=True,
|
|
@@ -824,7 +842,9 @@ def test_recon_CGLS3d_tomobar_memoryhook(slices, recon_size_it, ensure_clean_mem
|
|
|
824
842
|
@pytest.mark.cupy
|
|
825
843
|
@pytest.mark.parametrize("slices", [3])
|
|
826
844
|
@pytest.mark.parametrize("recon_size_it", [2560])
|
|
827
|
-
def test_recon_CGLS3d_tomobar_autopad_memoryhook(
|
|
845
|
+
def test_recon_CGLS3d_tomobar_autopad_memoryhook(
|
|
846
|
+
slices, recon_size_it, ensure_clean_memory
|
|
847
|
+
):
|
|
828
848
|
angles_tot = 901
|
|
829
849
|
det_size = 2560
|
|
830
850
|
data = cp.random.random_sample((angles_tot, slices, det_size), dtype=np.float32)
|
|
@@ -837,8 +857,8 @@ def test_recon_CGLS3d_tomobar_autopad_memoryhook(slices, recon_size_it, ensure_c
|
|
|
837
857
|
recon_data = CGLS3d_tomobar(
|
|
838
858
|
cp.copy(data),
|
|
839
859
|
np.linspace(0.0 * np.pi / 180.0, 180.0 * np.pi / 180.0, data.shape[0]),
|
|
840
|
-
center
|
|
841
|
-
detector_pad
|
|
860
|
+
center=1200,
|
|
861
|
+
detector_pad=True,
|
|
842
862
|
recon_size=recon_size_it,
|
|
843
863
|
iterations=2,
|
|
844
864
|
nonnegativity=True,
|
|
@@ -865,6 +885,7 @@ def test_recon_CGLS3d_tomobar_autopad_memoryhook(slices, recon_size_it, ensure_c
|
|
|
865
885
|
assert estimated_memory_mb >= max_mem_mb
|
|
866
886
|
assert percents_relative_maxmem <= 85
|
|
867
887
|
|
|
888
|
+
|
|
868
889
|
@pytest.mark.cupy
|
|
869
890
|
@pytest.mark.parametrize("slices", [3, 5])
|
|
870
891
|
@pytest.mark.parametrize("recon_size_it", [2560])
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{httomo_backends-0.7.1 → httomo_backends-0.8.0}/httomo_backends/methods_database/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|