nabu 2025.1.0rc1__tar.gz → 2025.1.0rc3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {nabu-2025.1.0rc1/nabu.egg-info → nabu-2025.1.0rc3}/PKG-INFO +2 -2
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/__init__.py +1 -1
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/cast_volume.py +1 -4
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/cli_configs.py +6 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/pcaflats.py +10 -4
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/src/backproj.cu +4 -4
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/io/cast_volume.py +9 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/opencl/src/backproj.cl +4 -4
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/fullfield/nabu_config.py +3 -3
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/fullfield/processconfig.py +9 -3
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/fullfield/reconstruction.py +1 -1
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/ccd.py +1 -1
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/flatfield.py +1 -1
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3/nabu.egg-info}/PKG-INFO +2 -2
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu.egg-info/requires.txt +1 -1
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/pyproject.toml +1 -1
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/LICENSE +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/README.md +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/doc/conf.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/doc/create_conf_doc.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/doc/get_mathjax.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/__init__.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/bootstrap.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/bootstrap_stitching.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/compare_volumes.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/composite_cor.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/create_distortion_map_from_poly.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/diag_to_pix.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/diag_to_rot.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/double_flatfield.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/estimate_motion.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/generate_header.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/histogram.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/multicor.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/nx_z_splitter.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/parse_reconstruction_log.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/prepare_weights_double.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/reconstruct.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/reconstruct_helical.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/reduce_dark_flat.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/rotate.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/shrink_dataset.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/stitching.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/tests/__init__.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/tests/test_reduce_dark_flat.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/utils.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/validator.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/__init__.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/convolution.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/fft.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/kernel.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/medfilt.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/padding.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/processing.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/src/ElementOp.cu +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/src/backproj_polar.cu +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/src/boundary.h +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/src/cone.cu +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/src/convolution.cu +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/src/dfi_fftshift.cu +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/src/flatfield.cu +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/src/fourier_wavelets.cu +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/src/halftomo.cu +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/src/helical_padding.cu +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/src/hierarchical_backproj.cu +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/src/histogram.cu +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/src/interpolation.cu +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/src/medfilt.cu +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/src/normalization.cu +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/src/padding.cu +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/src/proj.cu +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/src/rotation.cu +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/src/transpose.cu +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/tests/__init__.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/utils.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/estimation/__init__.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/estimation/alignment.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/estimation/cor.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/estimation/cor_sino.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/estimation/distortion.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/estimation/focus.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/estimation/motion.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/estimation/tests/__init__.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/estimation/tests/test_alignment.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/estimation/tests/test_cor.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/estimation/tests/test_focus.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/estimation/tests/test_motion_estimation.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/estimation/tests/test_tilt.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/estimation/tests/test_translation.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/estimation/tilt.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/estimation/translation.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/estimation/utils.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/io/__init__.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/io/detector_distortion.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/io/reader.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/io/reader_helical.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/io/tests/__init__.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/io/tests/test_cast_volume.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/io/tests/test_readers.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/io/tests/test_remove_volume.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/io/tests/test_writers.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/io/utils.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/io/writer.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/misc/__init__.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/misc/binning.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/misc/fftshift.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/misc/filters.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/misc/fourier_filters.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/misc/histogram.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/misc/histogram_cuda.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/misc/kernel_base.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/misc/padding.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/misc/padding_base.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/misc/processing_base.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/misc/rotation.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/misc/rotation_cuda.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/misc/tests/__init__.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/misc/tests/test_binning.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/misc/tests/test_interpolation.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/misc/transpose.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/misc/unsharp.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/misc/unsharp_cuda.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/misc/unsharp_opencl.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/misc/utils.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/opencl/__init__.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/opencl/fft.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/opencl/kernel.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/opencl/memcpy.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/opencl/padding.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/opencl/processing.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/opencl/src/ElementOp.cl +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/opencl/src/fftshift.cl +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/opencl/src/halftomo.cl +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/opencl/src/padding.cl +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/opencl/src/roll.cl +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/opencl/src/transpose.cl +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/opencl/tests/__init__.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/opencl/utils.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/__init__.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/config.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/config_validators.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/datadump.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/dataset_validator.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/detector_distortion_provider.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/estimators.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/fullfield/__init__.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/fullfield/chunked.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/fullfield/chunked_cuda.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/fullfield/computations.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/fullfield/dataset_validator.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/fullfield/get_double_flatfield.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/helical/__init__.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/helical/dataset_validator.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/helical/fbp.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/helical/filtering.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/helical/gridded_accumulator.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/helical/helical_chunked_regridded.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/helical/helical_chunked_regridded_cuda.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/helical/helical_reconstruction.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/helical/helical_utils.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/helical/nabu_config.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/helical/processconfig.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/helical/span_strategy.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/helical/tests/__init__.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/helical/weight_balancer.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/params.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/processconfig.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/reader.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/tests/__init__.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/tests/test_estimators.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/utils.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/writer.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/xrdct/__init__.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/__init__.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/alignment.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/ccd_cuda.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/ctf.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/ctf_cuda.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/distortion.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/double_flatfield.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/double_flatfield_cuda.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/double_flatfield_variable_region.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/flatfield_cuda.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/flatfield_variable_region.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/phase.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/phase_cuda.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/shift.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/shift_cuda.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/tests/__init__.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/tests/test_ccd_corr.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/tests/test_ctf.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/tests/test_double_flatfield.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/tests/test_flatfield.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/tests/test_paganin.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/tests/test_pcaflats.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/tests/test_vshift.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/__init__.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/azim.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/convolution_cuda.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/fft_base.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/fft_cuda.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/fft_opencl.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/fftshift.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/histogram.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/histogram_cuda.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/kernel_base.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/medfilt_cuda.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/muladd.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/muladd_cuda.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/padding_base.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/padding_cuda.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/padding_opencl.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/processing_base.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/roll_opencl.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/rotation.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/rotation_cuda.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/tests/__init__.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/tests/test_fft.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/tests/test_fftshift.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/tests/test_histogram.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/tests/test_medfilt.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/tests/test_muladd.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/tests/test_padding.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/tests/test_roll.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/tests/test_rotation.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/tests/test_transpose.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/tests/test_unsharp.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/transpose.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/unsharp.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/unsharp_cuda.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/unsharp_opencl.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/__init__.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/cone.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/fbp.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/fbp_base.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/fbp_opencl.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/filtering.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/filtering_cuda.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/filtering_opencl.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/hbp.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/mlem.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/projection.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/reconstructor.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/reconstructor_cuda.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/rings.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/rings_cuda.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/sinogram.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/sinogram_cuda.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/sinogram_opencl.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/tests/__init__.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/tests/test_cone.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/tests/test_deringer.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/tests/test_fbp.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/tests/test_filtering.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/tests/test_halftomo.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/tests/test_mlem.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/tests/test_projector.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/tests/test_reconstructor.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/tests/test_sino_normalization.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/resources/__init__.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/resources/cli/__init__.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/resources/cor.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/resources/dataset_analyzer.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/resources/gpu.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/resources/logger.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/resources/nxflatfield.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/resources/templates/__init__.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/resources/templates/bm05_pag.conf +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/resources/templates/id16_ctf.conf +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/resources/templates/id16_holo.conf +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/resources/templates/id16a_fluo.conf +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/resources/templates/id19_pag.conf +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/resources/tests/__init__.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/resources/tests/test_extract.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/resources/tests/test_nxflatfield.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/resources/tests/test_units.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/resources/utils.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/__init__.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/alignment.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/config.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/definitions.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/frame_composition.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/overlap.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/sample_normalization.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/single_axis_stitching.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/slurm_utils.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/stitcher/__init__.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/stitcher/base.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/stitcher/dumper/__init__.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/stitcher/dumper/base.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/stitcher/dumper/postprocessing.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/stitcher/dumper/preprocessing.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/stitcher/post_processing.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/stitcher/pre_processing.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/stitcher/single_axis.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/stitcher/stitcher.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/stitcher/y_stitcher.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/stitcher/z_stitcher.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/stitcher_2D.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/tests/test_alignment.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/tests/test_config.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/tests/test_frame_composition.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/tests/test_overlap.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/tests/test_sample_normalization.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/tests/test_slurm_utils.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/tests/test_utils.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/tests/test_y_preprocessing_stitching.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/tests/test_z_postprocessing_stitching.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/tests/test_z_preprocessing_stitching.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/utils/__init__.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/utils/post_processing.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/utils/tests/__init__.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/utils/tests/test_post-processing.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/utils/utils.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/y_stitching.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/z_stitching.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/tests.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/testutils.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/thirdparty/__init__.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/thirdparty/algotom_convert_sino.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/thirdparty/pore3d_deringer_munch.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/thirdparty/tomocupy_remove_stripe.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/thirdparty/tomopy_phase.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/thirdparty/tomwer_load_flats_darks.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/utils.py +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu.egg-info/SOURCES.txt +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu.egg-info/dependency_links.txt +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu.egg-info/entry_points.txt +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu.egg-info/top_level.txt +0 -0
- {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: nabu
|
3
|
-
Version: 2025.1.
|
3
|
+
Version: 2025.1.0rc3
|
4
4
|
Summary: Nabu - Tomography software
|
5
5
|
Author-email: Pierre Paleo <pierre.paleo@esrf.fr>, Henri Payno <henri.payno@esrf.fr>, Alessandro Mirone <mirone@esrf.fr>, Jérôme Lesaint <jerome.lesaint@esrf.fr>
|
6
6
|
Maintainer-email: Pierre Paleo <pierre.paleo@esrf.fr>
|
@@ -32,7 +32,7 @@ Requires-Dist: numpy>1.9.0
|
|
32
32
|
Requires-Dist: scipy
|
33
33
|
Requires-Dist: h5py>=3.0
|
34
34
|
Requires-Dist: silx>=0.15.0
|
35
|
-
Requires-Dist: tomoscan>=2.2.
|
35
|
+
Requires-Dist: tomoscan>=2.2.2
|
36
36
|
Requires-Dist: psutil
|
37
37
|
Requires-Dist: pytest
|
38
38
|
Requires-Dist: tifffile
|
@@ -19,7 +19,6 @@ from nabu.io.cast_volume import (
|
|
19
19
|
RESCALE_MIN_PERCENTILE,
|
20
20
|
cast_volume,
|
21
21
|
get_default_output_volume,
|
22
|
-
remove_volume,
|
23
22
|
)
|
24
23
|
from nabu.pipeline.params import files_formats
|
25
24
|
from nabu.utils import convert_str_to_tuple
|
@@ -277,10 +276,8 @@ def main(argv=None):
|
|
277
276
|
data_max=data_max,
|
278
277
|
rescale_min_percentile=rescale_min_percentile,
|
279
278
|
rescale_max_percentile=rescale_max_percentile,
|
279
|
+
remove_input_volume=options.remove,
|
280
280
|
)
|
281
|
-
if options.remove:
|
282
|
-
_logger.info(f"Removing {input_volume.data_url.file_path()}")
|
283
|
-
remove_volume(input_volume, check=True)
|
284
281
|
exit(0)
|
285
282
|
|
286
283
|
|
@@ -654,6 +654,12 @@ ReduceDarkFlatConfig = {
|
|
654
654
|
|
655
655
|
PCAFlatsConfig = {
|
656
656
|
"datasets": {"help": "datasets to be stitched together", "default": tuple(), "nargs": "+", "mandatory": True},
|
657
|
+
"nsigma": {
|
658
|
+
"help": "Paramter to select PCA components. Default is 3. Higher nsigma, less components.",
|
659
|
+
"default": 3.0,
|
660
|
+
"type": float,
|
661
|
+
"required": False,
|
662
|
+
},
|
657
663
|
"flat-method": {
|
658
664
|
"help": f"Define the method to be used for computing flats. Valid methods are {reduce_methods}",
|
659
665
|
"default": ReduceMethod.MEDIAN,
|
@@ -42,10 +42,12 @@ def get_flats_darks_from_h5(filename):
|
|
42
42
|
return flats, darks, "entry0000" # TODO this will be problematic on the reconstruction side
|
43
43
|
|
44
44
|
|
45
|
-
def pcaflats_decomposition(
|
45
|
+
def pcaflats_decomposition(
|
46
|
+
flats, darks, pcaflats_filename="PCAFlats.h5", overwrite=False, entry="entry0000", nsigma=3.0
|
47
|
+
):
|
46
48
|
"""Compute the PCS decomposition of a series of flats and darks, possibly taken from various scans."""
|
47
49
|
try:
|
48
|
-
decomposer = PCAFlatsDecomposer(flats, darks)
|
50
|
+
decomposer = PCAFlatsDecomposer(flats, darks, nsigma=nsigma)
|
49
51
|
decomposer.save_decomposition(pcaflats_filename, overwrite=overwrite, entry=entry)
|
50
52
|
success = True
|
51
53
|
except:
|
@@ -74,7 +76,11 @@ def main(argv=None):
|
|
74
76
|
)
|
75
77
|
|
76
78
|
# Get "where to write".
|
77
|
-
|
79
|
+
if args["output_filename"] is None:
|
80
|
+
abspath = os.path.abspath("./PCAFlats.hdf5")
|
81
|
+
else:
|
82
|
+
abspath = os.path.abspath(args["output_filename"])
|
83
|
+
|
78
84
|
pcaflats_dir = os.path.dirname(abspath)
|
79
85
|
pcaflats_filename = os.path.basename(abspath)
|
80
86
|
|
@@ -107,7 +113,7 @@ def main(argv=None):
|
|
107
113
|
|
108
114
|
exit(
|
109
115
|
pcaflats_decomposition(
|
110
|
-
flats, darks, pcaflats_filename=
|
116
|
+
flats, darks, pcaflats_filename=output_path, overwrite=args["overwrite"], entry=entry, nsigma=args["nsigma"]
|
111
117
|
)
|
112
118
|
)
|
113
119
|
|
@@ -132,10 +132,10 @@ __global__ void backproj(
|
|
132
132
|
sum3 += tex2D(tex_projections, h3 + 0.5f, proj + 0.5f);
|
133
133
|
sum4 += tex2D(tex_projections, h4 + 0.5f, proj + 0.5f);
|
134
134
|
#else
|
135
|
-
sum1 += linear_interpolation(d_sino, num_bins, h1, proj);
|
136
|
-
sum2 += linear_interpolation(d_sino, num_bins, h2, proj);
|
137
|
-
sum3 += linear_interpolation(d_sino, num_bins, h3, proj);
|
138
|
-
sum4 += linear_interpolation(d_sino, num_bins, h4, proj);
|
135
|
+
if (h1 >= 0 && h1 < num_bins) sum1 += linear_interpolation(d_sino, num_bins, h1, proj);
|
136
|
+
if (h2 >= 0 && h2 < num_bins) sum2 += linear_interpolation(d_sino, num_bins, h2, proj);
|
137
|
+
if (h3 >= 0 && h3 < num_bins) sum3 += linear_interpolation(d_sino, num_bins, h3, proj);
|
138
|
+
if (h4 >= 0 && h4 < num_bins) sum4 += linear_interpolation(d_sino, num_bins, h4, proj);
|
139
139
|
#endif
|
140
140
|
}
|
141
141
|
|
@@ -139,6 +139,7 @@ def cast_volume(
|
|
139
139
|
rescale_max_percentile=RESCALE_MAX_PERCENTILE,
|
140
140
|
save=True,
|
141
141
|
store=False,
|
142
|
+
remove_input_volume: bool = False,
|
142
143
|
) -> VolumeBase:
|
143
144
|
"""
|
144
145
|
cast givent volume to output_volume of 'output_data_type' type
|
@@ -248,6 +249,14 @@ def cast_volume(
|
|
248
249
|
except (OSError, KeyError):
|
249
250
|
# if no metadata provided and or saved in disk or if some key are missing
|
250
251
|
pass
|
252
|
+
|
253
|
+
if save and output_volume.metadata is not None:
|
254
|
+
output_volume.save_metadata()
|
255
|
+
|
256
|
+
if remove_input_volume:
|
257
|
+
_logger.info(f"Removing {input_volume.data_url.file_path()}")
|
258
|
+
remove_volume(input_volume, check=True)
|
259
|
+
|
251
260
|
return output_volume
|
252
261
|
|
253
262
|
|
@@ -116,10 +116,10 @@ kernel void backproj(
|
|
116
116
|
sum3 += read_imagef(d_sino, sampler, (float2) (h3 +0.5f,proj +0.5f)).x;
|
117
117
|
sum4 += read_imagef(d_sino, sampler, (float2) (h4 +0.5f,proj +0.5f)).x;
|
118
118
|
#else
|
119
|
-
sum1 += linear_interpolation(d_sino, num_bins, h1, proj);
|
120
|
-
sum2 += linear_interpolation(d_sino, num_bins, h2, proj);
|
121
|
-
sum3 += linear_interpolation(d_sino, num_bins, h3, proj);
|
122
|
-
sum4 += linear_interpolation(d_sino, num_bins, h4, proj);
|
119
|
+
if (h1 >= 0 && h1 < num_bins) sum1 += linear_interpolation(d_sino, num_bins, h1, proj);
|
120
|
+
if (h2 >= 0 && h2 < num_bins) sum2 += linear_interpolation(d_sino, num_bins, h2, proj);
|
121
|
+
if (h3 >= 0 && h3 < num_bins) sum3 += linear_interpolation(d_sino, num_bins, h3, proj);
|
122
|
+
if (h4 >= 0 && h4 < num_bins) sum4 += linear_interpolation(d_sino, num_bins, h4, proj);
|
123
123
|
#endif
|
124
124
|
}
|
125
125
|
|
@@ -16,9 +16,9 @@ nabu_config = {
|
|
16
16
|
"type": "advanced",
|
17
17
|
},
|
18
18
|
"nexus_version": {
|
19
|
-
"default": "
|
20
|
-
"help": "Nexus version to use when browsing the HDF5 dataset.
|
21
|
-
"validator":
|
19
|
+
"default": "",
|
20
|
+
"help": "Specify a Nexus version to use when browsing the HDF5 dataset.",
|
21
|
+
"validator": optional_float_validator,
|
22
22
|
"type": "advanced",
|
23
23
|
},
|
24
24
|
"darks_flats_dir": {
|
@@ -4,7 +4,7 @@ import numpy as np
|
|
4
4
|
from .get_double_flatfield import get_double_flatfield
|
5
5
|
from silx.io import get_data
|
6
6
|
from silx.io.url import DataUrl
|
7
|
-
from ...utils import copy_dict_items, compare_dicts
|
7
|
+
from ...utils import copy_dict_items, compare_dicts, deprecation_warning
|
8
8
|
from ...io.utils import hdf5_entry_exists, get_h5_value
|
9
9
|
from ...io.reader import import_h5_to_dict
|
10
10
|
from ...resources.utils import extract_parameters, get_values_from_file
|
@@ -86,8 +86,6 @@ class ProcessConfig(ProcessConfigBase):
|
|
86
86
|
elif self.dataset_info.kind == "edf":
|
87
87
|
self.dataset_info.flats = self.dataset_info.get_reduced_flats()
|
88
88
|
self.dataset_info.darks = self.dataset_info.get_reduced_darks()
|
89
|
-
else:
|
90
|
-
raise TypeError("Unknown dataset format")
|
91
89
|
self.rec_params = self.nabu_config["reconstruction"]
|
92
90
|
|
93
91
|
subsampling_factor, subsampling_start = self.nabu_config["dataset"]["projections_subsampling"]
|
@@ -476,6 +474,14 @@ class ProcessConfig(ProcessConfigBase):
|
|
476
474
|
#
|
477
475
|
# Double flat field
|
478
476
|
#
|
477
|
+
# ---- COMPAT ----
|
478
|
+
if nabu_config["preproc"].get("double_flatfield_enabled", False):
|
479
|
+
deprecation_warning(
|
480
|
+
"'double_flatfield_enabled' has been renamed to 'double_flatfield'. Please update your configuration file"
|
481
|
+
)
|
482
|
+
nabu_config["preproc"]["double_flatfield"] = True
|
483
|
+
|
484
|
+
# -------------
|
479
485
|
if nabu_config["preproc"]["double_flatfield"]:
|
480
486
|
tasks.append("double_flatfield")
|
481
487
|
options["double_flatfield"] = {
|
@@ -486,7 +486,7 @@ class FullFieldReconstructor:
|
|
486
486
|
{
|
487
487
|
"sub_region": (
|
488
488
|
(0, self.n_angles),
|
489
|
-
(curr_z_min - margin_up, curr_z_max + margin_down),
|
489
|
+
(int(curr_z_min - margin_up), int(curr_z_max + margin_down)),
|
490
490
|
(0, self.chunk_shape[-1]),
|
491
491
|
),
|
492
492
|
"margin": ((margin_up, margin_down), (0, 0)),
|
@@ -167,7 +167,7 @@ class CCDFilter:
|
|
167
167
|
med = self.median_filter(dimg, self.kernel_size)
|
168
168
|
err = dimg - med
|
169
169
|
ds0 = err.std()
|
170
|
-
msk = err > ds0 * nsigma
|
170
|
+
msk = err > (ds0 * nsigma)
|
171
171
|
gromsk = binary_dilation(msk)
|
172
172
|
|
173
173
|
output[i] = np.where(gromsk, med, radios[i])
|
@@ -669,7 +669,7 @@ class PCAFlatsDecomposer:
|
|
669
669
|
def _ccdfilter_and_log(self, flats: np.ndarray):
|
670
670
|
"""Dezinger (substract dark, apply median filter) and takes log of the flat stack"""
|
671
671
|
|
672
|
-
self.ccdfilter.dezinger_correction(flats, self.dark
|
672
|
+
self.ccdfilter.dezinger_correction(flats, self.dark)
|
673
673
|
|
674
674
|
with ThreadPool(self.n_threads) as tp:
|
675
675
|
for i, frame in enumerate(tp.map(np.log, flats)):
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: nabu
|
3
|
-
Version: 2025.1.
|
3
|
+
Version: 2025.1.0rc3
|
4
4
|
Summary: Nabu - Tomography software
|
5
5
|
Author-email: Pierre Paleo <pierre.paleo@esrf.fr>, Henri Payno <henri.payno@esrf.fr>, Alessandro Mirone <mirone@esrf.fr>, Jérôme Lesaint <jerome.lesaint@esrf.fr>
|
6
6
|
Maintainer-email: Pierre Paleo <pierre.paleo@esrf.fr>
|
@@ -32,7 +32,7 @@ Requires-Dist: numpy>1.9.0
|
|
32
32
|
Requires-Dist: scipy
|
33
33
|
Requires-Dist: h5py>=3.0
|
34
34
|
Requires-Dist: silx>=0.15.0
|
35
|
-
Requires-Dist: tomoscan>=2.2.
|
35
|
+
Requires-Dist: tomoscan>=2.2.2
|
36
36
|
Requires-Dist: psutil
|
37
37
|
Requires-Dist: pytest
|
38
38
|
Requires-Dist: tifffile
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|