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.
Files changed (330) hide show
  1. {nabu-2025.1.0rc1/nabu.egg-info → nabu-2025.1.0rc3}/PKG-INFO +2 -2
  2. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/__init__.py +1 -1
  3. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/cast_volume.py +1 -4
  4. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/cli_configs.py +6 -0
  5. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/pcaflats.py +10 -4
  6. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/src/backproj.cu +4 -4
  7. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/io/cast_volume.py +9 -0
  8. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/opencl/src/backproj.cl +4 -4
  9. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/fullfield/nabu_config.py +3 -3
  10. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/fullfield/processconfig.py +9 -3
  11. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/fullfield/reconstruction.py +1 -1
  12. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/ccd.py +1 -1
  13. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/flatfield.py +1 -1
  14. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3/nabu.egg-info}/PKG-INFO +2 -2
  15. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu.egg-info/requires.txt +1 -1
  16. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/pyproject.toml +1 -1
  17. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/LICENSE +0 -0
  18. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/README.md +0 -0
  19. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/doc/conf.py +0 -0
  20. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/doc/create_conf_doc.py +0 -0
  21. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/doc/get_mathjax.py +0 -0
  22. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/__init__.py +0 -0
  23. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/bootstrap.py +0 -0
  24. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/bootstrap_stitching.py +0 -0
  25. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/compare_volumes.py +0 -0
  26. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/composite_cor.py +0 -0
  27. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/create_distortion_map_from_poly.py +0 -0
  28. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/diag_to_pix.py +0 -0
  29. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/diag_to_rot.py +0 -0
  30. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/double_flatfield.py +0 -0
  31. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/estimate_motion.py +0 -0
  32. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/generate_header.py +0 -0
  33. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/histogram.py +0 -0
  34. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/multicor.py +0 -0
  35. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/nx_z_splitter.py +0 -0
  36. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/parse_reconstruction_log.py +0 -0
  37. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/prepare_weights_double.py +0 -0
  38. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/reconstruct.py +0 -0
  39. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/reconstruct_helical.py +0 -0
  40. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/reduce_dark_flat.py +0 -0
  41. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/rotate.py +0 -0
  42. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/shrink_dataset.py +0 -0
  43. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/stitching.py +0 -0
  44. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/tests/__init__.py +0 -0
  45. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/tests/test_reduce_dark_flat.py +0 -0
  46. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/utils.py +0 -0
  47. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/app/validator.py +0 -0
  48. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/__init__.py +0 -0
  49. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/convolution.py +0 -0
  50. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/fft.py +0 -0
  51. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/kernel.py +0 -0
  52. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/medfilt.py +0 -0
  53. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/padding.py +0 -0
  54. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/processing.py +0 -0
  55. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/src/ElementOp.cu +0 -0
  56. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/src/backproj_polar.cu +0 -0
  57. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/src/boundary.h +0 -0
  58. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/src/cone.cu +0 -0
  59. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/src/convolution.cu +0 -0
  60. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/src/dfi_fftshift.cu +0 -0
  61. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/src/flatfield.cu +0 -0
  62. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/src/fourier_wavelets.cu +0 -0
  63. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/src/halftomo.cu +0 -0
  64. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/src/helical_padding.cu +0 -0
  65. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/src/hierarchical_backproj.cu +0 -0
  66. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/src/histogram.cu +0 -0
  67. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/src/interpolation.cu +0 -0
  68. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/src/medfilt.cu +0 -0
  69. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/src/normalization.cu +0 -0
  70. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/src/padding.cu +0 -0
  71. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/src/proj.cu +0 -0
  72. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/src/rotation.cu +0 -0
  73. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/src/transpose.cu +0 -0
  74. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/tests/__init__.py +0 -0
  75. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/cuda/utils.py +0 -0
  76. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/estimation/__init__.py +0 -0
  77. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/estimation/alignment.py +0 -0
  78. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/estimation/cor.py +0 -0
  79. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/estimation/cor_sino.py +0 -0
  80. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/estimation/distortion.py +0 -0
  81. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/estimation/focus.py +0 -0
  82. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/estimation/motion.py +0 -0
  83. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/estimation/tests/__init__.py +0 -0
  84. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/estimation/tests/test_alignment.py +0 -0
  85. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/estimation/tests/test_cor.py +0 -0
  86. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/estimation/tests/test_focus.py +0 -0
  87. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/estimation/tests/test_motion_estimation.py +0 -0
  88. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/estimation/tests/test_tilt.py +0 -0
  89. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/estimation/tests/test_translation.py +0 -0
  90. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/estimation/tilt.py +0 -0
  91. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/estimation/translation.py +0 -0
  92. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/estimation/utils.py +0 -0
  93. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/io/__init__.py +0 -0
  94. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/io/detector_distortion.py +0 -0
  95. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/io/reader.py +0 -0
  96. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/io/reader_helical.py +0 -0
  97. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/io/tests/__init__.py +0 -0
  98. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/io/tests/test_cast_volume.py +0 -0
  99. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/io/tests/test_readers.py +0 -0
  100. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/io/tests/test_remove_volume.py +0 -0
  101. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/io/tests/test_writers.py +0 -0
  102. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/io/utils.py +0 -0
  103. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/io/writer.py +0 -0
  104. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/misc/__init__.py +0 -0
  105. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/misc/binning.py +0 -0
  106. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/misc/fftshift.py +0 -0
  107. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/misc/filters.py +0 -0
  108. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/misc/fourier_filters.py +0 -0
  109. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/misc/histogram.py +0 -0
  110. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/misc/histogram_cuda.py +0 -0
  111. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/misc/kernel_base.py +0 -0
  112. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/misc/padding.py +0 -0
  113. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/misc/padding_base.py +0 -0
  114. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/misc/processing_base.py +0 -0
  115. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/misc/rotation.py +0 -0
  116. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/misc/rotation_cuda.py +0 -0
  117. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/misc/tests/__init__.py +0 -0
  118. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/misc/tests/test_binning.py +0 -0
  119. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/misc/tests/test_interpolation.py +0 -0
  120. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/misc/transpose.py +0 -0
  121. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/misc/unsharp.py +0 -0
  122. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/misc/unsharp_cuda.py +0 -0
  123. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/misc/unsharp_opencl.py +0 -0
  124. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/misc/utils.py +0 -0
  125. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/opencl/__init__.py +0 -0
  126. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/opencl/fft.py +0 -0
  127. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/opencl/kernel.py +0 -0
  128. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/opencl/memcpy.py +0 -0
  129. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/opencl/padding.py +0 -0
  130. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/opencl/processing.py +0 -0
  131. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/opencl/src/ElementOp.cl +0 -0
  132. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/opencl/src/fftshift.cl +0 -0
  133. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/opencl/src/halftomo.cl +0 -0
  134. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/opencl/src/padding.cl +0 -0
  135. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/opencl/src/roll.cl +0 -0
  136. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/opencl/src/transpose.cl +0 -0
  137. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/opencl/tests/__init__.py +0 -0
  138. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/opencl/utils.py +0 -0
  139. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/__init__.py +0 -0
  140. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/config.py +0 -0
  141. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/config_validators.py +0 -0
  142. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/datadump.py +0 -0
  143. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/dataset_validator.py +0 -0
  144. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/detector_distortion_provider.py +0 -0
  145. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/estimators.py +0 -0
  146. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/fullfield/__init__.py +0 -0
  147. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/fullfield/chunked.py +0 -0
  148. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/fullfield/chunked_cuda.py +0 -0
  149. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/fullfield/computations.py +0 -0
  150. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/fullfield/dataset_validator.py +0 -0
  151. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/fullfield/get_double_flatfield.py +0 -0
  152. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/helical/__init__.py +0 -0
  153. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/helical/dataset_validator.py +0 -0
  154. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/helical/fbp.py +0 -0
  155. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/helical/filtering.py +0 -0
  156. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/helical/gridded_accumulator.py +0 -0
  157. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/helical/helical_chunked_regridded.py +0 -0
  158. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/helical/helical_chunked_regridded_cuda.py +0 -0
  159. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/helical/helical_reconstruction.py +0 -0
  160. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/helical/helical_utils.py +0 -0
  161. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/helical/nabu_config.py +0 -0
  162. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/helical/processconfig.py +0 -0
  163. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/helical/span_strategy.py +0 -0
  164. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/helical/tests/__init__.py +0 -0
  165. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/helical/weight_balancer.py +0 -0
  166. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/params.py +0 -0
  167. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/processconfig.py +0 -0
  168. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/reader.py +0 -0
  169. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/tests/__init__.py +0 -0
  170. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/tests/test_estimators.py +0 -0
  171. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/utils.py +0 -0
  172. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/writer.py +0 -0
  173. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/pipeline/xrdct/__init__.py +0 -0
  174. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/__init__.py +0 -0
  175. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/alignment.py +0 -0
  176. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/ccd_cuda.py +0 -0
  177. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/ctf.py +0 -0
  178. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/ctf_cuda.py +0 -0
  179. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/distortion.py +0 -0
  180. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/double_flatfield.py +0 -0
  181. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/double_flatfield_cuda.py +0 -0
  182. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/double_flatfield_variable_region.py +0 -0
  183. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/flatfield_cuda.py +0 -0
  184. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/flatfield_variable_region.py +0 -0
  185. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/phase.py +0 -0
  186. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/phase_cuda.py +0 -0
  187. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/shift.py +0 -0
  188. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/shift_cuda.py +0 -0
  189. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/tests/__init__.py +0 -0
  190. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/tests/test_ccd_corr.py +0 -0
  191. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/tests/test_ctf.py +0 -0
  192. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/tests/test_double_flatfield.py +0 -0
  193. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/tests/test_flatfield.py +0 -0
  194. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/tests/test_paganin.py +0 -0
  195. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/tests/test_pcaflats.py +0 -0
  196. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/preproc/tests/test_vshift.py +0 -0
  197. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/__init__.py +0 -0
  198. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/azim.py +0 -0
  199. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/convolution_cuda.py +0 -0
  200. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/fft_base.py +0 -0
  201. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/fft_cuda.py +0 -0
  202. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/fft_opencl.py +0 -0
  203. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/fftshift.py +0 -0
  204. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/histogram.py +0 -0
  205. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/histogram_cuda.py +0 -0
  206. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/kernel_base.py +0 -0
  207. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/medfilt_cuda.py +0 -0
  208. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/muladd.py +0 -0
  209. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/muladd_cuda.py +0 -0
  210. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/padding_base.py +0 -0
  211. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/padding_cuda.py +0 -0
  212. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/padding_opencl.py +0 -0
  213. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/processing_base.py +0 -0
  214. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/roll_opencl.py +0 -0
  215. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/rotation.py +0 -0
  216. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/rotation_cuda.py +0 -0
  217. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/tests/__init__.py +0 -0
  218. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/tests/test_fft.py +0 -0
  219. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/tests/test_fftshift.py +0 -0
  220. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/tests/test_histogram.py +0 -0
  221. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/tests/test_medfilt.py +0 -0
  222. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/tests/test_muladd.py +0 -0
  223. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/tests/test_padding.py +0 -0
  224. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/tests/test_roll.py +0 -0
  225. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/tests/test_rotation.py +0 -0
  226. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/tests/test_transpose.py +0 -0
  227. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/tests/test_unsharp.py +0 -0
  228. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/transpose.py +0 -0
  229. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/unsharp.py +0 -0
  230. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/unsharp_cuda.py +0 -0
  231. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/processing/unsharp_opencl.py +0 -0
  232. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/__init__.py +0 -0
  233. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/cone.py +0 -0
  234. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/fbp.py +0 -0
  235. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/fbp_base.py +0 -0
  236. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/fbp_opencl.py +0 -0
  237. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/filtering.py +0 -0
  238. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/filtering_cuda.py +0 -0
  239. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/filtering_opencl.py +0 -0
  240. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/hbp.py +0 -0
  241. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/mlem.py +0 -0
  242. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/projection.py +0 -0
  243. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/reconstructor.py +0 -0
  244. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/reconstructor_cuda.py +0 -0
  245. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/rings.py +0 -0
  246. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/rings_cuda.py +0 -0
  247. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/sinogram.py +0 -0
  248. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/sinogram_cuda.py +0 -0
  249. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/sinogram_opencl.py +0 -0
  250. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/tests/__init__.py +0 -0
  251. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/tests/test_cone.py +0 -0
  252. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/tests/test_deringer.py +0 -0
  253. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/tests/test_fbp.py +0 -0
  254. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/tests/test_filtering.py +0 -0
  255. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/tests/test_halftomo.py +0 -0
  256. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/tests/test_mlem.py +0 -0
  257. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/tests/test_projector.py +0 -0
  258. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/tests/test_reconstructor.py +0 -0
  259. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/reconstruction/tests/test_sino_normalization.py +0 -0
  260. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/resources/__init__.py +0 -0
  261. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/resources/cli/__init__.py +0 -0
  262. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/resources/cor.py +0 -0
  263. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/resources/dataset_analyzer.py +0 -0
  264. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/resources/gpu.py +0 -0
  265. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/resources/logger.py +0 -0
  266. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/resources/nxflatfield.py +0 -0
  267. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/resources/templates/__init__.py +0 -0
  268. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/resources/templates/bm05_pag.conf +0 -0
  269. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/resources/templates/id16_ctf.conf +0 -0
  270. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/resources/templates/id16_holo.conf +0 -0
  271. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/resources/templates/id16a_fluo.conf +0 -0
  272. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/resources/templates/id19_pag.conf +0 -0
  273. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/resources/tests/__init__.py +0 -0
  274. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/resources/tests/test_extract.py +0 -0
  275. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/resources/tests/test_nxflatfield.py +0 -0
  276. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/resources/tests/test_units.py +0 -0
  277. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/resources/utils.py +0 -0
  278. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/__init__.py +0 -0
  279. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/alignment.py +0 -0
  280. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/config.py +0 -0
  281. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/definitions.py +0 -0
  282. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/frame_composition.py +0 -0
  283. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/overlap.py +0 -0
  284. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/sample_normalization.py +0 -0
  285. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/single_axis_stitching.py +0 -0
  286. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/slurm_utils.py +0 -0
  287. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/stitcher/__init__.py +0 -0
  288. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/stitcher/base.py +0 -0
  289. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/stitcher/dumper/__init__.py +0 -0
  290. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/stitcher/dumper/base.py +0 -0
  291. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/stitcher/dumper/postprocessing.py +0 -0
  292. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/stitcher/dumper/preprocessing.py +0 -0
  293. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/stitcher/post_processing.py +0 -0
  294. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/stitcher/pre_processing.py +0 -0
  295. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/stitcher/single_axis.py +0 -0
  296. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/stitcher/stitcher.py +0 -0
  297. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/stitcher/y_stitcher.py +0 -0
  298. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/stitcher/z_stitcher.py +0 -0
  299. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/stitcher_2D.py +0 -0
  300. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/tests/test_alignment.py +0 -0
  301. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/tests/test_config.py +0 -0
  302. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/tests/test_frame_composition.py +0 -0
  303. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/tests/test_overlap.py +0 -0
  304. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/tests/test_sample_normalization.py +0 -0
  305. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/tests/test_slurm_utils.py +0 -0
  306. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/tests/test_utils.py +0 -0
  307. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/tests/test_y_preprocessing_stitching.py +0 -0
  308. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/tests/test_z_postprocessing_stitching.py +0 -0
  309. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/tests/test_z_preprocessing_stitching.py +0 -0
  310. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/utils/__init__.py +0 -0
  311. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/utils/post_processing.py +0 -0
  312. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/utils/tests/__init__.py +0 -0
  313. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/utils/tests/test_post-processing.py +0 -0
  314. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/utils/utils.py +0 -0
  315. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/y_stitching.py +0 -0
  316. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/stitching/z_stitching.py +0 -0
  317. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/tests.py +0 -0
  318. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/testutils.py +0 -0
  319. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/thirdparty/__init__.py +0 -0
  320. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/thirdparty/algotom_convert_sino.py +0 -0
  321. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/thirdparty/pore3d_deringer_munch.py +0 -0
  322. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/thirdparty/tomocupy_remove_stripe.py +0 -0
  323. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/thirdparty/tomopy_phase.py +0 -0
  324. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/thirdparty/tomwer_load_flats_darks.py +0 -0
  325. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu/utils.py +0 -0
  326. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu.egg-info/SOURCES.txt +0 -0
  327. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu.egg-info/dependency_links.txt +0 -0
  328. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu.egg-info/entry_points.txt +0 -0
  329. {nabu-2025.1.0rc1 → nabu-2025.1.0rc3}/nabu.egg-info/top_level.txt +0 -0
  330. {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.0rc1
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.0a5
35
+ Requires-Dist: tomoscan>=2.2.2
36
36
  Requires-Dist: psutil
37
37
  Requires-Dist: pytest
38
38
  Requires-Dist: tifffile
@@ -1,4 +1,4 @@
1
- __version__ = "2025.1.0-rc1"
1
+ __version__ = "2025.1.0-rc3"
2
2
  __nabu_modules__ = [
3
3
  "app",
4
4
  "cuda",
@@ -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(flats, darks, pcaflats_filename="PCAFlats.h5", overwrite=False, entry="entry0000"):
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
- abspath = os.path.abspath(args["output_filename"])
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=args["output_filename"], overwrite=args["overwrite"], entry=entry
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": "1.4",
20
- "help": "Nexus version to use when browsing the HDF5 dataset. Default is 1.0.",
21
- "validator": float_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, nsigma=self.nsigma)
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.0rc1
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.0a5
35
+ Requires-Dist: tomoscan>=2.2.2
36
36
  Requires-Dist: psutil
37
37
  Requires-Dist: pytest
38
38
  Requires-Dist: tifffile
@@ -2,7 +2,7 @@ numpy>1.9.0
2
2
  scipy
3
3
  h5py>=3.0
4
4
  silx>=0.15.0
5
- tomoscan>=2.2.0a5
5
+ tomoscan>=2.2.2
6
6
  psutil
7
7
  pytest
8
8
  tifffile
@@ -54,7 +54,7 @@ dependencies = [
54
54
  "scipy",
55
55
  "h5py>=3.0",
56
56
  "silx >= 0.15.0",
57
- "tomoscan >= 2.2.0a5",
57
+ "tomoscan >= 2.2.2",
58
58
  "psutil",
59
59
  "pytest",
60
60
  "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