httomo-backends 0.6.2__tar.gz → 0.7__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {httomo_backends-0.6.2 → httomo_backends-0.7}/PKG-INFO +1 -1
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/httomolibgpu/httomolibgpu.yaml +11 -2
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/recon/algorithm.py +209 -47
- httomo_backends-0.7/httomo_backends/pipelines_full/FISTA3d_tomobar_directive.yaml +14 -0
- httomo_backends-0.7/httomo_backends/pipelines_full/titaren_center_pc_FBP3d_resample_directive.yaml +18 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/scripts/yaml_pipelines_generator.py +15 -11
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.denoise/total_variation_PD.yaml +1 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.denoise/total_variation_ROF.yaml +1 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/CGLS3d_tomobar.yaml +2 -1
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/FBP2d_astra.yaml +1 -1
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/FBP3d_tomobar.yaml +1 -1
- httomo_backends-0.7/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/FISTA3d_tomobar.yaml +15 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/LPRec3d_tomobar.yaml +4 -1
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/SIRT3d_tomobar.yaml +2 -1
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends.egg-info/PKG-INFO +1 -1
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends.egg-info/SOURCES.txt +3 -1
- {httomo_backends-0.6.2 → httomo_backends-0.7}/pyproject.toml +1 -1
- {httomo_backends-0.6.2 → httomo_backends-0.7}/tests/test_httomolibgpu.py +200 -10
- httomo_backends-0.6.2/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.phase/paganin_filter_savu.yaml +0 -11
- {httomo_backends-0.6.2 → httomo_backends-0.7}/LICENSE +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/README.rst +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/__init__.py +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/cufft.py +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/methods_database/__init__.py +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/methods_database/packages/__init__.py +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/httomolib/httomolib.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/httomolib/httomolib_modules.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/httomolibgpu/__init__.py +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/httomolibgpu/httomolibgpu_modules.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/__init__.py +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/misc/__init__.py +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/misc/corr.py +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/misc/denoise.py +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/misc/morph.py +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/misc/rescale.py +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/prep/__init__.py +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/prep/normalize.py +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/prep/phase.py +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/prep/stripe.py +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/recon/__init__.py +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/recon/peak_memory_line_profile_hook.py +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/tomopy/__init__.py +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/__init__.py +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/misc/__init__.py +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/misc/corr.py +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/prep/__init__.py +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/prep/stripe.py +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/recon/__init__.py +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/recon/algorithm.py +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/tomopy/tomopy.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/methods_database/packages/backends/tomopy/tomopy_modules.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/methods_database/packages/httomo.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/methods_database/query.py +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/pipelines_full/FBP2d_astra_directive.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/pipelines_full/FBP3d_tomobar_denoising_directive.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/pipelines_full/FBP3d_tomobar_directive.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/pipelines_full/FBP3d_tomobar_noimagesaving_directive.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/pipelines_full/LPRec3d_tomobar_directive.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/pipelines_full/__init__.py +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/pipelines_full/deg360_distortion_FBP3d_tomobar_directive.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/pipelines_full/deg360_paganin_FBP3d_tomobar_directive.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/pipelines_full/sweep_center_FBP3d_tomobar_directive.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/pipelines_full/sweep_paganin_FBP3d_tomobar_directive.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/pipelines_full/tomopy_gridrec_directive.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/scripts/__init__.py +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/scripts/json_pipelines_generator.py +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/scripts/yaml_templates_generator.py +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/scripts/yaml_unsupported_tomopy_remove.py +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomo/__init__.py +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomo/httomo.data.hdf.loaders/standard_tomo.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomo/httomo.methods/calculate_stats.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomo/httomo.methods/save_intermediate_data.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolib/__init__.py +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolib/httomolib.misc.images/save_to_images.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolib/httomolib.misc.morph/data_reducer.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolib/httomolib.misc.rescale/rescale_to_int.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolib/httomolib.misc.segm/binary_thresholding.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolib/httomolib.prep.phase/paganin_filter.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolibgpu/__init__.py +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.corr/median_filter.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.corr/remove_outlier.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.morph/data_resampler.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.morph/sino_360_to_180.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.rescale/rescale_to_int.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.alignment/distortion_correction_proj_discorpy.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.normalize/normalize.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.phase/paganin_filter_tomopy.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.stripe/raven_filter.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.stripe/remove_all_stripe.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.stripe/remove_stripe_based_sorting.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.stripe/remove_stripe_ti.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.rotation/find_center_360.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.rotation/find_center_pc.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.rotation/find_center_vo.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/__init__.py +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/adjust_range.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/circ_mask.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/gaussian_filter.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/median_filter.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/median_filter3d.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/median_filter_nonfinite.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/remove_nan.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/remove_neg.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/remove_outlier.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/remove_outlier1d.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/remove_outlier3d.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/remove_ring.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/sobel_filter.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.misc.morph/downsample.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.misc.morph/pad.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.misc.morph/sino_360_to_180.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.misc.morph/trim_sinogram.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.misc.morph/upsample.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/add_jitter.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/add_noise.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/align_joint.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/align_seq.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/blur_edges.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/distortion_correction_proj.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/distortion_correction_sino.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/scale.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/shift_images.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.normalize/minus_log.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.normalize/normalize.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.normalize/normalize_bg.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.normalize/normalize_nf.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.normalize/normalize_roi.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.phase/retrieve_phase.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_all_stripe.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_dead_stripe.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_large_stripe.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_stripe_based_filtering.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_stripe_based_fitting.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_stripe_based_interpolation.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_stripe_based_sorting.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_stripe_fw.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_stripe_sf.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_stripe_ti.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/stripes_detect3d.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/stripes_mask3d.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.recon.algorithm/recon.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.recon.rotation/find_center.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.recon.rotation/find_center_pc.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.recon.rotation/find_center_vo.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/add_drift.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/add_focal_spot_blur.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/add_gaussian.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/add_poisson.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/add_rings.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/add_salt_pepper.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/add_zingers.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/project.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/project2.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/project3.yaml +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends.egg-info/dependency_links.txt +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends.egg-info/requires.txt +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends.egg-info/top_level.txt +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/setup.cfg +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/tests/test_method_query.py +0 -0
- {httomo_backends-0.6.2 → httomo_backends-0.7}/tests/test_tomopy.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: httomo-backends
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.7
|
|
4
4
|
Summary: Supplementary files for HTTomo backends.
|
|
5
5
|
Author: Garry ODonnell, Jacob Williamson
|
|
6
6
|
Author-email: Daniil Kazantsev <daniil.kazantsev@diamond.ac.uk>, Yousef Moazzam <yousef.moazzam@diamond.ac.uk>, Jessica Verschoyle <jessica.verschoyle@diamond.ac.uk>, Naman Gera <naman.gera@diamond.ac.uk>, scientificsoftware@diamond.ac.uk
|
|
@@ -26,7 +26,7 @@ misc:
|
|
|
26
26
|
save_result_default: False
|
|
27
27
|
padding: True
|
|
28
28
|
memory_gpu:
|
|
29
|
-
multiplier:
|
|
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:
|
|
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
|
-
|
|
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(
|
|
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 =
|
|
153
|
+
astra_input_slice_size = (angles_tot * det_width) * np.float32().itemsize
|
|
140
154
|
|
|
141
155
|
## now we calculate back projection memory (2 copies of the input + reconstruction output)
|
|
142
156
|
projection_mem_size = (
|
|
@@ -169,10 +183,16 @@ def _calc_memory_bytes_LPRec3d_tomobar(
|
|
|
169
183
|
) -> Tuple[int, int]:
|
|
170
184
|
# Based on: https://github.com/dkazanc/ToMoBAR/pull/112/commits/4704ecdc6ded3dd5ec0583c2008aa104f30a8a39
|
|
171
185
|
|
|
186
|
+
detector_pad = 0
|
|
172
187
|
if "detector_pad" in kwargs:
|
|
173
188
|
detector_pad = kwargs["detector_pad"]
|
|
174
|
-
|
|
175
|
-
detector_pad =
|
|
189
|
+
if detector_pad is True:
|
|
190
|
+
detector_pad = __estimate_detectorHoriz_padding(non_slice_dims_shape[1])
|
|
191
|
+
elif detector_pad is False:
|
|
192
|
+
detector_pad = 0
|
|
193
|
+
|
|
194
|
+
min_mem_usage_filter = False
|
|
195
|
+
min_mem_usage_ifft2 = False
|
|
176
196
|
|
|
177
197
|
angles_tot = non_slice_dims_shape[0]
|
|
178
198
|
DetectorsLengthH_prepad = non_slice_dims_shape[1]
|
|
@@ -195,11 +215,22 @@ def _calc_memory_bytes_LPRec3d_tomobar(
|
|
|
195
215
|
)
|
|
196
216
|
)
|
|
197
217
|
|
|
198
|
-
center_size =
|
|
199
|
-
center_size = min(center_size, n * 2
|
|
218
|
+
center_size = 32768
|
|
219
|
+
center_size = min(center_size, n * 2)
|
|
220
|
+
|
|
221
|
+
chunk_count = 4
|
|
222
|
+
projection_chunk_count = 4
|
|
223
|
+
oversampling_level = 4 # at least 3 or larger required
|
|
224
|
+
power_of_2_oversampling = True
|
|
225
|
+
|
|
226
|
+
if power_of_2_oversampling:
|
|
227
|
+
ne = 2 ** math.ceil(math.log2(DetectorsLengthH_prepad * 3))
|
|
228
|
+
if n > ne:
|
|
229
|
+
ne = 2 ** math.ceil(math.log2(n))
|
|
230
|
+
else:
|
|
231
|
+
ne = int(oversampling_level * DetectorsLengthH_prepad)
|
|
232
|
+
ne = max(ne, n)
|
|
200
233
|
|
|
201
|
-
oversampling_level = 2 # at least 2 or larger required
|
|
202
|
-
ne = oversampling_level * n
|
|
203
234
|
padding_m = ne // 2 - n // 2
|
|
204
235
|
|
|
205
236
|
if "angles" in kwargs:
|
|
@@ -213,8 +244,6 @@ def _calc_memory_bytes_LPRec3d_tomobar(
|
|
|
213
244
|
np.ceil(2)
|
|
214
245
|
) # assume a 2 * PI projection angle range
|
|
215
246
|
|
|
216
|
-
chunk_count = 4
|
|
217
|
-
|
|
218
247
|
output_dims = __calc_output_dim_recon(non_slice_dims_shape, **kwargs)
|
|
219
248
|
if odd_horiz:
|
|
220
249
|
output_dims = tuple(x + 1 for x in output_dims)
|
|
@@ -252,7 +281,7 @@ def _calc_memory_bytes_LPRec3d_tomobar(
|
|
|
252
281
|
irfft_result_size = angles_tot * (n + padding_m * 2) * np.float32().itemsize
|
|
253
282
|
|
|
254
283
|
datac_size = angles_tot * n * np.complex64().itemsize / 2
|
|
255
|
-
fde_size =
|
|
284
|
+
fde_size = 2 * n * 2 * n * np.complex64().itemsize / 2
|
|
256
285
|
fft_plan_slice_size = (
|
|
257
286
|
cufft_estimate_1d(nx=n, fft_type=CufftType.CUFFT_C2C, batch=angles_tot * SLICES)
|
|
258
287
|
/ SLICES
|
|
@@ -270,7 +299,7 @@ def _calc_memory_bytes_LPRec3d_tomobar(
|
|
|
270
299
|
)
|
|
271
300
|
ifft2_plan_slice_size = (
|
|
272
301
|
cufft_estimate_2d(
|
|
273
|
-
nx=
|
|
302
|
+
nx=2 * n, ny=2 * n, fft_type=CufftType.CUFFT_C2C
|
|
274
303
|
)
|
|
275
304
|
/ 2
|
|
276
305
|
)
|
|
@@ -309,24 +338,40 @@ def _calc_memory_bytes_LPRec3d_tomobar(
|
|
|
309
338
|
add_to_memory_counters(scaled_filter_size, False)
|
|
310
339
|
|
|
311
340
|
add_to_memory_counters(tmp_p_input_slice, True)
|
|
341
|
+
if min_mem_usage_filter:
|
|
342
|
+
add_to_memory_counters(rfft_plan_slice_size / 4, False)
|
|
343
|
+
add_to_memory_counters(irfft_plan_slice_size / 4, False)
|
|
344
|
+
add_to_memory_counters(padded_tmp_p_input_slice, False)
|
|
345
|
+
|
|
346
|
+
add_to_memory_counters(rfft_result_size, False)
|
|
347
|
+
add_to_memory_counters(filtered_rfft_result_size, False)
|
|
348
|
+
add_to_memory_counters(-rfft_result_size, False)
|
|
349
|
+
add_to_memory_counters(-padded_tmp_p_input_slice, False)
|
|
350
|
+
|
|
351
|
+
add_to_memory_counters(irfft_scratch_memory_size, False)
|
|
352
|
+
add_to_memory_counters(-irfft_scratch_memory_size, False)
|
|
353
|
+
add_to_memory_counters(irfft_result_size, False)
|
|
354
|
+
add_to_memory_counters(-filtered_rfft_result_size, False)
|
|
355
|
+
|
|
356
|
+
add_to_memory_counters(-irfft_result_size, False)
|
|
357
|
+
else:
|
|
358
|
+
add_to_memory_counters(rfft_plan_slice_size / chunk_count / projection_chunk_count * 2, True)
|
|
359
|
+
add_to_memory_counters(irfft_plan_slice_size / chunk_count / projection_chunk_count * 2, True)
|
|
360
|
+
# add_to_memory_counters(irfft_scratch_memory_size / chunk_count / projection_chunk_count, True)
|
|
361
|
+
for _ in range(0, chunk_count):
|
|
362
|
+
add_to_memory_counters(padded_tmp_p_input_slice / chunk_count / projection_chunk_count, True)
|
|
312
363
|
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
add_to_memory_counters(padded_tmp_p_input_slice / chunk_count, True)
|
|
318
|
-
|
|
319
|
-
add_to_memory_counters(rfft_result_size / chunk_count, True)
|
|
320
|
-
add_to_memory_counters(filtered_rfft_result_size / chunk_count, True)
|
|
321
|
-
add_to_memory_counters(-rfft_result_size / chunk_count, True)
|
|
322
|
-
add_to_memory_counters(-padded_tmp_p_input_slice / chunk_count, True)
|
|
364
|
+
add_to_memory_counters(rfft_result_size / chunk_count / projection_chunk_count, True)
|
|
365
|
+
add_to_memory_counters(filtered_rfft_result_size / chunk_count / projection_chunk_count, True)
|
|
366
|
+
add_to_memory_counters(-rfft_result_size / chunk_count / projection_chunk_count, True)
|
|
367
|
+
add_to_memory_counters(-padded_tmp_p_input_slice / chunk_count / projection_chunk_count, True)
|
|
323
368
|
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
369
|
+
add_to_memory_counters(irfft_scratch_memory_size / chunk_count / projection_chunk_count, True)
|
|
370
|
+
add_to_memory_counters(-irfft_scratch_memory_size / chunk_count / projection_chunk_count, True)
|
|
371
|
+
add_to_memory_counters(irfft_result_size / chunk_count / projection_chunk_count, True)
|
|
372
|
+
add_to_memory_counters(-filtered_rfft_result_size / chunk_count / projection_chunk_count, True)
|
|
328
373
|
|
|
329
|
-
|
|
374
|
+
add_to_memory_counters(-irfft_result_size / chunk_count / projection_chunk_count, True)
|
|
330
375
|
|
|
331
376
|
add_to_memory_counters(-padded_in_slice_size, True)
|
|
332
377
|
add_to_memory_counters(-filter_size, False)
|
|
@@ -342,17 +387,25 @@ def _calc_memory_bytes_LPRec3d_tomobar(
|
|
|
342
387
|
|
|
343
388
|
add_to_memory_counters(-fft_result_size, True)
|
|
344
389
|
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
add_to_memory_counters(fde_size
|
|
348
|
-
add_to_memory_counters(-fde_size
|
|
390
|
+
if min_mem_usage_ifft2:
|
|
391
|
+
add_to_memory_counters(ifft2_plan_slice_size, False)
|
|
392
|
+
add_to_memory_counters(fde_size * 2, False)
|
|
393
|
+
add_to_memory_counters(-fde_size * 2, False)
|
|
394
|
+
else:
|
|
395
|
+
add_to_memory_counters(ifft2_plan_slice_size / chunk_count * 2, True)
|
|
396
|
+
for _ in range(0, chunk_count):
|
|
397
|
+
add_to_memory_counters(fde_size / chunk_count, True)
|
|
398
|
+
add_to_memory_counters(-fde_size / chunk_count, True)
|
|
349
399
|
|
|
350
400
|
add_to_memory_counters(recon_output_size, True)
|
|
351
401
|
add_to_memory_counters(-fde_size, True)
|
|
352
402
|
add_to_memory_counters(circular_mask_size, False)
|
|
353
403
|
add_to_memory_counters(after_recon_swapaxis_slice, True)
|
|
354
404
|
|
|
355
|
-
|
|
405
|
+
if min_mem_usage_ifft2 and min_mem_usage_filter:
|
|
406
|
+
return (tot_memory_bytes * 1.1 + 30 * 1024 * 1024, fixed_amount)
|
|
407
|
+
else:
|
|
408
|
+
return (tot_memory_bytes * 1.1, fixed_amount)
|
|
356
409
|
|
|
357
410
|
|
|
358
411
|
def _calc_memory_bytes_SIRT3d_tomobar(
|
|
@@ -361,21 +414,48 @@ def _calc_memory_bytes_SIRT3d_tomobar(
|
|
|
361
414
|
**kwargs,
|
|
362
415
|
) -> Tuple[int, int]:
|
|
363
416
|
|
|
417
|
+
detector_pad = 0
|
|
364
418
|
if "detector_pad" in kwargs:
|
|
365
419
|
detector_pad = kwargs["detector_pad"]
|
|
366
|
-
|
|
367
|
-
detector_pad =
|
|
420
|
+
if detector_pad is True:
|
|
421
|
+
detector_pad = __estimate_detectorHoriz_padding(non_slice_dims_shape[1])
|
|
422
|
+
elif detector_pad is False:
|
|
423
|
+
detector_pad = 0
|
|
424
|
+
|
|
368
425
|
anglesnum = non_slice_dims_shape[0]
|
|
369
|
-
|
|
426
|
+
DetectorsLengthH_padded = non_slice_dims_shape[1] + 2 * detector_pad
|
|
370
427
|
# calculate the output shape
|
|
371
428
|
output_dims = _calc_output_dim_SIRT3d_tomobar(non_slice_dims_shape, **kwargs)
|
|
429
|
+
recon_data_size_original = (
|
|
430
|
+
np.prod(output_dims) * dtype.itemsize
|
|
431
|
+
) # x_rec user-defined size
|
|
432
|
+
|
|
433
|
+
in_data_size = (anglesnum * DetectorsLengthH_padded) * dtype.itemsize
|
|
434
|
+
|
|
435
|
+
output_dims_larger_grid = (DetectorsLengthH_padded, DetectorsLengthH_padded)
|
|
372
436
|
|
|
373
|
-
|
|
374
|
-
out_data_size = np.prod(output_dims) * dtype.itemsize
|
|
437
|
+
out_data_size = np.prod(output_dims_larger_grid) * dtype.itemsize
|
|
375
438
|
|
|
376
|
-
|
|
439
|
+
R = in_data_size
|
|
440
|
+
C = out_data_size
|
|
377
441
|
|
|
378
|
-
|
|
442
|
+
Res = in_data_size
|
|
443
|
+
Res_times_R = Res
|
|
444
|
+
C_times_res = out_data_size
|
|
445
|
+
|
|
446
|
+
astra_projection = (in_data_size + out_data_size)
|
|
447
|
+
|
|
448
|
+
tot_memory_bytes = int(
|
|
449
|
+
recon_data_size_original
|
|
450
|
+
+ in_data_size
|
|
451
|
+
+ out_data_size
|
|
452
|
+
+ R
|
|
453
|
+
+ C
|
|
454
|
+
+ Res
|
|
455
|
+
+ Res_times_R
|
|
456
|
+
+ C_times_res
|
|
457
|
+
+ astra_projection
|
|
458
|
+
)
|
|
379
459
|
return (tot_memory_bytes, 0)
|
|
380
460
|
|
|
381
461
|
|
|
@@ -384,20 +464,102 @@ def _calc_memory_bytes_CGLS3d_tomobar(
|
|
|
384
464
|
dtype: np.dtype,
|
|
385
465
|
**kwargs,
|
|
386
466
|
) -> Tuple[int, int]:
|
|
467
|
+
detector_pad = 0
|
|
387
468
|
if "detector_pad" in kwargs:
|
|
388
469
|
detector_pad = kwargs["detector_pad"]
|
|
389
|
-
|
|
390
|
-
detector_pad =
|
|
470
|
+
if detector_pad is True:
|
|
471
|
+
detector_pad = __estimate_detectorHoriz_padding(non_slice_dims_shape[1])
|
|
472
|
+
elif detector_pad is False:
|
|
473
|
+
detector_pad = 0
|
|
391
474
|
|
|
392
475
|
anglesnum = non_slice_dims_shape[0]
|
|
393
|
-
|
|
476
|
+
DetectorsLengthH_padded = non_slice_dims_shape[1] + 2 * detector_pad
|
|
394
477
|
# calculate the output shape
|
|
395
478
|
output_dims = _calc_output_dim_CGLS3d_tomobar(non_slice_dims_shape, **kwargs)
|
|
479
|
+
recon_data_size_original = (
|
|
480
|
+
np.prod(output_dims) * dtype.itemsize
|
|
481
|
+
) # x_rec user-defined size
|
|
482
|
+
|
|
483
|
+
in_data_size = (anglesnum * DetectorsLengthH_padded) * dtype.itemsize
|
|
484
|
+
output_dims_larger_grid = (DetectorsLengthH_padded, DetectorsLengthH_padded)
|
|
485
|
+
recon_data_size = (
|
|
486
|
+
np.prod(output_dims_larger_grid) * dtype.itemsize
|
|
487
|
+
) # large volume in the algorithm
|
|
488
|
+
recon_data_size2 = recon_data_size # x_rec linearised
|
|
489
|
+
d_recon = recon_data_size
|
|
490
|
+
d_recon2 = d_recon # linearised, possibly a copy
|
|
491
|
+
|
|
492
|
+
data_r = in_data_size
|
|
493
|
+
Ad = recon_data_size
|
|
494
|
+
Ad2 = Ad
|
|
495
|
+
s = data_r
|
|
496
|
+
collection = (
|
|
497
|
+
in_data_size
|
|
498
|
+
+ recon_data_size_original
|
|
499
|
+
+ recon_data_size
|
|
500
|
+
+ recon_data_size2
|
|
501
|
+
+ d_recon
|
|
502
|
+
+ d_recon2
|
|
503
|
+
+ data_r
|
|
504
|
+
+ Ad
|
|
505
|
+
+ Ad2
|
|
506
|
+
+ s
|
|
507
|
+
)
|
|
508
|
+
astra_contribution = in_data_size + recon_data_size
|
|
396
509
|
|
|
397
|
-
|
|
398
|
-
|
|
510
|
+
tot_memory_bytes = int(collection + astra_contribution)
|
|
511
|
+
return (tot_memory_bytes, 0)
|
|
399
512
|
|
|
400
|
-
astra_projection = 2.5 * (in_data_size + out_data_size)
|
|
401
513
|
|
|
402
|
-
|
|
514
|
+
def _calc_memory_bytes_FISTA3d_tomobar(
|
|
515
|
+
non_slice_dims_shape: Tuple[int, int],
|
|
516
|
+
dtype: np.dtype,
|
|
517
|
+
**kwargs,
|
|
518
|
+
) -> Tuple[int, int]:
|
|
519
|
+
detector_pad = 0
|
|
520
|
+
if "detector_pad" in kwargs:
|
|
521
|
+
detector_pad = kwargs["detector_pad"]
|
|
522
|
+
if detector_pad is True:
|
|
523
|
+
detector_pad = __estimate_detectorHoriz_padding(non_slice_dims_shape[1])
|
|
524
|
+
elif detector_pad is False:
|
|
525
|
+
detector_pad = 0
|
|
526
|
+
|
|
527
|
+
anglesnum = non_slice_dims_shape[0]
|
|
528
|
+
DetectorsLengthH_padded = non_slice_dims_shape[1] + 2 * detector_pad
|
|
529
|
+
|
|
530
|
+
# calculate the output shape
|
|
531
|
+
output_dims = _calc_output_dim_FISTA3d_tomobar(non_slice_dims_shape, **kwargs)
|
|
532
|
+
recon_data_size_original = (
|
|
533
|
+
np.prod(output_dims) * dtype.itemsize
|
|
534
|
+
) # recon user-defined size
|
|
535
|
+
|
|
536
|
+
in_data_siz_pad = (anglesnum * DetectorsLengthH_padded) * dtype.itemsize
|
|
537
|
+
output_dims_larger_grid = (DetectorsLengthH_padded, DetectorsLengthH_padded)
|
|
538
|
+
|
|
539
|
+
residual_grad = in_data_siz_pad
|
|
540
|
+
out_data_size = np.prod(output_dims_larger_grid) * dtype.itemsize
|
|
541
|
+
X_t = out_data_size
|
|
542
|
+
X_old = out_data_size
|
|
543
|
+
|
|
544
|
+
grad_fidelity = out_data_size
|
|
545
|
+
|
|
546
|
+
fista_part = (
|
|
547
|
+
recon_data_size_original
|
|
548
|
+
+ in_data_siz_pad
|
|
549
|
+
+ residual_grad
|
|
550
|
+
+ grad_fidelity
|
|
551
|
+
+ X_t
|
|
552
|
+
+ X_old
|
|
553
|
+
+ out_data_size
|
|
554
|
+
)
|
|
555
|
+
regul_part = 8 * np.prod(output_dims_larger_grid) * dtype.itemsize
|
|
556
|
+
|
|
557
|
+
tot_memory_bytes = int(fista_part + regul_part)
|
|
403
558
|
return (tot_memory_bytes, 0)
|
|
559
|
+
|
|
560
|
+
|
|
561
|
+
def __estimate_detectorHoriz_padding(detX_size) -> int:
|
|
562
|
+
det_half = detX_size // 2
|
|
563
|
+
padded_value_exact = int(np.sqrt(2 * (det_half**2))) - det_half
|
|
564
|
+
padded_add_margin = int(0.1 * padded_value_exact)
|
|
565
|
+
return padded_value_exact + padded_add_margin
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
- method: standard_tomo
|
|
2
|
+
module_path: httomo.data.hdf.loaders
|
|
3
|
+
- method: find_center_vo
|
|
4
|
+
module_path: httomolibgpu.recon.rotation
|
|
5
|
+
- method: normalize
|
|
6
|
+
module_path: httomolibgpu.prep.normalize
|
|
7
|
+
- method: FISTA3d_tomobar
|
|
8
|
+
module_path: httomolibgpu.recon.algorithm
|
|
9
|
+
- method: calculate_stats
|
|
10
|
+
module_path: httomo.methods
|
|
11
|
+
- method: rescale_to_int
|
|
12
|
+
module_path: httomolib.misc.rescale
|
|
13
|
+
- method: save_to_images
|
|
14
|
+
module_path: httomolib.misc.images
|
httomo_backends-0.7/httomo_backends/pipelines_full/titaren_center_pc_FBP3d_resample_directive.yaml
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
- method: standard_tomo
|
|
2
|
+
module_path: httomo.data.hdf.loaders
|
|
3
|
+
- method: find_center_pc
|
|
4
|
+
module_path: httomolibgpu.recon.rotation
|
|
5
|
+
- method: normalize
|
|
6
|
+
module_path: httomolibgpu.prep.normalize
|
|
7
|
+
- method: remove_stripe_ti
|
|
8
|
+
module_path: httomolibgpu.prep.stripe
|
|
9
|
+
- method: FBP3d_tomobar
|
|
10
|
+
module_path: httomolibgpu.recon.algorithm
|
|
11
|
+
- method: data_resampler
|
|
12
|
+
module_path: httomolibgpu.misc.morph
|
|
13
|
+
- method: calculate_stats
|
|
14
|
+
module_path: httomo.methods
|
|
15
|
+
- method: rescale_to_int
|
|
16
|
+
module_path: httomolib.misc.rescale
|
|
17
|
+
- method: save_to_images
|
|
18
|
+
module_path: httomolib.misc.images
|
{httomo_backends-0.6.2 → httomo_backends-0.7}/httomo_backends/scripts/yaml_pipelines_generator.py
RENAMED
|
@@ -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.5" # 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
|
-
|
|
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:
|
|
@@ -216,6 +209,17 @@ def yaml_pipelines_generator(
|
|
|
216
209
|
key="metadata_path",
|
|
217
210
|
comment="Provide an absolute path to the text file with distortion coefficients.",
|
|
218
211
|
)
|
|
212
|
+
elif "data_resampler" in method_name:
|
|
213
|
+
pipeline_full.yaml_set_comment_before_after_key(
|
|
214
|
+
i,
|
|
215
|
+
"--- Down/up sampling the data. --- ",
|
|
216
|
+
indent=0,
|
|
217
|
+
)
|
|
218
|
+
pipeline_full += yaml_template_method
|
|
219
|
+
pipeline_full[i]["parameters"].yaml_add_eol_comment(
|
|
220
|
+
key="newshape",
|
|
221
|
+
comment="Provide a new shape for a 2D slice, e.g. [256, 256].",
|
|
222
|
+
)
|
|
219
223
|
elif "sino_360_to_180" in method_name:
|
|
220
224
|
pipeline_full.yaml_set_comment_before_after_key(
|
|
221
225
|
i,
|
|
@@ -243,7 +247,7 @@ def yaml_pipelines_generator(
|
|
|
243
247
|
pipeline_full += yaml_template_method
|
|
244
248
|
pipeline_full[i]["parameters"].yaml_add_eol_comment(
|
|
245
249
|
key="alpha",
|
|
246
|
-
comment="Controls the balance between the strength of the filter and the amount of noise reduction.
|
|
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.",
|
|
247
251
|
)
|
|
248
252
|
elif "stripe" in module_name:
|
|
249
253
|
pipeline_full.yaml_set_comment_before_after_key(
|
|
@@ -265,7 +269,7 @@ def yaml_pipelines_generator(
|
|
|
265
269
|
)
|
|
266
270
|
pipeline_full[i]["parameters"].yaml_add_eol_comment(
|
|
267
271
|
key="detector_pad",
|
|
268
|
-
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",
|
|
269
273
|
)
|
|
270
274
|
pipeline_full[i]["parameters"].yaml_add_eol_comment(
|
|
271
275
|
key="recon_mask_radius",
|
|
@@ -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:
|
|
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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: httomo-backends
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.7
|
|
4
4
|
Summary: Supplementary files for HTTomo backends.
|
|
5
5
|
Author: Garry ODonnell, Jacob Williamson
|
|
6
6
|
Author-email: Daniil Kazantsev <daniil.kazantsev@diamond.ac.uk>, Yousef Moazzam <yousef.moazzam@diamond.ac.uk>, Jessica Verschoyle <jessica.verschoyle@diamond.ac.uk>, Naman Gera <naman.gera@diamond.ac.uk>, scientificsoftware@diamond.ac.uk
|
|
@@ -44,12 +44,14 @@ 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
|
|
50
51
|
httomo_backends/pipelines_full/deg360_paganin_FBP3d_tomobar_directive.yaml
|
|
51
52
|
httomo_backends/pipelines_full/sweep_center_FBP3d_tomobar_directive.yaml
|
|
52
53
|
httomo_backends/pipelines_full/sweep_paganin_FBP3d_tomobar_directive.yaml
|
|
54
|
+
httomo_backends/pipelines_full/titaren_center_pc_FBP3d_resample_directive.yaml
|
|
53
55
|
httomo_backends/pipelines_full/tomopy_gridrec_directive.yaml
|
|
54
56
|
httomo_backends/scripts/__init__.py
|
|
55
57
|
httomo_backends/scripts/json_pipelines_generator.py
|
|
@@ -76,7 +78,6 @@ httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.morph/sino_360_to_
|
|
|
76
78
|
httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.rescale/rescale_to_int.yaml
|
|
77
79
|
httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.alignment/distortion_correction_proj_discorpy.yaml
|
|
78
80
|
httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.normalize/normalize.yaml
|
|
79
|
-
httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.phase/paganin_filter_savu.yaml
|
|
80
81
|
httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.phase/paganin_filter_tomopy.yaml
|
|
81
82
|
httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.stripe/raven_filter.yaml
|
|
82
83
|
httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.stripe/remove_all_stripe.yaml
|
|
@@ -85,6 +86,7 @@ httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.stripe/remove_stri
|
|
|
85
86
|
httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/CGLS3d_tomobar.yaml
|
|
86
87
|
httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/FBP2d_astra.yaml
|
|
87
88
|
httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/FBP3d_tomobar.yaml
|
|
89
|
+
httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/FISTA3d_tomobar.yaml
|
|
88
90
|
httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/LPRec3d_tomobar.yaml
|
|
89
91
|
httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/SIRT3d_tomobar.yaml
|
|
90
92
|
httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.rotation/find_center_360.yaml
|