nabu 2024.2.0rc1__tar.gz → 2024.2.0rc2__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 (324) hide show
  1. {nabu-2024.2.0rc1/nabu.egg-info → nabu-2024.2.0rc2}/PKG-INFO +1 -1
  2. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/__init__.py +1 -1
  3. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/estimation/cor.py +0 -5
  4. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/estimation/cor_sino.py +3 -1
  5. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/pipeline/estimators.py +38 -2
  6. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/pipeline/tests/test_estimators.py +6 -2
  7. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/resources/dataset_analyzer.py +7 -2
  8. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2/nabu.egg-info}/PKG-INFO +1 -1
  9. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/LICENSE +0 -0
  10. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/README.md +0 -0
  11. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/doc/conf.py +0 -0
  12. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/doc/create_conf_doc.py +0 -0
  13. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/doc/get_mathjax.py +0 -0
  14. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/app/__init__.py +0 -0
  15. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/app/bootstrap.py +0 -0
  16. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/app/bootstrap_stitching.py +0 -0
  17. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/app/cast_volume.py +0 -0
  18. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/app/cli_configs.py +0 -0
  19. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/app/compare_volumes.py +0 -0
  20. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/app/composite_cor.py +0 -0
  21. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/app/correct_rot.py +0 -0
  22. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/app/create_distortion_map_from_poly.py +0 -0
  23. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/app/diag_to_pix.py +0 -0
  24. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/app/diag_to_rot.py +0 -0
  25. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/app/double_flatfield.py +0 -0
  26. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/app/generate_header.py +0 -0
  27. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/app/histogram.py +0 -0
  28. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/app/multicor.py +0 -0
  29. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/app/nx_z_splitter.py +0 -0
  30. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/app/parse_reconstruction_log.py +0 -0
  31. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/app/prepare_weights_double.py +0 -0
  32. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/app/reconstruct.py +0 -0
  33. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/app/reconstruct_helical.py +0 -0
  34. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/app/reduce_dark_flat.py +0 -0
  35. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/app/rotate.py +0 -0
  36. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/app/shrink_dataset.py +0 -0
  37. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/app/stitching.py +0 -0
  38. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/app/tests/__init__.py +0 -0
  39. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/app/tests/test_reduce_dark_flat.py +0 -0
  40. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/app/utils.py +0 -0
  41. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/app/validator.py +0 -0
  42. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/cuda/__init__.py +0 -0
  43. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/cuda/convolution.py +0 -0
  44. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/cuda/fft.py +0 -0
  45. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/cuda/kernel.py +0 -0
  46. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/cuda/medfilt.py +0 -0
  47. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/cuda/padding.py +0 -0
  48. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/cuda/processing.py +0 -0
  49. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/cuda/src/ElementOp.cu +0 -0
  50. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/cuda/src/backproj.cu +0 -0
  51. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/cuda/src/backproj_polar.cu +0 -0
  52. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/cuda/src/boundary.h +0 -0
  53. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/cuda/src/cone.cu +0 -0
  54. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/cuda/src/convolution.cu +0 -0
  55. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/cuda/src/dfi_fftshift.cu +0 -0
  56. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/cuda/src/flatfield.cu +0 -0
  57. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/cuda/src/fourier_wavelets.cu +0 -0
  58. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/cuda/src/halftomo.cu +0 -0
  59. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/cuda/src/helical_padding.cu +0 -0
  60. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/cuda/src/hierarchical_backproj.cu +0 -0
  61. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/cuda/src/histogram.cu +0 -0
  62. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/cuda/src/interpolation.cu +0 -0
  63. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/cuda/src/medfilt.cu +0 -0
  64. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/cuda/src/normalization.cu +0 -0
  65. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/cuda/src/padding.cu +0 -0
  66. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/cuda/src/proj.cu +0 -0
  67. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/cuda/src/rotation.cu +0 -0
  68. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/cuda/src/transpose.cu +0 -0
  69. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/cuda/tests/__init__.py +0 -0
  70. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/cuda/utils.py +0 -0
  71. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/estimation/__init__.py +0 -0
  72. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/estimation/alignment.py +0 -0
  73. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/estimation/distortion.py +0 -0
  74. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/estimation/focus.py +0 -0
  75. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/estimation/tests/__init__.py +0 -0
  76. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/estimation/tests/test_alignment.py +0 -0
  77. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/estimation/tests/test_cor.py +0 -0
  78. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/estimation/tests/test_focus.py +0 -0
  79. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/estimation/tests/test_tilt.py +0 -0
  80. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/estimation/tests/test_translation.py +0 -0
  81. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/estimation/tilt.py +0 -0
  82. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/estimation/translation.py +0 -0
  83. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/estimation/utils.py +0 -0
  84. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/io/__init__.py +0 -0
  85. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/io/cast_volume.py +0 -0
  86. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/io/detector_distortion.py +0 -0
  87. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/io/reader.py +0 -0
  88. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/io/reader_helical.py +0 -0
  89. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/io/tests/__init__.py +0 -0
  90. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/io/tests/test_cast_volume.py +0 -0
  91. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/io/tests/test_detector_distortion.py +0 -0
  92. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/io/tests/test_readers.py +0 -0
  93. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/io/tests/test_writers.py +0 -0
  94. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/io/utils.py +0 -0
  95. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/io/writer.py +0 -0
  96. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/misc/__init__.py +0 -0
  97. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/misc/binning.py +0 -0
  98. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/misc/fftshift.py +0 -0
  99. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/misc/filters.py +0 -0
  100. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/misc/fourier_filters.py +0 -0
  101. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/misc/histogram.py +0 -0
  102. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/misc/histogram_cuda.py +0 -0
  103. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/misc/kernel_base.py +0 -0
  104. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/misc/padding.py +0 -0
  105. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/misc/padding_base.py +0 -0
  106. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/misc/processing_base.py +0 -0
  107. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/misc/rotation.py +0 -0
  108. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/misc/rotation_cuda.py +0 -0
  109. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/misc/tests/__init__.py +0 -0
  110. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/misc/tests/test_binning.py +0 -0
  111. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/misc/tests/test_interpolation.py +0 -0
  112. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/misc/transpose.py +0 -0
  113. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/misc/unsharp.py +0 -0
  114. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/misc/unsharp_cuda.py +0 -0
  115. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/misc/unsharp_opencl.py +0 -0
  116. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/misc/utils.py +0 -0
  117. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/opencl/__init__.py +0 -0
  118. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/opencl/fft.py +0 -0
  119. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/opencl/kernel.py +0 -0
  120. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/opencl/memcpy.py +0 -0
  121. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/opencl/padding.py +0 -0
  122. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/opencl/processing.py +0 -0
  123. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/opencl/src/ElementOp.cl +0 -0
  124. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/opencl/src/backproj.cl +0 -0
  125. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/opencl/src/fftshift.cl +0 -0
  126. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/opencl/src/halftomo.cl +0 -0
  127. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/opencl/src/padding.cl +0 -0
  128. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/opencl/src/roll.cl +0 -0
  129. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/opencl/src/transpose.cl +0 -0
  130. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/opencl/tests/__init__.py +0 -0
  131. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/opencl/utils.py +0 -0
  132. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/pipeline/__init__.py +0 -0
  133. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/pipeline/config.py +0 -0
  134. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/pipeline/config_validators.py +0 -0
  135. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/pipeline/datadump.py +0 -0
  136. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/pipeline/dataset_validator.py +0 -0
  137. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/pipeline/detector_distortion_provider.py +0 -0
  138. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/pipeline/fullfield/__init__.py +0 -0
  139. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/pipeline/fullfield/chunked.py +0 -0
  140. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/pipeline/fullfield/chunked_cuda.py +0 -0
  141. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/pipeline/fullfield/computations.py +0 -0
  142. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/pipeline/fullfield/dataset_validator.py +0 -0
  143. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/pipeline/fullfield/nabu_config.py +0 -0
  144. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/pipeline/fullfield/processconfig.py +0 -0
  145. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/pipeline/fullfield/reconstruction.py +0 -0
  146. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/pipeline/helical/__init__.py +0 -0
  147. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/pipeline/helical/dataset_validator.py +0 -0
  148. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/pipeline/helical/fbp.py +0 -0
  149. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/pipeline/helical/filtering.py +0 -0
  150. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/pipeline/helical/gridded_accumulator.py +0 -0
  151. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/pipeline/helical/helical_chunked_regridded.py +0 -0
  152. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/pipeline/helical/helical_chunked_regridded_cuda.py +0 -0
  153. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/pipeline/helical/helical_reconstruction.py +0 -0
  154. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/pipeline/helical/helical_utils.py +0 -0
  155. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/pipeline/helical/nabu_config.py +0 -0
  156. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/pipeline/helical/processconfig.py +0 -0
  157. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/pipeline/helical/span_strategy.py +0 -0
  158. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/pipeline/helical/tests/__init__.py +0 -0
  159. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/pipeline/helical/weight_balancer.py +0 -0
  160. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/pipeline/params.py +0 -0
  161. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/pipeline/processconfig.py +0 -0
  162. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/pipeline/reader.py +0 -0
  163. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/pipeline/utils.py +0 -0
  164. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/pipeline/writer.py +0 -0
  165. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/pipeline/xrdct/__init__.py +0 -0
  166. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/preproc/__init__.py +0 -0
  167. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/preproc/alignment.py +0 -0
  168. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/preproc/ccd.py +0 -0
  169. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/preproc/ccd_cuda.py +0 -0
  170. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/preproc/ctf.py +0 -0
  171. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/preproc/ctf_cuda.py +0 -0
  172. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/preproc/distortion.py +0 -0
  173. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/preproc/double_flatfield.py +0 -0
  174. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/preproc/double_flatfield_cuda.py +0 -0
  175. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/preproc/double_flatfield_variable_region.py +0 -0
  176. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/preproc/flatfield.py +0 -0
  177. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/preproc/flatfield_cuda.py +0 -0
  178. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/preproc/flatfield_variable_region.py +0 -0
  179. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/preproc/phase.py +0 -0
  180. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/preproc/phase_cuda.py +0 -0
  181. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/preproc/shift.py +0 -0
  182. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/preproc/shift_cuda.py +0 -0
  183. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/preproc/tests/__init__.py +0 -0
  184. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/preproc/tests/test_ccd_corr.py +0 -0
  185. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/preproc/tests/test_ctf.py +0 -0
  186. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/preproc/tests/test_double_flatfield.py +0 -0
  187. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/preproc/tests/test_flatfield.py +0 -0
  188. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/preproc/tests/test_paganin.py +0 -0
  189. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/preproc/tests/test_vshift.py +0 -0
  190. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/processing/__init__.py +0 -0
  191. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/processing/azim.py +0 -0
  192. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/processing/convolution_cuda.py +0 -0
  193. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/processing/fft_base.py +0 -0
  194. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/processing/fft_cuda.py +0 -0
  195. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/processing/fft_opencl.py +0 -0
  196. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/processing/fftshift.py +0 -0
  197. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/processing/histogram.py +0 -0
  198. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/processing/histogram_cuda.py +0 -0
  199. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/processing/kernel_base.py +0 -0
  200. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/processing/medfilt_cuda.py +0 -0
  201. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/processing/muladd.py +0 -0
  202. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/processing/muladd_cuda.py +0 -0
  203. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/processing/padding_base.py +0 -0
  204. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/processing/padding_cuda.py +0 -0
  205. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/processing/padding_opencl.py +0 -0
  206. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/processing/processing_base.py +0 -0
  207. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/processing/roll_opencl.py +0 -0
  208. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/processing/rotation.py +0 -0
  209. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/processing/rotation_cuda.py +0 -0
  210. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/processing/tests/__init__.py +0 -0
  211. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/processing/tests/test_fft.py +0 -0
  212. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/processing/tests/test_fftshift.py +0 -0
  213. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/processing/tests/test_histogram.py +0 -0
  214. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/processing/tests/test_medfilt.py +0 -0
  215. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/processing/tests/test_muladd.py +0 -0
  216. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/processing/tests/test_padding.py +0 -0
  217. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/processing/tests/test_roll.py +0 -0
  218. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/processing/tests/test_rotation.py +0 -0
  219. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/processing/tests/test_transpose.py +0 -0
  220. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/processing/tests/test_unsharp.py +0 -0
  221. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/processing/transpose.py +0 -0
  222. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/processing/unsharp.py +0 -0
  223. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/processing/unsharp_cuda.py +0 -0
  224. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/processing/unsharp_opencl.py +0 -0
  225. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/reconstruction/__init__.py +0 -0
  226. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/reconstruction/cone.py +0 -0
  227. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/reconstruction/fbp.py +0 -0
  228. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/reconstruction/fbp_base.py +0 -0
  229. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/reconstruction/fbp_opencl.py +0 -0
  230. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/reconstruction/filtering.py +0 -0
  231. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/reconstruction/filtering_cuda.py +0 -0
  232. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/reconstruction/filtering_opencl.py +0 -0
  233. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/reconstruction/hbp.py +0 -0
  234. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/reconstruction/mlem.py +0 -0
  235. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/reconstruction/projection.py +0 -0
  236. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/reconstruction/reconstructor.py +0 -0
  237. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/reconstruction/reconstructor_cuda.py +0 -0
  238. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/reconstruction/rings.py +0 -0
  239. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/reconstruction/rings_cuda.py +0 -0
  240. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/reconstruction/sinogram.py +0 -0
  241. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/reconstruction/sinogram_cuda.py +0 -0
  242. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/reconstruction/sinogram_opencl.py +0 -0
  243. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/reconstruction/tests/__init__.py +0 -0
  244. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/reconstruction/tests/test_cone.py +0 -0
  245. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/reconstruction/tests/test_deringer.py +0 -0
  246. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/reconstruction/tests/test_fbp.py +0 -0
  247. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/reconstruction/tests/test_filtering.py +0 -0
  248. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/reconstruction/tests/test_halftomo.py +0 -0
  249. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/reconstruction/tests/test_mlem.py +0 -0
  250. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/reconstruction/tests/test_projector.py +0 -0
  251. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/reconstruction/tests/test_reconstructor.py +0 -0
  252. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/reconstruction/tests/test_sino_normalization.py +0 -0
  253. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/resources/__init__.py +0 -0
  254. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/resources/cli/__init__.py +0 -0
  255. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/resources/cor.py +0 -0
  256. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/resources/gpu.py +0 -0
  257. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/resources/logger.py +0 -0
  258. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/resources/nxflatfield.py +0 -0
  259. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/resources/templates/__init__.py +0 -0
  260. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/resources/templates/bm05_pag.conf +0 -0
  261. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/resources/templates/id16_ctf.conf +0 -0
  262. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/resources/templates/id16_holo.conf +0 -0
  263. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/resources/templates/id16a_fluo.conf +0 -0
  264. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/resources/templates/id19_pag.conf +0 -0
  265. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/resources/tests/__init__.py +0 -0
  266. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/resources/tests/test_extract.py +0 -0
  267. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/resources/tests/test_nxflatfield.py +0 -0
  268. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/resources/tests/test_units.py +0 -0
  269. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/resources/utils.py +0 -0
  270. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/stitching/__init__.py +0 -0
  271. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/stitching/alignment.py +0 -0
  272. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/stitching/config.py +0 -0
  273. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/stitching/definitions.py +0 -0
  274. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/stitching/frame_composition.py +0 -0
  275. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/stitching/overlap.py +0 -0
  276. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/stitching/sample_normalization.py +0 -0
  277. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/stitching/single_axis_stitching.py +0 -0
  278. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/stitching/slurm_utils.py +0 -0
  279. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/stitching/stitcher/__init__.py +0 -0
  280. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/stitching/stitcher/base.py +0 -0
  281. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/stitching/stitcher/dumper/__init__.py +0 -0
  282. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/stitching/stitcher/dumper/base.py +0 -0
  283. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/stitching/stitcher/dumper/postprocessing.py +0 -0
  284. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/stitching/stitcher/dumper/preprocessing.py +0 -0
  285. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/stitching/stitcher/post_processing.py +0 -0
  286. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/stitching/stitcher/pre_processing.py +0 -0
  287. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/stitching/stitcher/single_axis.py +0 -0
  288. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/stitching/stitcher/stitcher.py +0 -0
  289. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/stitching/stitcher/y_stitcher.py +0 -0
  290. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/stitching/stitcher/z_stitcher.py +0 -0
  291. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/stitching/stitcher_2D.py +0 -0
  292. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/stitching/tests/__init__.py +0 -0
  293. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/stitching/tests/test_alignment.py +0 -0
  294. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/stitching/tests/test_config.py +0 -0
  295. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/stitching/tests/test_frame_composition.py +0 -0
  296. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/stitching/tests/test_overlap.py +0 -0
  297. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/stitching/tests/test_sample_normalization.py +0 -0
  298. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/stitching/tests/test_slurm_utils.py +0 -0
  299. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/stitching/tests/test_utils.py +0 -0
  300. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/stitching/tests/test_y_preprocessing_stitching.py +0 -0
  301. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/stitching/tests/test_z_postprocessing_stitching.py +0 -0
  302. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/stitching/tests/test_z_preprocessing_stitching.py +0 -0
  303. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/stitching/utils/__init__.py +0 -0
  304. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/stitching/utils/post_processing.py +0 -0
  305. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/stitching/utils/tests/test_post-processing.py +0 -0
  306. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/stitching/utils/utils.py +0 -0
  307. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/stitching/y_stitching.py +0 -0
  308. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/stitching/z_stitching.py +0 -0
  309. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/tests.py +0 -0
  310. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/testutils.py +0 -0
  311. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/thirdparty/__init__.py +0 -0
  312. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/thirdparty/algotom_convert_sino.py +0 -0
  313. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/thirdparty/pore3d_deringer_munch.py +0 -0
  314. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/thirdparty/tomocupy_remove_stripe.py +0 -0
  315. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/thirdparty/tomopy_phase.py +0 -0
  316. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/thirdparty/tomwer_load_flats_darks.py +0 -0
  317. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu/utils.py +0 -0
  318. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu.egg-info/SOURCES.txt +0 -0
  319. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu.egg-info/dependency_links.txt +0 -0
  320. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu.egg-info/entry_points.txt +0 -0
  321. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu.egg-info/requires.txt +0 -0
  322. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/nabu.egg-info/top_level.txt +0 -0
  323. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/pyproject.toml +0 -0
  324. {nabu-2024.2.0rc1 → nabu-2024.2.0rc2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: nabu
3
- Version: 2024.2.0rc1
3
+ Version: 2024.2.0rc2
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>
@@ -1,4 +1,4 @@
1
- __version__ = "2024.2.0-rc1"
1
+ __version__ = "2024.2.0-rc2"
2
2
  __nabu_modules__ = [
3
3
  "app",
4
4
  "cuda",
@@ -1114,11 +1114,6 @@ class CenterOfRotationOctaveAccurate(CenterOfRotation):
1114
1114
  # ---
1115
1115
  self._check_img_pair_sizes(img_1, img_2)
1116
1116
 
1117
- if side != "center":
1118
- msg = "This method cannot handle half acquisition"
1119
- self.logger.fatal(msg)
1120
- raise ValueError(msg)
1121
-
1122
1117
  img_shape = img_2.shape
1123
1118
  roi_yxhw = self._determine_roi(img_shape, roi_yxhw)
1124
1119
 
@@ -91,7 +91,7 @@ class SinoCor:
91
91
  imax = i
92
92
  self.cor_abs = self.sx - (imax + window_width + 1.0) / 2.0
93
93
  self.cor_rel = self.sx / 2 - (imax + window_width + 1.0) / 2.0
94
- else:
94
+ elif side == "left":
95
95
  for i in nr:
96
96
  imout = self.data1[:, i : i + window_width] - self.data2[:, self.sx - window_width : self.sx]
97
97
  diff = imout.max() - imout.min()
@@ -100,6 +100,8 @@ class SinoCor:
100
100
  imax = i
101
101
  self.cor_abs = (imax + window_width - 1.0) / 2
102
102
  self.cor_rel = self.cor_abs - self.sx / 2.0 - 1
103
+ else:
104
+ raise ValueError(f"Invalid side given ({side}). should be 'left' or 'right'")
103
105
  if imax < 1:
104
106
  self.logger.warning("sliding width %d seems too large!" % window_width)
105
107
  self.rcor_abs = round(self.cor_abs)
@@ -31,6 +31,21 @@ from .params import cor_methods, tilt_methods
31
31
 
32
32
 
33
33
  def estimate_cor(method, dataset_info, do_flatfield=True, cor_options=None, logger=None):
34
+ """
35
+ High level function to compute the center of rotation (COR)
36
+
37
+ Parameters
38
+ ----------
39
+ method: name of the method to be used for computing the center of rotation
40
+ dataset_info: `nabu.resources.dataset_analyzer.DatasetAnalyzer`
41
+ Dataset information structure
42
+ do_flatfield: If True apply flat field to compute the center of rotation
43
+ cor_options: optional dictionary that can contain the following keys:
44
+ * slice_idx: index of the slice to use for computing the sinogram (for sinogram based algorithms)
45
+ * subsampling subsampling
46
+ * radio_angles: angles of the radios to use (for radio based algorithms)
47
+ logger: logging object
48
+ """
34
49
  logger = LoggerOrPrint(logger)
35
50
  cor_options = cor_options or {}
36
51
  check_supported(method, list(cor_methods.keys()), "COR estimation method")
@@ -56,6 +71,7 @@ def estimate_cor(method, dataset_info, do_flatfield=True, cor_options=None, logg
56
71
  dataset_info,
57
72
  do_flatfield=do_flatfield,
58
73
  cor_options=cor_options,
74
+ radio_angles=cor_options.get("radio_angles", (0.0, np.pi)),
59
75
  logger=logger,
60
76
  )
61
77
  estimated_cor = cor_finder.find_cor()
@@ -66,6 +82,7 @@ def estimate_cor(method, dataset_info, do_flatfield=True, cor_options=None, logg
66
82
  slice_idx=cor_options.get("slice_idx", "middle"),
67
83
  subsampling=cor_options.get("subsampling", 10),
68
84
  do_flatfield=do_flatfield,
85
+ take_log=cor_options.get("take_log", True),
69
86
  cor_options=cor_options,
70
87
  logger=logger,
71
88
  )
@@ -180,6 +197,12 @@ class CORFinder(CORFinderBase):
180
197
  self._init_radios()
181
198
  self._apply_flatfield()
182
199
  self._apply_tilt()
200
+ # octave-accurate does not support half-acquisition scans,
201
+ # but information on field of view is only known here with the "dataset_info" object.
202
+ # Do the check here.
203
+ if self.dataset_info.is_halftomo and method == "octave-accurate":
204
+ raise ValueError("The CoR estimator 'octave-accurate' does not support half-acquisition scans")
205
+ #
183
206
 
184
207
  def _init_radios(self):
185
208
  self.radios, self._radios_indices = get_radio_pair(
@@ -220,6 +243,13 @@ class CORFinder(CORFinderBase):
220
243
  # All find_shift() methods in self.search_methods have the same API with "img_1" and "img_2"
221
244
  cor_exec_kwargs = update_func_kwargs(self.cor_finder.find_shift, self.cor_options)
222
245
  cor_exec_kwargs["return_relative_to_middle"] = False
246
+ # FIXME
247
+ # 'self.cor_options' can contain 'side="from_file"', and we should not modify it directly
248
+ # because it's entered by the user.
249
+ # Either make a copy of self.cor_options, or change the inspect() mechanism
250
+ if cor_exec_kwargs["side"] == "from_file":
251
+ cor_exec_kwargs["side"] = self._lookup_side or "center"
252
+ #
223
253
  if self._lookup_side is not None:
224
254
  cor_exec_kwargs["side"] = self._lookup_side
225
255
  self.logger.debug("%s.find_shift(%s)" % (self.cor_finder.__class__.__name__, str(cor_exec_kwargs)))
@@ -359,7 +389,13 @@ class SinoCORFinder(CORFinderBase):
359
389
 
360
390
  cor_exec_kwargs = update_func_kwargs(self.cor_finder.find_shift, self.cor_options)
361
391
  cor_exec_kwargs["return_relative_to_middle"] = False
362
-
392
+ # FIXME
393
+ # 'self.cor_options' can contain 'side="from_file"', and we should not modify it directly
394
+ # because it's entered by the user.
395
+ # Either make a copy of self.cor_options, or change the inspect() mechanism
396
+ if cor_exec_kwargs["side"] == "from_file":
397
+ cor_exec_kwargs["side"] = self._lookup_side or "center"
398
+ #
363
399
  if self._lookup_side is not None:
364
400
  cor_exec_kwargs["side"] = self._lookup_side
365
401
 
@@ -454,7 +490,7 @@ class CompositeCORFinder(CORFinderBase):
454
490
  if (self.angle_max - self.angle_min) < 1.2 * np.pi:
455
491
  useful_span = None
456
492
  raise ValueError(
457
- f"""Sinogram-based Center of Rotation estimation can only be used for scans over more than 180 degrees.
493
+ f"""Sinogram-based Center of Rotation estimation can only be used for scans over more than 180 degrees.
458
494
  Your angular span was barely above 180 degrees, it was in fact {((self.angle_max - self.angle_min)/np.pi):.2f} x 180
459
495
  and it is not considered to be enough by the discriminating condition which requires at least 1.2 half-turns
460
496
  """
@@ -84,13 +84,17 @@ class TestCorNearPos:
84
84
 
85
85
  def test_cor_fourier_angles_standard(self):
86
86
  cor_options = extract_parameters(self.conf_std["reconstruction"].get("cor_options", None), sep=";")
87
+ # TODO modify test files
88
+ if "near_pos" in cor_options and "near" in cor_options.get("side", "") == "near":
89
+ cor_options["side"] = cor_options["near_pos"]
90
+ #
87
91
  for side in [None, "from_file", "center"]:
88
92
  if side is not None:
89
93
  cor_options.update({"side": side})
90
94
  finder = SinoCORFinder("fourier-angles", self.ds_std, do_flatfield=True, cor_options=cor_options)
91
95
  cor = finder.find_cor()
92
96
  message = f"Computed CoR {cor} and expected CoR {self.true_cor} do not coincide. Near_pos options was set to {cor_options.get('near_pos',None)}."
93
- assert np.isclose(self.true_cor, cor, atol=self.abs_tol), message
97
+ assert np.isclose(self.true_cor + 0.5, cor, atol=self.abs_tol), message
94
98
 
95
99
  def test_cor_sliding_bliss(self):
96
100
  cor_options = extract_parameters(self.conf_bliss["reconstruction"].get("cor_options", None), sep=";")
@@ -114,4 +118,4 @@ class TestCorNearPos:
114
118
  finder = SinoCORFinder("fourier-angles", self.ds_bliss, do_flatfield=True, cor_options=cor_options)
115
119
  cor = finder.find_cor()
116
120
  message = f"Computed CoR {cor} and expected CoR {self.true_cor} do not coincide. Near_pos options was set to {cor_options.get('near_pos',None)}."
117
- assert np.isclose(self.true_cor, cor, atol=self.abs_tol), message
121
+ assert np.isclose(self.true_cor + 0.5, cor, atol=self.abs_tol), message
@@ -409,8 +409,13 @@ class HDF5DatasetAnalyzer(DatasetAnalyzer):
409
409
  slices: list of slice
410
410
  A list where each item is a slice.
411
411
  """
412
- check_supported(what, ["projections", "flats", "darks"], "image type")
413
- images = getattr(self, what) # dict
412
+ name_to_attr = {
413
+ "projections": self.projections,
414
+ "flats": self.raw_flats,
415
+ "darks": self.raw_darks,
416
+ }
417
+ check_supported(what, name_to_attr.keys(), "image type")
418
+ images = name_to_attr[what] # dict
414
419
  # we can't directly use set() on slice() object (unhashable). Use tuples
415
420
  slices = set()
416
421
  for du in get_compacted_dataslices(images).values():
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: nabu
3
- Version: 2024.2.0rc1
3
+ Version: 2024.2.0rc2
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>
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes