httomo-backends 0.5.3__tar.gz → 0.6.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/PKG-INFO +1 -1
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/methods_database/packages/backends/httomolib/httomolib.yaml +8 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/methods_database/packages/backends/httomolib/httomolib_modules.yaml +1 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/methods_database/packages/backends/httomolibgpu/httomolibgpu.yaml +3 -12
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/prep/phase.py +0 -60
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/recon/algorithm.py +42 -20
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/misc/corr.py +1 -1
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/prep/stripe.py +1 -1
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/pipelines_full/FBP3d_tomobar_denoising_directive.yaml +1 -1
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/pipelines_full/FBP3d_tomobar_directive.yaml +1 -1
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/pipelines_full/LPRec3d_tomobar_directive.yaml +1 -1
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/pipelines_full/deg360_distortion_FBP3d_tomobar_directive.yaml +3 -3
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/pipelines_full/deg360_paganin_FBP3d_tomobar_directive.yaml +3 -3
- httomo_backends-0.6.1/httomo_backends/pipelines_full/sweep_paganin_FBP3d_tomobar_directive.yaml +12 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/pipelines_full/tomopy_gridrec_directive.yaml +1 -1
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/scripts/yaml_pipelines_generator.py +55 -11
- httomo_backends-0.6.1/httomo_backends/yaml_templates/httomolib/httomolib.misc.rescale/rescale_to_int.yaml +7 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.corr/remove_outlier.yaml +1 -1
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/CGLS3d_tomobar.yaml +1 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/FBP2d_astra.yaml +1 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/FBP3d_tomobar.yaml +1 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/LPRec3d_tomobar.yaml +1 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.algorithm/SIRT3d_tomobar.yaml +1 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends.egg-info/PKG-INFO +1 -1
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends.egg-info/SOURCES.txt +2 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/pyproject.toml +1 -1
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/tests/test_httomolibgpu.py +59 -73
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/LICENSE +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/README.rst +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/__init__.py +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/cufft.py +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/methods_database/__init__.py +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/methods_database/packages/__init__.py +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/methods_database/packages/backends/httomolibgpu/__init__.py +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/methods_database/packages/backends/httomolibgpu/httomolibgpu_modules.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/__init__.py +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/misc/__init__.py +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/misc/corr.py +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/misc/denoise.py +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/misc/morph.py +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/misc/rescale.py +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/prep/__init__.py +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/prep/normalize.py +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/prep/stripe.py +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/recon/__init__.py +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/methods_database/packages/backends/httomolibgpu/supporting_funcs/recon/peak_memory_line_profile_hook.py +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/methods_database/packages/backends/tomopy/__init__.py +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/__init__.py +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/misc/__init__.py +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/prep/__init__.py +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/recon/__init__.py +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/methods_database/packages/backends/tomopy/supporting_funcs/recon/algorithm.py +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/methods_database/packages/backends/tomopy/tomopy.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/methods_database/packages/backends/tomopy/tomopy_modules.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/methods_database/packages/httomo.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/methods_database/query.py +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/pipelines_full/FBP2d_astra_directive.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/pipelines_full/FBP3d_tomobar_noimagesaving_directive.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/pipelines_full/__init__.py +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/pipelines_full/sweep_center_FBP3d_tomobar_directive.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/scripts/__init__.py +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/scripts/json_pipelines_generator.py +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/scripts/yaml_templates_generator.py +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/scripts/yaml_unsupported_tomopy_remove.py +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/httomo/__init__.py +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/httomo/httomo.data.hdf.loaders/standard_tomo.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/httomo/httomo.methods/calculate_stats.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/httomo/httomo.methods/save_intermediate_data.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/httomolib/__init__.py +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/httomolib/httomolib.misc.images/save_to_images.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/httomolib/httomolib.misc.morph/data_reducer.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/httomolib/httomolib.misc.segm/binary_thresholding.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/httomolib/httomolib.prep.phase/paganin_filter.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/httomolibgpu/__init__.py +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.corr/median_filter.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.denoise/total_variation_PD.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.denoise/total_variation_ROF.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.morph/data_resampler.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.morph/sino_360_to_180.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.misc.rescale/rescale_to_int.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.alignment/distortion_correction_proj_discorpy.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.normalize/normalize.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.phase/paganin_filter_savu.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.phase/paganin_filter_tomopy.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.stripe/raven_filter.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.stripe/remove_all_stripe.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.stripe/remove_stripe_based_sorting.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.prep.stripe/remove_stripe_ti.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.rotation/find_center_360.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.rotation/find_center_pc.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/httomolibgpu/httomolibgpu.recon.rotation/find_center_vo.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/__init__.py +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/adjust_range.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/circ_mask.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/gaussian_filter.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/median_filter.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/median_filter3d.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/median_filter_nonfinite.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/remove_nan.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/remove_neg.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/remove_outlier.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/remove_outlier1d.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/remove_outlier3d.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/remove_ring.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.misc.corr/sobel_filter.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.misc.morph/downsample.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.misc.morph/pad.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.misc.morph/sino_360_to_180.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.misc.morph/trim_sinogram.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.misc.morph/upsample.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/add_jitter.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/add_noise.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/align_joint.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/align_seq.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/blur_edges.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/distortion_correction_proj.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/distortion_correction_sino.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/scale.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.alignment/shift_images.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.normalize/minus_log.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.normalize/normalize.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.normalize/normalize_bg.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.normalize/normalize_nf.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.normalize/normalize_roi.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.phase/retrieve_phase.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_all_stripe.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_dead_stripe.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_large_stripe.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_stripe_based_filtering.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_stripe_based_fitting.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_stripe_based_interpolation.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_stripe_based_sorting.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_stripe_fw.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_stripe_sf.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/remove_stripe_ti.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/stripes_detect3d.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.prep.stripe/stripes_mask3d.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.recon.algorithm/recon.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.recon.rotation/find_center.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.recon.rotation/find_center_pc.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.recon.rotation/find_center_vo.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/add_drift.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/add_focal_spot_blur.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/add_gaussian.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/add_poisson.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/add_rings.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/add_salt_pepper.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/add_zingers.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/project.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/project2.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/yaml_templates/tomopy/tomopy.sim.project/project3.yaml +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends.egg-info/dependency_links.txt +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends.egg-info/requires.txt +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends.egg-info/top_level.txt +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/setup.cfg +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/tests/test_method_query.py +0 -0
- {httomo_backends-0.5.3 → httomo_backends-0.6.1}/tests/test_tomopy.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: httomo-backends
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.6.1
|
|
4
4
|
Summary: Supplementary files for HTTomo backends.
|
|
5
5
|
Author: Garry ODonnell, Jacob Williamson
|
|
6
6
|
Author-email: Daniil Kazantsev <daniil.kazantsev@diamond.ac.uk>, Yousef Moazzam <yousef.moazzam@diamond.ac.uk>, Jessica Verschoyle <jessica.verschoyle@diamond.ac.uk>, Naman Gera <naman.gera@diamond.ac.uk>, scientificsoftware@diamond.ac.uk
|
|
@@ -7,7 +7,7 @@ misc:
|
|
|
7
7
|
save_result_default: False
|
|
8
8
|
padding: True
|
|
9
9
|
memory_gpu:
|
|
10
|
-
multiplier: 2.
|
|
10
|
+
multiplier: 2.5
|
|
11
11
|
method: direct
|
|
12
12
|
remove_outlier:
|
|
13
13
|
pattern: all
|
|
@@ -16,7 +16,7 @@ misc:
|
|
|
16
16
|
save_result_default: False
|
|
17
17
|
padding: True
|
|
18
18
|
memory_gpu:
|
|
19
|
-
multiplier: 2.
|
|
19
|
+
multiplier: 2.5
|
|
20
20
|
method: direct
|
|
21
21
|
denoise:
|
|
22
22
|
total_variation_ROF:
|
|
@@ -87,15 +87,6 @@ prep:
|
|
|
87
87
|
memory_gpu:
|
|
88
88
|
multiplier: None
|
|
89
89
|
method: module
|
|
90
|
-
paganin_filter_savu:
|
|
91
|
-
pattern: projection
|
|
92
|
-
output_dims_change: False
|
|
93
|
-
implementation: gpu_cupy
|
|
94
|
-
save_result_default: False
|
|
95
|
-
padding: False
|
|
96
|
-
memory_gpu:
|
|
97
|
-
multiplier: None
|
|
98
|
-
method: module
|
|
99
90
|
alignment:
|
|
100
91
|
distortion_correction_proj_discorpy:
|
|
101
92
|
pattern: projection
|
|
@@ -207,7 +198,7 @@ recon:
|
|
|
207
198
|
save_result_default: False
|
|
208
199
|
padding: False
|
|
209
200
|
memory_gpu:
|
|
210
|
-
multiplier:
|
|
201
|
+
multiplier: 2
|
|
211
202
|
method: direct
|
|
212
203
|
find_center_pc:
|
|
213
204
|
pattern: projection
|
|
@@ -27,70 +27,10 @@ import numpy as np
|
|
|
27
27
|
from httomo_backends.cufft import CufftType, cufft_estimate_2d
|
|
28
28
|
|
|
29
29
|
__all__ = [
|
|
30
|
-
"_calc_memory_bytes_paganin_filter_savu",
|
|
31
30
|
"_calc_memory_bytes_paganin_filter_tomopy",
|
|
32
31
|
]
|
|
33
32
|
|
|
34
33
|
|
|
35
|
-
def _calc_memory_bytes_paganin_filter_savu(
|
|
36
|
-
non_slice_dims_shape: Tuple[int, int],
|
|
37
|
-
dtype: np.dtype,
|
|
38
|
-
**kwargs,
|
|
39
|
-
) -> Tuple[int, int]:
|
|
40
|
-
pad_x = kwargs["pad_x"]
|
|
41
|
-
pad_y = kwargs["pad_y"]
|
|
42
|
-
|
|
43
|
-
# Input (unpadded)
|
|
44
|
-
unpadded_in_slice_size = np.prod(non_slice_dims_shape) * dtype.itemsize
|
|
45
|
-
|
|
46
|
-
# Padded input
|
|
47
|
-
padded_non_slice_dims_shape = (
|
|
48
|
-
non_slice_dims_shape[0] + 2 * pad_y,
|
|
49
|
-
non_slice_dims_shape[1] + 2 * pad_x,
|
|
50
|
-
)
|
|
51
|
-
padded_in_slice_size = (
|
|
52
|
-
padded_non_slice_dims_shape[0] * padded_non_slice_dims_shape[1] * dtype.itemsize
|
|
53
|
-
)
|
|
54
|
-
|
|
55
|
-
# Padded input cast to `complex64`
|
|
56
|
-
complex_slice = padded_in_slice_size / dtype.itemsize * np.complex64().nbytes
|
|
57
|
-
|
|
58
|
-
# Plan size for 2D FFT
|
|
59
|
-
fftplan_slice_size = cufft_estimate_2d(
|
|
60
|
-
nx=padded_non_slice_dims_shape[1],
|
|
61
|
-
ny=padded_non_slice_dims_shape[0],
|
|
62
|
-
fft_type=CufftType.CUFFT_C2C,
|
|
63
|
-
)
|
|
64
|
-
|
|
65
|
-
# Shape of 2D filter is the same as the padded `complex64` slice shape, so the size will be
|
|
66
|
-
# the same
|
|
67
|
-
filter_size = complex_slice
|
|
68
|
-
|
|
69
|
-
# Size of cropped/unpadded + cast to float32 result of 2D IFFT
|
|
70
|
-
cropped_float32_res_slice = np.prod(non_slice_dims_shape) * np.float32().nbytes
|
|
71
|
-
|
|
72
|
-
# If the FFT plan size is negligible for some reason, this changes where the peak GPU
|
|
73
|
-
# memory usage occurs. Hence, the if/else branching below for calculating the total bytes.
|
|
74
|
-
NEGLIGIBLE_FFT_PLAN_SIZE = 16
|
|
75
|
-
if fftplan_slice_size < NEGLIGIBLE_FFT_PLAN_SIZE:
|
|
76
|
-
tot_memory_bytes = int(
|
|
77
|
-
unpadded_in_slice_size + padded_in_slice_size + complex_slice
|
|
78
|
-
)
|
|
79
|
-
else:
|
|
80
|
-
tot_memory_bytes = int(
|
|
81
|
-
unpadded_in_slice_size
|
|
82
|
-
+ padded_in_slice_size
|
|
83
|
-
+ complex_slice
|
|
84
|
-
# The padded float32 array is deallocated when a copy is made when casting to complex64
|
|
85
|
-
# and the variable `padded_tomo` is reassigned to the complex64 version
|
|
86
|
-
- padded_in_slice_size
|
|
87
|
-
+ fftplan_slice_size
|
|
88
|
-
+ cropped_float32_res_slice
|
|
89
|
-
)
|
|
90
|
-
|
|
91
|
-
return (tot_memory_bytes, filter_size)
|
|
92
|
-
|
|
93
|
-
|
|
94
34
|
def _calc_memory_bytes_paganin_filter_tomopy(
|
|
95
35
|
non_slice_dims_shape: Tuple[int, int],
|
|
96
36
|
dtype: np.dtype,
|
|
@@ -77,12 +77,17 @@ def _calc_memory_bytes_FBP3d_tomobar(
|
|
|
77
77
|
dtype: np.dtype,
|
|
78
78
|
**kwargs,
|
|
79
79
|
) -> Tuple[int, int]:
|
|
80
|
-
|
|
81
|
-
|
|
80
|
+
if "detector_pad" in kwargs:
|
|
81
|
+
detector_pad = kwargs["detector_pad"]
|
|
82
|
+
else:
|
|
83
|
+
detector_pad = 0
|
|
84
|
+
|
|
85
|
+
angles_tot = non_slice_dims_shape[0]
|
|
86
|
+
det_width = non_slice_dims_shape[1] + 2 * detector_pad
|
|
82
87
|
SLICES = 200 # dummy multiplier+divisor to pass large batch size threshold
|
|
83
88
|
|
|
84
89
|
# 1. input
|
|
85
|
-
input_slice_size =
|
|
90
|
+
input_slice_size = (angles_tot * det_width) * dtype.itemsize
|
|
86
91
|
|
|
87
92
|
########## FFT / filter / IFFT (filtersync_cupy)
|
|
88
93
|
|
|
@@ -91,13 +96,13 @@ def _calc_memory_bytes_FBP3d_tomobar(
|
|
|
91
96
|
cufft_estimate_1d(
|
|
92
97
|
nx=det_width,
|
|
93
98
|
fft_type=CufftType.CUFFT_R2C,
|
|
94
|
-
batch=
|
|
99
|
+
batch=angles_tot * SLICES,
|
|
95
100
|
)
|
|
96
101
|
/ SLICES
|
|
97
102
|
)
|
|
98
103
|
|
|
99
104
|
# 3. RFFT output size (proj_f in code)
|
|
100
|
-
proj_f_slice =
|
|
105
|
+
proj_f_slice = angles_tot * (det_width // 2 + 1) * np.complex64().itemsize
|
|
101
106
|
|
|
102
107
|
# 4. Filter size (independent of number of slices)
|
|
103
108
|
filter_size = (det_width // 2 + 1) * np.float32().itemsize
|
|
@@ -107,7 +112,7 @@ def _calc_memory_bytes_FBP3d_tomobar(
|
|
|
107
112
|
cufft_estimate_1d(
|
|
108
113
|
nx=det_width,
|
|
109
114
|
fft_type=CufftType.CUFFT_C2R,
|
|
110
|
-
batch=
|
|
115
|
+
batch=angles_tot * SLICES,
|
|
111
116
|
)
|
|
112
117
|
/ SLICES
|
|
113
118
|
)
|
|
@@ -123,9 +128,7 @@ def _calc_memory_bytes_FBP3d_tomobar(
|
|
|
123
128
|
|
|
124
129
|
# 6. we swap the axes before passing data to Astra in ToMoBAR
|
|
125
130
|
# https://github.com/dkazanc/ToMoBAR/blob/54137829b6326406e09f6ef9c95eb35c213838a7/tomobar/methodsDIR_CuPy.py#L135
|
|
126
|
-
pre_astra_input_swapaxis_slice = (
|
|
127
|
-
np.prod(non_slice_dims_shape) * np.float32().itemsize
|
|
128
|
-
)
|
|
131
|
+
pre_astra_input_swapaxis_slice = (angles_tot * det_width) * np.float32().itemsize
|
|
129
132
|
|
|
130
133
|
# 7. astra backprojection will generate an output array
|
|
131
134
|
# https://github.com/dkazanc/ToMoBAR/blob/54137829b6326406e09f6ef9c95eb35c213838a7/tomobar/astra_wrappers/astra_base.py#L524
|
|
@@ -151,7 +154,7 @@ def _calc_memory_bytes_FBP3d_tomobar(
|
|
|
151
154
|
# so it does not add to the memory overall
|
|
152
155
|
|
|
153
156
|
# We assume for safety here that one FFT plan is not freed and one is freed
|
|
154
|
-
tot_memory_bytes = (
|
|
157
|
+
tot_memory_bytes = int(
|
|
155
158
|
projection_mem_size + filtersync_size - ifftplan_slice_size + recon_output_size
|
|
156
159
|
)
|
|
157
160
|
|
|
@@ -166,8 +169,14 @@ def _calc_memory_bytes_LPRec3d_tomobar(
|
|
|
166
169
|
) -> Tuple[int, int]:
|
|
167
170
|
# Based on: https://github.com/dkazanc/ToMoBAR/pull/112/commits/4704ecdc6ded3dd5ec0583c2008aa104f30a8a39
|
|
168
171
|
|
|
172
|
+
if "detector_pad" in kwargs:
|
|
173
|
+
detector_pad = kwargs["detector_pad"]
|
|
174
|
+
else:
|
|
175
|
+
detector_pad = 0
|
|
176
|
+
|
|
169
177
|
angles_tot = non_slice_dims_shape[0]
|
|
170
|
-
|
|
178
|
+
DetectorsLengthH_prepad = non_slice_dims_shape[1]
|
|
179
|
+
DetectorsLengthH = non_slice_dims_shape[1] + 2 * detector_pad
|
|
171
180
|
SLICES = 200 # dummy multiplier+divisor to pass large batch size threshold
|
|
172
181
|
_CENTER_SIZE_MIN = 192 # must be divisible by 8
|
|
173
182
|
|
|
@@ -210,7 +219,7 @@ def _calc_memory_bytes_LPRec3d_tomobar(
|
|
|
210
219
|
if odd_horiz:
|
|
211
220
|
output_dims = tuple(x + 1 for x in output_dims)
|
|
212
221
|
|
|
213
|
-
in_slice_size =
|
|
222
|
+
in_slice_size = (angles_tot * DetectorsLengthH) * dtype.itemsize
|
|
214
223
|
padded_in_slice_size = angles_tot * n * np.float32().itemsize
|
|
215
224
|
|
|
216
225
|
theta_size = angles_tot * np.float32().itemsize
|
|
@@ -256,7 +265,9 @@ def _calc_memory_bytes_LPRec3d_tomobar(
|
|
|
256
265
|
center_size * center_size * (1 + angle_range_pi_count * 2) * np.int16().itemsize
|
|
257
266
|
)
|
|
258
267
|
|
|
259
|
-
recon_output_size =
|
|
268
|
+
recon_output_size = (
|
|
269
|
+
DetectorsLengthH_prepad * DetectorsLengthH_prepad * np.float32().itemsize
|
|
270
|
+
)
|
|
260
271
|
ifft2_plan_slice_size = (
|
|
261
272
|
cufft_estimate_2d(
|
|
262
273
|
nx=(2 * m + 2 * n), ny=(2 * m + 2 * n), fft_type=CufftType.CUFFT_C2C
|
|
@@ -342,7 +353,6 @@ def _calc_memory_bytes_LPRec3d_tomobar(
|
|
|
342
353
|
add_to_memory_counters(after_recon_swapaxis_slice, True)
|
|
343
354
|
|
|
344
355
|
return (tot_memory_bytes * 1.05, fixed_amount + 250 * 1024 * 1024)
|
|
345
|
-
# return (tot_memory_bytes, fixed_amount)
|
|
346
356
|
|
|
347
357
|
|
|
348
358
|
def _calc_memory_bytes_SIRT3d_tomobar(
|
|
@@ -350,16 +360,22 @@ def _calc_memory_bytes_SIRT3d_tomobar(
|
|
|
350
360
|
dtype: np.dtype,
|
|
351
361
|
**kwargs,
|
|
352
362
|
) -> Tuple[int, int]:
|
|
353
|
-
|
|
363
|
+
|
|
364
|
+
if "detector_pad" in kwargs:
|
|
365
|
+
detector_pad = kwargs["detector_pad"]
|
|
366
|
+
else:
|
|
367
|
+
detector_pad = 0
|
|
368
|
+
anglesnum = non_slice_dims_shape[0]
|
|
369
|
+
DetectorsLengthH = non_slice_dims_shape[1] + 2 * detector_pad
|
|
354
370
|
# calculate the output shape
|
|
355
371
|
output_dims = _calc_output_dim_SIRT3d_tomobar(non_slice_dims_shape, **kwargs)
|
|
356
372
|
|
|
357
|
-
in_data_size =
|
|
373
|
+
in_data_size = (anglesnum * DetectorsLengthH) * dtype.itemsize
|
|
358
374
|
out_data_size = np.prod(output_dims) * dtype.itemsize
|
|
359
375
|
|
|
360
376
|
astra_projection = 2.5 * (in_data_size + out_data_size)
|
|
361
377
|
|
|
362
|
-
tot_memory_bytes = 2 * in_data_size + 2 * out_data_size + astra_projection
|
|
378
|
+
tot_memory_bytes = int(2 * in_data_size + 2 * out_data_size + astra_projection)
|
|
363
379
|
return (tot_memory_bytes, 0)
|
|
364
380
|
|
|
365
381
|
|
|
@@ -368,14 +384,20 @@ def _calc_memory_bytes_CGLS3d_tomobar(
|
|
|
368
384
|
dtype: np.dtype,
|
|
369
385
|
**kwargs,
|
|
370
386
|
) -> Tuple[int, int]:
|
|
371
|
-
|
|
387
|
+
if "detector_pad" in kwargs:
|
|
388
|
+
detector_pad = kwargs["detector_pad"]
|
|
389
|
+
else:
|
|
390
|
+
detector_pad = 0
|
|
391
|
+
|
|
392
|
+
anglesnum = non_slice_dims_shape[0]
|
|
393
|
+
DetectorsLengthH = non_slice_dims_shape[1] + 2 * detector_pad
|
|
372
394
|
# calculate the output shape
|
|
373
395
|
output_dims = _calc_output_dim_CGLS3d_tomobar(non_slice_dims_shape, **kwargs)
|
|
374
396
|
|
|
375
|
-
in_data_size =
|
|
397
|
+
in_data_size = (anglesnum * DetectorsLengthH) * dtype.itemsize
|
|
376
398
|
out_data_size = np.prod(output_dims) * dtype.itemsize
|
|
377
399
|
|
|
378
400
|
astra_projection = 2.5 * (in_data_size + out_data_size)
|
|
379
401
|
|
|
380
|
-
tot_memory_bytes = 2 * in_data_size + 2 * out_data_size + astra_projection
|
|
402
|
+
tot_memory_bytes = int(2 * in_data_size + 2 * out_data_size + astra_projection)
|
|
381
403
|
return (tot_memory_bytes, 0)
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
# Created By : Tomography Team at DLS <scientificsoftware@diamond.ac.uk>
|
|
19
19
|
# Created Date: 18/July/2024
|
|
20
20
|
# ---------------------------------------------------------------------------
|
|
21
|
-
"""
|
|
21
|
+
"""Modules for memory estimation, padding, data dims estimation"""
|
|
22
22
|
|
|
23
23
|
from typing import Tuple
|
|
24
24
|
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
# Created By : Tomography Team at DLS <scientificsoftware@diamond.ac.uk>
|
|
19
19
|
# Created Date: 18/July/2024
|
|
20
20
|
# ---------------------------------------------------------------------------
|
|
21
|
-
"""
|
|
21
|
+
"""Modules for memory estimation, padding, data dims estimation"""
|
|
22
22
|
|
|
23
23
|
from typing import Tuple
|
|
24
24
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
- method: standard_tomo
|
|
2
2
|
module_path: httomo.data.hdf.loaders
|
|
3
|
+
- method: find_center_360
|
|
4
|
+
module_path: httomolibgpu.recon.rotation
|
|
3
5
|
- method: normalize
|
|
4
6
|
module_path: httomolibgpu.prep.normalize
|
|
5
7
|
- method: distortion_correction_proj_discorpy
|
|
6
8
|
module_path: httomolibgpu.prep.alignment
|
|
7
|
-
- method: find_center_360
|
|
8
|
-
module_path: httomolibgpu.recon.rotation
|
|
9
9
|
- method: sino_360_to_180
|
|
10
10
|
module_path: httomolibgpu.misc.morph
|
|
11
11
|
- method: remove_stripe_based_sorting
|
|
@@ -15,6 +15,6 @@
|
|
|
15
15
|
- method: calculate_stats
|
|
16
16
|
module_path: httomo.methods
|
|
17
17
|
- method: rescale_to_int
|
|
18
|
-
module_path:
|
|
18
|
+
module_path: httomolib.misc.rescale
|
|
19
19
|
- method: save_to_images
|
|
20
20
|
module_path: httomolib.misc.images
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
- method: standard_tomo
|
|
2
2
|
module_path: httomo.data.hdf.loaders
|
|
3
|
-
- method: normalize
|
|
4
|
-
module_path: httomolibgpu.prep.normalize
|
|
5
3
|
- method: find_center_360
|
|
6
4
|
module_path: httomolibgpu.recon.rotation
|
|
5
|
+
- method: normalize
|
|
6
|
+
module_path: httomolibgpu.prep.normalize
|
|
7
7
|
- method: sino_360_to_180
|
|
8
8
|
module_path: httomolibgpu.misc.morph
|
|
9
9
|
- method: remove_stripe_based_sorting
|
|
@@ -15,6 +15,6 @@
|
|
|
15
15
|
- method: calculate_stats
|
|
16
16
|
module_path: httomo.methods
|
|
17
17
|
- method: rescale_to_int
|
|
18
|
-
module_path:
|
|
18
|
+
module_path: httomolib.misc.rescale
|
|
19
19
|
- method: save_to_images
|
|
20
20
|
module_path: httomolib.misc.images
|
httomo_backends-0.6.1/httomo_backends/pipelines_full/sweep_paganin_FBP3d_tomobar_directive.yaml
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
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: paganin_filter_tomopy
|
|
8
|
+
module_path: httomolibgpu.prep.phase
|
|
9
|
+
sweep_parameter: alpha
|
|
10
|
+
sweep_values: [0.01, 0.001, 0.0001]
|
|
11
|
+
- method: FBP3d_tomobar
|
|
12
|
+
module_path: httomolibgpu.recon.algorithm
|
{httomo_backends-0.5.3 → httomo_backends-0.6.1}/httomo_backends/scripts/yaml_pipelines_generator.py
RENAMED
|
@@ -31,6 +31,8 @@ import ruamel.yaml
|
|
|
31
31
|
import httomo_backends
|
|
32
32
|
import yaml
|
|
33
33
|
|
|
34
|
+
from httomo import __version__ as httomo_version
|
|
35
|
+
|
|
34
36
|
CS = ruamel.yaml.comments.CommentedSeq # defaults to block style
|
|
35
37
|
|
|
36
38
|
|
|
@@ -55,6 +57,20 @@ def __sweeprange_representer(
|
|
|
55
57
|
)
|
|
56
58
|
|
|
57
59
|
|
|
60
|
+
class SweepManual:
|
|
61
|
+
"""SweepManual class."""
|
|
62
|
+
|
|
63
|
+
def __init__(self, lst):
|
|
64
|
+
self._lst = lst
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
def __sweepmanual_representer(
|
|
68
|
+
dumper: yaml.SafeDumper, swp: SweepManual
|
|
69
|
+
) -> yaml.nodes.SequenceNode:
|
|
70
|
+
"""Represent a sweepmanual as a YAML sequence node."""
|
|
71
|
+
return dumper.represent_sequence("!Sweep", swp._lst)
|
|
72
|
+
|
|
73
|
+
|
|
58
74
|
def __represent_none(self, data):
|
|
59
75
|
return self.represent_scalar("tag:yaml.org,2002:null", "null")
|
|
60
76
|
|
|
@@ -86,17 +102,22 @@ def yaml_pipelines_generator(
|
|
|
86
102
|
# a loop over methods in the high-level pipeline file (directive)
|
|
87
103
|
methods_no = len(pipeline_file_content)
|
|
88
104
|
pipeline_full = CS()
|
|
89
|
-
|
|
105
|
+
sweep_enabled_range = False
|
|
106
|
+
sweep_enabled_value = False
|
|
90
107
|
for i in range(methods_no):
|
|
91
108
|
method_content = pipeline_file_content[i]
|
|
92
109
|
method_name = method_content["method"]
|
|
93
110
|
module_name = method_content["module_path"]
|
|
94
111
|
if "sweep_parameter" in method_content:
|
|
95
112
|
sweep_parameter = method_content["sweep_parameter"]
|
|
96
|
-
sweep_start
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
113
|
+
if "sweep_start" in method_content:
|
|
114
|
+
sweep_start = method_content["sweep_start"]
|
|
115
|
+
sweep_stop = method_content["sweep_stop"]
|
|
116
|
+
sweep_step = method_content["sweep_step"]
|
|
117
|
+
sweep_enabled_range = True
|
|
118
|
+
else:
|
|
119
|
+
sweep_values = method_content["sweep_values"]
|
|
120
|
+
sweep_enabled_value = True
|
|
100
121
|
|
|
101
122
|
# get the corresponding yaml template from httomo-backends
|
|
102
123
|
backend_name = module_name[0 : module_name.find(".")]
|
|
@@ -116,6 +137,13 @@ def yaml_pipelines_generator(
|
|
|
116
137
|
except OSError as e:
|
|
117
138
|
print("loading yaml template failed", e)
|
|
118
139
|
|
|
140
|
+
version_split = httomo_version.split(".")
|
|
141
|
+
major = version_split[0]
|
|
142
|
+
minor = version_split[1]
|
|
143
|
+
pipeline_full.yaml_set_start_comment(
|
|
144
|
+
f"This pipeline is supported by HTTomo ver. {major}.{minor}"
|
|
145
|
+
)
|
|
146
|
+
|
|
119
147
|
if "loaders" in module_name:
|
|
120
148
|
# should be the first method in the list
|
|
121
149
|
pipeline_full.yaml_set_comment_before_after_key(
|
|
@@ -149,7 +177,7 @@ def yaml_pipelines_generator(
|
|
|
149
177
|
)
|
|
150
178
|
pipeline_full[i]["side_outputs"].yaml_add_eol_comment(
|
|
151
179
|
key="cor",
|
|
152
|
-
comment="
|
|
180
|
+
comment="An estimated CoR value provided as a side output",
|
|
153
181
|
)
|
|
154
182
|
pipeline_full[i]["side_outputs"].yaml_add_eol_comment(
|
|
155
183
|
key="overlap",
|
|
@@ -158,17 +186,22 @@ def yaml_pipelines_generator(
|
|
|
158
186
|
elif "corr" in module_name and "remove_outlier" in method_name:
|
|
159
187
|
pipeline_full.yaml_set_comment_before_after_key(
|
|
160
188
|
i,
|
|
161
|
-
"--- Removing
|
|
189
|
+
"--- Removing unresponsive pixels in the data, aka zingers. Use if sharp streaks are present in the reconstruction. To be applied before normalisation. ---",
|
|
162
190
|
indent=0,
|
|
163
191
|
)
|
|
164
192
|
pipeline_full += yaml_template_method
|
|
165
193
|
if pipeline_full[i]["parameters"]["dif"] == "REQUIRED":
|
|
166
194
|
# fix for the absent parameter in TomoPy's algorithm
|
|
167
195
|
pipeline_full[i]["parameters"]["dif"] = 0.1
|
|
196
|
+
pipeline_full[i]["parameters"].yaml_add_eol_comment(
|
|
197
|
+
key="kernel_size",
|
|
198
|
+
comment="The size of the 3D neighbourhood surrounding the voxel. Odd integer.",
|
|
199
|
+
)
|
|
168
200
|
pipeline_full[i]["parameters"].yaml_add_eol_comment(
|
|
169
201
|
key="dif",
|
|
170
|
-
comment="A difference between the outlier value and the median value of
|
|
202
|
+
comment="A difference between the outlier value and the median value of neighbouring pixels.",
|
|
171
203
|
)
|
|
204
|
+
|
|
172
205
|
elif "distortion" in method_name:
|
|
173
206
|
pipeline_full.yaml_set_comment_before_after_key(
|
|
174
207
|
i,
|
|
@@ -225,7 +258,11 @@ def yaml_pipelines_generator(
|
|
|
225
258
|
pipeline_full += yaml_template_method
|
|
226
259
|
pipeline_full[i]["parameters"].yaml_add_eol_comment(
|
|
227
260
|
key="center",
|
|
228
|
-
comment="Reference to center of rotation side output OR
|
|
261
|
+
comment="Reference to center of rotation side output above OR a float number.",
|
|
262
|
+
)
|
|
263
|
+
pipeline_full[i]["parameters"].yaml_add_eol_comment(
|
|
264
|
+
key="detector_pad",
|
|
265
|
+
comment="Horizontal detector padding to minimise circle/arc-type artifacts in the reconstruction",
|
|
229
266
|
)
|
|
230
267
|
pipeline_full[i]["parameters"].yaml_add_eol_comment(
|
|
231
268
|
key="recon_mask_radius",
|
|
@@ -282,13 +319,20 @@ def yaml_pipelines_generator(
|
|
|
282
319
|
)
|
|
283
320
|
pipeline_full += yaml_template_method
|
|
284
321
|
|
|
285
|
-
if
|
|
322
|
+
if sweep_enabled_range:
|
|
286
323
|
pipeline_full[i]["parameters"][sweep_parameter] = SweepRange(
|
|
287
324
|
start=sweep_start, stop=sweep_stop, step=sweep_step
|
|
288
325
|
)
|
|
326
|
+
yaml.representer.add_representer(SweepRange, __sweeprange_representer)
|
|
327
|
+
sweep_enabled_range = False
|
|
328
|
+
if sweep_enabled_value:
|
|
329
|
+
pipeline_full[i]["parameters"][sweep_parameter] = SweepManual(
|
|
330
|
+
list(sweep_values)
|
|
331
|
+
)
|
|
332
|
+
yaml.representer.add_representer(SweepManual, __sweepmanual_representer)
|
|
333
|
+
sweep_enabled_value = False
|
|
289
334
|
|
|
290
335
|
yaml.representer.add_representer(type(None), __represent_none)
|
|
291
|
-
yaml.representer.add_representer(SweepRange, __sweeprange_representer)
|
|
292
336
|
yaml.dump(pipeline_full, f)
|
|
293
337
|
|
|
294
338
|
return 0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: httomo-backends
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.6.1
|
|
4
4
|
Summary: Supplementary files for HTTomo backends.
|
|
5
5
|
Author: Garry ODonnell, Jacob Williamson
|
|
6
6
|
Author-email: Daniil Kazantsev <daniil.kazantsev@diamond.ac.uk>, Yousef Moazzam <yousef.moazzam@diamond.ac.uk>, Jessica Verschoyle <jessica.verschoyle@diamond.ac.uk>, Naman Gera <naman.gera@diamond.ac.uk>, scientificsoftware@diamond.ac.uk
|
|
@@ -49,6 +49,7 @@ httomo_backends/pipelines_full/__init__.py
|
|
|
49
49
|
httomo_backends/pipelines_full/deg360_distortion_FBP3d_tomobar_directive.yaml
|
|
50
50
|
httomo_backends/pipelines_full/deg360_paganin_FBP3d_tomobar_directive.yaml
|
|
51
51
|
httomo_backends/pipelines_full/sweep_center_FBP3d_tomobar_directive.yaml
|
|
52
|
+
httomo_backends/pipelines_full/sweep_paganin_FBP3d_tomobar_directive.yaml
|
|
52
53
|
httomo_backends/pipelines_full/tomopy_gridrec_directive.yaml
|
|
53
54
|
httomo_backends/scripts/__init__.py
|
|
54
55
|
httomo_backends/scripts/json_pipelines_generator.py
|
|
@@ -62,6 +63,7 @@ httomo_backends/yaml_templates/httomo/httomo.methods/save_intermediate_data.yaml
|
|
|
62
63
|
httomo_backends/yaml_templates/httomolib/__init__.py
|
|
63
64
|
httomo_backends/yaml_templates/httomolib/httomolib.misc.images/save_to_images.yaml
|
|
64
65
|
httomo_backends/yaml_templates/httomolib/httomolib.misc.morph/data_reducer.yaml
|
|
66
|
+
httomo_backends/yaml_templates/httomolib/httomolib.misc.rescale/rescale_to_int.yaml
|
|
65
67
|
httomo_backends/yaml_templates/httomolib/httomolib.misc.segm/binary_thresholding.yaml
|
|
66
68
|
httomo_backends/yaml_templates/httomolib/httomolib.prep.phase/paganin_filter.yaml
|
|
67
69
|
httomo_backends/yaml_templates/httomolibgpu/__init__.py
|