nabu 2024.1.0rc4__py3-none-any.whl → 2024.1.1__py3-none-any.whl
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.
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/doc/conf.py +137 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/doc/create_conf_doc.py +38 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/doc/get_mathjax.py +34 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/__init__.py +17 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap.py +88 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap_stitching.py +69 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/cast_volume.py +272 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/cli_configs.py +626 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/compare_volumes.py +94 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/composite_cor.py +144 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/correct_rot.py +70 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/create_distortion_map_from_poly.py +153 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_pix.py +358 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_rot.py +449 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/double_flatfield.py +143 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/generate_header.py +261 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/histogram.py +197 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/multicor.py +90 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/nx_z_splitter.py +125 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/parse_reconstruction_log.py +151 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/prepare_weights_double.py +163 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct.py +120 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct_helical.py +116 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reduce_dark_flat.py +181 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/rotate.py +162 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/shrink_dataset.py +98 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/stitching.py +85 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/tests/test_reduce_dark_flat.py +78 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/utils.py +33 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/validator.py +110 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/convolution.py +8 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/fft.py +4 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/kernel.py +97 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/medfilt.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/padding.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/processing.py +75 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/tests/__init__.py +1 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/utils.py +331 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/__init__.py +12 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/alignment.py +578 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor.py +1621 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor_sino.py +183 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/distortion.py +112 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/focus.py +362 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_alignment.py +70 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_cor.py +472 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_focus.py +105 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_tilt.py +41 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_translation.py +78 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tilt.py +214 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/translation.py +193 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/utils.py +39 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/__init__.py +2 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/cast_volume.py +371 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/detector_distortion.py +305 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/reader.py +628 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/reader_helical.py +114 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_cast_volume.py +339 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_detector_distortion.py +178 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_writers.py +187 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tiffwriter_zmm.py +99 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/utils.py +263 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/writer.py +892 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/binning.py +98 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/fftshift.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/filters.py +24 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/fourier_filters.py +152 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram_cuda.py +8 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/kernel_base.py +4 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/padding.py +83 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/padding_base.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/processing_base.py +4 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation_cuda.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/__init__.py +1 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_binning.py +48 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_interpolation.py +70 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/transpose.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp.py +4 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_cuda.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_opencl.py +8 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/utils.py +117 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/fft.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/kernel.py +135 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/memcpy.py +35 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/padding.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/processing.py +62 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/tests/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/utils.py +292 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config.py +265 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config_validators.py +589 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/datadump.py +164 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/dataset_validator.py +211 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/detector_distortion_provider.py +20 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/estimators.py +1012 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fallback_utils.py +149 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked.py +849 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked_cuda.py +152 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/computations.py +260 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/dataset_validator.py +63 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/nabu_config.py +590 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/processconfig.py +825 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/reconstruction.py +851 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/dataset_validator.py +19 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/fbp.py +147 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/filtering.py +246 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/gridded_accumulator.py +575 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded.py +1670 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded_cuda.py +119 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_reconstruction.py +598 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_utils.py +42 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/nabu_config.py +175 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/processconfig.py +62 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/span_strategy.py +483 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_accumulator.py +157 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_pipeline_elements_full.py +355 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_strategy.py +61 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/utils.py +51 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/weight_balancer.py +101 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/params.py +163 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/processconfig.py +210 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/tests/test_chunk_reader.py +78 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/tests/test_estimators.py +149 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/utils.py +116 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/writer.py +193 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/xrdct/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/__init__.py +7 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/alignment.py +11 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd.py +161 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd_cuda.py +169 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf.py +361 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf_cuda.py +142 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/distortion.py +92 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield.py +212 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_cuda.py +174 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_variable_region.py +68 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield.py +448 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_cuda.py +144 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_variable_region.py +79 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase.py +425 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase_cuda.py +143 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift.py +95 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift_cuda.py +102 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/__init__.py +1 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_ccd_corr.py +59 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_ctf.py +250 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_double_flatfield.py +86 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_flatfield.py +626 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_paganin.py +67 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_vshift.py +73 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/convolution_cuda.py +375 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_base.py +163 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_cuda.py +256 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_opencl.py +54 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fftshift.py +134 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram.py +286 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram_cuda.py +103 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/kernel_base.py +126 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/medfilt_cuda.py +159 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd.py +29 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd_cuda.py +68 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_base.py +71 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_cuda.py +75 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_opencl.py +77 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/processing_base.py +123 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/roll_opencl.py +64 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation.py +63 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation_cuda.py +66 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fft.py +268 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fftshift.py +71 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_histogram.py +55 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_medfilt.py +77 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_muladd.py +54 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_padding.py +247 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_roll.py +63 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_rotation.py +83 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_transpose.py +72 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_unsharp.py +106 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/transpose.py +126 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp.py +79 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_cuda.py +53 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_opencl.py +75 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/__init__.py +3 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/cone.py +241 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp.py +124 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_base.py +391 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_opencl.py +78 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering.py +220 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_cuda.py +103 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_opencl.py +111 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/projection.py +240 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor.py +174 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor_cuda.py +44 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings.py +248 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings_cuda.py +322 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram.py +467 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_cuda.py +250 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_opencl.py +40 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/__init__.py +1 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_cone.py +308 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_deringer.py +220 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_fbp.py +252 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_filtering.py +133 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_halftomo.py +100 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_projector.py +164 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_reconstructor.py +93 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_sino_normalization.py +85 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/cli/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/cor.py +5 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/dataset_analyzer.py +469 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/gpu.py +169 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/logger.py +130 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/nxflatfield.py +217 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/templates/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_nxflatfield.py +104 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_units.py +47 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/utils.py +174 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/alignment.py +184 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/config.py +1286 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/definitions.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/frame_composition.py +155 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/overlap.py +373 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/sample_normalization.py +60 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/slurm_utils.py +204 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_alignment.py +99 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_config.py +226 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_frame_composition.py +180 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_overlap.py +98 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_sample_normalization.py +49 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_slurm_utils.py +146 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_utils.py +21 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_z_stitching.py +1183 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/utils.py +563 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/z_stitching.py +2279 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/tests.py +51 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/testutils.py +375 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/algotom_convert_sino.py +276 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/pore3d_deringer_munch.py +108 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomocupy_remove_stripe.py +586 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomopy_phase.py +239 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomwer_load_flats_darks.py +162 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/utils.py +836 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/doc/conf.py +137 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/doc/create_conf_doc.py +38 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/doc/get_mathjax.py +34 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/__init__.py +17 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap.py +88 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap_stitching.py +69 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/cast_volume.py +272 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/cli_configs.py +626 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/compare_volumes.py +94 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/composite_cor.py +144 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/correct_rot.py +70 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/create_distortion_map_from_poly.py +153 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_pix.py +358 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_rot.py +449 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/double_flatfield.py +143 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/generate_header.py +261 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/histogram.py +197 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/multicor.py +90 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/nx_z_splitter.py +125 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/parse_reconstruction_log.py +151 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/prepare_weights_double.py +163 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct.py +120 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct_helical.py +116 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reduce_dark_flat.py +181 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/rotate.py +162 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/shrink_dataset.py +98 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/stitching.py +85 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/tests/test_reduce_dark_flat.py +78 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/utils.py +33 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/validator.py +110 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/convolution.py +8 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/fft.py +4 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/kernel.py +97 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/medfilt.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/padding.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/processing.py +75 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/tests/__init__.py +1 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/utils.py +331 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/__init__.py +12 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/alignment.py +578 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor.py +1621 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor_sino.py +183 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/distortion.py +112 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/focus.py +362 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_alignment.py +70 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_cor.py +472 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_focus.py +105 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_tilt.py +41 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_translation.py +78 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tilt.py +214 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/translation.py +193 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/utils.py +39 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/__init__.py +2 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/cast_volume.py +371 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/detector_distortion.py +305 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/reader.py +628 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/reader_helical.py +114 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_cast_volume.py +339 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_detector_distortion.py +178 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_writers.py +187 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tiffwriter_zmm.py +99 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/utils.py +263 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/writer.py +892 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/binning.py +98 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/fftshift.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/filters.py +24 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/fourier_filters.py +152 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram_cuda.py +8 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/kernel_base.py +4 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/padding.py +83 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/padding_base.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/processing_base.py +4 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation_cuda.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/__init__.py +1 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_binning.py +48 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_interpolation.py +70 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/transpose.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp.py +4 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_cuda.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_opencl.py +8 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/utils.py +117 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/fft.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/kernel.py +135 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/memcpy.py +35 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/padding.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/processing.py +62 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/tests/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/utils.py +292 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config.py +265 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config_validators.py +589 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/datadump.py +164 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/dataset_validator.py +211 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/detector_distortion_provider.py +20 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/estimators.py +1012 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fallback_utils.py +149 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked.py +849 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked_cuda.py +152 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/computations.py +260 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/dataset_validator.py +63 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/nabu_config.py +590 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/processconfig.py +825 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/reconstruction.py +851 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/dataset_validator.py +19 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/fbp.py +147 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/filtering.py +246 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/gridded_accumulator.py +575 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded.py +1670 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded_cuda.py +119 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_reconstruction.py +598 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_utils.py +42 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/nabu_config.py +175 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/processconfig.py +62 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/span_strategy.py +483 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_accumulator.py +157 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_pipeline_elements_full.py +355 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_strategy.py +61 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/utils.py +51 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/weight_balancer.py +101 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/params.py +163 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/processconfig.py +210 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/tests/test_chunk_reader.py +78 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/tests/test_estimators.py +149 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/utils.py +116 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/writer.py +193 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/xrdct/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/__init__.py +7 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/alignment.py +11 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd.py +161 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd_cuda.py +169 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf.py +361 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf_cuda.py +142 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/distortion.py +92 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield.py +212 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_cuda.py +174 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_variable_region.py +68 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield.py +448 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_cuda.py +144 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_variable_region.py +79 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase.py +425 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase_cuda.py +143 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift.py +95 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift_cuda.py +102 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/__init__.py +1 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_ccd_corr.py +59 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_ctf.py +250 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_double_flatfield.py +86 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_flatfield.py +626 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_paganin.py +67 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_vshift.py +73 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/convolution_cuda.py +375 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_base.py +163 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_cuda.py +256 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_opencl.py +54 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fftshift.py +134 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram.py +286 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram_cuda.py +103 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/kernel_base.py +126 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/medfilt_cuda.py +159 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd.py +29 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd_cuda.py +68 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_base.py +71 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_cuda.py +75 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_opencl.py +77 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/processing_base.py +123 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/roll_opencl.py +64 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation.py +63 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation_cuda.py +66 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fft.py +268 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fftshift.py +71 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_histogram.py +55 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_medfilt.py +77 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_muladd.py +54 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_padding.py +247 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_roll.py +63 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_rotation.py +83 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_transpose.py +72 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_unsharp.py +106 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/transpose.py +126 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp.py +79 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_cuda.py +53 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_opencl.py +75 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/__init__.py +3 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/cone.py +241 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp.py +124 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_base.py +391 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_opencl.py +78 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering.py +220 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_cuda.py +103 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_opencl.py +111 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/projection.py +240 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor.py +174 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor_cuda.py +44 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings.py +248 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings_cuda.py +322 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram.py +467 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_cuda.py +250 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_opencl.py +40 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/__init__.py +1 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_cone.py +308 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_deringer.py +220 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_fbp.py +252 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_filtering.py +133 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_halftomo.py +100 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_projector.py +164 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_reconstructor.py +93 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_sino_normalization.py +85 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/cli/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/cor.py +5 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/dataset_analyzer.py +469 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/gpu.py +169 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/logger.py +130 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/nxflatfield.py +217 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/templates/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_nxflatfield.py +104 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_units.py +47 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/utils.py +174 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/alignment.py +184 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/config.py +1286 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/definitions.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/frame_composition.py +155 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/overlap.py +373 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/sample_normalization.py +60 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/slurm_utils.py +204 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_alignment.py +99 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_config.py +226 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_frame_composition.py +180 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_overlap.py +98 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_sample_normalization.py +49 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_slurm_utils.py +146 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_utils.py +21 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_z_stitching.py +1183 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/utils.py +563 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/z_stitching.py +2279 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/tests.py +51 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/testutils.py +375 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/algotom_convert_sino.py +276 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/pore3d_deringer_munch.py +108 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomocupy_remove_stripe.py +586 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomopy_phase.py +239 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomwer_load_flats_darks.py +162 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/utils.py +836 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/doc/conf.py +137 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/doc/create_conf_doc.py +38 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/doc/get_mathjax.py +34 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/__init__.py +17 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap.py +88 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap_stitching.py +69 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/cast_volume.py +272 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/cli_configs.py +626 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/compare_volumes.py +94 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/composite_cor.py +144 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/correct_rot.py +70 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/create_distortion_map_from_poly.py +153 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_pix.py +358 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_rot.py +449 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/double_flatfield.py +143 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/generate_header.py +261 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/histogram.py +197 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/multicor.py +90 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/nx_z_splitter.py +125 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/parse_reconstruction_log.py +151 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/prepare_weights_double.py +163 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct.py +120 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct_helical.py +116 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reduce_dark_flat.py +181 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/rotate.py +162 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/shrink_dataset.py +98 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/stitching.py +85 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/tests/test_reduce_dark_flat.py +78 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/utils.py +33 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/validator.py +110 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/convolution.py +8 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/fft.py +4 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/kernel.py +97 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/medfilt.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/padding.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/processing.py +75 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/tests/__init__.py +1 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/utils.py +331 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/__init__.py +12 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/alignment.py +578 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor.py +1621 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor_sino.py +183 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/distortion.py +112 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/focus.py +362 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_alignment.py +70 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_cor.py +472 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_focus.py +105 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_tilt.py +41 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_translation.py +78 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tilt.py +214 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/translation.py +193 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/utils.py +39 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/__init__.py +2 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/cast_volume.py +371 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/detector_distortion.py +305 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/reader.py +628 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/reader_helical.py +114 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_cast_volume.py +339 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_detector_distortion.py +178 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_writers.py +187 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tiffwriter_zmm.py +99 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/utils.py +263 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/writer.py +892 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/binning.py +98 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/fftshift.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/filters.py +24 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/fourier_filters.py +152 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram_cuda.py +8 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/kernel_base.py +4 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/padding.py +83 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/padding_base.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/processing_base.py +4 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation_cuda.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/__init__.py +1 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_binning.py +48 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_interpolation.py +70 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/transpose.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp.py +4 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_cuda.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_opencl.py +8 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/utils.py +117 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/fft.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/kernel.py +135 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/memcpy.py +35 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/padding.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/processing.py +62 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/tests/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/utils.py +292 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config.py +265 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config_validators.py +589 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/datadump.py +164 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/dataset_validator.py +211 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/detector_distortion_provider.py +20 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/estimators.py +1012 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fallback_utils.py +149 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked.py +849 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked_cuda.py +152 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/computations.py +260 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/dataset_validator.py +63 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/nabu_config.py +590 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/processconfig.py +825 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/reconstruction.py +851 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/dataset_validator.py +19 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/fbp.py +147 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/filtering.py +246 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/gridded_accumulator.py +575 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded.py +1670 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded_cuda.py +119 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_reconstruction.py +598 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_utils.py +42 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/nabu_config.py +175 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/processconfig.py +62 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/span_strategy.py +483 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_accumulator.py +157 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_pipeline_elements_full.py +355 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_strategy.py +61 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/utils.py +51 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/weight_balancer.py +101 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/params.py +163 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/processconfig.py +210 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/tests/test_chunk_reader.py +78 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/tests/test_estimators.py +149 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/utils.py +116 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/writer.py +193 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/xrdct/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/__init__.py +7 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/alignment.py +11 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd.py +161 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd_cuda.py +169 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf.py +361 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf_cuda.py +142 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/distortion.py +92 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield.py +212 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_cuda.py +174 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_variable_region.py +68 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield.py +448 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_cuda.py +144 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_variable_region.py +79 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase.py +425 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase_cuda.py +143 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift.py +95 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift_cuda.py +102 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/__init__.py +1 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_ccd_corr.py +59 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_ctf.py +250 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_double_flatfield.py +86 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_flatfield.py +626 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_paganin.py +67 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_vshift.py +73 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/convolution_cuda.py +375 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_base.py +163 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_cuda.py +256 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_opencl.py +54 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fftshift.py +134 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram.py +286 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram_cuda.py +103 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/kernel_base.py +126 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/medfilt_cuda.py +159 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd.py +29 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd_cuda.py +68 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_base.py +71 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_cuda.py +75 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_opencl.py +77 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/processing_base.py +123 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/roll_opencl.py +64 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation.py +63 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation_cuda.py +66 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fft.py +268 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fftshift.py +71 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_histogram.py +55 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_medfilt.py +77 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_muladd.py +54 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_padding.py +247 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_roll.py +63 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_rotation.py +83 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_transpose.py +72 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_unsharp.py +106 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/transpose.py +126 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp.py +79 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_cuda.py +53 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_opencl.py +75 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/__init__.py +3 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/cone.py +241 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp.py +124 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_base.py +391 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_opencl.py +78 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering.py +220 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_cuda.py +103 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_opencl.py +111 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/projection.py +240 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor.py +174 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor_cuda.py +44 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings.py +248 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings_cuda.py +322 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram.py +467 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_cuda.py +250 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_opencl.py +40 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/__init__.py +1 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_cone.py +308 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_deringer.py +220 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_fbp.py +252 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_filtering.py +133 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_halftomo.py +100 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_projector.py +164 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_reconstructor.py +93 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_sino_normalization.py +85 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/cli/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/cor.py +5 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/dataset_analyzer.py +469 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/gpu.py +169 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/logger.py +130 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/nxflatfield.py +217 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/templates/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_nxflatfield.py +104 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_units.py +47 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/utils.py +174 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/alignment.py +184 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/config.py +1286 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/definitions.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/frame_composition.py +155 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/overlap.py +373 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/sample_normalization.py +60 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/slurm_utils.py +204 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_alignment.py +99 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_config.py +226 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_frame_composition.py +180 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_overlap.py +98 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_sample_normalization.py +49 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_slurm_utils.py +146 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_utils.py +21 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_z_stitching.py +1183 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/utils.py +563 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/z_stitching.py +2279 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/tests.py +51 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/testutils.py +375 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/algotom_convert_sino.py +276 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/pore3d_deringer_munch.py +108 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomocupy_remove_stripe.py +586 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomopy_phase.py +239 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomwer_load_flats_darks.py +162 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/utils.py +836 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/doc/conf.py +137 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/doc/create_conf_doc.py +38 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/doc/get_mathjax.py +34 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/__init__.py +17 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap.py +88 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap_stitching.py +69 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/cast_volume.py +272 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/cli_configs.py +626 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/compare_volumes.py +94 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/composite_cor.py +144 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/correct_rot.py +70 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/create_distortion_map_from_poly.py +153 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_pix.py +358 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_rot.py +449 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/double_flatfield.py +143 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/generate_header.py +261 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/histogram.py +197 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/multicor.py +90 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/nx_z_splitter.py +125 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/parse_reconstruction_log.py +151 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/prepare_weights_double.py +163 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct.py +120 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct_helical.py +116 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reduce_dark_flat.py +181 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/rotate.py +162 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/shrink_dataset.py +98 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/stitching.py +85 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/tests/test_reduce_dark_flat.py +78 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/utils.py +33 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/validator.py +110 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/convolution.py +8 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/fft.py +4 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/kernel.py +97 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/medfilt.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/padding.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/processing.py +75 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/tests/__init__.py +1 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/utils.py +331 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/__init__.py +12 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/alignment.py +578 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor.py +1621 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor_sino.py +183 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/distortion.py +112 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/focus.py +362 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_alignment.py +70 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_cor.py +472 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_focus.py +105 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_tilt.py +41 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_translation.py +78 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tilt.py +214 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/translation.py +193 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/utils.py +39 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/__init__.py +2 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/cast_volume.py +371 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/detector_distortion.py +305 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/reader.py +628 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/reader_helical.py +114 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_cast_volume.py +339 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_detector_distortion.py +178 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_writers.py +187 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tiffwriter_zmm.py +99 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/utils.py +263 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/writer.py +892 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/binning.py +98 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/fftshift.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/filters.py +24 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/fourier_filters.py +152 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram_cuda.py +8 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/kernel_base.py +4 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/padding.py +83 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/padding_base.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/processing_base.py +4 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation_cuda.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/__init__.py +1 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_binning.py +48 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_interpolation.py +70 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/transpose.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp.py +4 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_cuda.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_opencl.py +8 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/utils.py +117 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/fft.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/kernel.py +135 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/memcpy.py +35 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/padding.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/processing.py +62 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/tests/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/utils.py +292 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config.py +265 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config_validators.py +589 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/datadump.py +164 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/dataset_validator.py +211 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/detector_distortion_provider.py +20 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/estimators.py +1012 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fallback_utils.py +149 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked.py +849 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked_cuda.py +152 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/computations.py +260 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/dataset_validator.py +63 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/nabu_config.py +590 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/processconfig.py +825 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/reconstruction.py +851 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/dataset_validator.py +19 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/fbp.py +147 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/filtering.py +246 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/gridded_accumulator.py +575 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded.py +1670 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded_cuda.py +119 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_reconstruction.py +598 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_utils.py +42 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/nabu_config.py +175 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/processconfig.py +62 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/span_strategy.py +483 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_accumulator.py +157 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_pipeline_elements_full.py +355 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_strategy.py +61 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/utils.py +51 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/weight_balancer.py +101 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/params.py +163 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/processconfig.py +210 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/tests/test_chunk_reader.py +78 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/tests/test_estimators.py +149 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/utils.py +116 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/writer.py +193 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/xrdct/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/__init__.py +7 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/alignment.py +11 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd.py +161 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd_cuda.py +169 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf.py +361 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf_cuda.py +142 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/distortion.py +92 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield.py +212 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_cuda.py +174 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_variable_region.py +68 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield.py +448 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_cuda.py +144 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_variable_region.py +79 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase.py +425 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase_cuda.py +143 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift.py +95 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift_cuda.py +102 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/__init__.py +1 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_ccd_corr.py +59 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_ctf.py +250 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_double_flatfield.py +86 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_flatfield.py +626 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_paganin.py +67 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_vshift.py +73 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/convolution_cuda.py +375 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_base.py +163 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_cuda.py +256 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_opencl.py +54 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fftshift.py +134 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram.py +286 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram_cuda.py +103 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/kernel_base.py +126 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/medfilt_cuda.py +159 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd.py +29 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd_cuda.py +68 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_base.py +71 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_cuda.py +75 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_opencl.py +77 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/processing_base.py +123 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/roll_opencl.py +64 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation.py +63 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation_cuda.py +66 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fft.py +268 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fftshift.py +71 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_histogram.py +55 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_medfilt.py +77 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_muladd.py +54 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_padding.py +247 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_roll.py +63 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_rotation.py +83 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_transpose.py +72 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_unsharp.py +106 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/transpose.py +126 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp.py +79 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_cuda.py +53 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_opencl.py +75 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/__init__.py +3 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/cone.py +241 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp.py +124 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_base.py +391 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_opencl.py +78 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering.py +220 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_cuda.py +103 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_opencl.py +111 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/projection.py +240 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor.py +174 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor_cuda.py +44 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings.py +248 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings_cuda.py +322 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram.py +467 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_cuda.py +250 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_opencl.py +40 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/__init__.py +1 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_cone.py +308 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_deringer.py +220 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_fbp.py +252 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_filtering.py +133 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_halftomo.py +100 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_projector.py +164 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_reconstructor.py +93 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_sino_normalization.py +85 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/cli/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/cor.py +5 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/dataset_analyzer.py +469 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/gpu.py +169 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/logger.py +130 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/nxflatfield.py +217 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/templates/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_nxflatfield.py +104 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_units.py +47 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/utils.py +174 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/alignment.py +184 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/config.py +1286 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/definitions.py +6 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/frame_composition.py +155 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/overlap.py +373 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/sample_normalization.py +60 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/slurm_utils.py +204 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_alignment.py +99 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_config.py +226 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_frame_composition.py +180 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_overlap.py +98 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_sample_normalization.py +49 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_slurm_utils.py +146 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_utils.py +21 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_z_stitching.py +1183 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/utils.py +563 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/z_stitching.py +2279 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/tests.py +51 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/testutils.py +375 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/algotom_convert_sino.py +276 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/pore3d_deringer_munch.py +108 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomocupy_remove_stripe.py +586 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomopy_phase.py +239 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomwer_load_flats_darks.py +162 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/nabu/utils.py +836 -0
- build/lib/build/lib/build/lib/build/lib/doc/conf.py +137 -0
- build/lib/build/lib/build/lib/build/lib/doc/create_conf_doc.py +38 -0
- build/lib/build/lib/build/lib/build/lib/doc/get_mathjax.py +34 -0
- build/lib/build/lib/build/lib/build/lib/nabu/__init__.py +17 -0
- build/lib/build/lib/build/lib/build/lib/nabu/app/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap.py +88 -0
- build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap_stitching.py +69 -0
- build/lib/build/lib/build/lib/build/lib/nabu/app/cast_volume.py +272 -0
- build/lib/build/lib/build/lib/build/lib/nabu/app/cli_configs.py +626 -0
- build/lib/build/lib/build/lib/build/lib/nabu/app/compare_volumes.py +94 -0
- build/lib/build/lib/build/lib/build/lib/nabu/app/composite_cor.py +144 -0
- build/lib/build/lib/build/lib/build/lib/nabu/app/correct_rot.py +70 -0
- build/lib/build/lib/build/lib/build/lib/nabu/app/create_distortion_map_from_poly.py +153 -0
- build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_pix.py +358 -0
- build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_rot.py +449 -0
- build/lib/build/lib/build/lib/build/lib/nabu/app/double_flatfield.py +143 -0
- build/lib/build/lib/build/lib/build/lib/nabu/app/generate_header.py +261 -0
- build/lib/build/lib/build/lib/build/lib/nabu/app/histogram.py +197 -0
- build/lib/build/lib/build/lib/build/lib/nabu/app/multicor.py +90 -0
- build/lib/build/lib/build/lib/build/lib/nabu/app/nx_z_splitter.py +125 -0
- build/lib/build/lib/build/lib/build/lib/nabu/app/parse_reconstruction_log.py +151 -0
- build/lib/build/lib/build/lib/build/lib/nabu/app/prepare_weights_double.py +163 -0
- build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct.py +120 -0
- build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct_helical.py +116 -0
- build/lib/build/lib/build/lib/build/lib/nabu/app/reduce_dark_flat.py +181 -0
- build/lib/build/lib/build/lib/build/lib/nabu/app/rotate.py +162 -0
- build/lib/build/lib/build/lib/build/lib/nabu/app/shrink_dataset.py +98 -0
- build/lib/build/lib/build/lib/build/lib/nabu/app/stitching.py +85 -0
- build/lib/build/lib/build/lib/build/lib/nabu/app/tests/test_reduce_dark_flat.py +78 -0
- build/lib/build/lib/build/lib/build/lib/nabu/app/utils.py +33 -0
- build/lib/build/lib/build/lib/build/lib/nabu/app/validator.py +110 -0
- build/lib/build/lib/build/lib/build/lib/nabu/cuda/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/nabu/cuda/convolution.py +8 -0
- build/lib/build/lib/build/lib/build/lib/nabu/cuda/fft.py +4 -0
- build/lib/build/lib/build/lib/build/lib/nabu/cuda/kernel.py +97 -0
- build/lib/build/lib/build/lib/build/lib/nabu/cuda/medfilt.py +6 -0
- build/lib/build/lib/build/lib/build/lib/nabu/cuda/padding.py +6 -0
- build/lib/build/lib/build/lib/build/lib/nabu/cuda/processing.py +75 -0
- build/lib/build/lib/build/lib/build/lib/nabu/cuda/tests/__init__.py +1 -0
- build/lib/build/lib/build/lib/build/lib/nabu/cuda/utils.py +331 -0
- build/lib/build/lib/build/lib/build/lib/nabu/estimation/__init__.py +12 -0
- build/lib/build/lib/build/lib/build/lib/nabu/estimation/alignment.py +578 -0
- build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor.py +1621 -0
- build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor_sino.py +183 -0
- build/lib/build/lib/build/lib/build/lib/nabu/estimation/distortion.py +112 -0
- build/lib/build/lib/build/lib/build/lib/nabu/estimation/focus.py +362 -0
- build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_alignment.py +70 -0
- build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_cor.py +472 -0
- build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_focus.py +105 -0
- build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_tilt.py +41 -0
- build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_translation.py +78 -0
- build/lib/build/lib/build/lib/build/lib/nabu/estimation/tilt.py +214 -0
- build/lib/build/lib/build/lib/build/lib/nabu/estimation/translation.py +193 -0
- build/lib/build/lib/build/lib/build/lib/nabu/estimation/utils.py +39 -0
- build/lib/build/lib/build/lib/build/lib/nabu/io/__init__.py +2 -0
- build/lib/build/lib/build/lib/build/lib/nabu/io/cast_volume.py +371 -0
- build/lib/build/lib/build/lib/build/lib/nabu/io/detector_distortion.py +305 -0
- build/lib/build/lib/build/lib/build/lib/nabu/io/reader.py +628 -0
- build/lib/build/lib/build/lib/build/lib/nabu/io/reader_helical.py +114 -0
- build/lib/build/lib/build/lib/build/lib/nabu/io/tests/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_cast_volume.py +339 -0
- build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_detector_distortion.py +178 -0
- build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_writers.py +187 -0
- build/lib/build/lib/build/lib/build/lib/nabu/io/tiffwriter_zmm.py +99 -0
- build/lib/build/lib/build/lib/build/lib/nabu/io/utils.py +263 -0
- build/lib/build/lib/build/lib/build/lib/nabu/io/writer.py +892 -0
- build/lib/build/lib/build/lib/build/lib/nabu/misc/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/nabu/misc/binning.py +98 -0
- build/lib/build/lib/build/lib/build/lib/nabu/misc/fftshift.py +6 -0
- build/lib/build/lib/build/lib/build/lib/nabu/misc/filters.py +24 -0
- build/lib/build/lib/build/lib/build/lib/nabu/misc/fourier_filters.py +152 -0
- build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram.py +6 -0
- build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram_cuda.py +8 -0
- build/lib/build/lib/build/lib/build/lib/nabu/misc/kernel_base.py +4 -0
- build/lib/build/lib/build/lib/build/lib/nabu/misc/padding.py +83 -0
- build/lib/build/lib/build/lib/build/lib/nabu/misc/padding_base.py +6 -0
- build/lib/build/lib/build/lib/build/lib/nabu/misc/processing_base.py +4 -0
- build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation.py +6 -0
- build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation_cuda.py +6 -0
- build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/__init__.py +1 -0
- build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_binning.py +48 -0
- build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_interpolation.py +70 -0
- build/lib/build/lib/build/lib/build/lib/nabu/misc/transpose.py +6 -0
- build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp.py +4 -0
- build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_cuda.py +6 -0
- build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_opencl.py +8 -0
- build/lib/build/lib/build/lib/build/lib/nabu/misc/utils.py +117 -0
- build/lib/build/lib/build/lib/build/lib/nabu/opencl/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/nabu/opencl/fft.py +6 -0
- build/lib/build/lib/build/lib/build/lib/nabu/opencl/kernel.py +135 -0
- build/lib/build/lib/build/lib/build/lib/nabu/opencl/memcpy.py +35 -0
- build/lib/build/lib/build/lib/build/lib/nabu/opencl/padding.py +6 -0
- build/lib/build/lib/build/lib/build/lib/nabu/opencl/processing.py +62 -0
- build/lib/build/lib/build/lib/build/lib/nabu/opencl/tests/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/nabu/opencl/utils.py +292 -0
- build/lib/build/lib/build/lib/build/lib/nabu/pipeline/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config.py +265 -0
- build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config_validators.py +589 -0
- build/lib/build/lib/build/lib/build/lib/nabu/pipeline/datadump.py +164 -0
- build/lib/build/lib/build/lib/build/lib/nabu/pipeline/dataset_validator.py +211 -0
- build/lib/build/lib/build/lib/build/lib/nabu/pipeline/detector_distortion_provider.py +20 -0
- build/lib/build/lib/build/lib/build/lib/nabu/pipeline/estimators.py +1012 -0
- build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fallback_utils.py +149 -0
- build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked.py +849 -0
- build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked_cuda.py +152 -0
- build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/computations.py +260 -0
- build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/dataset_validator.py +63 -0
- build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/nabu_config.py +590 -0
- build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/processconfig.py +825 -0
- build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/reconstruction.py +851 -0
- build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/dataset_validator.py +19 -0
- build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/fbp.py +147 -0
- build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/filtering.py +246 -0
- build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/gridded_accumulator.py +575 -0
- build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded.py +1670 -0
- build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded_cuda.py +119 -0
- build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_reconstruction.py +598 -0
- build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_utils.py +42 -0
- build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/nabu_config.py +175 -0
- build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/processconfig.py +62 -0
- build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/span_strategy.py +483 -0
- build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_accumulator.py +157 -0
- build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_pipeline_elements_full.py +355 -0
- build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_strategy.py +61 -0
- build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/utils.py +51 -0
- build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/weight_balancer.py +101 -0
- build/lib/build/lib/build/lib/build/lib/nabu/pipeline/params.py +163 -0
- build/lib/build/lib/build/lib/build/lib/nabu/pipeline/processconfig.py +210 -0
- build/lib/build/lib/build/lib/build/lib/nabu/pipeline/tests/test_chunk_reader.py +78 -0
- build/lib/build/lib/build/lib/build/lib/nabu/pipeline/tests/test_estimators.py +149 -0
- build/lib/build/lib/build/lib/build/lib/nabu/pipeline/utils.py +116 -0
- build/lib/build/lib/build/lib/build/lib/nabu/pipeline/writer.py +193 -0
- build/lib/build/lib/build/lib/build/lib/nabu/pipeline/xrdct/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/nabu/preproc/__init__.py +7 -0
- build/lib/build/lib/build/lib/build/lib/nabu/preproc/alignment.py +11 -0
- build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd.py +161 -0
- build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd_cuda.py +169 -0
- build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf.py +361 -0
- build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf_cuda.py +142 -0
- build/lib/build/lib/build/lib/build/lib/nabu/preproc/distortion.py +92 -0
- build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield.py +212 -0
- build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_cuda.py +174 -0
- build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_variable_region.py +68 -0
- build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield.py +448 -0
- build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_cuda.py +144 -0
- build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_variable_region.py +79 -0
- build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase.py +425 -0
- build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase_cuda.py +143 -0
- build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift.py +95 -0
- build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift_cuda.py +102 -0
- build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/__init__.py +1 -0
- build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_ccd_corr.py +59 -0
- build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_ctf.py +250 -0
- build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_double_flatfield.py +86 -0
- build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_flatfield.py +626 -0
- build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_paganin.py +67 -0
- build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_vshift.py +73 -0
- build/lib/build/lib/build/lib/build/lib/nabu/processing/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/nabu/processing/convolution_cuda.py +375 -0
- build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_base.py +163 -0
- build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_cuda.py +256 -0
- build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_opencl.py +54 -0
- build/lib/build/lib/build/lib/build/lib/nabu/processing/fftshift.py +134 -0
- build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram.py +286 -0
- build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram_cuda.py +103 -0
- build/lib/build/lib/build/lib/build/lib/nabu/processing/kernel_base.py +126 -0
- build/lib/build/lib/build/lib/build/lib/nabu/processing/medfilt_cuda.py +159 -0
- build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd.py +29 -0
- build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd_cuda.py +68 -0
- build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_base.py +71 -0
- build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_cuda.py +75 -0
- build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_opencl.py +77 -0
- build/lib/build/lib/build/lib/build/lib/nabu/processing/processing_base.py +123 -0
- build/lib/build/lib/build/lib/build/lib/nabu/processing/roll_opencl.py +64 -0
- build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation.py +63 -0
- build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation_cuda.py +66 -0
- build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fft.py +268 -0
- build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fftshift.py +71 -0
- build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_histogram.py +55 -0
- build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_medfilt.py +77 -0
- build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_muladd.py +54 -0
- build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_padding.py +247 -0
- build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_roll.py +63 -0
- build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_rotation.py +83 -0
- build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_transpose.py +72 -0
- build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_unsharp.py +106 -0
- build/lib/build/lib/build/lib/build/lib/nabu/processing/transpose.py +126 -0
- build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp.py +79 -0
- build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_cuda.py +53 -0
- build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_opencl.py +75 -0
- build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/__init__.py +3 -0
- build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/cone.py +241 -0
- build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp.py +124 -0
- build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_base.py +391 -0
- build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_opencl.py +78 -0
- build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering.py +220 -0
- build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_cuda.py +103 -0
- build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_opencl.py +111 -0
- build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/projection.py +240 -0
- build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor.py +174 -0
- build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor_cuda.py +44 -0
- build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings.py +248 -0
- build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings_cuda.py +322 -0
- build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram.py +467 -0
- build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_cuda.py +250 -0
- build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_opencl.py +40 -0
- build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/__init__.py +1 -0
- build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_cone.py +308 -0
- build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_deringer.py +220 -0
- build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_fbp.py +252 -0
- build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_filtering.py +133 -0
- build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_halftomo.py +100 -0
- build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_projector.py +164 -0
- build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_reconstructor.py +93 -0
- build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_sino_normalization.py +85 -0
- build/lib/build/lib/build/lib/build/lib/nabu/resources/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/nabu/resources/cli/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/nabu/resources/cor.py +5 -0
- build/lib/build/lib/build/lib/build/lib/nabu/resources/dataset_analyzer.py +469 -0
- build/lib/build/lib/build/lib/build/lib/nabu/resources/gpu.py +169 -0
- build/lib/build/lib/build/lib/build/lib/nabu/resources/logger.py +130 -0
- build/lib/build/lib/build/lib/build/lib/nabu/resources/nxflatfield.py +217 -0
- build/lib/build/lib/build/lib/build/lib/nabu/resources/templates/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_nxflatfield.py +104 -0
- build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_units.py +47 -0
- build/lib/build/lib/build/lib/build/lib/nabu/resources/utils.py +174 -0
- build/lib/build/lib/build/lib/build/lib/nabu/stitching/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/nabu/stitching/alignment.py +184 -0
- build/lib/build/lib/build/lib/build/lib/nabu/stitching/config.py +1286 -0
- build/lib/build/lib/build/lib/build/lib/nabu/stitching/definitions.py +6 -0
- build/lib/build/lib/build/lib/build/lib/nabu/stitching/frame_composition.py +155 -0
- build/lib/build/lib/build/lib/build/lib/nabu/stitching/overlap.py +373 -0
- build/lib/build/lib/build/lib/build/lib/nabu/stitching/sample_normalization.py +60 -0
- build/lib/build/lib/build/lib/build/lib/nabu/stitching/slurm_utils.py +204 -0
- build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_alignment.py +99 -0
- build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_config.py +226 -0
- build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_frame_composition.py +180 -0
- build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_overlap.py +98 -0
- build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_sample_normalization.py +49 -0
- build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_slurm_utils.py +146 -0
- build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_utils.py +21 -0
- build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_z_stitching.py +1183 -0
- build/lib/build/lib/build/lib/build/lib/nabu/stitching/utils.py +563 -0
- build/lib/build/lib/build/lib/build/lib/nabu/stitching/z_stitching.py +2279 -0
- build/lib/build/lib/build/lib/build/lib/nabu/tests.py +51 -0
- build/lib/build/lib/build/lib/build/lib/nabu/testutils.py +375 -0
- build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/algotom_convert_sino.py +276 -0
- build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/pore3d_deringer_munch.py +108 -0
- build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomocupy_remove_stripe.py +586 -0
- build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomopy_phase.py +239 -0
- build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomwer_load_flats_darks.py +162 -0
- build/lib/build/lib/build/lib/build/lib/nabu/utils.py +836 -0
- build/lib/build/lib/build/lib/doc/conf.py +137 -0
- build/lib/build/lib/build/lib/doc/create_conf_doc.py +38 -0
- build/lib/build/lib/build/lib/doc/get_mathjax.py +34 -0
- build/lib/build/lib/build/lib/nabu/__init__.py +17 -0
- build/lib/build/lib/build/lib/nabu/app/__init__.py +0 -0
- build/lib/build/lib/build/lib/nabu/app/bootstrap.py +88 -0
- build/lib/build/lib/build/lib/nabu/app/bootstrap_stitching.py +69 -0
- build/lib/build/lib/build/lib/nabu/app/cast_volume.py +272 -0
- build/lib/build/lib/build/lib/nabu/app/cli_configs.py +626 -0
- build/lib/build/lib/build/lib/nabu/app/compare_volumes.py +94 -0
- build/lib/build/lib/build/lib/nabu/app/composite_cor.py +144 -0
- build/lib/build/lib/build/lib/nabu/app/correct_rot.py +70 -0
- build/lib/build/lib/build/lib/nabu/app/create_distortion_map_from_poly.py +153 -0
- build/lib/build/lib/build/lib/nabu/app/diag_to_pix.py +358 -0
- build/lib/build/lib/build/lib/nabu/app/diag_to_rot.py +449 -0
- build/lib/build/lib/build/lib/nabu/app/double_flatfield.py +143 -0
- build/lib/build/lib/build/lib/nabu/app/generate_header.py +261 -0
- build/lib/build/lib/build/lib/nabu/app/histogram.py +197 -0
- build/lib/build/lib/build/lib/nabu/app/multicor.py +90 -0
- build/lib/build/lib/build/lib/nabu/app/nx_z_splitter.py +125 -0
- build/lib/build/lib/build/lib/nabu/app/parse_reconstruction_log.py +151 -0
- build/lib/build/lib/build/lib/nabu/app/prepare_weights_double.py +163 -0
- build/lib/build/lib/build/lib/nabu/app/reconstruct.py +120 -0
- build/lib/build/lib/build/lib/nabu/app/reconstruct_helical.py +116 -0
- build/lib/build/lib/build/lib/nabu/app/reduce_dark_flat.py +181 -0
- build/lib/build/lib/build/lib/nabu/app/rotate.py +162 -0
- build/lib/build/lib/build/lib/nabu/app/shrink_dataset.py +98 -0
- build/lib/build/lib/build/lib/nabu/app/stitching.py +85 -0
- build/lib/build/lib/build/lib/nabu/app/tests/test_reduce_dark_flat.py +78 -0
- build/lib/build/lib/build/lib/nabu/app/utils.py +33 -0
- build/lib/build/lib/build/lib/nabu/app/validator.py +110 -0
- build/lib/build/lib/build/lib/nabu/cuda/__init__.py +0 -0
- build/lib/build/lib/build/lib/nabu/cuda/convolution.py +8 -0
- build/lib/build/lib/build/lib/nabu/cuda/fft.py +4 -0
- build/lib/build/lib/build/lib/nabu/cuda/kernel.py +97 -0
- build/lib/build/lib/build/lib/nabu/cuda/medfilt.py +6 -0
- build/lib/build/lib/build/lib/nabu/cuda/padding.py +6 -0
- build/lib/build/lib/build/lib/nabu/cuda/processing.py +75 -0
- build/lib/build/lib/build/lib/nabu/cuda/tests/__init__.py +1 -0
- build/lib/build/lib/build/lib/nabu/cuda/utils.py +331 -0
- build/lib/build/lib/build/lib/nabu/estimation/__init__.py +12 -0
- build/lib/build/lib/build/lib/nabu/estimation/alignment.py +578 -0
- build/lib/build/lib/build/lib/nabu/estimation/cor.py +1621 -0
- build/lib/build/lib/build/lib/nabu/estimation/cor_sino.py +183 -0
- build/lib/build/lib/build/lib/nabu/estimation/distortion.py +112 -0
- build/lib/build/lib/build/lib/nabu/estimation/focus.py +362 -0
- build/lib/build/lib/build/lib/nabu/estimation/tests/__init__.py +0 -0
- build/lib/build/lib/build/lib/nabu/estimation/tests/test_alignment.py +70 -0
- build/lib/build/lib/build/lib/nabu/estimation/tests/test_cor.py +472 -0
- build/lib/build/lib/build/lib/nabu/estimation/tests/test_focus.py +105 -0
- build/lib/build/lib/build/lib/nabu/estimation/tests/test_tilt.py +41 -0
- build/lib/build/lib/build/lib/nabu/estimation/tests/test_translation.py +78 -0
- build/lib/build/lib/build/lib/nabu/estimation/tilt.py +214 -0
- build/lib/build/lib/build/lib/nabu/estimation/translation.py +193 -0
- build/lib/build/lib/build/lib/nabu/estimation/utils.py +39 -0
- build/lib/build/lib/build/lib/nabu/io/__init__.py +2 -0
- build/lib/build/lib/build/lib/nabu/io/cast_volume.py +371 -0
- build/lib/build/lib/build/lib/nabu/io/detector_distortion.py +305 -0
- build/lib/build/lib/build/lib/nabu/io/reader.py +628 -0
- build/lib/build/lib/build/lib/nabu/io/reader_helical.py +114 -0
- build/lib/build/lib/build/lib/nabu/io/tests/__init__.py +0 -0
- build/lib/build/lib/build/lib/nabu/io/tests/test_cast_volume.py +339 -0
- build/lib/build/lib/build/lib/nabu/io/tests/test_detector_distortion.py +178 -0
- build/lib/build/lib/build/lib/nabu/io/tests/test_writers.py +187 -0
- build/lib/build/lib/build/lib/nabu/io/tiffwriter_zmm.py +99 -0
- build/lib/build/lib/build/lib/nabu/io/utils.py +263 -0
- build/lib/build/lib/build/lib/nabu/io/writer.py +892 -0
- build/lib/build/lib/build/lib/nabu/misc/__init__.py +0 -0
- build/lib/build/lib/build/lib/nabu/misc/binning.py +98 -0
- build/lib/build/lib/build/lib/nabu/misc/fftshift.py +6 -0
- build/lib/build/lib/build/lib/nabu/misc/filters.py +24 -0
- build/lib/build/lib/build/lib/nabu/misc/fourier_filters.py +152 -0
- build/lib/build/lib/build/lib/nabu/misc/histogram.py +6 -0
- build/lib/build/lib/build/lib/nabu/misc/histogram_cuda.py +8 -0
- build/lib/build/lib/build/lib/nabu/misc/kernel_base.py +4 -0
- build/lib/build/lib/build/lib/nabu/misc/padding.py +83 -0
- build/lib/build/lib/build/lib/nabu/misc/padding_base.py +6 -0
- build/lib/build/lib/build/lib/nabu/misc/processing_base.py +4 -0
- build/lib/build/lib/build/lib/nabu/misc/rotation.py +6 -0
- build/lib/build/lib/build/lib/nabu/misc/rotation_cuda.py +6 -0
- build/lib/build/lib/build/lib/nabu/misc/tests/__init__.py +1 -0
- build/lib/build/lib/build/lib/nabu/misc/tests/test_binning.py +48 -0
- build/lib/build/lib/build/lib/nabu/misc/tests/test_interpolation.py +70 -0
- build/lib/build/lib/build/lib/nabu/misc/transpose.py +6 -0
- build/lib/build/lib/build/lib/nabu/misc/unsharp.py +4 -0
- build/lib/build/lib/build/lib/nabu/misc/unsharp_cuda.py +6 -0
- build/lib/build/lib/build/lib/nabu/misc/unsharp_opencl.py +8 -0
- build/lib/build/lib/build/lib/nabu/misc/utils.py +117 -0
- build/lib/build/lib/build/lib/nabu/opencl/__init__.py +0 -0
- build/lib/build/lib/build/lib/nabu/opencl/fft.py +6 -0
- build/lib/build/lib/build/lib/nabu/opencl/kernel.py +135 -0
- build/lib/build/lib/build/lib/nabu/opencl/memcpy.py +35 -0
- build/lib/build/lib/build/lib/nabu/opencl/padding.py +6 -0
- build/lib/build/lib/build/lib/nabu/opencl/processing.py +62 -0
- build/lib/build/lib/build/lib/nabu/opencl/tests/__init__.py +0 -0
- build/lib/build/lib/build/lib/nabu/opencl/utils.py +292 -0
- build/lib/build/lib/build/lib/nabu/pipeline/__init__.py +0 -0
- build/lib/build/lib/build/lib/nabu/pipeline/config.py +265 -0
- build/lib/build/lib/build/lib/nabu/pipeline/config_validators.py +589 -0
- build/lib/build/lib/build/lib/nabu/pipeline/datadump.py +164 -0
- build/lib/build/lib/build/lib/nabu/pipeline/dataset_validator.py +211 -0
- build/lib/build/lib/build/lib/nabu/pipeline/detector_distortion_provider.py +20 -0
- build/lib/build/lib/build/lib/nabu/pipeline/estimators.py +1012 -0
- build/lib/build/lib/build/lib/nabu/pipeline/fallback_utils.py +149 -0
- build/lib/build/lib/build/lib/nabu/pipeline/fullfield/__init__.py +0 -0
- build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked.py +849 -0
- build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked_cuda.py +152 -0
- build/lib/build/lib/build/lib/nabu/pipeline/fullfield/computations.py +260 -0
- build/lib/build/lib/build/lib/nabu/pipeline/fullfield/dataset_validator.py +63 -0
- build/lib/build/lib/build/lib/nabu/pipeline/fullfield/nabu_config.py +590 -0
- build/lib/build/lib/build/lib/nabu/pipeline/fullfield/processconfig.py +825 -0
- build/lib/build/lib/build/lib/nabu/pipeline/fullfield/reconstruction.py +851 -0
- build/lib/build/lib/build/lib/nabu/pipeline/helical/__init__.py +0 -0
- build/lib/build/lib/build/lib/nabu/pipeline/helical/dataset_validator.py +19 -0
- build/lib/build/lib/build/lib/nabu/pipeline/helical/fbp.py +147 -0
- build/lib/build/lib/build/lib/nabu/pipeline/helical/filtering.py +246 -0
- build/lib/build/lib/build/lib/nabu/pipeline/helical/gridded_accumulator.py +575 -0
- build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded.py +1670 -0
- build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded_cuda.py +119 -0
- build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_reconstruction.py +598 -0
- build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_utils.py +42 -0
- build/lib/build/lib/build/lib/nabu/pipeline/helical/nabu_config.py +175 -0
- build/lib/build/lib/build/lib/nabu/pipeline/helical/processconfig.py +62 -0
- build/lib/build/lib/build/lib/nabu/pipeline/helical/span_strategy.py +483 -0
- build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/__init__.py +0 -0
- build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_accumulator.py +157 -0
- build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_pipeline_elements_full.py +355 -0
- build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_strategy.py +61 -0
- build/lib/build/lib/build/lib/nabu/pipeline/helical/utils.py +51 -0
- build/lib/build/lib/build/lib/nabu/pipeline/helical/weight_balancer.py +101 -0
- build/lib/build/lib/build/lib/nabu/pipeline/params.py +163 -0
- build/lib/build/lib/build/lib/nabu/pipeline/processconfig.py +210 -0
- build/lib/build/lib/build/lib/nabu/pipeline/tests/test_chunk_reader.py +78 -0
- build/lib/build/lib/build/lib/nabu/pipeline/tests/test_estimators.py +149 -0
- build/lib/build/lib/build/lib/nabu/pipeline/utils.py +116 -0
- build/lib/build/lib/build/lib/nabu/pipeline/writer.py +193 -0
- build/lib/build/lib/build/lib/nabu/pipeline/xrdct/__init__.py +0 -0
- build/lib/build/lib/build/lib/nabu/preproc/__init__.py +7 -0
- build/lib/build/lib/build/lib/nabu/preproc/alignment.py +11 -0
- build/lib/build/lib/build/lib/nabu/preproc/ccd.py +161 -0
- build/lib/build/lib/build/lib/nabu/preproc/ccd_cuda.py +169 -0
- build/lib/build/lib/build/lib/nabu/preproc/ctf.py +361 -0
- build/lib/build/lib/build/lib/nabu/preproc/ctf_cuda.py +142 -0
- build/lib/build/lib/build/lib/nabu/preproc/distortion.py +92 -0
- build/lib/build/lib/build/lib/nabu/preproc/double_flatfield.py +212 -0
- build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_cuda.py +174 -0
- build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_variable_region.py +68 -0
- build/lib/build/lib/build/lib/nabu/preproc/flatfield.py +448 -0
- build/lib/build/lib/build/lib/nabu/preproc/flatfield_cuda.py +144 -0
- build/lib/build/lib/build/lib/nabu/preproc/flatfield_variable_region.py +79 -0
- build/lib/build/lib/build/lib/nabu/preproc/phase.py +425 -0
- build/lib/build/lib/build/lib/nabu/preproc/phase_cuda.py +143 -0
- build/lib/build/lib/build/lib/nabu/preproc/shift.py +95 -0
- build/lib/build/lib/build/lib/nabu/preproc/shift_cuda.py +102 -0
- build/lib/build/lib/build/lib/nabu/preproc/tests/__init__.py +1 -0
- build/lib/build/lib/build/lib/nabu/preproc/tests/test_ccd_corr.py +59 -0
- build/lib/build/lib/build/lib/nabu/preproc/tests/test_ctf.py +250 -0
- build/lib/build/lib/build/lib/nabu/preproc/tests/test_double_flatfield.py +86 -0
- build/lib/build/lib/build/lib/nabu/preproc/tests/test_flatfield.py +626 -0
- build/lib/build/lib/build/lib/nabu/preproc/tests/test_paganin.py +67 -0
- build/lib/build/lib/build/lib/nabu/preproc/tests/test_vshift.py +73 -0
- build/lib/build/lib/build/lib/nabu/processing/__init__.py +0 -0
- build/lib/build/lib/build/lib/nabu/processing/convolution_cuda.py +375 -0
- build/lib/build/lib/build/lib/nabu/processing/fft_base.py +163 -0
- build/lib/build/lib/build/lib/nabu/processing/fft_cuda.py +256 -0
- build/lib/build/lib/build/lib/nabu/processing/fft_opencl.py +54 -0
- build/lib/build/lib/build/lib/nabu/processing/fftshift.py +134 -0
- build/lib/build/lib/build/lib/nabu/processing/histogram.py +286 -0
- build/lib/build/lib/build/lib/nabu/processing/histogram_cuda.py +103 -0
- build/lib/build/lib/build/lib/nabu/processing/kernel_base.py +126 -0
- build/lib/build/lib/build/lib/nabu/processing/medfilt_cuda.py +159 -0
- build/lib/build/lib/build/lib/nabu/processing/muladd.py +29 -0
- build/lib/build/lib/build/lib/nabu/processing/muladd_cuda.py +68 -0
- build/lib/build/lib/build/lib/nabu/processing/padding_base.py +71 -0
- build/lib/build/lib/build/lib/nabu/processing/padding_cuda.py +75 -0
- build/lib/build/lib/build/lib/nabu/processing/padding_opencl.py +77 -0
- build/lib/build/lib/build/lib/nabu/processing/processing_base.py +123 -0
- build/lib/build/lib/build/lib/nabu/processing/roll_opencl.py +64 -0
- build/lib/build/lib/build/lib/nabu/processing/rotation.py +63 -0
- build/lib/build/lib/build/lib/nabu/processing/rotation_cuda.py +66 -0
- build/lib/build/lib/build/lib/nabu/processing/tests/__init__.py +0 -0
- build/lib/build/lib/build/lib/nabu/processing/tests/test_fft.py +268 -0
- build/lib/build/lib/build/lib/nabu/processing/tests/test_fftshift.py +71 -0
- build/lib/build/lib/build/lib/nabu/processing/tests/test_histogram.py +55 -0
- build/lib/build/lib/build/lib/nabu/processing/tests/test_medfilt.py +77 -0
- build/lib/build/lib/build/lib/nabu/processing/tests/test_muladd.py +54 -0
- build/lib/build/lib/build/lib/nabu/processing/tests/test_padding.py +247 -0
- build/lib/build/lib/build/lib/nabu/processing/tests/test_roll.py +63 -0
- build/lib/build/lib/build/lib/nabu/processing/tests/test_rotation.py +83 -0
- build/lib/build/lib/build/lib/nabu/processing/tests/test_transpose.py +72 -0
- build/lib/build/lib/build/lib/nabu/processing/tests/test_unsharp.py +106 -0
- build/lib/build/lib/build/lib/nabu/processing/transpose.py +126 -0
- build/lib/build/lib/build/lib/nabu/processing/unsharp.py +79 -0
- build/lib/build/lib/build/lib/nabu/processing/unsharp_cuda.py +53 -0
- build/lib/build/lib/build/lib/nabu/processing/unsharp_opencl.py +75 -0
- build/lib/build/lib/build/lib/nabu/reconstruction/__init__.py +3 -0
- build/lib/build/lib/build/lib/nabu/reconstruction/cone.py +241 -0
- build/lib/build/lib/build/lib/nabu/reconstruction/fbp.py +124 -0
- build/lib/build/lib/build/lib/nabu/reconstruction/fbp_base.py +391 -0
- build/lib/build/lib/build/lib/nabu/reconstruction/fbp_opencl.py +78 -0
- build/lib/build/lib/build/lib/nabu/reconstruction/filtering.py +220 -0
- build/lib/build/lib/build/lib/nabu/reconstruction/filtering_cuda.py +103 -0
- build/lib/build/lib/build/lib/nabu/reconstruction/filtering_opencl.py +111 -0
- build/lib/build/lib/build/lib/nabu/reconstruction/projection.py +240 -0
- build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor.py +174 -0
- build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor_cuda.py +44 -0
- build/lib/build/lib/build/lib/nabu/reconstruction/rings.py +248 -0
- build/lib/build/lib/build/lib/nabu/reconstruction/rings_cuda.py +322 -0
- build/lib/build/lib/build/lib/nabu/reconstruction/sinogram.py +467 -0
- build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_cuda.py +250 -0
- build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_opencl.py +40 -0
- build/lib/build/lib/build/lib/nabu/reconstruction/tests/__init__.py +1 -0
- build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_cone.py +308 -0
- build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_deringer.py +220 -0
- build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_fbp.py +252 -0
- build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_filtering.py +133 -0
- build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_halftomo.py +100 -0
- build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_projector.py +164 -0
- build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_reconstructor.py +93 -0
- build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_sino_normalization.py +85 -0
- build/lib/build/lib/build/lib/nabu/resources/__init__.py +0 -0
- build/lib/build/lib/build/lib/nabu/resources/cli/__init__.py +0 -0
- build/lib/build/lib/build/lib/nabu/resources/cor.py +5 -0
- build/lib/build/lib/build/lib/nabu/resources/dataset_analyzer.py +469 -0
- build/lib/build/lib/build/lib/nabu/resources/gpu.py +169 -0
- build/lib/build/lib/build/lib/nabu/resources/logger.py +130 -0
- build/lib/build/lib/build/lib/nabu/resources/nxflatfield.py +217 -0
- build/lib/build/lib/build/lib/nabu/resources/templates/__init__.py +0 -0
- build/lib/build/lib/build/lib/nabu/resources/tests/__init__.py +0 -0
- build/lib/build/lib/build/lib/nabu/resources/tests/test_nxflatfield.py +104 -0
- build/lib/build/lib/build/lib/nabu/resources/tests/test_units.py +47 -0
- build/lib/build/lib/build/lib/nabu/resources/utils.py +174 -0
- build/lib/build/lib/build/lib/nabu/stitching/__init__.py +0 -0
- build/lib/build/lib/build/lib/nabu/stitching/alignment.py +184 -0
- build/lib/build/lib/build/lib/nabu/stitching/config.py +1286 -0
- build/lib/build/lib/build/lib/nabu/stitching/definitions.py +6 -0
- build/lib/build/lib/build/lib/nabu/stitching/frame_composition.py +155 -0
- build/lib/build/lib/build/lib/nabu/stitching/overlap.py +373 -0
- build/lib/build/lib/build/lib/nabu/stitching/sample_normalization.py +60 -0
- build/lib/build/lib/build/lib/nabu/stitching/slurm_utils.py +204 -0
- build/lib/build/lib/build/lib/nabu/stitching/tests/__init__.py +0 -0
- build/lib/build/lib/build/lib/nabu/stitching/tests/test_alignment.py +99 -0
- build/lib/build/lib/build/lib/nabu/stitching/tests/test_config.py +226 -0
- build/lib/build/lib/build/lib/nabu/stitching/tests/test_frame_composition.py +180 -0
- build/lib/build/lib/build/lib/nabu/stitching/tests/test_overlap.py +98 -0
- build/lib/build/lib/build/lib/nabu/stitching/tests/test_sample_normalization.py +49 -0
- build/lib/build/lib/build/lib/nabu/stitching/tests/test_slurm_utils.py +146 -0
- build/lib/build/lib/build/lib/nabu/stitching/tests/test_utils.py +21 -0
- build/lib/build/lib/build/lib/nabu/stitching/tests/test_z_stitching.py +1183 -0
- build/lib/build/lib/build/lib/nabu/stitching/utils.py +563 -0
- build/lib/build/lib/build/lib/nabu/stitching/z_stitching.py +2279 -0
- build/lib/build/lib/build/lib/nabu/tests.py +51 -0
- build/lib/build/lib/build/lib/nabu/testutils.py +375 -0
- build/lib/build/lib/build/lib/nabu/thirdparty/__init__.py +0 -0
- build/lib/build/lib/build/lib/nabu/thirdparty/algotom_convert_sino.py +276 -0
- build/lib/build/lib/build/lib/nabu/thirdparty/pore3d_deringer_munch.py +108 -0
- build/lib/build/lib/build/lib/nabu/thirdparty/tomocupy_remove_stripe.py +586 -0
- build/lib/build/lib/build/lib/nabu/thirdparty/tomopy_phase.py +239 -0
- build/lib/build/lib/build/lib/nabu/thirdparty/tomwer_load_flats_darks.py +162 -0
- build/lib/build/lib/build/lib/nabu/utils.py +836 -0
- build/lib/build/lib/doc/conf.py +137 -0
- build/lib/build/lib/doc/create_conf_doc.py +38 -0
- build/lib/build/lib/doc/get_mathjax.py +34 -0
- build/lib/build/lib/nabu/__init__.py +17 -0
- build/lib/build/lib/nabu/app/__init__.py +0 -0
- build/lib/build/lib/nabu/app/bootstrap.py +88 -0
- build/lib/build/lib/nabu/app/bootstrap_stitching.py +69 -0
- build/lib/build/lib/nabu/app/cast_volume.py +272 -0
- build/lib/build/lib/nabu/app/cli_configs.py +626 -0
- build/lib/build/lib/nabu/app/compare_volumes.py +94 -0
- build/lib/build/lib/nabu/app/composite_cor.py +144 -0
- build/lib/build/lib/nabu/app/correct_rot.py +70 -0
- build/lib/build/lib/nabu/app/create_distortion_map_from_poly.py +153 -0
- build/lib/build/lib/nabu/app/diag_to_pix.py +358 -0
- build/lib/build/lib/nabu/app/diag_to_rot.py +449 -0
- build/lib/build/lib/nabu/app/double_flatfield.py +143 -0
- build/lib/build/lib/nabu/app/generate_header.py +261 -0
- build/lib/build/lib/nabu/app/histogram.py +197 -0
- build/lib/build/lib/nabu/app/multicor.py +90 -0
- build/lib/build/lib/nabu/app/nx_z_splitter.py +125 -0
- build/lib/build/lib/nabu/app/parse_reconstruction_log.py +151 -0
- build/lib/build/lib/nabu/app/prepare_weights_double.py +163 -0
- build/lib/build/lib/nabu/app/reconstruct.py +120 -0
- build/lib/build/lib/nabu/app/reconstruct_helical.py +116 -0
- build/lib/build/lib/nabu/app/reduce_dark_flat.py +181 -0
- build/lib/build/lib/nabu/app/rotate.py +162 -0
- build/lib/build/lib/nabu/app/shrink_dataset.py +98 -0
- build/lib/build/lib/nabu/app/stitching.py +85 -0
- build/lib/build/lib/nabu/app/tests/test_reduce_dark_flat.py +78 -0
- build/lib/build/lib/nabu/app/utils.py +33 -0
- build/lib/build/lib/nabu/app/validator.py +110 -0
- build/lib/build/lib/nabu/cuda/__init__.py +0 -0
- build/lib/build/lib/nabu/cuda/convolution.py +8 -0
- build/lib/build/lib/nabu/cuda/fft.py +4 -0
- build/lib/build/lib/nabu/cuda/kernel.py +97 -0
- build/lib/build/lib/nabu/cuda/medfilt.py +6 -0
- build/lib/build/lib/nabu/cuda/padding.py +6 -0
- build/lib/build/lib/nabu/cuda/processing.py +75 -0
- build/lib/build/lib/nabu/cuda/tests/__init__.py +1 -0
- build/lib/build/lib/nabu/cuda/utils.py +331 -0
- build/lib/build/lib/nabu/estimation/__init__.py +12 -0
- build/lib/build/lib/nabu/estimation/alignment.py +578 -0
- build/lib/build/lib/nabu/estimation/cor.py +1621 -0
- build/lib/build/lib/nabu/estimation/cor_sino.py +183 -0
- build/lib/build/lib/nabu/estimation/distortion.py +112 -0
- build/lib/build/lib/nabu/estimation/focus.py +362 -0
- build/lib/build/lib/nabu/estimation/tests/__init__.py +0 -0
- build/lib/build/lib/nabu/estimation/tests/test_alignment.py +70 -0
- build/lib/build/lib/nabu/estimation/tests/test_cor.py +472 -0
- build/lib/build/lib/nabu/estimation/tests/test_focus.py +105 -0
- build/lib/build/lib/nabu/estimation/tests/test_tilt.py +41 -0
- build/lib/build/lib/nabu/estimation/tests/test_translation.py +78 -0
- build/lib/build/lib/nabu/estimation/tilt.py +214 -0
- build/lib/build/lib/nabu/estimation/translation.py +193 -0
- build/lib/build/lib/nabu/estimation/utils.py +39 -0
- build/lib/build/lib/nabu/io/__init__.py +2 -0
- build/lib/build/lib/nabu/io/cast_volume.py +371 -0
- build/lib/build/lib/nabu/io/detector_distortion.py +305 -0
- build/lib/build/lib/nabu/io/reader.py +628 -0
- build/lib/build/lib/nabu/io/reader_helical.py +114 -0
- build/lib/build/lib/nabu/io/tests/__init__.py +0 -0
- build/lib/build/lib/nabu/io/tests/test_cast_volume.py +339 -0
- build/lib/build/lib/nabu/io/tests/test_detector_distortion.py +178 -0
- build/lib/build/lib/nabu/io/tests/test_writers.py +187 -0
- build/lib/build/lib/nabu/io/tiffwriter_zmm.py +99 -0
- build/lib/build/lib/nabu/io/utils.py +263 -0
- build/lib/build/lib/nabu/io/writer.py +892 -0
- build/lib/build/lib/nabu/misc/__init__.py +0 -0
- build/lib/build/lib/nabu/misc/binning.py +98 -0
- build/lib/build/lib/nabu/misc/fftshift.py +6 -0
- build/lib/build/lib/nabu/misc/filters.py +24 -0
- build/lib/build/lib/nabu/misc/fourier_filters.py +152 -0
- build/lib/build/lib/nabu/misc/histogram.py +6 -0
- build/lib/build/lib/nabu/misc/histogram_cuda.py +8 -0
- build/lib/build/lib/nabu/misc/kernel_base.py +4 -0
- build/lib/build/lib/nabu/misc/padding.py +83 -0
- build/lib/build/lib/nabu/misc/padding_base.py +6 -0
- build/lib/build/lib/nabu/misc/processing_base.py +4 -0
- build/lib/build/lib/nabu/misc/rotation.py +6 -0
- build/lib/build/lib/nabu/misc/rotation_cuda.py +6 -0
- build/lib/build/lib/nabu/misc/tests/__init__.py +1 -0
- build/lib/build/lib/nabu/misc/tests/test_binning.py +48 -0
- build/lib/build/lib/nabu/misc/tests/test_interpolation.py +70 -0
- build/lib/build/lib/nabu/misc/transpose.py +6 -0
- build/lib/build/lib/nabu/misc/unsharp.py +4 -0
- build/lib/build/lib/nabu/misc/unsharp_cuda.py +6 -0
- build/lib/build/lib/nabu/misc/unsharp_opencl.py +8 -0
- build/lib/build/lib/nabu/misc/utils.py +117 -0
- build/lib/build/lib/nabu/opencl/__init__.py +0 -0
- build/lib/build/lib/nabu/opencl/fft.py +6 -0
- build/lib/build/lib/nabu/opencl/kernel.py +135 -0
- build/lib/build/lib/nabu/opencl/memcpy.py +35 -0
- build/lib/build/lib/nabu/opencl/padding.py +6 -0
- build/lib/build/lib/nabu/opencl/processing.py +62 -0
- build/lib/build/lib/nabu/opencl/tests/__init__.py +0 -0
- build/lib/build/lib/nabu/opencl/utils.py +292 -0
- build/lib/build/lib/nabu/pipeline/__init__.py +0 -0
- build/lib/build/lib/nabu/pipeline/config.py +265 -0
- build/lib/build/lib/nabu/pipeline/config_validators.py +589 -0
- build/lib/build/lib/nabu/pipeline/datadump.py +164 -0
- build/lib/build/lib/nabu/pipeline/dataset_validator.py +211 -0
- build/lib/build/lib/nabu/pipeline/detector_distortion_provider.py +20 -0
- build/lib/build/lib/nabu/pipeline/estimators.py +1012 -0
- build/lib/build/lib/nabu/pipeline/fallback_utils.py +149 -0
- build/lib/build/lib/nabu/pipeline/fullfield/__init__.py +0 -0
- build/lib/build/lib/nabu/pipeline/fullfield/chunked.py +849 -0
- build/lib/build/lib/nabu/pipeline/fullfield/chunked_cuda.py +152 -0
- build/lib/build/lib/nabu/pipeline/fullfield/computations.py +260 -0
- build/lib/build/lib/nabu/pipeline/fullfield/dataset_validator.py +63 -0
- build/lib/build/lib/nabu/pipeline/fullfield/nabu_config.py +590 -0
- build/lib/build/lib/nabu/pipeline/fullfield/processconfig.py +825 -0
- build/lib/build/lib/nabu/pipeline/fullfield/reconstruction.py +851 -0
- build/lib/build/lib/nabu/pipeline/helical/__init__.py +0 -0
- build/lib/build/lib/nabu/pipeline/helical/dataset_validator.py +19 -0
- build/lib/build/lib/nabu/pipeline/helical/fbp.py +147 -0
- build/lib/build/lib/nabu/pipeline/helical/filtering.py +246 -0
- build/lib/build/lib/nabu/pipeline/helical/gridded_accumulator.py +575 -0
- build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded.py +1670 -0
- build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded_cuda.py +119 -0
- build/lib/build/lib/nabu/pipeline/helical/helical_reconstruction.py +598 -0
- build/lib/build/lib/nabu/pipeline/helical/helical_utils.py +42 -0
- build/lib/build/lib/nabu/pipeline/helical/nabu_config.py +175 -0
- build/lib/build/lib/nabu/pipeline/helical/processconfig.py +62 -0
- build/lib/build/lib/nabu/pipeline/helical/span_strategy.py +483 -0
- build/lib/build/lib/nabu/pipeline/helical/tests/__init__.py +0 -0
- build/lib/build/lib/nabu/pipeline/helical/tests/test_accumulator.py +157 -0
- build/lib/build/lib/nabu/pipeline/helical/tests/test_pipeline_elements_full.py +355 -0
- build/lib/build/lib/nabu/pipeline/helical/tests/test_strategy.py +61 -0
- build/lib/build/lib/nabu/pipeline/helical/utils.py +51 -0
- build/lib/build/lib/nabu/pipeline/helical/weight_balancer.py +101 -0
- build/lib/build/lib/nabu/pipeline/params.py +163 -0
- build/lib/build/lib/nabu/pipeline/processconfig.py +210 -0
- build/lib/build/lib/nabu/pipeline/tests/test_chunk_reader.py +78 -0
- build/lib/build/lib/nabu/pipeline/tests/test_estimators.py +149 -0
- build/lib/build/lib/nabu/pipeline/utils.py +116 -0
- build/lib/build/lib/nabu/pipeline/writer.py +193 -0
- build/lib/build/lib/nabu/pipeline/xrdct/__init__.py +0 -0
- build/lib/build/lib/nabu/preproc/__init__.py +7 -0
- build/lib/build/lib/nabu/preproc/alignment.py +11 -0
- build/lib/build/lib/nabu/preproc/ccd.py +161 -0
- build/lib/build/lib/nabu/preproc/ccd_cuda.py +169 -0
- build/lib/build/lib/nabu/preproc/ctf.py +361 -0
- build/lib/build/lib/nabu/preproc/ctf_cuda.py +142 -0
- build/lib/build/lib/nabu/preproc/distortion.py +92 -0
- build/lib/build/lib/nabu/preproc/double_flatfield.py +212 -0
- build/lib/build/lib/nabu/preproc/double_flatfield_cuda.py +174 -0
- build/lib/build/lib/nabu/preproc/double_flatfield_variable_region.py +68 -0
- build/lib/build/lib/nabu/preproc/flatfield.py +448 -0
- build/lib/build/lib/nabu/preproc/flatfield_cuda.py +144 -0
- build/lib/build/lib/nabu/preproc/flatfield_variable_region.py +79 -0
- build/lib/build/lib/nabu/preproc/phase.py +425 -0
- build/lib/build/lib/nabu/preproc/phase_cuda.py +143 -0
- build/lib/build/lib/nabu/preproc/shift.py +95 -0
- build/lib/build/lib/nabu/preproc/shift_cuda.py +102 -0
- build/lib/build/lib/nabu/preproc/tests/__init__.py +1 -0
- build/lib/build/lib/nabu/preproc/tests/test_ccd_corr.py +59 -0
- build/lib/build/lib/nabu/preproc/tests/test_ctf.py +250 -0
- build/lib/build/lib/nabu/preproc/tests/test_double_flatfield.py +86 -0
- build/lib/build/lib/nabu/preproc/tests/test_flatfield.py +626 -0
- build/lib/build/lib/nabu/preproc/tests/test_paganin.py +67 -0
- build/lib/build/lib/nabu/preproc/tests/test_vshift.py +73 -0
- build/lib/build/lib/nabu/processing/__init__.py +0 -0
- build/lib/build/lib/nabu/processing/convolution_cuda.py +375 -0
- build/lib/build/lib/nabu/processing/fft_base.py +163 -0
- build/lib/build/lib/nabu/processing/fft_cuda.py +256 -0
- build/lib/build/lib/nabu/processing/fft_opencl.py +54 -0
- build/lib/build/lib/nabu/processing/fftshift.py +134 -0
- build/lib/build/lib/nabu/processing/histogram.py +286 -0
- build/lib/build/lib/nabu/processing/histogram_cuda.py +103 -0
- build/lib/build/lib/nabu/processing/kernel_base.py +126 -0
- build/lib/build/lib/nabu/processing/medfilt_cuda.py +159 -0
- build/lib/build/lib/nabu/processing/muladd.py +29 -0
- build/lib/build/lib/nabu/processing/muladd_cuda.py +68 -0
- build/lib/build/lib/nabu/processing/padding_base.py +71 -0
- build/lib/build/lib/nabu/processing/padding_cuda.py +75 -0
- build/lib/build/lib/nabu/processing/padding_opencl.py +77 -0
- build/lib/build/lib/nabu/processing/processing_base.py +123 -0
- build/lib/build/lib/nabu/processing/roll_opencl.py +64 -0
- build/lib/build/lib/nabu/processing/rotation.py +63 -0
- build/lib/build/lib/nabu/processing/rotation_cuda.py +66 -0
- build/lib/build/lib/nabu/processing/tests/__init__.py +0 -0
- build/lib/build/lib/nabu/processing/tests/test_fft.py +268 -0
- build/lib/build/lib/nabu/processing/tests/test_fftshift.py +71 -0
- build/lib/build/lib/nabu/processing/tests/test_histogram.py +55 -0
- build/lib/build/lib/nabu/processing/tests/test_medfilt.py +77 -0
- build/lib/build/lib/nabu/processing/tests/test_muladd.py +54 -0
- build/lib/build/lib/nabu/processing/tests/test_padding.py +247 -0
- build/lib/build/lib/nabu/processing/tests/test_roll.py +63 -0
- build/lib/build/lib/nabu/processing/tests/test_rotation.py +83 -0
- build/lib/build/lib/nabu/processing/tests/test_transpose.py +72 -0
- build/lib/build/lib/nabu/processing/tests/test_unsharp.py +106 -0
- build/lib/build/lib/nabu/processing/transpose.py +126 -0
- build/lib/build/lib/nabu/processing/unsharp.py +79 -0
- build/lib/build/lib/nabu/processing/unsharp_cuda.py +53 -0
- build/lib/build/lib/nabu/processing/unsharp_opencl.py +75 -0
- build/lib/build/lib/nabu/reconstruction/__init__.py +3 -0
- build/lib/build/lib/nabu/reconstruction/cone.py +241 -0
- build/lib/build/lib/nabu/reconstruction/fbp.py +124 -0
- build/lib/build/lib/nabu/reconstruction/fbp_base.py +391 -0
- build/lib/build/lib/nabu/reconstruction/fbp_opencl.py +78 -0
- build/lib/build/lib/nabu/reconstruction/filtering.py +220 -0
- build/lib/build/lib/nabu/reconstruction/filtering_cuda.py +103 -0
- build/lib/build/lib/nabu/reconstruction/filtering_opencl.py +111 -0
- build/lib/build/lib/nabu/reconstruction/projection.py +240 -0
- build/lib/build/lib/nabu/reconstruction/reconstructor.py +174 -0
- build/lib/build/lib/nabu/reconstruction/reconstructor_cuda.py +44 -0
- build/lib/build/lib/nabu/reconstruction/rings.py +248 -0
- build/lib/build/lib/nabu/reconstruction/rings_cuda.py +322 -0
- build/lib/build/lib/nabu/reconstruction/sinogram.py +467 -0
- build/lib/build/lib/nabu/reconstruction/sinogram_cuda.py +250 -0
- build/lib/build/lib/nabu/reconstruction/sinogram_opencl.py +40 -0
- build/lib/build/lib/nabu/reconstruction/tests/__init__.py +1 -0
- build/lib/build/lib/nabu/reconstruction/tests/test_cone.py +308 -0
- build/lib/build/lib/nabu/reconstruction/tests/test_deringer.py +220 -0
- build/lib/build/lib/nabu/reconstruction/tests/test_fbp.py +252 -0
- build/lib/build/lib/nabu/reconstruction/tests/test_filtering.py +133 -0
- build/lib/build/lib/nabu/reconstruction/tests/test_halftomo.py +100 -0
- build/lib/build/lib/nabu/reconstruction/tests/test_projector.py +164 -0
- build/lib/build/lib/nabu/reconstruction/tests/test_reconstructor.py +93 -0
- build/lib/build/lib/nabu/reconstruction/tests/test_sino_normalization.py +85 -0
- build/lib/build/lib/nabu/resources/__init__.py +0 -0
- build/lib/build/lib/nabu/resources/cli/__init__.py +0 -0
- build/lib/build/lib/nabu/resources/cor.py +5 -0
- build/lib/build/lib/nabu/resources/dataset_analyzer.py +469 -0
- build/lib/build/lib/nabu/resources/gpu.py +169 -0
- build/lib/build/lib/nabu/resources/logger.py +130 -0
- build/lib/build/lib/nabu/resources/nxflatfield.py +217 -0
- build/lib/build/lib/nabu/resources/templates/__init__.py +0 -0
- build/lib/build/lib/nabu/resources/tests/__init__.py +0 -0
- build/lib/build/lib/nabu/resources/tests/test_nxflatfield.py +104 -0
- build/lib/build/lib/nabu/resources/tests/test_units.py +47 -0
- build/lib/build/lib/nabu/resources/utils.py +174 -0
- build/lib/build/lib/nabu/stitching/__init__.py +0 -0
- build/lib/build/lib/nabu/stitching/alignment.py +184 -0
- build/lib/build/lib/nabu/stitching/config.py +1286 -0
- build/lib/build/lib/nabu/stitching/definitions.py +6 -0
- build/lib/build/lib/nabu/stitching/frame_composition.py +155 -0
- build/lib/build/lib/nabu/stitching/overlap.py +373 -0
- build/lib/build/lib/nabu/stitching/sample_normalization.py +60 -0
- build/lib/build/lib/nabu/stitching/slurm_utils.py +204 -0
- build/lib/build/lib/nabu/stitching/tests/__init__.py +0 -0
- build/lib/build/lib/nabu/stitching/tests/test_alignment.py +99 -0
- build/lib/build/lib/nabu/stitching/tests/test_config.py +226 -0
- build/lib/build/lib/nabu/stitching/tests/test_frame_composition.py +180 -0
- build/lib/build/lib/nabu/stitching/tests/test_overlap.py +98 -0
- build/lib/build/lib/nabu/stitching/tests/test_sample_normalization.py +49 -0
- build/lib/build/lib/nabu/stitching/tests/test_slurm_utils.py +146 -0
- build/lib/build/lib/nabu/stitching/tests/test_utils.py +21 -0
- build/lib/build/lib/nabu/stitching/tests/test_z_stitching.py +1183 -0
- build/lib/build/lib/nabu/stitching/utils.py +563 -0
- build/lib/build/lib/nabu/stitching/z_stitching.py +2279 -0
- build/lib/build/lib/nabu/tests.py +51 -0
- build/lib/build/lib/nabu/testutils.py +375 -0
- build/lib/build/lib/nabu/thirdparty/__init__.py +0 -0
- build/lib/build/lib/nabu/thirdparty/algotom_convert_sino.py +276 -0
- build/lib/build/lib/nabu/thirdparty/pore3d_deringer_munch.py +108 -0
- build/lib/build/lib/nabu/thirdparty/tomocupy_remove_stripe.py +586 -0
- build/lib/build/lib/nabu/thirdparty/tomopy_phase.py +239 -0
- build/lib/build/lib/nabu/thirdparty/tomwer_load_flats_darks.py +162 -0
- build/lib/build/lib/nabu/utils.py +836 -0
- build/lib/doc/conf.py +137 -0
- build/lib/doc/create_conf_doc.py +38 -0
- build/lib/doc/get_mathjax.py +34 -0
- build/lib/nabu/__init__.py +17 -0
- build/lib/nabu/app/__init__.py +0 -0
- build/lib/nabu/app/bootstrap.py +88 -0
- build/lib/nabu/app/bootstrap_stitching.py +69 -0
- build/lib/nabu/app/cast_volume.py +272 -0
- build/lib/nabu/app/cli_configs.py +626 -0
- build/lib/nabu/app/compare_volumes.py +94 -0
- build/lib/nabu/app/composite_cor.py +144 -0
- build/lib/nabu/app/correct_rot.py +70 -0
- build/lib/nabu/app/create_distortion_map_from_poly.py +153 -0
- build/lib/nabu/app/diag_to_pix.py +358 -0
- build/lib/nabu/app/diag_to_rot.py +449 -0
- build/lib/nabu/app/double_flatfield.py +143 -0
- build/lib/nabu/app/generate_header.py +261 -0
- build/lib/nabu/app/histogram.py +197 -0
- build/lib/nabu/app/multicor.py +90 -0
- build/lib/nabu/app/nx_z_splitter.py +125 -0
- build/lib/nabu/app/parse_reconstruction_log.py +151 -0
- build/lib/nabu/app/prepare_weights_double.py +163 -0
- build/lib/nabu/app/reconstruct.py +120 -0
- build/lib/nabu/app/reconstruct_helical.py +116 -0
- build/lib/nabu/app/reduce_dark_flat.py +181 -0
- build/lib/nabu/app/rotate.py +162 -0
- build/lib/nabu/app/shrink_dataset.py +98 -0
- build/lib/nabu/app/stitching.py +85 -0
- build/lib/nabu/app/tests/test_reduce_dark_flat.py +78 -0
- build/lib/nabu/app/utils.py +33 -0
- build/lib/nabu/app/validator.py +110 -0
- build/lib/nabu/cuda/__init__.py +0 -0
- build/lib/nabu/cuda/convolution.py +8 -0
- build/lib/nabu/cuda/fft.py +4 -0
- build/lib/nabu/cuda/kernel.py +97 -0
- build/lib/nabu/cuda/medfilt.py +6 -0
- build/lib/nabu/cuda/padding.py +6 -0
- build/lib/nabu/cuda/processing.py +75 -0
- build/lib/nabu/cuda/tests/__init__.py +1 -0
- build/lib/nabu/cuda/utils.py +331 -0
- build/lib/nabu/estimation/__init__.py +12 -0
- build/lib/nabu/estimation/alignment.py +578 -0
- build/lib/nabu/estimation/cor.py +1621 -0
- build/lib/nabu/estimation/cor_sino.py +183 -0
- build/lib/nabu/estimation/distortion.py +112 -0
- build/lib/nabu/estimation/focus.py +362 -0
- build/lib/nabu/estimation/tests/__init__.py +0 -0
- build/lib/nabu/estimation/tests/test_alignment.py +70 -0
- build/lib/nabu/estimation/tests/test_cor.py +472 -0
- build/lib/nabu/estimation/tests/test_focus.py +105 -0
- build/lib/nabu/estimation/tests/test_tilt.py +41 -0
- build/lib/nabu/estimation/tests/test_translation.py +78 -0
- build/lib/nabu/estimation/tilt.py +214 -0
- build/lib/nabu/estimation/translation.py +193 -0
- build/lib/nabu/estimation/utils.py +39 -0
- build/lib/nabu/io/__init__.py +2 -0
- build/lib/nabu/io/cast_volume.py +371 -0
- build/lib/nabu/io/detector_distortion.py +305 -0
- build/lib/nabu/io/reader.py +628 -0
- build/lib/nabu/io/reader_helical.py +114 -0
- build/lib/nabu/io/tests/__init__.py +0 -0
- build/lib/nabu/io/tests/test_cast_volume.py +339 -0
- build/lib/nabu/io/tests/test_detector_distortion.py +178 -0
- build/lib/nabu/io/tests/test_writers.py +187 -0
- build/lib/nabu/io/tiffwriter_zmm.py +99 -0
- build/lib/nabu/io/utils.py +263 -0
- build/lib/nabu/io/writer.py +892 -0
- build/lib/nabu/misc/__init__.py +0 -0
- build/lib/nabu/misc/binning.py +98 -0
- build/lib/nabu/misc/fftshift.py +6 -0
- build/lib/nabu/misc/filters.py +24 -0
- build/lib/nabu/misc/fourier_filters.py +152 -0
- build/lib/nabu/misc/histogram.py +6 -0
- build/lib/nabu/misc/histogram_cuda.py +8 -0
- build/lib/nabu/misc/kernel_base.py +4 -0
- build/lib/nabu/misc/padding.py +83 -0
- build/lib/nabu/misc/padding_base.py +6 -0
- build/lib/nabu/misc/processing_base.py +4 -0
- build/lib/nabu/misc/rotation.py +6 -0
- build/lib/nabu/misc/rotation_cuda.py +6 -0
- build/lib/nabu/misc/tests/__init__.py +1 -0
- build/lib/nabu/misc/tests/test_binning.py +48 -0
- build/lib/nabu/misc/tests/test_interpolation.py +70 -0
- build/lib/nabu/misc/transpose.py +6 -0
- build/lib/nabu/misc/unsharp.py +4 -0
- build/lib/nabu/misc/unsharp_cuda.py +6 -0
- build/lib/nabu/misc/unsharp_opencl.py +8 -0
- build/lib/nabu/misc/utils.py +117 -0
- build/lib/nabu/opencl/__init__.py +0 -0
- build/lib/nabu/opencl/fft.py +6 -0
- build/lib/nabu/opencl/kernel.py +135 -0
- build/lib/nabu/opencl/memcpy.py +35 -0
- build/lib/nabu/opencl/padding.py +6 -0
- build/lib/nabu/opencl/processing.py +62 -0
- build/lib/nabu/opencl/tests/__init__.py +0 -0
- build/lib/nabu/opencl/utils.py +292 -0
- build/lib/nabu/pipeline/__init__.py +0 -0
- build/lib/nabu/pipeline/config.py +265 -0
- build/lib/nabu/pipeline/config_validators.py +589 -0
- build/lib/nabu/pipeline/datadump.py +164 -0
- build/lib/nabu/pipeline/dataset_validator.py +211 -0
- build/lib/nabu/pipeline/detector_distortion_provider.py +20 -0
- build/lib/nabu/pipeline/estimators.py +1012 -0
- build/lib/nabu/pipeline/fallback_utils.py +149 -0
- build/lib/nabu/pipeline/fullfield/__init__.py +0 -0
- build/lib/nabu/pipeline/fullfield/chunked.py +849 -0
- build/lib/nabu/pipeline/fullfield/chunked_cuda.py +152 -0
- build/lib/nabu/pipeline/fullfield/computations.py +260 -0
- build/lib/nabu/pipeline/fullfield/dataset_validator.py +63 -0
- build/lib/nabu/pipeline/fullfield/nabu_config.py +590 -0
- build/lib/nabu/pipeline/fullfield/processconfig.py +825 -0
- build/lib/nabu/pipeline/fullfield/reconstruction.py +851 -0
- build/lib/nabu/pipeline/helical/__init__.py +0 -0
- build/lib/nabu/pipeline/helical/dataset_validator.py +19 -0
- build/lib/nabu/pipeline/helical/fbp.py +147 -0
- build/lib/nabu/pipeline/helical/filtering.py +246 -0
- build/lib/nabu/pipeline/helical/gridded_accumulator.py +575 -0
- build/lib/nabu/pipeline/helical/helical_chunked_regridded.py +1670 -0
- build/lib/nabu/pipeline/helical/helical_chunked_regridded_cuda.py +119 -0
- build/lib/nabu/pipeline/helical/helical_reconstruction.py +598 -0
- build/lib/nabu/pipeline/helical/helical_utils.py +42 -0
- build/lib/nabu/pipeline/helical/nabu_config.py +175 -0
- build/lib/nabu/pipeline/helical/processconfig.py +62 -0
- build/lib/nabu/pipeline/helical/span_strategy.py +483 -0
- build/lib/nabu/pipeline/helical/tests/__init__.py +0 -0
- build/lib/nabu/pipeline/helical/tests/test_accumulator.py +157 -0
- build/lib/nabu/pipeline/helical/tests/test_pipeline_elements_full.py +355 -0
- build/lib/nabu/pipeline/helical/tests/test_strategy.py +61 -0
- build/lib/nabu/pipeline/helical/utils.py +51 -0
- build/lib/nabu/pipeline/helical/weight_balancer.py +101 -0
- build/lib/nabu/pipeline/params.py +163 -0
- build/lib/nabu/pipeline/processconfig.py +210 -0
- build/lib/nabu/pipeline/tests/test_chunk_reader.py +78 -0
- build/lib/nabu/pipeline/tests/test_estimators.py +149 -0
- build/lib/nabu/pipeline/utils.py +116 -0
- build/lib/nabu/pipeline/writer.py +193 -0
- build/lib/nabu/pipeline/xrdct/__init__.py +0 -0
- build/lib/nabu/preproc/__init__.py +7 -0
- build/lib/nabu/preproc/alignment.py +11 -0
- build/lib/nabu/preproc/ccd.py +161 -0
- build/lib/nabu/preproc/ccd_cuda.py +169 -0
- build/lib/nabu/preproc/ctf.py +361 -0
- build/lib/nabu/preproc/ctf_cuda.py +142 -0
- build/lib/nabu/preproc/distortion.py +92 -0
- build/lib/nabu/preproc/double_flatfield.py +212 -0
- build/lib/nabu/preproc/double_flatfield_cuda.py +174 -0
- build/lib/nabu/preproc/double_flatfield_variable_region.py +68 -0
- build/lib/nabu/preproc/flatfield.py +448 -0
- build/lib/nabu/preproc/flatfield_cuda.py +144 -0
- build/lib/nabu/preproc/flatfield_variable_region.py +79 -0
- build/lib/nabu/preproc/phase.py +425 -0
- build/lib/nabu/preproc/phase_cuda.py +143 -0
- build/lib/nabu/preproc/shift.py +95 -0
- build/lib/nabu/preproc/shift_cuda.py +102 -0
- build/lib/nabu/preproc/tests/__init__.py +1 -0
- build/lib/nabu/preproc/tests/test_ccd_corr.py +59 -0
- build/lib/nabu/preproc/tests/test_ctf.py +250 -0
- build/lib/nabu/preproc/tests/test_double_flatfield.py +86 -0
- build/lib/nabu/preproc/tests/test_flatfield.py +626 -0
- build/lib/nabu/preproc/tests/test_paganin.py +67 -0
- build/lib/nabu/preproc/tests/test_vshift.py +73 -0
- build/lib/nabu/processing/__init__.py +0 -0
- build/lib/nabu/processing/convolution_cuda.py +375 -0
- build/lib/nabu/processing/fft_base.py +163 -0
- build/lib/nabu/processing/fft_cuda.py +256 -0
- build/lib/nabu/processing/fft_opencl.py +54 -0
- build/lib/nabu/processing/fftshift.py +134 -0
- build/lib/nabu/processing/histogram.py +286 -0
- build/lib/nabu/processing/histogram_cuda.py +103 -0
- build/lib/nabu/processing/kernel_base.py +126 -0
- build/lib/nabu/processing/medfilt_cuda.py +159 -0
- build/lib/nabu/processing/muladd.py +29 -0
- build/lib/nabu/processing/muladd_cuda.py +68 -0
- build/lib/nabu/processing/padding_base.py +71 -0
- build/lib/nabu/processing/padding_cuda.py +75 -0
- build/lib/nabu/processing/padding_opencl.py +77 -0
- build/lib/nabu/processing/processing_base.py +123 -0
- build/lib/nabu/processing/roll_opencl.py +64 -0
- build/lib/nabu/processing/rotation.py +63 -0
- build/lib/nabu/processing/rotation_cuda.py +66 -0
- build/lib/nabu/processing/tests/__init__.py +0 -0
- build/lib/nabu/processing/tests/test_fft.py +268 -0
- build/lib/nabu/processing/tests/test_fftshift.py +71 -0
- build/lib/nabu/processing/tests/test_histogram.py +55 -0
- build/lib/nabu/processing/tests/test_medfilt.py +77 -0
- build/lib/nabu/processing/tests/test_muladd.py +54 -0
- build/lib/nabu/processing/tests/test_padding.py +247 -0
- build/lib/nabu/processing/tests/test_roll.py +63 -0
- build/lib/nabu/processing/tests/test_rotation.py +83 -0
- build/lib/nabu/processing/tests/test_transpose.py +72 -0
- build/lib/nabu/processing/tests/test_unsharp.py +106 -0
- build/lib/nabu/processing/transpose.py +126 -0
- build/lib/nabu/processing/unsharp.py +79 -0
- build/lib/nabu/processing/unsharp_cuda.py +53 -0
- build/lib/nabu/processing/unsharp_opencl.py +75 -0
- build/lib/nabu/reconstruction/__init__.py +3 -0
- build/lib/nabu/reconstruction/cone.py +241 -0
- build/lib/nabu/reconstruction/fbp.py +124 -0
- build/lib/nabu/reconstruction/fbp_base.py +391 -0
- build/lib/nabu/reconstruction/fbp_opencl.py +78 -0
- build/lib/nabu/reconstruction/filtering.py +220 -0
- build/lib/nabu/reconstruction/filtering_cuda.py +103 -0
- build/lib/nabu/reconstruction/filtering_opencl.py +111 -0
- build/lib/nabu/reconstruction/projection.py +240 -0
- build/lib/nabu/reconstruction/reconstructor.py +174 -0
- build/lib/nabu/reconstruction/reconstructor_cuda.py +44 -0
- build/lib/nabu/reconstruction/rings.py +248 -0
- build/lib/nabu/reconstruction/rings_cuda.py +322 -0
- build/lib/nabu/reconstruction/sinogram.py +467 -0
- build/lib/nabu/reconstruction/sinogram_cuda.py +250 -0
- build/lib/nabu/reconstruction/sinogram_opencl.py +40 -0
- build/lib/nabu/reconstruction/tests/__init__.py +1 -0
- build/lib/nabu/reconstruction/tests/test_cone.py +308 -0
- build/lib/nabu/reconstruction/tests/test_deringer.py +220 -0
- build/lib/nabu/reconstruction/tests/test_fbp.py +252 -0
- build/lib/nabu/reconstruction/tests/test_filtering.py +133 -0
- build/lib/nabu/reconstruction/tests/test_halftomo.py +100 -0
- build/lib/nabu/reconstruction/tests/test_projector.py +164 -0
- build/lib/nabu/reconstruction/tests/test_reconstructor.py +93 -0
- build/lib/nabu/reconstruction/tests/test_sino_normalization.py +85 -0
- build/lib/nabu/resources/__init__.py +0 -0
- build/lib/nabu/resources/cli/__init__.py +0 -0
- build/lib/nabu/resources/cor.py +5 -0
- build/lib/nabu/resources/dataset_analyzer.py +469 -0
- build/lib/nabu/resources/gpu.py +169 -0
- build/lib/nabu/resources/logger.py +130 -0
- build/lib/nabu/resources/nxflatfield.py +217 -0
- build/lib/nabu/resources/templates/__init__.py +0 -0
- build/lib/nabu/resources/tests/__init__.py +0 -0
- build/lib/nabu/resources/tests/test_nxflatfield.py +104 -0
- build/lib/nabu/resources/tests/test_units.py +47 -0
- build/lib/nabu/resources/utils.py +174 -0
- build/lib/nabu/stitching/__init__.py +0 -0
- build/lib/nabu/stitching/alignment.py +184 -0
- build/lib/nabu/stitching/config.py +1286 -0
- build/lib/nabu/stitching/definitions.py +6 -0
- build/lib/nabu/stitching/frame_composition.py +155 -0
- build/lib/nabu/stitching/overlap.py +373 -0
- build/lib/nabu/stitching/sample_normalization.py +60 -0
- build/lib/nabu/stitching/slurm_utils.py +204 -0
- build/lib/nabu/stitching/tests/__init__.py +0 -0
- build/lib/nabu/stitching/tests/test_alignment.py +99 -0
- build/lib/nabu/stitching/tests/test_config.py +226 -0
- build/lib/nabu/stitching/tests/test_frame_composition.py +180 -0
- build/lib/nabu/stitching/tests/test_overlap.py +98 -0
- build/lib/nabu/stitching/tests/test_sample_normalization.py +49 -0
- build/lib/nabu/stitching/tests/test_slurm_utils.py +146 -0
- build/lib/nabu/stitching/tests/test_utils.py +21 -0
- build/lib/nabu/stitching/tests/test_z_stitching.py +1183 -0
- build/lib/nabu/stitching/utils.py +563 -0
- build/lib/nabu/stitching/z_stitching.py +2279 -0
- build/lib/nabu/tests.py +51 -0
- build/lib/nabu/testutils.py +375 -0
- build/lib/nabu/thirdparty/__init__.py +0 -0
- build/lib/nabu/thirdparty/algotom_convert_sino.py +276 -0
- build/lib/nabu/thirdparty/pore3d_deringer_munch.py +108 -0
- build/lib/nabu/thirdparty/tomocupy_remove_stripe.py +586 -0
- build/lib/nabu/thirdparty/tomopy_phase.py +239 -0
- build/lib/nabu/thirdparty/tomwer_load_flats_darks.py +162 -0
- build/lib/nabu/utils.py +836 -0
- nabu/__init__.py +1 -1
- nabu/io/cast_volume.py +10 -2
- nabu/stitching/config.py +2 -2
- nabu/stitching/z_stitching.py +3 -1
- {nabu-2024.1.0rc4.dist-info → nabu-2024.1.1.dist-info}/METADATA +1 -1
- nabu-2024.1.1.dist-info/RECORD +2375 -0
- {nabu-2024.1.0rc4.dist-info → nabu-2024.1.1.dist-info}/WHEEL +1 -1
- nabu-2024.1.1.dist-info/top_level.txt +4 -0
- nabu-2024.1.0rc4.dist-info/RECORD +0 -296
- nabu-2024.1.0rc4.dist-info/top_level.txt +0 -2
- {nabu/app/tests → build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app}/__init__.py +0 -0
- {nabu-2024.1.0rc4.dist-info → nabu-2024.1.1.dist-info}/LICENSE +0 -0
- {nabu-2024.1.0rc4.dist-info → nabu-2024.1.1.dist-info}/entry_points.txt +0 -0
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/config.py
ADDED
@@ -0,0 +1,1286 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
# /*##########################################################################
|
3
|
+
#
|
4
|
+
# Copyright (c) 2016-2017 European Synchrotron Radiation Facility
|
5
|
+
#
|
6
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
7
|
+
# of this software and associated documentation files (the "Software"), to deal
|
8
|
+
# in the Software without restriction, including without limitation the rights
|
9
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
10
|
+
# copies of the Software, and to permit persons to whom the Software is
|
11
|
+
# furnished to do so, subject to the following conditions:
|
12
|
+
#
|
13
|
+
# The above copyright notice and this permission notice shall be included in
|
14
|
+
# all copies or substantial portions of the Software.
|
15
|
+
#
|
16
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
17
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
18
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
19
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
20
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
21
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
22
|
+
# THE SOFTWARE.
|
23
|
+
#
|
24
|
+
# ###########################################################################*/
|
25
|
+
|
26
|
+
__authors__ = ["H. Payno"]
|
27
|
+
__license__ = "MIT"
|
28
|
+
__date__ = "10/05/2022"
|
29
|
+
|
30
|
+
|
31
|
+
from math import ceil
|
32
|
+
from typing import Any, Iterable, Optional, Union, Sized
|
33
|
+
from dataclasses import dataclass
|
34
|
+
import numpy
|
35
|
+
from pyunitsystem.metricsystem import MetricSystem
|
36
|
+
from nxtomo.paths import nxtomo
|
37
|
+
from tomoscan.factory import Factory
|
38
|
+
from tomoscan.identifier import VolumeIdentifier, ScanIdentifier
|
39
|
+
from tomoscan.esrf.scan.nxtomoscan import NXtomoScan
|
40
|
+
from ..pipeline.config_validators import (
|
41
|
+
boolean_validator,
|
42
|
+
convert_to_bool,
|
43
|
+
)
|
44
|
+
from ..utils import concatenate_dict, convert_str_to_tuple
|
45
|
+
from ..io.utils import get_output_volume
|
46
|
+
from .overlap import OverlapStitchingStrategy
|
47
|
+
from .utils import ShiftAlgorithm
|
48
|
+
from .definitions import StitchingType
|
49
|
+
from .alignment import AlignmentAxis1, AlignmentAxis2
|
50
|
+
from pyunitsystem.metricsystem import MetricSystem
|
51
|
+
|
52
|
+
|
53
|
+
KEY_IMG_REG_METHOD = "img_reg_method"
|
54
|
+
|
55
|
+
KEY_WINDOW_SIZE = "window_size"
|
56
|
+
|
57
|
+
KEY_LOW_PASS_FILTER = "low_pass"
|
58
|
+
|
59
|
+
KEY_HIGH_PASS_FILTER = "high_pass"
|
60
|
+
|
61
|
+
KEY_OVERLAP_SIZE = "overlap_size"
|
62
|
+
|
63
|
+
KEY_SIDE = "side"
|
64
|
+
|
65
|
+
OUTPUT_SECTION = "output"
|
66
|
+
|
67
|
+
INPUTS_SECTION = "inputs"
|
68
|
+
|
69
|
+
Z_PRE_PROC_SECTION = "z-preproc"
|
70
|
+
|
71
|
+
Z_POST_PROC_SECTION = "z-postproc"
|
72
|
+
|
73
|
+
INPUT_DATASETS_FIELD = "input_datasets"
|
74
|
+
|
75
|
+
INPUT_PIXEL_SIZE_MM = "pixel_size"
|
76
|
+
|
77
|
+
INPUT_VOXEL_SIZE_MM = "voxel_size"
|
78
|
+
|
79
|
+
STITCHING_SECTION = "stitching"
|
80
|
+
|
81
|
+
STITCHING_STRATEGY_FIELD = "stitching_strategy"
|
82
|
+
|
83
|
+
STITCHING_TYPE_FIELD = "type"
|
84
|
+
|
85
|
+
DATA_FILE_FIELD = "location"
|
86
|
+
|
87
|
+
OVERWRITE_RESULTS_FIELD = "overwrite_results"
|
88
|
+
|
89
|
+
DATA_PATH_FIELD = "data_path"
|
90
|
+
|
91
|
+
AXIS_0_POS_PX = "axis_0_pos_px"
|
92
|
+
|
93
|
+
AXIS_1_POS_PX = "axis_1_pos_px"
|
94
|
+
|
95
|
+
AXIS_2_POS_PX = "axis_2_pos_px"
|
96
|
+
|
97
|
+
AXIS_0_POS_MM = "axis_0_pos_mm"
|
98
|
+
|
99
|
+
AXIS_1_POS_MM = "axis_1_pos_mm"
|
100
|
+
|
101
|
+
AXIS_2_POS_MM = "axis_2_pos_mm"
|
102
|
+
|
103
|
+
AXIS_0_PARAMS = "axis_0_params"
|
104
|
+
|
105
|
+
AXIS_1_PARAMS = "axis_1_params"
|
106
|
+
|
107
|
+
AXIS_2_PARAMS = "axis_2_params"
|
108
|
+
|
109
|
+
FLIP_LR = "fliplr"
|
110
|
+
|
111
|
+
FLIP_UD = "flipud"
|
112
|
+
|
113
|
+
NEXUS_VERSION_FIELD = "nexus_version"
|
114
|
+
|
115
|
+
OUTPUT_DTYPE = "data_type"
|
116
|
+
|
117
|
+
OUTPUT_VOLUME = "output_volume"
|
118
|
+
|
119
|
+
STITCHING_SLICES = "slices"
|
120
|
+
|
121
|
+
CROSS_CORRELATION_SLICE_FIELD = "slice_index_for_correlation"
|
122
|
+
|
123
|
+
RESCALE_FRAMES = "rescale_frames"
|
124
|
+
|
125
|
+
RESCALE_PARAMS = "rescale_params"
|
126
|
+
|
127
|
+
KEY_RESCALE_MIN_PERCENTILES = "rescale_min_percentile"
|
128
|
+
|
129
|
+
KEY_RESCALE_MAX_PERCENTILES = "rescale_max_percentile"
|
130
|
+
|
131
|
+
ALIGNMENT_AXIS_2_FIELD = "alignment_axis_2"
|
132
|
+
|
133
|
+
ALIGNMENT_AXIS_1_FIELD = "alignment_axis_1"
|
134
|
+
|
135
|
+
PAD_MODE_FIELD = "pad_mode"
|
136
|
+
|
137
|
+
# SLURM
|
138
|
+
|
139
|
+
SLURM_SECTION = "slurm"
|
140
|
+
|
141
|
+
SLURM_PARTITION = "partition"
|
142
|
+
|
143
|
+
SLURM_MEM = "memory"
|
144
|
+
|
145
|
+
SLURM_COR_PER_TASKS = "cpu-per-task"
|
146
|
+
|
147
|
+
SLURM_NUMBER_OF_TASKS = "n_tasks"
|
148
|
+
|
149
|
+
SLURM_N_JOBS = "n_jobs"
|
150
|
+
|
151
|
+
SLURM_OTHER_OPTIONS = "other_options"
|
152
|
+
|
153
|
+
SLURM_PREPROCESSING_COMMAND = "python_venv"
|
154
|
+
|
155
|
+
SLURM_MODULES_TO_LOADS = "modules"
|
156
|
+
|
157
|
+
SLURM_CLEAN_SCRIPTS = "clean_scripts"
|
158
|
+
|
159
|
+
# normalization by sample
|
160
|
+
|
161
|
+
NORMALIZATION_BY_SAMPLE_SECTION = "normalization_by_sample"
|
162
|
+
|
163
|
+
NORMALIZATION_BY_SAMPLE_ACTIVE_FIELD = "active"
|
164
|
+
|
165
|
+
NORMALIZATION_BY_SAMPLE_METHOD = "method"
|
166
|
+
|
167
|
+
NORMALIZATION_BY_SAMPLE_SIDE = "side"
|
168
|
+
|
169
|
+
NORMALIZATION_BY_SAMPLE_MARGIN = "margin"
|
170
|
+
|
171
|
+
NORMALIZATION_BY_SAMPLE_WIDTH = "width"
|
172
|
+
|
173
|
+
# kernel extra options
|
174
|
+
|
175
|
+
STITCHING_KERNELS_EXTRA_PARAMS = "stitching_kernels_extra_params"
|
176
|
+
|
177
|
+
KEY_THRESHOLD_FREQUENCY = "threshold_frequency"
|
178
|
+
|
179
|
+
|
180
|
+
CROSS_CORRELATION_METHODS_AXIS_0 = {
|
181
|
+
"": "", # for display
|
182
|
+
ShiftAlgorithm.NABU_FFT.value: "will call nabu `find_shift_correlate` function - shift search in fourier space",
|
183
|
+
ShiftAlgorithm.SKIMAGE.value: "use scikit image `phase_cross_correlation` function in real space",
|
184
|
+
ShiftAlgorithm.NONE.value: "no shift research is done. will only get shift from motor positions",
|
185
|
+
}
|
186
|
+
|
187
|
+
CROSS_CORRELATION_METHODS_AXIS_2 = CROSS_CORRELATION_METHODS_AXIS_0.copy()
|
188
|
+
CROSS_CORRELATION_METHODS_AXIS_2.update(
|
189
|
+
{
|
190
|
+
ShiftAlgorithm.CENTERED.value: "a fast and simple auto-CoR method. It only works when the CoR is not far from the middle of the detector. It does not work for half-tomography.",
|
191
|
+
ShiftAlgorithm.GLOBAL.value: "a slow but robust auto-CoR.",
|
192
|
+
ShiftAlgorithm.GROWING_WINDOW.value: "automatically find the CoR with a sliding-and-growing window. You can tune the option with the parameter 'cor_options'.",
|
193
|
+
ShiftAlgorithm.SLIDING_WINDOW.value: "semi-automatically find the CoR with a sliding window. You have to specify on which side the CoR is (left, center, right). Please see the 'cor_options' parameter.",
|
194
|
+
ShiftAlgorithm.COMPOSITE_COARSE_TO_FINE.value: "Estimate CoR from composite multi-angle images. Only works for 360 degrees scans.",
|
195
|
+
ShiftAlgorithm.SINO_COARSE_TO_FINE.value: "Estimate CoR from sinogram. Only works for 360 degrees scans.",
|
196
|
+
}
|
197
|
+
)
|
198
|
+
|
199
|
+
SECTIONS_COMMENTS = {
|
200
|
+
STITCHING_SECTION: "section dedicated to stich parameters\n",
|
201
|
+
OUTPUT_SECTION: "section dedicated to output parameters\n",
|
202
|
+
INPUTS_SECTION: "section dedicated to inputs\n",
|
203
|
+
SLURM_SECTION: "section didicated to slurm. If you want to run locally avoid setting 'partition or remove this section'",
|
204
|
+
NORMALIZATION_BY_SAMPLE_SECTION: "section dedicated to normalization by a sample. If activate each frame can be normalized by a sample of the frame",
|
205
|
+
}
|
206
|
+
|
207
|
+
DEFAULT_SHIFT_ALG_AXIS_0 = "nabu-fft"
|
208
|
+
DEFAULT_SHIFT_ALG_AXIS_2 = "sliding-window"
|
209
|
+
|
210
|
+
_shift_algs_axis_0 = "\n + ".join(
|
211
|
+
[f"{key}: {value}" for key, value in CROSS_CORRELATION_METHODS_AXIS_0.items()]
|
212
|
+
)
|
213
|
+
_shift_algs_axis_2 = "\n + ".join(
|
214
|
+
[f"{key}: {value}" for key, value in CROSS_CORRELATION_METHODS_AXIS_2.items()]
|
215
|
+
)
|
216
|
+
|
217
|
+
HELP_SHIFT_PARAMS = f"""options for shifts algorithms as `key1=value1,key2=value2`. For now valid keys are:
|
218
|
+
- {KEY_OVERLAP_SIZE}: size to apply stitching. If not provided will take the largest size possible'.
|
219
|
+
- {KEY_IMG_REG_METHOD}: algorithm to use to find overlaps between the different sections. Possible values are \n * for axis 0: {_shift_algs_axis_0}\n * and for axis 2: {_shift_algs_axis_2}
|
220
|
+
- {KEY_LOW_PASS_FILTER}: low pass filter value for filtering frames before shift research
|
221
|
+
- {KEY_HIGH_PASS_FILTER}: high pass filter value for filtering frames before shift research"""
|
222
|
+
|
223
|
+
|
224
|
+
def _str_to_dict(my_str: Union[str, dict]):
|
225
|
+
"""convert a string as key_1=value_2;key_2=value_2 to a dict"""
|
226
|
+
if isinstance(my_str, dict):
|
227
|
+
return my_str
|
228
|
+
res = {}
|
229
|
+
for key_value in filter(None, my_str.split(";")):
|
230
|
+
key, value = key_value.split("=")
|
231
|
+
res[key] = value
|
232
|
+
return res
|
233
|
+
|
234
|
+
|
235
|
+
def _dict_to_str(ddict: dict):
|
236
|
+
return ";".join([f"{str(key)}={str(value)}" for key, value in ddict.items()])
|
237
|
+
|
238
|
+
|
239
|
+
def str_to_shifts(my_str: Optional[str]) -> Union[str, tuple]:
|
240
|
+
if my_str is None:
|
241
|
+
return None
|
242
|
+
elif isinstance(my_str, str):
|
243
|
+
my_str = my_str.replace(" ", "")
|
244
|
+
my_str = my_str.lstrip("[").lstrip("(")
|
245
|
+
my_str = my_str.rstrip("]").lstrip(")")
|
246
|
+
if my_str == "":
|
247
|
+
return None
|
248
|
+
try:
|
249
|
+
shift = ShiftAlgorithm.from_value(my_str)
|
250
|
+
except ValueError:
|
251
|
+
shifts_as_str = filter(None, my_str.replace(";", ",").split(","))
|
252
|
+
return [float(shift) for shift in shifts_as_str]
|
253
|
+
else:
|
254
|
+
return shift
|
255
|
+
elif isinstance(my_str, (tuple, list)):
|
256
|
+
return [float(shift) for shift in my_str]
|
257
|
+
else:
|
258
|
+
raise TypeError("Only str or tuple of str expected expected")
|
259
|
+
|
260
|
+
|
261
|
+
def _valid_stitching_kernels_params(my_dict: Union[dict, str]):
|
262
|
+
if isinstance(my_dict, str):
|
263
|
+
my_dict = _str_to_dict(my_str=my_dict)
|
264
|
+
|
265
|
+
valid_keys = (KEY_THRESHOLD_FREQUENCY, KEY_SIDE)
|
266
|
+
for key in my_dict.keys():
|
267
|
+
if not key in valid_keys:
|
268
|
+
raise KeyError(f"{key} is a unrecognized key")
|
269
|
+
return my_dict
|
270
|
+
|
271
|
+
|
272
|
+
def _valid_shifts_params(my_dict: Union[dict, str]):
|
273
|
+
if isinstance(my_dict, str):
|
274
|
+
my_dict = _str_to_dict(my_str=my_dict)
|
275
|
+
|
276
|
+
valid_keys = (
|
277
|
+
KEY_WINDOW_SIZE,
|
278
|
+
KEY_IMG_REG_METHOD,
|
279
|
+
KEY_OVERLAP_SIZE,
|
280
|
+
KEY_HIGH_PASS_FILTER,
|
281
|
+
KEY_LOW_PASS_FILTER,
|
282
|
+
KEY_SIDE,
|
283
|
+
)
|
284
|
+
for key in my_dict.keys():
|
285
|
+
if not key in valid_keys:
|
286
|
+
raise KeyError(f"{key} is a unrecognized key")
|
287
|
+
return my_dict
|
288
|
+
|
289
|
+
|
290
|
+
def _slices_to_list_or_slice(my_str: Optional[str]) -> Union[str, slice]:
|
291
|
+
if my_str is None:
|
292
|
+
return None
|
293
|
+
if isinstance(my_str, (tuple, list)):
|
294
|
+
if len(my_str) == 2:
|
295
|
+
return slice(int(my_str[0]), int(my_str[1]))
|
296
|
+
elif len(my_str) == 3:
|
297
|
+
return slice(int(my_str[0]), int(my_str[1]), int(my_str[2]))
|
298
|
+
else:
|
299
|
+
raise ValueError("expect at most free values to define a slice")
|
300
|
+
|
301
|
+
assert isinstance(my_str, str), f"wrong type. Get {my_str}, {type(my_str)}"
|
302
|
+
my_str = my_str.replace(" ", "")
|
303
|
+
if ":" in my_str:
|
304
|
+
split_string = my_str.split(":")
|
305
|
+
start = int(split_string[0])
|
306
|
+
stop = int(split_string[1])
|
307
|
+
if len(split_string) == 2:
|
308
|
+
step = None
|
309
|
+
elif len(split_string) == 3:
|
310
|
+
step = int(split_string[2])
|
311
|
+
else:
|
312
|
+
raise ValueError(f"unable to interpret `slices` parameter: {my_str}")
|
313
|
+
return slice(start, stop, step)
|
314
|
+
else:
|
315
|
+
my_str.replace(",", ";")
|
316
|
+
return list(filter(None, my_str.split(";")))
|
317
|
+
|
318
|
+
|
319
|
+
def _scalar_or_tuple_to_bool_or_tuple_of_bool(my_str: Union[bool, tuple, str], default=False):
|
320
|
+
if isinstance(my_str, bool):
|
321
|
+
return my_str
|
322
|
+
elif isinstance(my_str, str):
|
323
|
+
my_str = my_str.replace(" ", "")
|
324
|
+
my_str = my_str.lstrip("(").lstrip("[")
|
325
|
+
my_str = my_str.rstrip(")").lstrip("]")
|
326
|
+
my_str = my_str.replace(",", ";")
|
327
|
+
values = my_str.split(";")
|
328
|
+
values = tuple([convert_to_bool(value)[0] for value in values])
|
329
|
+
else:
|
330
|
+
values = my_str
|
331
|
+
if len(values) == 0:
|
332
|
+
return default
|
333
|
+
elif len(values) == 1:
|
334
|
+
return values[0]
|
335
|
+
else:
|
336
|
+
return values
|
337
|
+
|
338
|
+
|
339
|
+
from nabu.stitching.sample_normalization import Method, SampleSide
|
340
|
+
|
341
|
+
|
342
|
+
class NormalizationBySample:
|
343
|
+
def __init__(self) -> None:
|
344
|
+
self._active = False
|
345
|
+
self._method = Method.MEAN
|
346
|
+
self._margin = 0
|
347
|
+
self._side = SampleSide.LEFT
|
348
|
+
self._width = 30
|
349
|
+
|
350
|
+
def is_active(self):
|
351
|
+
return self._active
|
352
|
+
|
353
|
+
def set_is_active(self, active: bool):
|
354
|
+
assert isinstance(
|
355
|
+
active, bool
|
356
|
+
), f"active is expected to be a bool. Get {type(active)} instead. Value == {active}"
|
357
|
+
self._active = active
|
358
|
+
|
359
|
+
@property
|
360
|
+
def method(self) -> Method:
|
361
|
+
return self._method
|
362
|
+
|
363
|
+
@method.setter
|
364
|
+
def method(self, method: Union[Method, str]) -> None:
|
365
|
+
self._method = Method.from_value(method)
|
366
|
+
|
367
|
+
@property
|
368
|
+
def margin(self) -> int:
|
369
|
+
return self._margin
|
370
|
+
|
371
|
+
@margin.setter
|
372
|
+
def margin(self, margin: int):
|
373
|
+
assert isinstance(margin, int), f"margin is expected to be an int. Get {type(margin)} instead"
|
374
|
+
self._margin = margin
|
375
|
+
|
376
|
+
@property
|
377
|
+
def side(self) -> SampleSide:
|
378
|
+
return self._side
|
379
|
+
|
380
|
+
@side.setter
|
381
|
+
def side(self, side: Union[SampleSide, str]):
|
382
|
+
self._side = SampleSide.from_value(side)
|
383
|
+
|
384
|
+
@property
|
385
|
+
def width(self) -> int:
|
386
|
+
return self._width
|
387
|
+
|
388
|
+
@width.setter
|
389
|
+
def width(self, width: int):
|
390
|
+
assert isinstance(width, int), f"width is expected to be an int. Get {type(width)} instead"
|
391
|
+
|
392
|
+
@staticmethod
|
393
|
+
def from_dict(my_dict: dict):
|
394
|
+
sample_normalization = NormalizationBySample()
|
395
|
+
# active
|
396
|
+
active = my_dict.get(NORMALIZATION_BY_SAMPLE_ACTIVE_FIELD, None)
|
397
|
+
if active is not None:
|
398
|
+
active = active in (True, "True", 1, "1")
|
399
|
+
sample_normalization.set_is_active(active)
|
400
|
+
|
401
|
+
# method
|
402
|
+
method = my_dict.get(NORMALIZATION_BY_SAMPLE_METHOD, None)
|
403
|
+
if method is not None:
|
404
|
+
sample_normalization.method = method
|
405
|
+
|
406
|
+
# margin
|
407
|
+
margin = my_dict.get(NORMALIZATION_BY_SAMPLE_MARGIN, None)
|
408
|
+
if margin is not None:
|
409
|
+
sample_normalization.margin = int(margin)
|
410
|
+
|
411
|
+
# side
|
412
|
+
side = my_dict.get(NORMALIZATION_BY_SAMPLE_SIDE, None)
|
413
|
+
if side is not None:
|
414
|
+
sample_normalization.side = side
|
415
|
+
|
416
|
+
# width
|
417
|
+
width = my_dict.get(NORMALIZATION_BY_SAMPLE_WIDTH, None)
|
418
|
+
if width is not None:
|
419
|
+
sample_normalization.width = int(width)
|
420
|
+
|
421
|
+
return sample_normalization
|
422
|
+
|
423
|
+
def to_dict(self) -> dict:
|
424
|
+
return {
|
425
|
+
NORMALIZATION_BY_SAMPLE_ACTIVE_FIELD: self.is_active(),
|
426
|
+
NORMALIZATION_BY_SAMPLE_METHOD: self.method.value,
|
427
|
+
NORMALIZATION_BY_SAMPLE_MARGIN: self.margin,
|
428
|
+
NORMALIZATION_BY_SAMPLE_SIDE: self.side.value,
|
429
|
+
NORMALIZATION_BY_SAMPLE_WIDTH: self.width,
|
430
|
+
}
|
431
|
+
|
432
|
+
def __eq__(self, __value: object) -> bool:
|
433
|
+
if not isinstance(__value, NormalizationBySample):
|
434
|
+
return False
|
435
|
+
else:
|
436
|
+
return self.to_dict() == __value.to_dict()
|
437
|
+
|
438
|
+
|
439
|
+
@dataclass
|
440
|
+
class SlurmConfig:
|
441
|
+
"configuration for slurm jobs"
|
442
|
+
partition: str = "" # note: must stay empty to make by default we don't use slurm (use by the configuration file)
|
443
|
+
mem: str = "128"
|
444
|
+
n_jobs: int = 1
|
445
|
+
other_options: str = ""
|
446
|
+
preprocessing_command: str = ""
|
447
|
+
modules_to_load: tuple = tuple()
|
448
|
+
clean_script: bool = ""
|
449
|
+
n_tasks: int = 1
|
450
|
+
n_cpu_per_task: int = 4
|
451
|
+
|
452
|
+
def __post_init__(self) -> None:
|
453
|
+
# make sure either 'modules' or 'preprocessing_command' is provided
|
454
|
+
if len(self.modules_to_load) > 0 and self.preprocessing_command not in (None, ""):
|
455
|
+
raise ValueError(
|
456
|
+
f"Either modules {SLURM_MODULES_TO_LOADS} or preprocessing_command {SLURM_PREPROCESSING_COMMAND} can be provided. Not both."
|
457
|
+
)
|
458
|
+
|
459
|
+
def to_dict(self) -> dict:
|
460
|
+
"dump configuration to dict"
|
461
|
+
return {
|
462
|
+
SLURM_PARTITION: self.partition if self.partition is not None else "",
|
463
|
+
SLURM_MEM: self.mem,
|
464
|
+
SLURM_N_JOBS: self.n_jobs,
|
465
|
+
SLURM_OTHER_OPTIONS: self.other_options,
|
466
|
+
SLURM_PREPROCESSING_COMMAND: self.preprocessing_command,
|
467
|
+
SLURM_MODULES_TO_LOADS: self.modules_to_load,
|
468
|
+
SLURM_CLEAN_SCRIPTS: self.clean_script,
|
469
|
+
SLURM_NUMBER_OF_TASKS: self.n_tasks,
|
470
|
+
SLURM_COR_PER_TASKS: self.n_cpu_per_task,
|
471
|
+
}
|
472
|
+
|
473
|
+
@staticmethod
|
474
|
+
def from_dict(config: dict):
|
475
|
+
return SlurmConfig(
|
476
|
+
partition=config.get(
|
477
|
+
SLURM_PARTITION, None
|
478
|
+
), # warning: never set a default value. Would generate infinite loop from slurm call
|
479
|
+
mem=config.get(SLURM_MEM, "32GB"),
|
480
|
+
n_jobs=int(config.get(SLURM_N_JOBS, 10)),
|
481
|
+
other_options=config.get(SLURM_OTHER_OPTIONS, ""),
|
482
|
+
n_tasks=config.get(SLURM_NUMBER_OF_TASKS, 1),
|
483
|
+
n_cpu_per_task=config.get(SLURM_COR_PER_TASKS, 4),
|
484
|
+
preprocessing_command=config.get(SLURM_PREPROCESSING_COMMAND, ""),
|
485
|
+
modules_to_load=convert_str_to_tuple(config.get(SLURM_MODULES_TO_LOADS, "")),
|
486
|
+
clean_script=convert_to_bool(config.get(SLURM_CLEAN_SCRIPTS, False))[0],
|
487
|
+
)
|
488
|
+
|
489
|
+
|
490
|
+
def _cast_shift_to_str(shifts: Union[tuple, str, None]) -> str:
|
491
|
+
if shifts is None:
|
492
|
+
return ""
|
493
|
+
elif isinstance(shifts, ShiftAlgorithm):
|
494
|
+
return shifts.value
|
495
|
+
elif isinstance(shifts, str):
|
496
|
+
return shifts
|
497
|
+
elif isinstance(shifts, (tuple, list)):
|
498
|
+
return ";".join([str(value) for value in shifts])
|
499
|
+
|
500
|
+
|
501
|
+
@dataclass
|
502
|
+
class StitchingConfiguration:
|
503
|
+
"""
|
504
|
+
bass class to define stitching configuration
|
505
|
+
"""
|
506
|
+
|
507
|
+
axis_0_pos_px: Union[tuple, str, None]
|
508
|
+
"position along axis 0 in absolute. unit: px"
|
509
|
+
axis_1_pos_px: Union[tuple, str, None]
|
510
|
+
"position along axis 1 in absolute. unit: px"
|
511
|
+
axis_2_pos_px: Union[tuple, str, None]
|
512
|
+
"position along axis 2 in absolute. unit: px"
|
513
|
+
|
514
|
+
axis_0_pos_mm: Union[tuple, str, None] = None
|
515
|
+
"position along axis 0 in absolute. unit: mm"
|
516
|
+
axis_1_pos_mm: Union[tuple, str, None] = None
|
517
|
+
"position along axis 0 in absolute. unit: mm"
|
518
|
+
axis_2_pos_mm: Union[tuple, str, None] = None
|
519
|
+
"position along axis 0 in absolute. unit: mm"
|
520
|
+
|
521
|
+
axis_0_params: dict = None
|
522
|
+
axis_1_params: dict = None
|
523
|
+
axis_2_params: dict = None
|
524
|
+
slurm_config: SlurmConfig = None
|
525
|
+
flip_lr: Union[tuple, bool] = False
|
526
|
+
"flip frame left-right. For scan this will be append to the NXtransformations of the detector"
|
527
|
+
flip_ud: Union[tuple, bool] = False
|
528
|
+
"flip frame up-down. For scan this will be append to the NXtransformations of the detector"
|
529
|
+
|
530
|
+
overwrite_results: bool = False
|
531
|
+
stitching_strategy: OverlapStitchingStrategy = OverlapStitchingStrategy.COSINUS_WEIGHTS
|
532
|
+
stitching_kernels_extra_params: dict = None
|
533
|
+
|
534
|
+
slice_for_cross_correlation: Union[str, int] = "middle"
|
535
|
+
|
536
|
+
# opts for rescaling frame during stitching
|
537
|
+
rescale_frames: bool = False
|
538
|
+
rescale_params: dict = None
|
539
|
+
|
540
|
+
normalization_by_sample: NormalizationBySample = None
|
541
|
+
|
542
|
+
@property
|
543
|
+
def stitching_type(self):
|
544
|
+
raise NotImplementedError("Base class")
|
545
|
+
|
546
|
+
def __post_init__(self):
|
547
|
+
if self.normalization_by_sample is None:
|
548
|
+
self.normalization_by_sample = NormalizationBySample()
|
549
|
+
|
550
|
+
@staticmethod
|
551
|
+
def get_description_dict() -> dict:
|
552
|
+
def get_pos_info(axis, unit, alternative):
|
553
|
+
return f"position over {axis} in {unit}. If provided {alternative} must be set to blank. If none provided then will try to get information from existing metadata"
|
554
|
+
|
555
|
+
def get_default_shift_params(window_size=None, shift_alg=None) -> str:
|
556
|
+
return ";".join(
|
557
|
+
[
|
558
|
+
f"{KEY_WINDOW_SIZE}={window_size or ''}",
|
559
|
+
f"{KEY_IMG_REG_METHOD}={shift_alg or ''}",
|
560
|
+
]
|
561
|
+
)
|
562
|
+
|
563
|
+
return {
|
564
|
+
STITCHING_SECTION: {
|
565
|
+
STITCHING_TYPE_FIELD: {
|
566
|
+
"default": StitchingType.Z_PREPROC.value,
|
567
|
+
"help": f"stitching to be applied. Must be in {StitchingType.values()}",
|
568
|
+
"type": "required",
|
569
|
+
},
|
570
|
+
STITCHING_STRATEGY_FIELD: {
|
571
|
+
"default": "cosinus weights",
|
572
|
+
"help": f"Policy to apply to compute the overlap area. Must be in {OverlapStitchingStrategy.values()}.",
|
573
|
+
"type": "required",
|
574
|
+
},
|
575
|
+
CROSS_CORRELATION_SLICE_FIELD: {
|
576
|
+
"default": "middle",
|
577
|
+
"help": f"slice to use for image registration",
|
578
|
+
"type": "optional",
|
579
|
+
},
|
580
|
+
AXIS_0_POS_PX: {
|
581
|
+
"default": "",
|
582
|
+
"help": get_pos_info(axis=0, unit="pixel", alternative=AXIS_0_POS_MM),
|
583
|
+
"type": "optional",
|
584
|
+
},
|
585
|
+
AXIS_0_POS_MM: {
|
586
|
+
"default": "",
|
587
|
+
"help": get_pos_info(axis=1, unit="millimeter", alternative=AXIS_0_POS_PX),
|
588
|
+
"type": "optional",
|
589
|
+
},
|
590
|
+
AXIS_0_PARAMS: {
|
591
|
+
"default": get_default_shift_params(window_size=50, shift_alg=DEFAULT_SHIFT_ALG_AXIS_0),
|
592
|
+
"help": HELP_SHIFT_PARAMS,
|
593
|
+
"type": "optional",
|
594
|
+
},
|
595
|
+
AXIS_1_POS_PX: {
|
596
|
+
"default": "",
|
597
|
+
"help": get_pos_info(axis=1, unit="pixel", alternative=AXIS_1_POS_MM),
|
598
|
+
"type": "optional",
|
599
|
+
},
|
600
|
+
AXIS_1_POS_MM: {
|
601
|
+
"default": "",
|
602
|
+
"help": get_pos_info(axis=1, unit="millimeter", alternative=AXIS_1_POS_PX),
|
603
|
+
"type": "optional",
|
604
|
+
},
|
605
|
+
AXIS_1_PARAMS: {
|
606
|
+
"default": get_default_shift_params(),
|
607
|
+
"help": f"same as {AXIS_0_PARAMS} but for axis 1",
|
608
|
+
"type": "optional",
|
609
|
+
},
|
610
|
+
AXIS_2_POS_PX: {
|
611
|
+
"default": "",
|
612
|
+
"help": get_pos_info(axis=2, unit="pixel", alternative=AXIS_2_POS_MM),
|
613
|
+
"type": "optional",
|
614
|
+
},
|
615
|
+
AXIS_2_POS_MM: {
|
616
|
+
"default": "",
|
617
|
+
"help": get_pos_info(axis=2, unit="millimeter", alternative=AXIS_1_POS_PX),
|
618
|
+
"type": "optional",
|
619
|
+
},
|
620
|
+
AXIS_2_PARAMS: {
|
621
|
+
"default": get_default_shift_params(window_size=200, shift_alg=DEFAULT_SHIFT_ALG_AXIS_2),
|
622
|
+
"help": f"same as {AXIS_0_PARAMS} but for axis 2",
|
623
|
+
"type": "optional",
|
624
|
+
},
|
625
|
+
FLIP_LR: {
|
626
|
+
"default": False,
|
627
|
+
"help": "sometime scan or volume can have a left-right flip in frame (projection/slice) space. For recent NXtomo it should be handled automatically. But for volume you might need to request some flip.",
|
628
|
+
"type": "optional",
|
629
|
+
},
|
630
|
+
FLIP_UD: {
|
631
|
+
"default": False,
|
632
|
+
"help": "sometime scan or volume can have a up_down flip in frame (projection/slice) space. For recent NXtomo it should be handled automatically. But for volume you might need to request some flip.",
|
633
|
+
"type": "optional",
|
634
|
+
},
|
635
|
+
RESCALE_FRAMES: {
|
636
|
+
"default": False,
|
637
|
+
"help": "rescale each frame before applying stithcing",
|
638
|
+
"type": "advanced",
|
639
|
+
},
|
640
|
+
RESCALE_PARAMS: {
|
641
|
+
"default": "",
|
642
|
+
"help": f"parameters for rescaling frames as 'key1=value1;key_2=value2'. Valid Keys are {KEY_RESCALE_MIN_PERCENTILES} and {KEY_RESCALE_MAX_PERCENTILES}.",
|
643
|
+
"type": "advanced",
|
644
|
+
},
|
645
|
+
STITCHING_KERNELS_EXTRA_PARAMS: {
|
646
|
+
"default": "",
|
647
|
+
"help": f"advanced parameters for some stitching kernels. must be provided as 'key1=value1;key_2=value2'. Valid keys for now are: {KEY_THRESHOLD_FREQUENCY}: threshold to be used by the {OverlapStitchingStrategy.IMAGE_MINIMUM_DIVERGENCE.value} to split images low and high frequencies in Fourier space.",
|
648
|
+
"type": "advanced",
|
649
|
+
},
|
650
|
+
ALIGNMENT_AXIS_2_FIELD: {
|
651
|
+
"default": "center",
|
652
|
+
"help": f"In case frame have different frame widths how to align them (so along volume axis 2). Valid keys are {AlignmentAxis2.values()}",
|
653
|
+
"type": "advanced",
|
654
|
+
},
|
655
|
+
PAD_MODE_FIELD: {
|
656
|
+
"default": "constant",
|
657
|
+
"help": f"pad mode to use for frame alignment. Valid values are 'constant', 'edge', 'linear_ramp', maximum', 'mean', 'median', 'minimum', 'reflect', 'symmetric', 'wrap', and 'empty'. See nupy.pad documentation for details",
|
658
|
+
"type": "advanced",
|
659
|
+
},
|
660
|
+
},
|
661
|
+
OUTPUT_SECTION: {
|
662
|
+
OVERWRITE_RESULTS_FIELD: {
|
663
|
+
"default": "1",
|
664
|
+
"help": "What to do in the case where the output file exists.\nBy default, the output data is never overwritten and the process is interrupted if the file already exists.\nSet this option to 1 if you want to overwrite the output files.",
|
665
|
+
"validator": boolean_validator,
|
666
|
+
"type": "required",
|
667
|
+
},
|
668
|
+
},
|
669
|
+
INPUTS_SECTION: {
|
670
|
+
INPUT_DATASETS_FIELD: {
|
671
|
+
"default": "",
|
672
|
+
"help": f"Dataset to stitch together. Must be volume for {StitchingType.Z_PREPROC.value} or NXtomo for {StitchingType.Z_POSTPROC.value}",
|
673
|
+
"type": "required",
|
674
|
+
},
|
675
|
+
STITCHING_SLICES: {
|
676
|
+
"default": "",
|
677
|
+
"help": f"slices to be stitched. Must be given along axis 0 for pre-processing (z) and along axis 1 for post-processing (y)",
|
678
|
+
"type": "advanced",
|
679
|
+
},
|
680
|
+
},
|
681
|
+
SLURM_SECTION: {
|
682
|
+
SLURM_PARTITION: {
|
683
|
+
"default": "",
|
684
|
+
"help": "slurm partition to be used. If empty will run locally",
|
685
|
+
"type": "optional",
|
686
|
+
},
|
687
|
+
SLURM_MEM: {
|
688
|
+
"default": "32GB",
|
689
|
+
"help": "memory to allocate for each job",
|
690
|
+
"type": "optional",
|
691
|
+
},
|
692
|
+
SLURM_N_JOBS: {
|
693
|
+
"default": 10,
|
694
|
+
"help": "number of job to launch (split computation on N parallel jobs). Once all are finished we will concatenate the result.",
|
695
|
+
"type": "optional",
|
696
|
+
},
|
697
|
+
SLURM_COR_PER_TASKS: {
|
698
|
+
"default": 4,
|
699
|
+
"help": "number of cor per task launched",
|
700
|
+
"type": "optional",
|
701
|
+
},
|
702
|
+
SLURM_NUMBER_OF_TASKS: {
|
703
|
+
"default": 1,
|
704
|
+
"help": "(for parallel execution when possible). Split each job into this number of tasks",
|
705
|
+
"type": "optional",
|
706
|
+
},
|
707
|
+
SLURM_OTHER_OPTIONS: {
|
708
|
+
"default": "",
|
709
|
+
"help": "you can provide axtra options to slurm from this string",
|
710
|
+
"type": "optional",
|
711
|
+
},
|
712
|
+
SLURM_PREPROCESSING_COMMAND: {
|
713
|
+
"default": "",
|
714
|
+
"help": "python virtual environment to use",
|
715
|
+
"type": "optional",
|
716
|
+
},
|
717
|
+
SLURM_MODULES_TO_LOADS: {
|
718
|
+
"default": "tomotools/stable",
|
719
|
+
"help": "module to load",
|
720
|
+
"type": "optional",
|
721
|
+
},
|
722
|
+
},
|
723
|
+
NORMALIZATION_BY_SAMPLE_SECTION: {
|
724
|
+
NORMALIZATION_BY_SAMPLE_ACTIVE_FIELD: {
|
725
|
+
"default": False,
|
726
|
+
"help": "should we apply frame normalization by a sample or not",
|
727
|
+
"type": "advanced",
|
728
|
+
},
|
729
|
+
NORMALIZATION_BY_SAMPLE_METHOD: {
|
730
|
+
"default": "median",
|
731
|
+
"help": "method to compute the normalization value",
|
732
|
+
"type": "advanced",
|
733
|
+
},
|
734
|
+
NORMALIZATION_BY_SAMPLE_SIDE: {
|
735
|
+
"default": "left",
|
736
|
+
"help": "side to pick the sample",
|
737
|
+
"type": "advanced",
|
738
|
+
},
|
739
|
+
NORMALIZATION_BY_SAMPLE_MARGIN: {
|
740
|
+
"default": 0,
|
741
|
+
"help": "margin (in px) between border and sample",
|
742
|
+
"type": "advanced",
|
743
|
+
},
|
744
|
+
NORMALIZATION_BY_SAMPLE_WIDTH: {
|
745
|
+
"default": 30,
|
746
|
+
"help": "sample width (in px)",
|
747
|
+
"type": "advanced",
|
748
|
+
},
|
749
|
+
},
|
750
|
+
}
|
751
|
+
|
752
|
+
def to_dict(self):
|
753
|
+
"""dump configuration to a dict. Must be serializable because might be dump to HDF5 file"""
|
754
|
+
return {
|
755
|
+
SLURM_SECTION: self.slurm_config.to_dict() if self.slurm_config is not None else SlurmConfig().to_dict(),
|
756
|
+
STITCHING_SECTION: {
|
757
|
+
STITCHING_TYPE_FIELD: self.stitching_type.value,
|
758
|
+
CROSS_CORRELATION_SLICE_FIELD: str(self.slice_for_cross_correlation),
|
759
|
+
AXIS_0_POS_PX: _cast_shift_to_str(self.axis_0_pos_px),
|
760
|
+
AXIS_0_POS_MM: _cast_shift_to_str(self.axis_0_pos_mm),
|
761
|
+
AXIS_0_PARAMS: _dict_to_str(self.axis_0_params or {}),
|
762
|
+
AXIS_1_POS_PX: _cast_shift_to_str(self.axis_1_pos_px),
|
763
|
+
AXIS_1_POS_MM: _cast_shift_to_str(self.axis_1_pos_mm),
|
764
|
+
AXIS_1_PARAMS: _dict_to_str(self.axis_1_params or {}),
|
765
|
+
AXIS_2_POS_PX: _cast_shift_to_str(self.axis_2_pos_px),
|
766
|
+
AXIS_2_POS_MM: _cast_shift_to_str(self.axis_2_pos_mm),
|
767
|
+
AXIS_2_PARAMS: _dict_to_str(self.axis_2_params or {}),
|
768
|
+
STITCHING_STRATEGY_FIELD: OverlapStitchingStrategy.from_value(self.stitching_strategy).value,
|
769
|
+
FLIP_UD: self.flip_ud,
|
770
|
+
FLIP_LR: self.flip_lr,
|
771
|
+
RESCALE_FRAMES: self.rescale_frames,
|
772
|
+
RESCALE_PARAMS: _dict_to_str(self.rescale_params or {}),
|
773
|
+
STITCHING_KERNELS_EXTRA_PARAMS: _dict_to_str(self.stitching_kernels_extra_params or {}),
|
774
|
+
},
|
775
|
+
OUTPUT_SECTION: {
|
776
|
+
OVERWRITE_RESULTS_FIELD: int(
|
777
|
+
self.overwrite_results,
|
778
|
+
),
|
779
|
+
},
|
780
|
+
NORMALIZATION_BY_SAMPLE_SECTION: self.normalization_by_sample.to_dict(),
|
781
|
+
}
|
782
|
+
|
783
|
+
|
784
|
+
@dataclass
|
785
|
+
class ZStitchingConfiguration(StitchingConfiguration):
|
786
|
+
"""
|
787
|
+
base class to define z-stitching parameters
|
788
|
+
"""
|
789
|
+
|
790
|
+
slices: Union[
|
791
|
+
slice, tuple, None
|
792
|
+
] = None # slices to reconstruct. Over axis 0 for pre-processing, over axis 1 for post-processing. If None will reconstruct all
|
793
|
+
|
794
|
+
alignment_axis_2: AlignmentAxis2 = AlignmentAxis2.CENTER
|
795
|
+
|
796
|
+
pad_mode: str = "constant" # pad mode to be used for alignment
|
797
|
+
|
798
|
+
def settle_inputs(self) -> None:
|
799
|
+
self.settle_slices()
|
800
|
+
|
801
|
+
def settle_slices(self) -> tuple:
|
802
|
+
raise ValueError("Base class")
|
803
|
+
|
804
|
+
def get_output_object(self):
|
805
|
+
raise ValueError("Base class")
|
806
|
+
|
807
|
+
def to_dict(self):
|
808
|
+
if isinstance(self.slices, slice):
|
809
|
+
slices = f"{self.slices.start}:{self.slices.stop}:{self.slices.step}"
|
810
|
+
elif self.slices in ("", None):
|
811
|
+
slices = ""
|
812
|
+
else:
|
813
|
+
slices = ";".join(str(s) for s in self.slices)
|
814
|
+
return concatenate_dict(
|
815
|
+
super().to_dict(),
|
816
|
+
{
|
817
|
+
INPUTS_SECTION: {
|
818
|
+
STITCHING_SLICES: slices,
|
819
|
+
},
|
820
|
+
STITCHING_SECTION: {
|
821
|
+
ALIGNMENT_AXIS_2_FIELD: self.alignment_axis_2.value,
|
822
|
+
PAD_MODE_FIELD: self.pad_mode,
|
823
|
+
},
|
824
|
+
},
|
825
|
+
)
|
826
|
+
|
827
|
+
|
828
|
+
@dataclass
|
829
|
+
class PreProcessedZStitchingConfiguration(ZStitchingConfiguration):
|
830
|
+
"""
|
831
|
+
base class to define z-stitching parameters
|
832
|
+
"""
|
833
|
+
|
834
|
+
input_scans: tuple = () # tuple of ScanBase
|
835
|
+
output_file_path: str = ""
|
836
|
+
output_data_path: str = ""
|
837
|
+
output_nexus_version: Optional[float] = None
|
838
|
+
pixel_size: Optional[float] = None
|
839
|
+
|
840
|
+
@property
|
841
|
+
def stitching_type(self) -> StitchingType:
|
842
|
+
return StitchingType.Z_PREPROC
|
843
|
+
|
844
|
+
def get_output_object(self):
|
845
|
+
return NXtomoScan(
|
846
|
+
scan=self.output_file_path,
|
847
|
+
entry=self.output_data_path,
|
848
|
+
)
|
849
|
+
|
850
|
+
def settle_inputs(self) -> None:
|
851
|
+
super().settle_inputs()
|
852
|
+
self.settle_input_scans()
|
853
|
+
|
854
|
+
def settle_input_scans(self):
|
855
|
+
self.input_scans = [
|
856
|
+
Factory.create_tomo_object_from_identifier(identifier)
|
857
|
+
if isinstance(identifier, (str, ScanIdentifier))
|
858
|
+
else identifier
|
859
|
+
for identifier in self.input_scans
|
860
|
+
]
|
861
|
+
|
862
|
+
def slice_idx_from_str_to_int(self, index):
|
863
|
+
if isinstance(index, str):
|
864
|
+
index = index.lower()
|
865
|
+
if index == "first":
|
866
|
+
return 0
|
867
|
+
elif index == "last":
|
868
|
+
return len(self.input_scans[0].projections) - 1
|
869
|
+
elif index == "middle":
|
870
|
+
return max(len(self.input_scans[0].projections) // 2 - 1, 0)
|
871
|
+
return int(index)
|
872
|
+
|
873
|
+
def settle_slices(self) -> tuple:
|
874
|
+
"""
|
875
|
+
interpret the slices to be stitched if needed
|
876
|
+
|
877
|
+
Nore: if slices is an instance of slice will redefine start and stop to avoid having negative indexes
|
878
|
+
|
879
|
+
:return: (slices:[slice,Iterable], n_proj:int)
|
880
|
+
:rtype: tuple
|
881
|
+
"""
|
882
|
+
slices = self.slices
|
883
|
+
if isinstance(slices, Sized) and len(slices) == 0:
|
884
|
+
# in this case will stitch them all
|
885
|
+
slices = None
|
886
|
+
if len(self.input_scans) == 0:
|
887
|
+
raise ValueError("No input scan provided")
|
888
|
+
if slices is None:
|
889
|
+
slices = slice(0, len(self.input_scans[0].projections), 1)
|
890
|
+
n_proj = slices.stop
|
891
|
+
elif isinstance(slices, slice):
|
892
|
+
# force slices indices to be positive
|
893
|
+
start = slices.start
|
894
|
+
if start < 0:
|
895
|
+
start += len(self.input_scans[0].projections) + 1
|
896
|
+
stop = slices.stop
|
897
|
+
if stop < 0:
|
898
|
+
stop += len(self.input_scans[0].projections) + 1
|
899
|
+
step = slices.step
|
900
|
+
if step is None:
|
901
|
+
step = 1
|
902
|
+
n_proj = ceil((stop - start) / step)
|
903
|
+
# update slices for iteration simplify things
|
904
|
+
slices = slice(start, stop, step)
|
905
|
+
elif isinstance(slices, (tuple, list)):
|
906
|
+
n_proj = len(slices)
|
907
|
+
slices = [self.slice_idx_from_str_to_int(s) for s in slices]
|
908
|
+
else:
|
909
|
+
raise TypeError(f"slices is expected to be a tuple or a lice. Not {type(slices)}")
|
910
|
+
self.slices = slices
|
911
|
+
return slices, n_proj
|
912
|
+
|
913
|
+
def to_dict(self):
|
914
|
+
if self.pixel_size is None:
|
915
|
+
pixel_size_mm = ""
|
916
|
+
else:
|
917
|
+
pixel_size_mm = self.pixel_size * MetricSystem.MILLIMETER.value
|
918
|
+
return concatenate_dict(
|
919
|
+
super().to_dict(),
|
920
|
+
{
|
921
|
+
Z_PRE_PROC_SECTION: {
|
922
|
+
DATA_FILE_FIELD: self.output_file_path,
|
923
|
+
DATA_PATH_FIELD: self.output_data_path,
|
924
|
+
NEXUS_VERSION_FIELD: self.output_nexus_version,
|
925
|
+
},
|
926
|
+
INPUTS_SECTION: {
|
927
|
+
INPUT_DATASETS_FIELD: ";".join(
|
928
|
+
[str(scan.get_identifier()) for scan in self.input_scans],
|
929
|
+
),
|
930
|
+
INPUT_PIXEL_SIZE_MM: pixel_size_mm,
|
931
|
+
},
|
932
|
+
},
|
933
|
+
)
|
934
|
+
|
935
|
+
@staticmethod
|
936
|
+
def get_description_dict() -> dict:
|
937
|
+
return concatenate_dict(
|
938
|
+
ZStitchingConfiguration.get_description_dict(),
|
939
|
+
{
|
940
|
+
Z_PRE_PROC_SECTION: {
|
941
|
+
DATA_FILE_FIELD: {
|
942
|
+
"default": "",
|
943
|
+
"help": "output nxtomo file path",
|
944
|
+
"type": "required",
|
945
|
+
},
|
946
|
+
DATA_PATH_FIELD: {
|
947
|
+
"default": "",
|
948
|
+
"help": "output nxtomo data path",
|
949
|
+
"type": "required",
|
950
|
+
},
|
951
|
+
NEXUS_VERSION_FIELD: {
|
952
|
+
"default": "",
|
953
|
+
"help": "nexus version. If not provided will pick the latest one know",
|
954
|
+
"type": "required",
|
955
|
+
},
|
956
|
+
},
|
957
|
+
},
|
958
|
+
)
|
959
|
+
|
960
|
+
@staticmethod
|
961
|
+
def from_dict(config: dict):
|
962
|
+
if not isinstance(config, dict):
|
963
|
+
raise TypeError(f"config is expected to be a dict and not {type(config)}")
|
964
|
+
inputs_scans_str = config.get(INPUTS_SECTION, {}).get(INPUT_DATASETS_FIELD, None)
|
965
|
+
if inputs_scans_str in (None, ""):
|
966
|
+
input_scans = []
|
967
|
+
else:
|
968
|
+
input_scans = identifiers_as_str_to_instances(inputs_scans_str)
|
969
|
+
|
970
|
+
output_file_path = config.get(Z_PRE_PROC_SECTION, {}).get(DATA_FILE_FIELD, None)
|
971
|
+
|
972
|
+
nexus_version = config.get(Z_PRE_PROC_SECTION, {}).get(NEXUS_VERSION_FIELD, None)
|
973
|
+
if nexus_version in (None, ""):
|
974
|
+
nexus_version = nxtomo.LATEST_VERSION
|
975
|
+
else:
|
976
|
+
nexus_version = float(nexus_version)
|
977
|
+
pixel_size = config.get(INPUT_PIXEL_SIZE_MM, "").replace(" ", "")
|
978
|
+
if pixel_size == "":
|
979
|
+
pixel_size = None
|
980
|
+
else:
|
981
|
+
pixel_size = float(pixel_size) / MetricSystem.MM
|
982
|
+
|
983
|
+
return PreProcessedZStitchingConfiguration(
|
984
|
+
stitching_strategy=OverlapStitchingStrategy.from_value(
|
985
|
+
config[STITCHING_SECTION].get(
|
986
|
+
STITCHING_STRATEGY_FIELD,
|
987
|
+
OverlapStitchingStrategy.COSINUS_WEIGHTS,
|
988
|
+
),
|
989
|
+
),
|
990
|
+
axis_0_pos_px=str_to_shifts(config[STITCHING_SECTION].get(AXIS_0_POS_PX, None)),
|
991
|
+
axis_0_pos_mm=str_to_shifts(config[STITCHING_SECTION].get(AXIS_0_POS_MM, None)),
|
992
|
+
axis_0_params=_valid_shifts_params(_str_to_dict(config[STITCHING_SECTION].get(AXIS_0_PARAMS, {}))),
|
993
|
+
axis_1_pos_px=str_to_shifts(config[STITCHING_SECTION].get(AXIS_1_POS_PX, None)),
|
994
|
+
axis_1_pos_mm=str_to_shifts(config[STITCHING_SECTION].get(AXIS_1_POS_MM, None)),
|
995
|
+
axis_1_params=_valid_shifts_params(
|
996
|
+
_str_to_dict(
|
997
|
+
config[STITCHING_SECTION].get(AXIS_1_PARAMS, {}),
|
998
|
+
)
|
999
|
+
),
|
1000
|
+
axis_2_pos_px=str_to_shifts(config[STITCHING_SECTION].get(AXIS_2_POS_PX, None)),
|
1001
|
+
axis_2_pos_mm=str_to_shifts(config[STITCHING_SECTION].get(AXIS_2_POS_MM, None)),
|
1002
|
+
axis_2_params=_valid_shifts_params(
|
1003
|
+
_str_to_dict(
|
1004
|
+
config[STITCHING_SECTION].get(AXIS_2_PARAMS, {}),
|
1005
|
+
)
|
1006
|
+
),
|
1007
|
+
input_scans=input_scans,
|
1008
|
+
output_file_path=output_file_path,
|
1009
|
+
output_data_path=config.get(Z_PRE_PROC_SECTION, {}).get(DATA_PATH_FIELD, "entry_from_stitchig"),
|
1010
|
+
overwrite_results=config[STITCHING_SECTION].get(OVERWRITE_RESULTS_FIELD, True),
|
1011
|
+
output_nexus_version=nexus_version,
|
1012
|
+
slices=_slices_to_list_or_slice(config[INPUTS_SECTION].get(STITCHING_SLICES, None)),
|
1013
|
+
slurm_config=SlurmConfig.from_dict(config.get(SLURM_SECTION, {})),
|
1014
|
+
slice_for_cross_correlation=config[STITCHING_SECTION].get(CROSS_CORRELATION_SLICE_FIELD, "middle"),
|
1015
|
+
pixel_size=pixel_size,
|
1016
|
+
flip_ud=_scalar_or_tuple_to_bool_or_tuple_of_bool(config[STITCHING_SECTION].get(FLIP_UD, False)),
|
1017
|
+
flip_lr=_scalar_or_tuple_to_bool_or_tuple_of_bool(config[STITCHING_SECTION].get(FLIP_LR, False)),
|
1018
|
+
rescale_frames=convert_to_bool(config[STITCHING_SECTION].get(RESCALE_FRAMES, 0))[0],
|
1019
|
+
rescale_params=_str_to_dict(config[STITCHING_SECTION].get(RESCALE_PARAMS, {})),
|
1020
|
+
stitching_kernels_extra_params=_valid_stitching_kernels_params(
|
1021
|
+
_str_to_dict(
|
1022
|
+
config[STITCHING_SECTION].get(STITCHING_KERNELS_EXTRA_PARAMS, {}),
|
1023
|
+
)
|
1024
|
+
),
|
1025
|
+
alignment_axis_2=AlignmentAxis2.from_value(
|
1026
|
+
config[STITCHING_SECTION].get(ALIGNMENT_AXIS_2_FIELD, AlignmentAxis2.CENTER)
|
1027
|
+
),
|
1028
|
+
pad_mode=config[STITCHING_SECTION].get(PAD_MODE_FIELD, "constant"),
|
1029
|
+
normalization_by_sample=NormalizationBySample.from_dict(config.get(NORMALIZATION_BY_SAMPLE_SECTION, {})),
|
1030
|
+
)
|
1031
|
+
|
1032
|
+
|
1033
|
+
@dataclass
|
1034
|
+
class PostProcessedZStitchingConfiguration(ZStitchingConfiguration):
|
1035
|
+
"""
|
1036
|
+
base class to define z-stitching parameters
|
1037
|
+
"""
|
1038
|
+
|
1039
|
+
input_volumes: tuple = () # tuple of VolumeBase
|
1040
|
+
output_volume: Optional[VolumeIdentifier] = None
|
1041
|
+
voxel_size: Optional[float] = None
|
1042
|
+
alignment_axis_1: AlignmentAxis1 = AlignmentAxis1.CENTER
|
1043
|
+
|
1044
|
+
@property
|
1045
|
+
def stitching_type(self) -> StitchingType:
|
1046
|
+
return StitchingType.Z_POSTPROC
|
1047
|
+
|
1048
|
+
def get_output_object(self):
|
1049
|
+
return self.output_volume
|
1050
|
+
|
1051
|
+
def settle_inputs(self) -> None:
|
1052
|
+
super().settle_inputs()
|
1053
|
+
self.settle_input_volumes()
|
1054
|
+
|
1055
|
+
def settle_input_volumes(self):
|
1056
|
+
self.input_volumes = [
|
1057
|
+
Factory.create_tomo_object_from_identifier(identifier)
|
1058
|
+
if isinstance(identifier, (str, VolumeIdentifier))
|
1059
|
+
else identifier
|
1060
|
+
for identifier in self.input_volumes
|
1061
|
+
]
|
1062
|
+
|
1063
|
+
def slice_idx_from_str_to_int(self, index):
|
1064
|
+
if isinstance(index, str):
|
1065
|
+
index = index.lower()
|
1066
|
+
if index == "first":
|
1067
|
+
return 0
|
1068
|
+
elif index == "last":
|
1069
|
+
return self.input_volumes[0].get_volume_shape()[1] - 1
|
1070
|
+
elif index == "middle":
|
1071
|
+
return max(self.input_volumes[0].get_volume_shape()[1] // 2 - 1, 0)
|
1072
|
+
return int(index)
|
1073
|
+
|
1074
|
+
def settle_slices(self) -> tuple:
|
1075
|
+
"""
|
1076
|
+
interpret the slices to be stitched if needed
|
1077
|
+
|
1078
|
+
Nore: if slices is an instance of slice will redefine start and stop to avoid having negative indexes
|
1079
|
+
|
1080
|
+
:return: (slices:[slice,Iterable], n_proj:int)
|
1081
|
+
:rtype: tuple
|
1082
|
+
"""
|
1083
|
+
slices = self.slices
|
1084
|
+
if isinstance(slices, Sized) and len(slices) == 0:
|
1085
|
+
# in this case will stitch them all
|
1086
|
+
slices = None
|
1087
|
+
if len(self.input_volumes) == 0:
|
1088
|
+
raise ValueError("No input volume provided. Cannot settle slices")
|
1089
|
+
if slices is None:
|
1090
|
+
# before alignment was existing
|
1091
|
+
# slices = slice(0, self.input_volumes[0].get_volume_shape()[1], 1)
|
1092
|
+
slices = slice(
|
1093
|
+
0,
|
1094
|
+
max([volume.get_volume_shape()[1] for volume in self.input_volumes]),
|
1095
|
+
1,
|
1096
|
+
)
|
1097
|
+
n_slices = slices.stop
|
1098
|
+
if isinstance(slices, slice):
|
1099
|
+
# force slices indices to be positive
|
1100
|
+
start = slices.start
|
1101
|
+
if start < 0:
|
1102
|
+
start += max([volume.get_volume_shape()[1] for volume in self.input_volumes]) + 1
|
1103
|
+
stop = slices.stop
|
1104
|
+
if stop < 0:
|
1105
|
+
stop += max([volume.get_volume_shape()[1] for volume in self.input_volumes]) + 1
|
1106
|
+
step = slices.step
|
1107
|
+
if step is None:
|
1108
|
+
step = 1
|
1109
|
+
n_slices = ceil((stop - start) / step)
|
1110
|
+
# update slices for iteration simplify things
|
1111
|
+
slices = slice(start, stop, step)
|
1112
|
+
elif isinstance(slices, Iterable):
|
1113
|
+
n_slices = len(slices)
|
1114
|
+
slices = [self.slice_idx_from_str_to_int(s) for s in slices]
|
1115
|
+
else:
|
1116
|
+
raise TypeError(f"slices is expected to be a tuple or a slice. Not {type(slices)}")
|
1117
|
+
self.slices = slices
|
1118
|
+
return slices, n_slices
|
1119
|
+
|
1120
|
+
@staticmethod
|
1121
|
+
def from_dict(config: dict):
|
1122
|
+
if not isinstance(config, dict):
|
1123
|
+
raise TypeError(f"config is expected to be a dict and not {type(config)}")
|
1124
|
+
inputs_volumes_str = config.get(INPUTS_SECTION, {}).get(INPUT_DATASETS_FIELD, None)
|
1125
|
+
if inputs_volumes_str in (None, ""):
|
1126
|
+
input_volumes = []
|
1127
|
+
else:
|
1128
|
+
input_volumes = identifiers_as_str_to_instances(inputs_volumes_str)
|
1129
|
+
overwrite_results = config[STITCHING_SECTION].get(OVERWRITE_RESULTS_FIELD, True) in ("1", True, "True", 1)
|
1130
|
+
output_volume = config.get(Z_POST_PROC_SECTION, {}).get(OUTPUT_VOLUME, None)
|
1131
|
+
if output_volume is not None:
|
1132
|
+
output_volume = Factory.create_tomo_object_from_identifier(output_volume)
|
1133
|
+
output_volume.overwrite = overwrite_results
|
1134
|
+
voxel_size = config.get(INPUTS_SECTION, {}).get(INPUT_VOXEL_SIZE_MM, "")
|
1135
|
+
voxel_size = voxel_size.replace(" ", "")
|
1136
|
+
if voxel_size == "":
|
1137
|
+
voxel_size = None
|
1138
|
+
else:
|
1139
|
+
voxel_size = float(voxel_size) * MetricSystem.MM
|
1140
|
+
|
1141
|
+
# on the next section the one with a default value qre the optionnal one
|
1142
|
+
return PostProcessedZStitchingConfiguration(
|
1143
|
+
stitching_strategy=OverlapStitchingStrategy.from_value(
|
1144
|
+
config[STITCHING_SECTION].get(
|
1145
|
+
STITCHING_STRATEGY_FIELD,
|
1146
|
+
OverlapStitchingStrategy.COSINUS_WEIGHTS,
|
1147
|
+
),
|
1148
|
+
),
|
1149
|
+
axis_0_pos_px=str_to_shifts(config[STITCHING_SECTION].get(AXIS_0_POS_PX, None)),
|
1150
|
+
axis_0_pos_mm=str_to_shifts(config[STITCHING_SECTION].get(AXIS_0_POS_MM, None)),
|
1151
|
+
axis_0_params=_valid_shifts_params(config[STITCHING_SECTION].get(AXIS_0_PARAMS, {})),
|
1152
|
+
axis_1_pos_px=str_to_shifts(config[STITCHING_SECTION].get(AXIS_1_POS_PX, None)),
|
1153
|
+
axis_1_pos_mm=str_to_shifts(config[STITCHING_SECTION].get(AXIS_1_POS_MM, None)),
|
1154
|
+
axis_1_params=_valid_shifts_params(config[STITCHING_SECTION].get(AXIS_1_PARAMS, {})),
|
1155
|
+
axis_2_pos_px=str_to_shifts(config[STITCHING_SECTION].get(AXIS_2_POS_PX, None)),
|
1156
|
+
axis_2_pos_mm=str_to_shifts(config[STITCHING_SECTION].get(AXIS_2_POS_MM, None)),
|
1157
|
+
axis_2_params=_valid_shifts_params(config[STITCHING_SECTION].get(AXIS_2_PARAMS, {})),
|
1158
|
+
input_volumes=input_volumes,
|
1159
|
+
output_volume=output_volume,
|
1160
|
+
overwrite_results=overwrite_results,
|
1161
|
+
slices=_slices_to_list_or_slice(config[INPUTS_SECTION].get(STITCHING_SLICES, None)),
|
1162
|
+
slurm_config=SlurmConfig.from_dict(config.get(SLURM_SECTION, {})),
|
1163
|
+
voxel_size=voxel_size,
|
1164
|
+
slice_for_cross_correlation=config[STITCHING_SECTION].get(CROSS_CORRELATION_SLICE_FIELD, "middle"),
|
1165
|
+
flip_ud=_scalar_or_tuple_to_bool_or_tuple_of_bool(config[STITCHING_SECTION].get(FLIP_UD, False)),
|
1166
|
+
flip_lr=_scalar_or_tuple_to_bool_or_tuple_of_bool(config[STITCHING_SECTION].get(FLIP_LR, False)),
|
1167
|
+
rescale_frames=convert_to_bool(config[STITCHING_SECTION].get(RESCALE_FRAMES, 0))[0],
|
1168
|
+
rescale_params=_str_to_dict(config[STITCHING_SECTION].get(RESCALE_PARAMS, {})),
|
1169
|
+
stitching_kernels_extra_params=_valid_stitching_kernels_params(
|
1170
|
+
_str_to_dict(
|
1171
|
+
config[STITCHING_SECTION].get(STITCHING_KERNELS_EXTRA_PARAMS, {}),
|
1172
|
+
)
|
1173
|
+
),
|
1174
|
+
alignment_axis_1=AlignmentAxis1.from_value(
|
1175
|
+
config[STITCHING_SECTION].get(ALIGNMENT_AXIS_1_FIELD, AlignmentAxis1.CENTER)
|
1176
|
+
),
|
1177
|
+
alignment_axis_2=AlignmentAxis2.from_value(
|
1178
|
+
config[STITCHING_SECTION].get(ALIGNMENT_AXIS_2_FIELD, AlignmentAxis2.CENTER)
|
1179
|
+
),
|
1180
|
+
pad_mode=config[STITCHING_SECTION].get(PAD_MODE_FIELD, "constant"),
|
1181
|
+
normalization_by_sample=NormalizationBySample.from_dict(config.get(NORMALIZATION_BY_SAMPLE_SECTION, {})),
|
1182
|
+
)
|
1183
|
+
|
1184
|
+
def to_dict(self):
|
1185
|
+
if self.voxel_size is None:
|
1186
|
+
voxel_size_mm = ""
|
1187
|
+
else:
|
1188
|
+
voxel_size_mm = numpy.array(self.voxel_size) / MetricSystem.MM
|
1189
|
+
|
1190
|
+
return concatenate_dict(
|
1191
|
+
super().to_dict(),
|
1192
|
+
{
|
1193
|
+
INPUTS_SECTION: {
|
1194
|
+
INPUT_DATASETS_FIELD: [volume.get_identifier().to_str() for volume in self.input_volumes],
|
1195
|
+
INPUT_VOXEL_SIZE_MM: voxel_size_mm,
|
1196
|
+
},
|
1197
|
+
Z_POST_PROC_SECTION: {
|
1198
|
+
OUTPUT_VOLUME: self.output_volume.get_identifier().to_str()
|
1199
|
+
if self.output_volume is not None
|
1200
|
+
else "",
|
1201
|
+
},
|
1202
|
+
STITCHING_SECTION: {
|
1203
|
+
ALIGNMENT_AXIS_1_FIELD: self.alignment_axis_1.value,
|
1204
|
+
},
|
1205
|
+
},
|
1206
|
+
)
|
1207
|
+
|
1208
|
+
@staticmethod
|
1209
|
+
def get_description_dict() -> dict:
|
1210
|
+
return concatenate_dict(
|
1211
|
+
ZStitchingConfiguration.get_description_dict(),
|
1212
|
+
{
|
1213
|
+
Z_POST_PROC_SECTION: {
|
1214
|
+
OUTPUT_VOLUME: {
|
1215
|
+
"default": "",
|
1216
|
+
"help": "identifier of the output volume. Like hdf5:volume:[file_path]?path=[data_path] for an HDF5 volume",
|
1217
|
+
"type": "required",
|
1218
|
+
},
|
1219
|
+
},
|
1220
|
+
STITCHING_SECTION: {
|
1221
|
+
ALIGNMENT_AXIS_1_FIELD: {
|
1222
|
+
"default": "center",
|
1223
|
+
"help": f"alignment to apply over axis 1 if needed. Valid values are {AlignmentAxis1.values()}",
|
1224
|
+
"type": "advanced",
|
1225
|
+
}
|
1226
|
+
},
|
1227
|
+
},
|
1228
|
+
)
|
1229
|
+
|
1230
|
+
|
1231
|
+
def identifiers_as_str_to_instances(list_identifiers_as_str: str) -> tuple:
|
1232
|
+
# convert str to a list of str that should represent identifiers
|
1233
|
+
if isinstance(list_identifiers_as_str, str):
|
1234
|
+
list_identifiers_as_str = list_identifiers_as_str.lstrip("[").lstrip("(")
|
1235
|
+
list_identifiers_as_str = list_identifiers_as_str.rstrip("]").rstrip(")")
|
1236
|
+
identifiers_as_str = convert_str_to_tuple(list_identifiers_as_str.replace(";", ","))
|
1237
|
+
else:
|
1238
|
+
identifiers_as_str = list_identifiers_as_str
|
1239
|
+
if identifiers_as_str is None:
|
1240
|
+
return tuple()
|
1241
|
+
# convert identifiers as string to IdentifierType instances
|
1242
|
+
return tuple(
|
1243
|
+
[Factory.create_tomo_object_from_identifier(identifier_as_str) for identifier_as_str in identifiers_as_str]
|
1244
|
+
)
|
1245
|
+
|
1246
|
+
|
1247
|
+
def dict_to_config_obj(config: dict):
|
1248
|
+
if not isinstance(config, dict):
|
1249
|
+
raise TypeError
|
1250
|
+
stitching_type = config.get(STITCHING_SECTION, {}).get(STITCHING_TYPE_FIELD, None)
|
1251
|
+
if stitching_type is None:
|
1252
|
+
raise ValueError("Unagle to find stitching type from config dict")
|
1253
|
+
else:
|
1254
|
+
stitching_type = StitchingType.from_value(stitching_type)
|
1255
|
+
if stitching_type is StitchingType.Z_POSTPROC:
|
1256
|
+
return PostProcessedZStitchingConfiguration.from_dict(config)
|
1257
|
+
elif stitching_type is StitchingType.Z_PREPROC:
|
1258
|
+
return PreProcessedZStitchingConfiguration.from_dict(config)
|
1259
|
+
else:
|
1260
|
+
raise NotImplementedError(f"stitching type {stitching_type.value} not handled yet")
|
1261
|
+
|
1262
|
+
|
1263
|
+
def get_default_stitching_config(stitching_type: Optional[Union[StitchingType, str]]) -> tuple:
|
1264
|
+
"""
|
1265
|
+
Return a default configuration for doing stitching.
|
1266
|
+
|
1267
|
+
:param stitching_type: if None then return a configuration were use can provide inputs for any
|
1268
|
+
of the stitching.
|
1269
|
+
Else return config dict dedicated to a particular stitching
|
1270
|
+
:return: (config, section comments)
|
1271
|
+
"""
|
1272
|
+
if stitching_type is None:
|
1273
|
+
return concatenate_dict(z_postproc_stitching_config, z_preproc_stitching_config)
|
1274
|
+
|
1275
|
+
stitching_type = StitchingType.from_value(stitching_type)
|
1276
|
+
if stitching_type is StitchingType.Z_POSTPROC:
|
1277
|
+
return z_postproc_stitching_config
|
1278
|
+
elif stitching_type is StitchingType.Z_PREPROC:
|
1279
|
+
return z_preproc_stitching_config
|
1280
|
+
else:
|
1281
|
+
raise NotImplementedError
|
1282
|
+
|
1283
|
+
|
1284
|
+
z_preproc_stitching_config = PreProcessedZStitchingConfiguration.get_description_dict()
|
1285
|
+
|
1286
|
+
z_postproc_stitching_config = PostProcessedZStitchingConfiguration.get_description_dict()
|