nabu 2024.1.0rc3__py3-none-any.whl → 2024.1.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2096) hide show
  1. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/doc/conf.py +137 -0
  2. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/doc/create_conf_doc.py +38 -0
  3. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/doc/get_mathjax.py +34 -0
  4. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/__init__.py +17 -0
  5. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/__init__.py +0 -0
  6. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap.py +88 -0
  7. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap_stitching.py +69 -0
  8. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/cast_volume.py +272 -0
  9. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/cli_configs.py +626 -0
  10. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/compare_volumes.py +94 -0
  11. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/composite_cor.py +144 -0
  12. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/correct_rot.py +70 -0
  13. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/create_distortion_map_from_poly.py +153 -0
  14. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_pix.py +358 -0
  15. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_rot.py +449 -0
  16. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/double_flatfield.py +143 -0
  17. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/generate_header.py +261 -0
  18. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/histogram.py +197 -0
  19. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/multicor.py +90 -0
  20. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/nx_z_splitter.py +125 -0
  21. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/parse_reconstruction_log.py +151 -0
  22. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/prepare_weights_double.py +163 -0
  23. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct.py +120 -0
  24. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct_helical.py +116 -0
  25. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reduce_dark_flat.py +181 -0
  26. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/rotate.py +162 -0
  27. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/shrink_dataset.py +98 -0
  28. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/stitching.py +85 -0
  29. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/tests/test_reduce_dark_flat.py +78 -0
  30. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/utils.py +33 -0
  31. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/validator.py +110 -0
  32. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/__init__.py +0 -0
  33. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/convolution.py +8 -0
  34. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/fft.py +4 -0
  35. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/kernel.py +97 -0
  36. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/medfilt.py +6 -0
  37. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/padding.py +6 -0
  38. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/processing.py +75 -0
  39. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/tests/__init__.py +1 -0
  40. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/utils.py +331 -0
  41. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/__init__.py +12 -0
  42. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/alignment.py +578 -0
  43. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor.py +1621 -0
  44. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor_sino.py +183 -0
  45. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/distortion.py +112 -0
  46. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/focus.py +362 -0
  47. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/__init__.py +0 -0
  48. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_alignment.py +70 -0
  49. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_cor.py +472 -0
  50. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_focus.py +105 -0
  51. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_tilt.py +41 -0
  52. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_translation.py +78 -0
  53. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tilt.py +214 -0
  54. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/translation.py +193 -0
  55. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/utils.py +39 -0
  56. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/__init__.py +2 -0
  57. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/cast_volume.py +371 -0
  58. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/detector_distortion.py +305 -0
  59. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/reader.py +628 -0
  60. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/reader_helical.py +114 -0
  61. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/__init__.py +0 -0
  62. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_cast_volume.py +339 -0
  63. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_detector_distortion.py +178 -0
  64. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_writers.py +187 -0
  65. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tiffwriter_zmm.py +99 -0
  66. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/utils.py +263 -0
  67. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/writer.py +892 -0
  68. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/__init__.py +0 -0
  69. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/binning.py +98 -0
  70. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/fftshift.py +6 -0
  71. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/filters.py +24 -0
  72. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/fourier_filters.py +152 -0
  73. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram.py +6 -0
  74. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram_cuda.py +8 -0
  75. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/kernel_base.py +4 -0
  76. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/padding.py +83 -0
  77. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/padding_base.py +6 -0
  78. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/processing_base.py +4 -0
  79. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation.py +6 -0
  80. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation_cuda.py +6 -0
  81. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/__init__.py +1 -0
  82. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_binning.py +48 -0
  83. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_interpolation.py +70 -0
  84. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/transpose.py +6 -0
  85. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp.py +4 -0
  86. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_cuda.py +6 -0
  87. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_opencl.py +8 -0
  88. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/utils.py +117 -0
  89. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/__init__.py +0 -0
  90. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/fft.py +6 -0
  91. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/kernel.py +135 -0
  92. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/memcpy.py +35 -0
  93. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/padding.py +6 -0
  94. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/processing.py +62 -0
  95. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/tests/__init__.py +0 -0
  96. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/utils.py +292 -0
  97. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/__init__.py +0 -0
  98. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config.py +265 -0
  99. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config_validators.py +589 -0
  100. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/datadump.py +164 -0
  101. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/dataset_validator.py +211 -0
  102. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/detector_distortion_provider.py +20 -0
  103. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/estimators.py +1012 -0
  104. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fallback_utils.py +149 -0
  105. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/__init__.py +0 -0
  106. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked.py +849 -0
  107. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked_cuda.py +152 -0
  108. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/computations.py +260 -0
  109. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/dataset_validator.py +63 -0
  110. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/nabu_config.py +590 -0
  111. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/processconfig.py +825 -0
  112. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/reconstruction.py +851 -0
  113. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/__init__.py +0 -0
  114. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/dataset_validator.py +19 -0
  115. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/fbp.py +147 -0
  116. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/filtering.py +246 -0
  117. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/gridded_accumulator.py +575 -0
  118. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded.py +1670 -0
  119. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded_cuda.py +119 -0
  120. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_reconstruction.py +598 -0
  121. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_utils.py +42 -0
  122. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/nabu_config.py +175 -0
  123. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/processconfig.py +62 -0
  124. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/span_strategy.py +483 -0
  125. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/__init__.py +0 -0
  126. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_accumulator.py +157 -0
  127. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_pipeline_elements_full.py +355 -0
  128. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_strategy.py +61 -0
  129. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/utils.py +51 -0
  130. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/weight_balancer.py +101 -0
  131. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/params.py +163 -0
  132. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/processconfig.py +210 -0
  133. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/tests/test_chunk_reader.py +78 -0
  134. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/tests/test_estimators.py +149 -0
  135. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/utils.py +116 -0
  136. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/writer.py +193 -0
  137. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/xrdct/__init__.py +0 -0
  138. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/__init__.py +7 -0
  139. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/alignment.py +11 -0
  140. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd.py +161 -0
  141. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd_cuda.py +169 -0
  142. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf.py +361 -0
  143. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf_cuda.py +142 -0
  144. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/distortion.py +92 -0
  145. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield.py +212 -0
  146. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_cuda.py +174 -0
  147. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_variable_region.py +68 -0
  148. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield.py +448 -0
  149. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_cuda.py +144 -0
  150. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_variable_region.py +79 -0
  151. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase.py +425 -0
  152. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase_cuda.py +143 -0
  153. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift.py +95 -0
  154. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift_cuda.py +102 -0
  155. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/__init__.py +1 -0
  156. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_ccd_corr.py +59 -0
  157. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_ctf.py +250 -0
  158. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_double_flatfield.py +86 -0
  159. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_flatfield.py +626 -0
  160. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_paganin.py +67 -0
  161. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_vshift.py +73 -0
  162. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/__init__.py +0 -0
  163. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/convolution_cuda.py +375 -0
  164. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_base.py +163 -0
  165. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_cuda.py +256 -0
  166. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_opencl.py +54 -0
  167. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fftshift.py +134 -0
  168. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram.py +286 -0
  169. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram_cuda.py +103 -0
  170. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/kernel_base.py +126 -0
  171. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/medfilt_cuda.py +159 -0
  172. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd.py +29 -0
  173. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd_cuda.py +68 -0
  174. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_base.py +71 -0
  175. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_cuda.py +75 -0
  176. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_opencl.py +77 -0
  177. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/processing_base.py +123 -0
  178. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/roll_opencl.py +64 -0
  179. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation.py +63 -0
  180. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation_cuda.py +66 -0
  181. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/__init__.py +0 -0
  182. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fft.py +268 -0
  183. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fftshift.py +71 -0
  184. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_histogram.py +55 -0
  185. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_medfilt.py +77 -0
  186. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_muladd.py +54 -0
  187. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_padding.py +247 -0
  188. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_roll.py +63 -0
  189. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_rotation.py +83 -0
  190. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_transpose.py +72 -0
  191. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_unsharp.py +106 -0
  192. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/transpose.py +126 -0
  193. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp.py +79 -0
  194. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_cuda.py +53 -0
  195. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_opencl.py +75 -0
  196. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/__init__.py +3 -0
  197. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/cone.py +241 -0
  198. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp.py +124 -0
  199. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_base.py +391 -0
  200. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_opencl.py +78 -0
  201. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering.py +220 -0
  202. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_cuda.py +103 -0
  203. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_opencl.py +111 -0
  204. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/projection.py +240 -0
  205. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor.py +174 -0
  206. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor_cuda.py +44 -0
  207. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings.py +248 -0
  208. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings_cuda.py +322 -0
  209. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram.py +467 -0
  210. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_cuda.py +250 -0
  211. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_opencl.py +40 -0
  212. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/__init__.py +1 -0
  213. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_cone.py +308 -0
  214. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_deringer.py +220 -0
  215. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_fbp.py +252 -0
  216. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_filtering.py +133 -0
  217. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_halftomo.py +100 -0
  218. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_projector.py +164 -0
  219. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_reconstructor.py +93 -0
  220. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_sino_normalization.py +85 -0
  221. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/__init__.py +0 -0
  222. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/cli/__init__.py +0 -0
  223. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/cor.py +5 -0
  224. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/dataset_analyzer.py +469 -0
  225. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/gpu.py +169 -0
  226. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/logger.py +130 -0
  227. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/nxflatfield.py +217 -0
  228. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/templates/__init__.py +0 -0
  229. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/__init__.py +0 -0
  230. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_nxflatfield.py +104 -0
  231. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_units.py +47 -0
  232. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/utils.py +174 -0
  233. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/__init__.py +0 -0
  234. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/alignment.py +184 -0
  235. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/config.py +1286 -0
  236. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/definitions.py +6 -0
  237. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/frame_composition.py +155 -0
  238. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/overlap.py +373 -0
  239. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/sample_normalization.py +60 -0
  240. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/slurm_utils.py +204 -0
  241. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/__init__.py +0 -0
  242. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_alignment.py +99 -0
  243. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_config.py +226 -0
  244. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_frame_composition.py +180 -0
  245. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_overlap.py +98 -0
  246. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_sample_normalization.py +49 -0
  247. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_slurm_utils.py +146 -0
  248. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_utils.py +21 -0
  249. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_z_stitching.py +1183 -0
  250. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/utils.py +563 -0
  251. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/z_stitching.py +2279 -0
  252. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/tests.py +51 -0
  253. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/testutils.py +375 -0
  254. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/__init__.py +0 -0
  255. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/algotom_convert_sino.py +276 -0
  256. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/pore3d_deringer_munch.py +108 -0
  257. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomocupy_remove_stripe.py +586 -0
  258. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomopy_phase.py +239 -0
  259. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomwer_load_flats_darks.py +162 -0
  260. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/utils.py +836 -0
  261. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/doc/conf.py +137 -0
  262. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/doc/create_conf_doc.py +38 -0
  263. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/doc/get_mathjax.py +34 -0
  264. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/__init__.py +17 -0
  265. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/__init__.py +0 -0
  266. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap.py +88 -0
  267. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap_stitching.py +69 -0
  268. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/cast_volume.py +272 -0
  269. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/cli_configs.py +626 -0
  270. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/compare_volumes.py +94 -0
  271. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/composite_cor.py +144 -0
  272. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/correct_rot.py +70 -0
  273. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/create_distortion_map_from_poly.py +153 -0
  274. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_pix.py +358 -0
  275. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_rot.py +449 -0
  276. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/double_flatfield.py +143 -0
  277. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/generate_header.py +261 -0
  278. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/histogram.py +197 -0
  279. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/multicor.py +90 -0
  280. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/nx_z_splitter.py +125 -0
  281. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/parse_reconstruction_log.py +151 -0
  282. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/prepare_weights_double.py +163 -0
  283. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct.py +120 -0
  284. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct_helical.py +116 -0
  285. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reduce_dark_flat.py +181 -0
  286. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/rotate.py +162 -0
  287. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/shrink_dataset.py +98 -0
  288. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/stitching.py +85 -0
  289. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/tests/test_reduce_dark_flat.py +78 -0
  290. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/utils.py +33 -0
  291. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/validator.py +110 -0
  292. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/__init__.py +0 -0
  293. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/convolution.py +8 -0
  294. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/fft.py +4 -0
  295. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/kernel.py +97 -0
  296. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/medfilt.py +6 -0
  297. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/padding.py +6 -0
  298. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/processing.py +75 -0
  299. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/tests/__init__.py +1 -0
  300. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/utils.py +331 -0
  301. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/__init__.py +12 -0
  302. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/alignment.py +578 -0
  303. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor.py +1621 -0
  304. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor_sino.py +183 -0
  305. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/distortion.py +112 -0
  306. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/focus.py +362 -0
  307. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/__init__.py +0 -0
  308. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_alignment.py +70 -0
  309. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_cor.py +472 -0
  310. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_focus.py +105 -0
  311. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_tilt.py +41 -0
  312. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_translation.py +78 -0
  313. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tilt.py +214 -0
  314. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/translation.py +193 -0
  315. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/utils.py +39 -0
  316. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/__init__.py +2 -0
  317. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/cast_volume.py +371 -0
  318. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/detector_distortion.py +305 -0
  319. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/reader.py +628 -0
  320. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/reader_helical.py +114 -0
  321. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/__init__.py +0 -0
  322. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_cast_volume.py +339 -0
  323. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_detector_distortion.py +178 -0
  324. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_writers.py +187 -0
  325. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tiffwriter_zmm.py +99 -0
  326. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/utils.py +263 -0
  327. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/writer.py +892 -0
  328. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/__init__.py +0 -0
  329. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/binning.py +98 -0
  330. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/fftshift.py +6 -0
  331. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/filters.py +24 -0
  332. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/fourier_filters.py +152 -0
  333. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram.py +6 -0
  334. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram_cuda.py +8 -0
  335. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/kernel_base.py +4 -0
  336. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/padding.py +83 -0
  337. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/padding_base.py +6 -0
  338. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/processing_base.py +4 -0
  339. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation.py +6 -0
  340. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation_cuda.py +6 -0
  341. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/__init__.py +1 -0
  342. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_binning.py +48 -0
  343. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_interpolation.py +70 -0
  344. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/transpose.py +6 -0
  345. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp.py +4 -0
  346. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_cuda.py +6 -0
  347. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_opencl.py +8 -0
  348. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/utils.py +117 -0
  349. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/__init__.py +0 -0
  350. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/fft.py +6 -0
  351. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/kernel.py +135 -0
  352. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/memcpy.py +35 -0
  353. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/padding.py +6 -0
  354. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/processing.py +62 -0
  355. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/tests/__init__.py +0 -0
  356. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/utils.py +292 -0
  357. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/__init__.py +0 -0
  358. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config.py +265 -0
  359. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config_validators.py +589 -0
  360. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/datadump.py +164 -0
  361. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/dataset_validator.py +211 -0
  362. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/detector_distortion_provider.py +20 -0
  363. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/estimators.py +1012 -0
  364. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fallback_utils.py +149 -0
  365. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/__init__.py +0 -0
  366. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked.py +849 -0
  367. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked_cuda.py +152 -0
  368. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/computations.py +260 -0
  369. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/dataset_validator.py +63 -0
  370. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/nabu_config.py +590 -0
  371. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/processconfig.py +825 -0
  372. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/reconstruction.py +851 -0
  373. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/__init__.py +0 -0
  374. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/dataset_validator.py +19 -0
  375. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/fbp.py +147 -0
  376. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/filtering.py +246 -0
  377. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/gridded_accumulator.py +575 -0
  378. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded.py +1670 -0
  379. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded_cuda.py +119 -0
  380. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_reconstruction.py +598 -0
  381. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_utils.py +42 -0
  382. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/nabu_config.py +175 -0
  383. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/processconfig.py +62 -0
  384. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/span_strategy.py +483 -0
  385. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/__init__.py +0 -0
  386. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_accumulator.py +157 -0
  387. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_pipeline_elements_full.py +355 -0
  388. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_strategy.py +61 -0
  389. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/utils.py +51 -0
  390. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/weight_balancer.py +101 -0
  391. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/params.py +163 -0
  392. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/processconfig.py +210 -0
  393. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/tests/test_chunk_reader.py +78 -0
  394. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/tests/test_estimators.py +149 -0
  395. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/utils.py +116 -0
  396. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/writer.py +193 -0
  397. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/xrdct/__init__.py +0 -0
  398. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/__init__.py +7 -0
  399. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/alignment.py +11 -0
  400. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd.py +161 -0
  401. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd_cuda.py +169 -0
  402. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf.py +361 -0
  403. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf_cuda.py +142 -0
  404. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/distortion.py +92 -0
  405. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield.py +212 -0
  406. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_cuda.py +174 -0
  407. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_variable_region.py +68 -0
  408. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield.py +448 -0
  409. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_cuda.py +144 -0
  410. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_variable_region.py +79 -0
  411. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase.py +425 -0
  412. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase_cuda.py +143 -0
  413. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift.py +95 -0
  414. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift_cuda.py +102 -0
  415. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/__init__.py +1 -0
  416. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_ccd_corr.py +59 -0
  417. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_ctf.py +250 -0
  418. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_double_flatfield.py +86 -0
  419. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_flatfield.py +626 -0
  420. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_paganin.py +67 -0
  421. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_vshift.py +73 -0
  422. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/__init__.py +0 -0
  423. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/convolution_cuda.py +375 -0
  424. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_base.py +163 -0
  425. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_cuda.py +256 -0
  426. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_opencl.py +54 -0
  427. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fftshift.py +134 -0
  428. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram.py +286 -0
  429. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram_cuda.py +103 -0
  430. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/kernel_base.py +126 -0
  431. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/medfilt_cuda.py +159 -0
  432. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd.py +29 -0
  433. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd_cuda.py +68 -0
  434. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_base.py +71 -0
  435. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_cuda.py +75 -0
  436. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_opencl.py +77 -0
  437. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/processing_base.py +123 -0
  438. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/roll_opencl.py +64 -0
  439. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation.py +63 -0
  440. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation_cuda.py +66 -0
  441. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/__init__.py +0 -0
  442. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fft.py +268 -0
  443. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fftshift.py +71 -0
  444. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_histogram.py +55 -0
  445. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_medfilt.py +77 -0
  446. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_muladd.py +54 -0
  447. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_padding.py +247 -0
  448. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_roll.py +63 -0
  449. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_rotation.py +83 -0
  450. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_transpose.py +72 -0
  451. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_unsharp.py +106 -0
  452. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/transpose.py +126 -0
  453. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp.py +79 -0
  454. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_cuda.py +53 -0
  455. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_opencl.py +75 -0
  456. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/__init__.py +3 -0
  457. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/cone.py +241 -0
  458. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp.py +124 -0
  459. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_base.py +391 -0
  460. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_opencl.py +78 -0
  461. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering.py +220 -0
  462. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_cuda.py +103 -0
  463. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_opencl.py +111 -0
  464. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/projection.py +240 -0
  465. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor.py +174 -0
  466. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor_cuda.py +44 -0
  467. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings.py +248 -0
  468. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings_cuda.py +322 -0
  469. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram.py +467 -0
  470. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_cuda.py +250 -0
  471. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_opencl.py +40 -0
  472. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/__init__.py +1 -0
  473. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_cone.py +308 -0
  474. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_deringer.py +220 -0
  475. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_fbp.py +252 -0
  476. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_filtering.py +133 -0
  477. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_halftomo.py +100 -0
  478. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_projector.py +164 -0
  479. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_reconstructor.py +93 -0
  480. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_sino_normalization.py +85 -0
  481. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/__init__.py +0 -0
  482. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/cli/__init__.py +0 -0
  483. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/cor.py +5 -0
  484. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/dataset_analyzer.py +469 -0
  485. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/gpu.py +169 -0
  486. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/logger.py +130 -0
  487. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/nxflatfield.py +217 -0
  488. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/templates/__init__.py +0 -0
  489. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/__init__.py +0 -0
  490. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_nxflatfield.py +104 -0
  491. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_units.py +47 -0
  492. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/utils.py +174 -0
  493. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/__init__.py +0 -0
  494. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/alignment.py +184 -0
  495. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/config.py +1286 -0
  496. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/definitions.py +6 -0
  497. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/frame_composition.py +155 -0
  498. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/overlap.py +373 -0
  499. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/sample_normalization.py +60 -0
  500. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/slurm_utils.py +204 -0
  501. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/__init__.py +0 -0
  502. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_alignment.py +99 -0
  503. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_config.py +226 -0
  504. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_frame_composition.py +180 -0
  505. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_overlap.py +98 -0
  506. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_sample_normalization.py +49 -0
  507. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_slurm_utils.py +146 -0
  508. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_utils.py +21 -0
  509. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_z_stitching.py +1183 -0
  510. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/utils.py +563 -0
  511. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/z_stitching.py +2279 -0
  512. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/tests.py +51 -0
  513. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/testutils.py +375 -0
  514. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/__init__.py +0 -0
  515. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/algotom_convert_sino.py +276 -0
  516. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/pore3d_deringer_munch.py +108 -0
  517. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomocupy_remove_stripe.py +586 -0
  518. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomopy_phase.py +239 -0
  519. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomwer_load_flats_darks.py +162 -0
  520. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/utils.py +836 -0
  521. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/doc/conf.py +137 -0
  522. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/doc/create_conf_doc.py +38 -0
  523. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/doc/get_mathjax.py +34 -0
  524. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/__init__.py +17 -0
  525. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/__init__.py +0 -0
  526. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap.py +88 -0
  527. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap_stitching.py +69 -0
  528. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/cast_volume.py +272 -0
  529. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/cli_configs.py +626 -0
  530. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/compare_volumes.py +94 -0
  531. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/composite_cor.py +144 -0
  532. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/correct_rot.py +70 -0
  533. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/create_distortion_map_from_poly.py +153 -0
  534. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_pix.py +358 -0
  535. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_rot.py +449 -0
  536. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/double_flatfield.py +143 -0
  537. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/generate_header.py +261 -0
  538. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/histogram.py +197 -0
  539. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/multicor.py +90 -0
  540. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/nx_z_splitter.py +125 -0
  541. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/parse_reconstruction_log.py +151 -0
  542. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/prepare_weights_double.py +163 -0
  543. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct.py +120 -0
  544. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct_helical.py +116 -0
  545. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reduce_dark_flat.py +181 -0
  546. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/rotate.py +162 -0
  547. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/shrink_dataset.py +98 -0
  548. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/stitching.py +85 -0
  549. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/tests/test_reduce_dark_flat.py +78 -0
  550. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/utils.py +33 -0
  551. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/validator.py +110 -0
  552. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/__init__.py +0 -0
  553. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/convolution.py +8 -0
  554. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/fft.py +4 -0
  555. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/kernel.py +97 -0
  556. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/medfilt.py +6 -0
  557. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/padding.py +6 -0
  558. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/processing.py +75 -0
  559. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/tests/__init__.py +1 -0
  560. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/utils.py +331 -0
  561. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/__init__.py +12 -0
  562. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/alignment.py +578 -0
  563. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor.py +1621 -0
  564. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor_sino.py +183 -0
  565. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/distortion.py +112 -0
  566. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/focus.py +362 -0
  567. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/__init__.py +0 -0
  568. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_alignment.py +70 -0
  569. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_cor.py +472 -0
  570. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_focus.py +105 -0
  571. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_tilt.py +41 -0
  572. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_translation.py +78 -0
  573. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tilt.py +214 -0
  574. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/translation.py +193 -0
  575. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/utils.py +39 -0
  576. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/__init__.py +2 -0
  577. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/cast_volume.py +371 -0
  578. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/detector_distortion.py +305 -0
  579. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/reader.py +628 -0
  580. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/reader_helical.py +114 -0
  581. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/__init__.py +0 -0
  582. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_cast_volume.py +339 -0
  583. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_detector_distortion.py +178 -0
  584. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_writers.py +187 -0
  585. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tiffwriter_zmm.py +99 -0
  586. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/utils.py +263 -0
  587. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/writer.py +892 -0
  588. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/__init__.py +0 -0
  589. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/binning.py +98 -0
  590. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/fftshift.py +6 -0
  591. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/filters.py +24 -0
  592. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/fourier_filters.py +152 -0
  593. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram.py +6 -0
  594. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram_cuda.py +8 -0
  595. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/kernel_base.py +4 -0
  596. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/padding.py +83 -0
  597. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/padding_base.py +6 -0
  598. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/processing_base.py +4 -0
  599. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation.py +6 -0
  600. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation_cuda.py +6 -0
  601. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/__init__.py +1 -0
  602. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_binning.py +48 -0
  603. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_interpolation.py +70 -0
  604. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/transpose.py +6 -0
  605. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp.py +4 -0
  606. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_cuda.py +6 -0
  607. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_opencl.py +8 -0
  608. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/utils.py +117 -0
  609. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/__init__.py +0 -0
  610. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/fft.py +6 -0
  611. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/kernel.py +135 -0
  612. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/memcpy.py +35 -0
  613. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/padding.py +6 -0
  614. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/processing.py +62 -0
  615. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/tests/__init__.py +0 -0
  616. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/utils.py +292 -0
  617. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/__init__.py +0 -0
  618. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config.py +265 -0
  619. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config_validators.py +589 -0
  620. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/datadump.py +164 -0
  621. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/dataset_validator.py +211 -0
  622. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/detector_distortion_provider.py +20 -0
  623. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/estimators.py +1012 -0
  624. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fallback_utils.py +149 -0
  625. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/__init__.py +0 -0
  626. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked.py +849 -0
  627. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked_cuda.py +152 -0
  628. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/computations.py +260 -0
  629. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/dataset_validator.py +63 -0
  630. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/nabu_config.py +590 -0
  631. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/processconfig.py +825 -0
  632. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/reconstruction.py +851 -0
  633. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/__init__.py +0 -0
  634. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/dataset_validator.py +19 -0
  635. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/fbp.py +147 -0
  636. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/filtering.py +246 -0
  637. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/gridded_accumulator.py +575 -0
  638. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded.py +1670 -0
  639. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded_cuda.py +119 -0
  640. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_reconstruction.py +598 -0
  641. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_utils.py +42 -0
  642. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/nabu_config.py +175 -0
  643. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/processconfig.py +62 -0
  644. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/span_strategy.py +483 -0
  645. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/__init__.py +0 -0
  646. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_accumulator.py +157 -0
  647. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_pipeline_elements_full.py +355 -0
  648. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_strategy.py +61 -0
  649. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/utils.py +51 -0
  650. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/weight_balancer.py +101 -0
  651. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/params.py +163 -0
  652. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/processconfig.py +210 -0
  653. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/tests/test_chunk_reader.py +78 -0
  654. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/tests/test_estimators.py +149 -0
  655. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/utils.py +116 -0
  656. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/writer.py +193 -0
  657. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/xrdct/__init__.py +0 -0
  658. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/__init__.py +7 -0
  659. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/alignment.py +11 -0
  660. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd.py +161 -0
  661. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd_cuda.py +169 -0
  662. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf.py +361 -0
  663. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf_cuda.py +142 -0
  664. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/distortion.py +92 -0
  665. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield.py +212 -0
  666. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_cuda.py +174 -0
  667. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_variable_region.py +68 -0
  668. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield.py +448 -0
  669. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_cuda.py +144 -0
  670. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_variable_region.py +79 -0
  671. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase.py +425 -0
  672. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase_cuda.py +143 -0
  673. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift.py +95 -0
  674. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift_cuda.py +102 -0
  675. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/__init__.py +1 -0
  676. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_ccd_corr.py +59 -0
  677. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_ctf.py +250 -0
  678. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_double_flatfield.py +86 -0
  679. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_flatfield.py +626 -0
  680. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_paganin.py +67 -0
  681. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_vshift.py +73 -0
  682. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/__init__.py +0 -0
  683. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/convolution_cuda.py +375 -0
  684. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_base.py +163 -0
  685. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_cuda.py +256 -0
  686. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_opencl.py +54 -0
  687. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fftshift.py +134 -0
  688. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram.py +286 -0
  689. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram_cuda.py +103 -0
  690. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/kernel_base.py +126 -0
  691. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/medfilt_cuda.py +159 -0
  692. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd.py +29 -0
  693. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd_cuda.py +68 -0
  694. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_base.py +71 -0
  695. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_cuda.py +75 -0
  696. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_opencl.py +77 -0
  697. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/processing_base.py +123 -0
  698. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/roll_opencl.py +64 -0
  699. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation.py +63 -0
  700. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation_cuda.py +66 -0
  701. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/__init__.py +0 -0
  702. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fft.py +268 -0
  703. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fftshift.py +71 -0
  704. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_histogram.py +55 -0
  705. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_medfilt.py +77 -0
  706. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_muladd.py +54 -0
  707. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_padding.py +247 -0
  708. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_roll.py +63 -0
  709. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_rotation.py +83 -0
  710. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_transpose.py +72 -0
  711. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_unsharp.py +106 -0
  712. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/transpose.py +126 -0
  713. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp.py +79 -0
  714. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_cuda.py +53 -0
  715. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_opencl.py +75 -0
  716. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/__init__.py +3 -0
  717. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/cone.py +241 -0
  718. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp.py +124 -0
  719. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_base.py +391 -0
  720. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_opencl.py +78 -0
  721. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering.py +220 -0
  722. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_cuda.py +103 -0
  723. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_opencl.py +111 -0
  724. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/projection.py +240 -0
  725. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor.py +174 -0
  726. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor_cuda.py +44 -0
  727. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings.py +248 -0
  728. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings_cuda.py +322 -0
  729. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram.py +467 -0
  730. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_cuda.py +250 -0
  731. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_opencl.py +40 -0
  732. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/__init__.py +1 -0
  733. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_cone.py +308 -0
  734. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_deringer.py +220 -0
  735. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_fbp.py +252 -0
  736. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_filtering.py +133 -0
  737. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_halftomo.py +100 -0
  738. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_projector.py +164 -0
  739. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_reconstructor.py +93 -0
  740. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_sino_normalization.py +85 -0
  741. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/__init__.py +0 -0
  742. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/cli/__init__.py +0 -0
  743. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/cor.py +5 -0
  744. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/dataset_analyzer.py +469 -0
  745. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/gpu.py +169 -0
  746. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/logger.py +130 -0
  747. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/nxflatfield.py +217 -0
  748. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/templates/__init__.py +0 -0
  749. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/__init__.py +0 -0
  750. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_nxflatfield.py +104 -0
  751. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_units.py +47 -0
  752. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/utils.py +174 -0
  753. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/__init__.py +0 -0
  754. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/alignment.py +184 -0
  755. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/config.py +1286 -0
  756. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/definitions.py +6 -0
  757. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/frame_composition.py +155 -0
  758. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/overlap.py +373 -0
  759. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/sample_normalization.py +60 -0
  760. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/slurm_utils.py +204 -0
  761. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/__init__.py +0 -0
  762. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_alignment.py +99 -0
  763. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_config.py +226 -0
  764. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_frame_composition.py +180 -0
  765. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_overlap.py +98 -0
  766. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_sample_normalization.py +49 -0
  767. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_slurm_utils.py +146 -0
  768. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_utils.py +21 -0
  769. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_z_stitching.py +1183 -0
  770. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/utils.py +563 -0
  771. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/z_stitching.py +2279 -0
  772. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/tests.py +51 -0
  773. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/testutils.py +375 -0
  774. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/__init__.py +0 -0
  775. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/algotom_convert_sino.py +276 -0
  776. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/pore3d_deringer_munch.py +108 -0
  777. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomocupy_remove_stripe.py +586 -0
  778. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomopy_phase.py +239 -0
  779. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomwer_load_flats_darks.py +162 -0
  780. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/utils.py +836 -0
  781. build/lib/build/lib/build/lib/build/lib/build/lib/doc/conf.py +137 -0
  782. build/lib/build/lib/build/lib/build/lib/build/lib/doc/create_conf_doc.py +38 -0
  783. build/lib/build/lib/build/lib/build/lib/build/lib/doc/get_mathjax.py +34 -0
  784. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/__init__.py +17 -0
  785. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/__init__.py +0 -0
  786. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap.py +88 -0
  787. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap_stitching.py +69 -0
  788. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/cast_volume.py +272 -0
  789. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/cli_configs.py +626 -0
  790. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/compare_volumes.py +94 -0
  791. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/composite_cor.py +144 -0
  792. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/correct_rot.py +70 -0
  793. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/create_distortion_map_from_poly.py +153 -0
  794. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_pix.py +358 -0
  795. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_rot.py +449 -0
  796. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/double_flatfield.py +143 -0
  797. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/generate_header.py +261 -0
  798. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/histogram.py +197 -0
  799. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/multicor.py +90 -0
  800. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/nx_z_splitter.py +125 -0
  801. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/parse_reconstruction_log.py +151 -0
  802. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/prepare_weights_double.py +163 -0
  803. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct.py +120 -0
  804. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct_helical.py +116 -0
  805. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reduce_dark_flat.py +181 -0
  806. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/rotate.py +162 -0
  807. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/shrink_dataset.py +98 -0
  808. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/stitching.py +85 -0
  809. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/tests/test_reduce_dark_flat.py +78 -0
  810. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/utils.py +33 -0
  811. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/validator.py +110 -0
  812. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/__init__.py +0 -0
  813. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/convolution.py +8 -0
  814. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/fft.py +4 -0
  815. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/kernel.py +97 -0
  816. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/medfilt.py +6 -0
  817. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/padding.py +6 -0
  818. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/processing.py +75 -0
  819. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/tests/__init__.py +1 -0
  820. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/utils.py +331 -0
  821. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/__init__.py +12 -0
  822. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/alignment.py +578 -0
  823. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor.py +1621 -0
  824. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor_sino.py +183 -0
  825. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/distortion.py +112 -0
  826. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/focus.py +362 -0
  827. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/__init__.py +0 -0
  828. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_alignment.py +70 -0
  829. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_cor.py +472 -0
  830. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_focus.py +105 -0
  831. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_tilt.py +41 -0
  832. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_translation.py +78 -0
  833. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tilt.py +214 -0
  834. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/translation.py +193 -0
  835. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/utils.py +39 -0
  836. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/__init__.py +2 -0
  837. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/cast_volume.py +371 -0
  838. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/detector_distortion.py +305 -0
  839. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/reader.py +628 -0
  840. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/reader_helical.py +114 -0
  841. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/__init__.py +0 -0
  842. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_cast_volume.py +339 -0
  843. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_detector_distortion.py +178 -0
  844. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_writers.py +187 -0
  845. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tiffwriter_zmm.py +99 -0
  846. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/utils.py +263 -0
  847. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/writer.py +892 -0
  848. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/__init__.py +0 -0
  849. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/binning.py +98 -0
  850. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/fftshift.py +6 -0
  851. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/filters.py +24 -0
  852. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/fourier_filters.py +152 -0
  853. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram.py +6 -0
  854. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram_cuda.py +8 -0
  855. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/kernel_base.py +4 -0
  856. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/padding.py +83 -0
  857. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/padding_base.py +6 -0
  858. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/processing_base.py +4 -0
  859. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation.py +6 -0
  860. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation_cuda.py +6 -0
  861. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/__init__.py +1 -0
  862. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_binning.py +48 -0
  863. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_interpolation.py +70 -0
  864. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/transpose.py +6 -0
  865. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp.py +4 -0
  866. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_cuda.py +6 -0
  867. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_opencl.py +8 -0
  868. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/utils.py +117 -0
  869. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/__init__.py +0 -0
  870. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/fft.py +6 -0
  871. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/kernel.py +135 -0
  872. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/memcpy.py +35 -0
  873. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/padding.py +6 -0
  874. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/processing.py +62 -0
  875. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/tests/__init__.py +0 -0
  876. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/utils.py +292 -0
  877. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/__init__.py +0 -0
  878. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config.py +265 -0
  879. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config_validators.py +589 -0
  880. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/datadump.py +164 -0
  881. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/dataset_validator.py +211 -0
  882. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/detector_distortion_provider.py +20 -0
  883. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/estimators.py +1012 -0
  884. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fallback_utils.py +149 -0
  885. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/__init__.py +0 -0
  886. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked.py +849 -0
  887. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked_cuda.py +152 -0
  888. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/computations.py +260 -0
  889. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/dataset_validator.py +63 -0
  890. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/nabu_config.py +590 -0
  891. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/processconfig.py +825 -0
  892. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/reconstruction.py +851 -0
  893. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/__init__.py +0 -0
  894. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/dataset_validator.py +19 -0
  895. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/fbp.py +147 -0
  896. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/filtering.py +246 -0
  897. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/gridded_accumulator.py +575 -0
  898. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded.py +1670 -0
  899. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded_cuda.py +119 -0
  900. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_reconstruction.py +598 -0
  901. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_utils.py +42 -0
  902. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/nabu_config.py +175 -0
  903. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/processconfig.py +62 -0
  904. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/span_strategy.py +483 -0
  905. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/__init__.py +0 -0
  906. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_accumulator.py +157 -0
  907. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_pipeline_elements_full.py +355 -0
  908. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_strategy.py +61 -0
  909. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/utils.py +51 -0
  910. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/weight_balancer.py +101 -0
  911. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/params.py +163 -0
  912. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/processconfig.py +210 -0
  913. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/tests/test_chunk_reader.py +78 -0
  914. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/tests/test_estimators.py +149 -0
  915. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/utils.py +116 -0
  916. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/writer.py +193 -0
  917. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/xrdct/__init__.py +0 -0
  918. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/__init__.py +7 -0
  919. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/alignment.py +11 -0
  920. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd.py +161 -0
  921. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd_cuda.py +169 -0
  922. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf.py +361 -0
  923. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf_cuda.py +142 -0
  924. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/distortion.py +92 -0
  925. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield.py +212 -0
  926. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_cuda.py +174 -0
  927. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_variable_region.py +68 -0
  928. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield.py +448 -0
  929. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_cuda.py +144 -0
  930. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_variable_region.py +79 -0
  931. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase.py +425 -0
  932. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase_cuda.py +143 -0
  933. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift.py +95 -0
  934. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift_cuda.py +102 -0
  935. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/__init__.py +1 -0
  936. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_ccd_corr.py +59 -0
  937. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_ctf.py +250 -0
  938. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_double_flatfield.py +86 -0
  939. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_flatfield.py +626 -0
  940. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_paganin.py +67 -0
  941. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_vshift.py +73 -0
  942. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/__init__.py +0 -0
  943. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/convolution_cuda.py +375 -0
  944. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_base.py +163 -0
  945. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_cuda.py +256 -0
  946. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_opencl.py +54 -0
  947. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fftshift.py +134 -0
  948. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram.py +286 -0
  949. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram_cuda.py +103 -0
  950. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/kernel_base.py +126 -0
  951. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/medfilt_cuda.py +159 -0
  952. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd.py +29 -0
  953. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd_cuda.py +68 -0
  954. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_base.py +71 -0
  955. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_cuda.py +75 -0
  956. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_opencl.py +77 -0
  957. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/processing_base.py +123 -0
  958. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/roll_opencl.py +64 -0
  959. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation.py +63 -0
  960. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation_cuda.py +66 -0
  961. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/__init__.py +0 -0
  962. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fft.py +268 -0
  963. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fftshift.py +71 -0
  964. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_histogram.py +55 -0
  965. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_medfilt.py +77 -0
  966. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_muladd.py +54 -0
  967. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_padding.py +247 -0
  968. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_roll.py +63 -0
  969. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_rotation.py +83 -0
  970. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_transpose.py +72 -0
  971. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_unsharp.py +106 -0
  972. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/transpose.py +126 -0
  973. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp.py +79 -0
  974. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_cuda.py +53 -0
  975. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_opencl.py +75 -0
  976. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/__init__.py +3 -0
  977. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/cone.py +241 -0
  978. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp.py +124 -0
  979. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_base.py +391 -0
  980. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_opencl.py +78 -0
  981. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering.py +220 -0
  982. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_cuda.py +103 -0
  983. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_opencl.py +111 -0
  984. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/projection.py +240 -0
  985. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor.py +174 -0
  986. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor_cuda.py +44 -0
  987. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings.py +248 -0
  988. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings_cuda.py +322 -0
  989. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram.py +467 -0
  990. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_cuda.py +250 -0
  991. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_opencl.py +40 -0
  992. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/__init__.py +1 -0
  993. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_cone.py +308 -0
  994. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_deringer.py +220 -0
  995. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_fbp.py +252 -0
  996. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_filtering.py +133 -0
  997. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_halftomo.py +100 -0
  998. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_projector.py +164 -0
  999. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_reconstructor.py +93 -0
  1000. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_sino_normalization.py +85 -0
  1001. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/__init__.py +0 -0
  1002. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/cli/__init__.py +0 -0
  1003. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/cor.py +5 -0
  1004. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/dataset_analyzer.py +469 -0
  1005. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/gpu.py +169 -0
  1006. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/logger.py +130 -0
  1007. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/nxflatfield.py +217 -0
  1008. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/templates/__init__.py +0 -0
  1009. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/__init__.py +0 -0
  1010. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_nxflatfield.py +104 -0
  1011. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_units.py +47 -0
  1012. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/utils.py +174 -0
  1013. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/__init__.py +0 -0
  1014. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/alignment.py +184 -0
  1015. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/config.py +1286 -0
  1016. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/definitions.py +6 -0
  1017. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/frame_composition.py +155 -0
  1018. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/overlap.py +373 -0
  1019. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/sample_normalization.py +60 -0
  1020. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/slurm_utils.py +204 -0
  1021. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/__init__.py +0 -0
  1022. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_alignment.py +99 -0
  1023. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_config.py +226 -0
  1024. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_frame_composition.py +180 -0
  1025. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_overlap.py +98 -0
  1026. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_sample_normalization.py +49 -0
  1027. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_slurm_utils.py +146 -0
  1028. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_utils.py +21 -0
  1029. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_z_stitching.py +1183 -0
  1030. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/utils.py +563 -0
  1031. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/z_stitching.py +2279 -0
  1032. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/tests.py +51 -0
  1033. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/testutils.py +375 -0
  1034. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/__init__.py +0 -0
  1035. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/algotom_convert_sino.py +276 -0
  1036. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/pore3d_deringer_munch.py +108 -0
  1037. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomocupy_remove_stripe.py +586 -0
  1038. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomopy_phase.py +239 -0
  1039. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomwer_load_flats_darks.py +162 -0
  1040. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/utils.py +836 -0
  1041. build/lib/build/lib/build/lib/build/lib/doc/conf.py +137 -0
  1042. build/lib/build/lib/build/lib/build/lib/doc/create_conf_doc.py +38 -0
  1043. build/lib/build/lib/build/lib/build/lib/doc/get_mathjax.py +34 -0
  1044. build/lib/build/lib/build/lib/build/lib/nabu/__init__.py +17 -0
  1045. build/lib/build/lib/build/lib/build/lib/nabu/app/__init__.py +0 -0
  1046. build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap.py +88 -0
  1047. build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap_stitching.py +69 -0
  1048. build/lib/build/lib/build/lib/build/lib/nabu/app/cast_volume.py +272 -0
  1049. build/lib/build/lib/build/lib/build/lib/nabu/app/cli_configs.py +626 -0
  1050. build/lib/build/lib/build/lib/build/lib/nabu/app/compare_volumes.py +94 -0
  1051. build/lib/build/lib/build/lib/build/lib/nabu/app/composite_cor.py +144 -0
  1052. build/lib/build/lib/build/lib/build/lib/nabu/app/correct_rot.py +70 -0
  1053. build/lib/build/lib/build/lib/build/lib/nabu/app/create_distortion_map_from_poly.py +153 -0
  1054. build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_pix.py +358 -0
  1055. build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_rot.py +449 -0
  1056. build/lib/build/lib/build/lib/build/lib/nabu/app/double_flatfield.py +143 -0
  1057. build/lib/build/lib/build/lib/build/lib/nabu/app/generate_header.py +261 -0
  1058. build/lib/build/lib/build/lib/build/lib/nabu/app/histogram.py +197 -0
  1059. build/lib/build/lib/build/lib/build/lib/nabu/app/multicor.py +90 -0
  1060. build/lib/build/lib/build/lib/build/lib/nabu/app/nx_z_splitter.py +125 -0
  1061. build/lib/build/lib/build/lib/build/lib/nabu/app/parse_reconstruction_log.py +151 -0
  1062. build/lib/build/lib/build/lib/build/lib/nabu/app/prepare_weights_double.py +163 -0
  1063. build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct.py +120 -0
  1064. build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct_helical.py +116 -0
  1065. build/lib/build/lib/build/lib/build/lib/nabu/app/reduce_dark_flat.py +181 -0
  1066. build/lib/build/lib/build/lib/build/lib/nabu/app/rotate.py +162 -0
  1067. build/lib/build/lib/build/lib/build/lib/nabu/app/shrink_dataset.py +98 -0
  1068. build/lib/build/lib/build/lib/build/lib/nabu/app/stitching.py +85 -0
  1069. build/lib/build/lib/build/lib/build/lib/nabu/app/tests/test_reduce_dark_flat.py +78 -0
  1070. build/lib/build/lib/build/lib/build/lib/nabu/app/utils.py +33 -0
  1071. build/lib/build/lib/build/lib/build/lib/nabu/app/validator.py +110 -0
  1072. build/lib/build/lib/build/lib/build/lib/nabu/cuda/__init__.py +0 -0
  1073. build/lib/build/lib/build/lib/build/lib/nabu/cuda/convolution.py +8 -0
  1074. build/lib/build/lib/build/lib/build/lib/nabu/cuda/fft.py +4 -0
  1075. build/lib/build/lib/build/lib/build/lib/nabu/cuda/kernel.py +97 -0
  1076. build/lib/build/lib/build/lib/build/lib/nabu/cuda/medfilt.py +6 -0
  1077. build/lib/build/lib/build/lib/build/lib/nabu/cuda/padding.py +6 -0
  1078. build/lib/build/lib/build/lib/build/lib/nabu/cuda/processing.py +75 -0
  1079. build/lib/build/lib/build/lib/build/lib/nabu/cuda/tests/__init__.py +1 -0
  1080. build/lib/build/lib/build/lib/build/lib/nabu/cuda/utils.py +331 -0
  1081. build/lib/build/lib/build/lib/build/lib/nabu/estimation/__init__.py +12 -0
  1082. build/lib/build/lib/build/lib/build/lib/nabu/estimation/alignment.py +578 -0
  1083. build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor.py +1621 -0
  1084. build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor_sino.py +183 -0
  1085. build/lib/build/lib/build/lib/build/lib/nabu/estimation/distortion.py +112 -0
  1086. build/lib/build/lib/build/lib/build/lib/nabu/estimation/focus.py +362 -0
  1087. build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/__init__.py +0 -0
  1088. build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_alignment.py +70 -0
  1089. build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_cor.py +472 -0
  1090. build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_focus.py +105 -0
  1091. build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_tilt.py +41 -0
  1092. build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_translation.py +78 -0
  1093. build/lib/build/lib/build/lib/build/lib/nabu/estimation/tilt.py +214 -0
  1094. build/lib/build/lib/build/lib/build/lib/nabu/estimation/translation.py +193 -0
  1095. build/lib/build/lib/build/lib/build/lib/nabu/estimation/utils.py +39 -0
  1096. build/lib/build/lib/build/lib/build/lib/nabu/io/__init__.py +2 -0
  1097. build/lib/build/lib/build/lib/build/lib/nabu/io/cast_volume.py +371 -0
  1098. build/lib/build/lib/build/lib/build/lib/nabu/io/detector_distortion.py +305 -0
  1099. build/lib/build/lib/build/lib/build/lib/nabu/io/reader.py +628 -0
  1100. build/lib/build/lib/build/lib/build/lib/nabu/io/reader_helical.py +114 -0
  1101. build/lib/build/lib/build/lib/build/lib/nabu/io/tests/__init__.py +0 -0
  1102. build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_cast_volume.py +339 -0
  1103. build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_detector_distortion.py +178 -0
  1104. build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_writers.py +187 -0
  1105. build/lib/build/lib/build/lib/build/lib/nabu/io/tiffwriter_zmm.py +99 -0
  1106. build/lib/build/lib/build/lib/build/lib/nabu/io/utils.py +263 -0
  1107. build/lib/build/lib/build/lib/build/lib/nabu/io/writer.py +892 -0
  1108. build/lib/build/lib/build/lib/build/lib/nabu/misc/__init__.py +0 -0
  1109. build/lib/build/lib/build/lib/build/lib/nabu/misc/binning.py +98 -0
  1110. build/lib/build/lib/build/lib/build/lib/nabu/misc/fftshift.py +6 -0
  1111. build/lib/build/lib/build/lib/build/lib/nabu/misc/filters.py +24 -0
  1112. build/lib/build/lib/build/lib/build/lib/nabu/misc/fourier_filters.py +152 -0
  1113. build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram.py +6 -0
  1114. build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram_cuda.py +8 -0
  1115. build/lib/build/lib/build/lib/build/lib/nabu/misc/kernel_base.py +4 -0
  1116. build/lib/build/lib/build/lib/build/lib/nabu/misc/padding.py +83 -0
  1117. build/lib/build/lib/build/lib/build/lib/nabu/misc/padding_base.py +6 -0
  1118. build/lib/build/lib/build/lib/build/lib/nabu/misc/processing_base.py +4 -0
  1119. build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation.py +6 -0
  1120. build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation_cuda.py +6 -0
  1121. build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/__init__.py +1 -0
  1122. build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_binning.py +48 -0
  1123. build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_interpolation.py +70 -0
  1124. build/lib/build/lib/build/lib/build/lib/nabu/misc/transpose.py +6 -0
  1125. build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp.py +4 -0
  1126. build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_cuda.py +6 -0
  1127. build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_opencl.py +8 -0
  1128. build/lib/build/lib/build/lib/build/lib/nabu/misc/utils.py +117 -0
  1129. build/lib/build/lib/build/lib/build/lib/nabu/opencl/__init__.py +0 -0
  1130. build/lib/build/lib/build/lib/build/lib/nabu/opencl/fft.py +6 -0
  1131. build/lib/build/lib/build/lib/build/lib/nabu/opencl/kernel.py +135 -0
  1132. build/lib/build/lib/build/lib/build/lib/nabu/opencl/memcpy.py +35 -0
  1133. build/lib/build/lib/build/lib/build/lib/nabu/opencl/padding.py +6 -0
  1134. build/lib/build/lib/build/lib/build/lib/nabu/opencl/processing.py +62 -0
  1135. build/lib/build/lib/build/lib/build/lib/nabu/opencl/tests/__init__.py +0 -0
  1136. build/lib/build/lib/build/lib/build/lib/nabu/opencl/utils.py +292 -0
  1137. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/__init__.py +0 -0
  1138. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config.py +265 -0
  1139. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config_validators.py +589 -0
  1140. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/datadump.py +164 -0
  1141. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/dataset_validator.py +211 -0
  1142. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/detector_distortion_provider.py +20 -0
  1143. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/estimators.py +1012 -0
  1144. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fallback_utils.py +149 -0
  1145. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/__init__.py +0 -0
  1146. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked.py +849 -0
  1147. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked_cuda.py +152 -0
  1148. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/computations.py +260 -0
  1149. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/dataset_validator.py +63 -0
  1150. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/nabu_config.py +590 -0
  1151. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/processconfig.py +825 -0
  1152. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/reconstruction.py +851 -0
  1153. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/__init__.py +0 -0
  1154. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/dataset_validator.py +19 -0
  1155. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/fbp.py +147 -0
  1156. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/filtering.py +246 -0
  1157. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/gridded_accumulator.py +575 -0
  1158. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded.py +1670 -0
  1159. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded_cuda.py +119 -0
  1160. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_reconstruction.py +598 -0
  1161. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_utils.py +42 -0
  1162. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/nabu_config.py +175 -0
  1163. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/processconfig.py +62 -0
  1164. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/span_strategy.py +483 -0
  1165. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/__init__.py +0 -0
  1166. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_accumulator.py +157 -0
  1167. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_pipeline_elements_full.py +355 -0
  1168. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_strategy.py +61 -0
  1169. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/utils.py +51 -0
  1170. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/weight_balancer.py +101 -0
  1171. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/params.py +163 -0
  1172. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/processconfig.py +210 -0
  1173. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/tests/test_chunk_reader.py +78 -0
  1174. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/tests/test_estimators.py +149 -0
  1175. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/utils.py +116 -0
  1176. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/writer.py +193 -0
  1177. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/xrdct/__init__.py +0 -0
  1178. build/lib/build/lib/build/lib/build/lib/nabu/preproc/__init__.py +7 -0
  1179. build/lib/build/lib/build/lib/build/lib/nabu/preproc/alignment.py +11 -0
  1180. build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd.py +161 -0
  1181. build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd_cuda.py +169 -0
  1182. build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf.py +361 -0
  1183. build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf_cuda.py +142 -0
  1184. build/lib/build/lib/build/lib/build/lib/nabu/preproc/distortion.py +92 -0
  1185. build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield.py +212 -0
  1186. build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_cuda.py +174 -0
  1187. build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_variable_region.py +68 -0
  1188. build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield.py +448 -0
  1189. build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_cuda.py +144 -0
  1190. build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_variable_region.py +79 -0
  1191. build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase.py +425 -0
  1192. build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase_cuda.py +143 -0
  1193. build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift.py +95 -0
  1194. build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift_cuda.py +102 -0
  1195. build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/__init__.py +1 -0
  1196. build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_ccd_corr.py +59 -0
  1197. build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_ctf.py +250 -0
  1198. build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_double_flatfield.py +86 -0
  1199. build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_flatfield.py +626 -0
  1200. build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_paganin.py +67 -0
  1201. build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_vshift.py +73 -0
  1202. build/lib/build/lib/build/lib/build/lib/nabu/processing/__init__.py +0 -0
  1203. build/lib/build/lib/build/lib/build/lib/nabu/processing/convolution_cuda.py +375 -0
  1204. build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_base.py +163 -0
  1205. build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_cuda.py +256 -0
  1206. build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_opencl.py +54 -0
  1207. build/lib/build/lib/build/lib/build/lib/nabu/processing/fftshift.py +134 -0
  1208. build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram.py +286 -0
  1209. build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram_cuda.py +103 -0
  1210. build/lib/build/lib/build/lib/build/lib/nabu/processing/kernel_base.py +126 -0
  1211. build/lib/build/lib/build/lib/build/lib/nabu/processing/medfilt_cuda.py +159 -0
  1212. build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd.py +29 -0
  1213. build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd_cuda.py +68 -0
  1214. build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_base.py +71 -0
  1215. build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_cuda.py +75 -0
  1216. build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_opencl.py +77 -0
  1217. build/lib/build/lib/build/lib/build/lib/nabu/processing/processing_base.py +123 -0
  1218. build/lib/build/lib/build/lib/build/lib/nabu/processing/roll_opencl.py +64 -0
  1219. build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation.py +63 -0
  1220. build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation_cuda.py +66 -0
  1221. build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/__init__.py +0 -0
  1222. build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fft.py +268 -0
  1223. build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fftshift.py +71 -0
  1224. build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_histogram.py +55 -0
  1225. build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_medfilt.py +77 -0
  1226. build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_muladd.py +54 -0
  1227. build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_padding.py +247 -0
  1228. build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_roll.py +63 -0
  1229. build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_rotation.py +83 -0
  1230. build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_transpose.py +72 -0
  1231. build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_unsharp.py +106 -0
  1232. build/lib/build/lib/build/lib/build/lib/nabu/processing/transpose.py +126 -0
  1233. build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp.py +79 -0
  1234. build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_cuda.py +53 -0
  1235. build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_opencl.py +75 -0
  1236. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/__init__.py +3 -0
  1237. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/cone.py +241 -0
  1238. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp.py +124 -0
  1239. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_base.py +391 -0
  1240. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_opencl.py +78 -0
  1241. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering.py +220 -0
  1242. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_cuda.py +103 -0
  1243. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_opencl.py +111 -0
  1244. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/projection.py +240 -0
  1245. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor.py +174 -0
  1246. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor_cuda.py +44 -0
  1247. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings.py +248 -0
  1248. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings_cuda.py +322 -0
  1249. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram.py +467 -0
  1250. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_cuda.py +250 -0
  1251. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_opencl.py +40 -0
  1252. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/__init__.py +1 -0
  1253. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_cone.py +308 -0
  1254. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_deringer.py +220 -0
  1255. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_fbp.py +252 -0
  1256. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_filtering.py +133 -0
  1257. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_halftomo.py +100 -0
  1258. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_projector.py +164 -0
  1259. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_reconstructor.py +93 -0
  1260. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_sino_normalization.py +85 -0
  1261. build/lib/build/lib/build/lib/build/lib/nabu/resources/__init__.py +0 -0
  1262. build/lib/build/lib/build/lib/build/lib/nabu/resources/cli/__init__.py +0 -0
  1263. build/lib/build/lib/build/lib/build/lib/nabu/resources/cor.py +5 -0
  1264. build/lib/build/lib/build/lib/build/lib/nabu/resources/dataset_analyzer.py +469 -0
  1265. build/lib/build/lib/build/lib/build/lib/nabu/resources/gpu.py +169 -0
  1266. build/lib/build/lib/build/lib/build/lib/nabu/resources/logger.py +130 -0
  1267. build/lib/build/lib/build/lib/build/lib/nabu/resources/nxflatfield.py +217 -0
  1268. build/lib/build/lib/build/lib/build/lib/nabu/resources/templates/__init__.py +0 -0
  1269. build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/__init__.py +0 -0
  1270. build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_nxflatfield.py +104 -0
  1271. build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_units.py +47 -0
  1272. build/lib/build/lib/build/lib/build/lib/nabu/resources/utils.py +174 -0
  1273. build/lib/build/lib/build/lib/build/lib/nabu/stitching/__init__.py +0 -0
  1274. build/lib/build/lib/build/lib/build/lib/nabu/stitching/alignment.py +184 -0
  1275. build/lib/build/lib/build/lib/build/lib/nabu/stitching/config.py +1286 -0
  1276. build/lib/build/lib/build/lib/build/lib/nabu/stitching/definitions.py +6 -0
  1277. build/lib/build/lib/build/lib/build/lib/nabu/stitching/frame_composition.py +155 -0
  1278. build/lib/build/lib/build/lib/build/lib/nabu/stitching/overlap.py +373 -0
  1279. build/lib/build/lib/build/lib/build/lib/nabu/stitching/sample_normalization.py +60 -0
  1280. build/lib/build/lib/build/lib/build/lib/nabu/stitching/slurm_utils.py +204 -0
  1281. build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/__init__.py +0 -0
  1282. build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_alignment.py +99 -0
  1283. build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_config.py +226 -0
  1284. build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_frame_composition.py +180 -0
  1285. build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_overlap.py +98 -0
  1286. build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_sample_normalization.py +49 -0
  1287. build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_slurm_utils.py +146 -0
  1288. build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_utils.py +21 -0
  1289. build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_z_stitching.py +1183 -0
  1290. build/lib/build/lib/build/lib/build/lib/nabu/stitching/utils.py +563 -0
  1291. build/lib/build/lib/build/lib/build/lib/nabu/stitching/z_stitching.py +2279 -0
  1292. build/lib/build/lib/build/lib/build/lib/nabu/tests.py +51 -0
  1293. build/lib/build/lib/build/lib/build/lib/nabu/testutils.py +375 -0
  1294. build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/__init__.py +0 -0
  1295. build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/algotom_convert_sino.py +276 -0
  1296. build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/pore3d_deringer_munch.py +108 -0
  1297. build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomocupy_remove_stripe.py +586 -0
  1298. build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomopy_phase.py +239 -0
  1299. build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomwer_load_flats_darks.py +162 -0
  1300. build/lib/build/lib/build/lib/build/lib/nabu/utils.py +836 -0
  1301. build/lib/build/lib/build/lib/doc/conf.py +137 -0
  1302. build/lib/build/lib/build/lib/doc/create_conf_doc.py +38 -0
  1303. build/lib/build/lib/build/lib/doc/get_mathjax.py +34 -0
  1304. build/lib/build/lib/build/lib/nabu/__init__.py +17 -0
  1305. build/lib/build/lib/build/lib/nabu/app/__init__.py +0 -0
  1306. build/lib/build/lib/build/lib/nabu/app/bootstrap.py +88 -0
  1307. build/lib/build/lib/build/lib/nabu/app/bootstrap_stitching.py +69 -0
  1308. build/lib/build/lib/build/lib/nabu/app/cast_volume.py +272 -0
  1309. build/lib/build/lib/build/lib/nabu/app/cli_configs.py +626 -0
  1310. build/lib/build/lib/build/lib/nabu/app/compare_volumes.py +94 -0
  1311. build/lib/build/lib/build/lib/nabu/app/composite_cor.py +144 -0
  1312. build/lib/build/lib/build/lib/nabu/app/correct_rot.py +70 -0
  1313. build/lib/build/lib/build/lib/nabu/app/create_distortion_map_from_poly.py +153 -0
  1314. build/lib/build/lib/build/lib/nabu/app/diag_to_pix.py +358 -0
  1315. build/lib/build/lib/build/lib/nabu/app/diag_to_rot.py +449 -0
  1316. build/lib/build/lib/build/lib/nabu/app/double_flatfield.py +143 -0
  1317. build/lib/build/lib/build/lib/nabu/app/generate_header.py +261 -0
  1318. build/lib/build/lib/build/lib/nabu/app/histogram.py +197 -0
  1319. build/lib/build/lib/build/lib/nabu/app/multicor.py +90 -0
  1320. build/lib/build/lib/build/lib/nabu/app/nx_z_splitter.py +125 -0
  1321. build/lib/build/lib/build/lib/nabu/app/parse_reconstruction_log.py +151 -0
  1322. build/lib/build/lib/build/lib/nabu/app/prepare_weights_double.py +163 -0
  1323. build/lib/build/lib/build/lib/nabu/app/reconstruct.py +120 -0
  1324. build/lib/build/lib/build/lib/nabu/app/reconstruct_helical.py +116 -0
  1325. build/lib/build/lib/build/lib/nabu/app/reduce_dark_flat.py +181 -0
  1326. build/lib/build/lib/build/lib/nabu/app/rotate.py +162 -0
  1327. build/lib/build/lib/build/lib/nabu/app/shrink_dataset.py +98 -0
  1328. build/lib/build/lib/build/lib/nabu/app/stitching.py +85 -0
  1329. build/lib/build/lib/build/lib/nabu/app/tests/test_reduce_dark_flat.py +78 -0
  1330. build/lib/build/lib/build/lib/nabu/app/utils.py +33 -0
  1331. build/lib/build/lib/build/lib/nabu/app/validator.py +110 -0
  1332. build/lib/build/lib/build/lib/nabu/cuda/__init__.py +0 -0
  1333. build/lib/build/lib/build/lib/nabu/cuda/convolution.py +8 -0
  1334. build/lib/build/lib/build/lib/nabu/cuda/fft.py +4 -0
  1335. build/lib/build/lib/build/lib/nabu/cuda/kernel.py +97 -0
  1336. build/lib/build/lib/build/lib/nabu/cuda/medfilt.py +6 -0
  1337. build/lib/build/lib/build/lib/nabu/cuda/padding.py +6 -0
  1338. build/lib/build/lib/build/lib/nabu/cuda/processing.py +75 -0
  1339. build/lib/build/lib/build/lib/nabu/cuda/tests/__init__.py +1 -0
  1340. build/lib/build/lib/build/lib/nabu/cuda/utils.py +331 -0
  1341. build/lib/build/lib/build/lib/nabu/estimation/__init__.py +12 -0
  1342. build/lib/build/lib/build/lib/nabu/estimation/alignment.py +578 -0
  1343. build/lib/build/lib/build/lib/nabu/estimation/cor.py +1621 -0
  1344. build/lib/build/lib/build/lib/nabu/estimation/cor_sino.py +183 -0
  1345. build/lib/build/lib/build/lib/nabu/estimation/distortion.py +112 -0
  1346. build/lib/build/lib/build/lib/nabu/estimation/focus.py +362 -0
  1347. build/lib/build/lib/build/lib/nabu/estimation/tests/__init__.py +0 -0
  1348. build/lib/build/lib/build/lib/nabu/estimation/tests/test_alignment.py +70 -0
  1349. build/lib/build/lib/build/lib/nabu/estimation/tests/test_cor.py +472 -0
  1350. build/lib/build/lib/build/lib/nabu/estimation/tests/test_focus.py +105 -0
  1351. build/lib/build/lib/build/lib/nabu/estimation/tests/test_tilt.py +41 -0
  1352. build/lib/build/lib/build/lib/nabu/estimation/tests/test_translation.py +78 -0
  1353. build/lib/build/lib/build/lib/nabu/estimation/tilt.py +214 -0
  1354. build/lib/build/lib/build/lib/nabu/estimation/translation.py +193 -0
  1355. build/lib/build/lib/build/lib/nabu/estimation/utils.py +39 -0
  1356. build/lib/build/lib/build/lib/nabu/io/__init__.py +2 -0
  1357. build/lib/build/lib/build/lib/nabu/io/cast_volume.py +371 -0
  1358. build/lib/build/lib/build/lib/nabu/io/detector_distortion.py +305 -0
  1359. build/lib/build/lib/build/lib/nabu/io/reader.py +628 -0
  1360. build/lib/build/lib/build/lib/nabu/io/reader_helical.py +114 -0
  1361. build/lib/build/lib/build/lib/nabu/io/tests/__init__.py +0 -0
  1362. build/lib/build/lib/build/lib/nabu/io/tests/test_cast_volume.py +339 -0
  1363. build/lib/build/lib/build/lib/nabu/io/tests/test_detector_distortion.py +178 -0
  1364. build/lib/build/lib/build/lib/nabu/io/tests/test_writers.py +187 -0
  1365. build/lib/build/lib/build/lib/nabu/io/tiffwriter_zmm.py +99 -0
  1366. build/lib/build/lib/build/lib/nabu/io/utils.py +263 -0
  1367. build/lib/build/lib/build/lib/nabu/io/writer.py +892 -0
  1368. build/lib/build/lib/build/lib/nabu/misc/__init__.py +0 -0
  1369. build/lib/build/lib/build/lib/nabu/misc/binning.py +98 -0
  1370. build/lib/build/lib/build/lib/nabu/misc/fftshift.py +6 -0
  1371. build/lib/build/lib/build/lib/nabu/misc/filters.py +24 -0
  1372. build/lib/build/lib/build/lib/nabu/misc/fourier_filters.py +152 -0
  1373. build/lib/build/lib/build/lib/nabu/misc/histogram.py +6 -0
  1374. build/lib/build/lib/build/lib/nabu/misc/histogram_cuda.py +8 -0
  1375. build/lib/build/lib/build/lib/nabu/misc/kernel_base.py +4 -0
  1376. build/lib/build/lib/build/lib/nabu/misc/padding.py +83 -0
  1377. build/lib/build/lib/build/lib/nabu/misc/padding_base.py +6 -0
  1378. build/lib/build/lib/build/lib/nabu/misc/processing_base.py +4 -0
  1379. build/lib/build/lib/build/lib/nabu/misc/rotation.py +6 -0
  1380. build/lib/build/lib/build/lib/nabu/misc/rotation_cuda.py +6 -0
  1381. build/lib/build/lib/build/lib/nabu/misc/tests/__init__.py +1 -0
  1382. build/lib/build/lib/build/lib/nabu/misc/tests/test_binning.py +48 -0
  1383. build/lib/build/lib/build/lib/nabu/misc/tests/test_interpolation.py +70 -0
  1384. build/lib/build/lib/build/lib/nabu/misc/transpose.py +6 -0
  1385. build/lib/build/lib/build/lib/nabu/misc/unsharp.py +4 -0
  1386. build/lib/build/lib/build/lib/nabu/misc/unsharp_cuda.py +6 -0
  1387. build/lib/build/lib/build/lib/nabu/misc/unsharp_opencl.py +8 -0
  1388. build/lib/build/lib/build/lib/nabu/misc/utils.py +117 -0
  1389. build/lib/build/lib/build/lib/nabu/opencl/__init__.py +0 -0
  1390. build/lib/build/lib/build/lib/nabu/opencl/fft.py +6 -0
  1391. build/lib/build/lib/build/lib/nabu/opencl/kernel.py +135 -0
  1392. build/lib/build/lib/build/lib/nabu/opencl/memcpy.py +35 -0
  1393. build/lib/build/lib/build/lib/nabu/opencl/padding.py +6 -0
  1394. build/lib/build/lib/build/lib/nabu/opencl/processing.py +62 -0
  1395. build/lib/build/lib/build/lib/nabu/opencl/tests/__init__.py +0 -0
  1396. build/lib/build/lib/build/lib/nabu/opencl/utils.py +292 -0
  1397. build/lib/build/lib/build/lib/nabu/pipeline/__init__.py +0 -0
  1398. build/lib/build/lib/build/lib/nabu/pipeline/config.py +265 -0
  1399. build/lib/build/lib/build/lib/nabu/pipeline/config_validators.py +589 -0
  1400. build/lib/build/lib/build/lib/nabu/pipeline/datadump.py +164 -0
  1401. build/lib/build/lib/build/lib/nabu/pipeline/dataset_validator.py +211 -0
  1402. build/lib/build/lib/build/lib/nabu/pipeline/detector_distortion_provider.py +20 -0
  1403. build/lib/build/lib/build/lib/nabu/pipeline/estimators.py +1012 -0
  1404. build/lib/build/lib/build/lib/nabu/pipeline/fallback_utils.py +149 -0
  1405. build/lib/build/lib/build/lib/nabu/pipeline/fullfield/__init__.py +0 -0
  1406. build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked.py +849 -0
  1407. build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked_cuda.py +152 -0
  1408. build/lib/build/lib/build/lib/nabu/pipeline/fullfield/computations.py +260 -0
  1409. build/lib/build/lib/build/lib/nabu/pipeline/fullfield/dataset_validator.py +63 -0
  1410. build/lib/build/lib/build/lib/nabu/pipeline/fullfield/nabu_config.py +590 -0
  1411. build/lib/build/lib/build/lib/nabu/pipeline/fullfield/processconfig.py +825 -0
  1412. build/lib/build/lib/build/lib/nabu/pipeline/fullfield/reconstruction.py +851 -0
  1413. build/lib/build/lib/build/lib/nabu/pipeline/helical/__init__.py +0 -0
  1414. build/lib/build/lib/build/lib/nabu/pipeline/helical/dataset_validator.py +19 -0
  1415. build/lib/build/lib/build/lib/nabu/pipeline/helical/fbp.py +147 -0
  1416. build/lib/build/lib/build/lib/nabu/pipeline/helical/filtering.py +246 -0
  1417. build/lib/build/lib/build/lib/nabu/pipeline/helical/gridded_accumulator.py +575 -0
  1418. build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded.py +1670 -0
  1419. build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded_cuda.py +119 -0
  1420. build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_reconstruction.py +598 -0
  1421. build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_utils.py +42 -0
  1422. build/lib/build/lib/build/lib/nabu/pipeline/helical/nabu_config.py +175 -0
  1423. build/lib/build/lib/build/lib/nabu/pipeline/helical/processconfig.py +62 -0
  1424. build/lib/build/lib/build/lib/nabu/pipeline/helical/span_strategy.py +483 -0
  1425. build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/__init__.py +0 -0
  1426. build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_accumulator.py +157 -0
  1427. build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_pipeline_elements_full.py +355 -0
  1428. build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_strategy.py +61 -0
  1429. build/lib/build/lib/build/lib/nabu/pipeline/helical/utils.py +51 -0
  1430. build/lib/build/lib/build/lib/nabu/pipeline/helical/weight_balancer.py +101 -0
  1431. build/lib/build/lib/build/lib/nabu/pipeline/params.py +163 -0
  1432. build/lib/build/lib/build/lib/nabu/pipeline/processconfig.py +210 -0
  1433. build/lib/build/lib/build/lib/nabu/pipeline/tests/test_chunk_reader.py +78 -0
  1434. build/lib/build/lib/build/lib/nabu/pipeline/tests/test_estimators.py +149 -0
  1435. build/lib/build/lib/build/lib/nabu/pipeline/utils.py +116 -0
  1436. build/lib/build/lib/build/lib/nabu/pipeline/writer.py +193 -0
  1437. build/lib/build/lib/build/lib/nabu/pipeline/xrdct/__init__.py +0 -0
  1438. build/lib/build/lib/build/lib/nabu/preproc/__init__.py +7 -0
  1439. build/lib/build/lib/build/lib/nabu/preproc/alignment.py +11 -0
  1440. build/lib/build/lib/build/lib/nabu/preproc/ccd.py +161 -0
  1441. build/lib/build/lib/build/lib/nabu/preproc/ccd_cuda.py +169 -0
  1442. build/lib/build/lib/build/lib/nabu/preproc/ctf.py +361 -0
  1443. build/lib/build/lib/build/lib/nabu/preproc/ctf_cuda.py +142 -0
  1444. build/lib/build/lib/build/lib/nabu/preproc/distortion.py +92 -0
  1445. build/lib/build/lib/build/lib/nabu/preproc/double_flatfield.py +212 -0
  1446. build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_cuda.py +174 -0
  1447. build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_variable_region.py +68 -0
  1448. build/lib/build/lib/build/lib/nabu/preproc/flatfield.py +448 -0
  1449. build/lib/build/lib/build/lib/nabu/preproc/flatfield_cuda.py +144 -0
  1450. build/lib/build/lib/build/lib/nabu/preproc/flatfield_variable_region.py +79 -0
  1451. build/lib/build/lib/build/lib/nabu/preproc/phase.py +425 -0
  1452. build/lib/build/lib/build/lib/nabu/preproc/phase_cuda.py +143 -0
  1453. build/lib/build/lib/build/lib/nabu/preproc/shift.py +95 -0
  1454. build/lib/build/lib/build/lib/nabu/preproc/shift_cuda.py +102 -0
  1455. build/lib/build/lib/build/lib/nabu/preproc/tests/__init__.py +1 -0
  1456. build/lib/build/lib/build/lib/nabu/preproc/tests/test_ccd_corr.py +59 -0
  1457. build/lib/build/lib/build/lib/nabu/preproc/tests/test_ctf.py +250 -0
  1458. build/lib/build/lib/build/lib/nabu/preproc/tests/test_double_flatfield.py +86 -0
  1459. build/lib/build/lib/build/lib/nabu/preproc/tests/test_flatfield.py +626 -0
  1460. build/lib/build/lib/build/lib/nabu/preproc/tests/test_paganin.py +67 -0
  1461. build/lib/build/lib/build/lib/nabu/preproc/tests/test_vshift.py +73 -0
  1462. build/lib/build/lib/build/lib/nabu/processing/__init__.py +0 -0
  1463. build/lib/build/lib/build/lib/nabu/processing/convolution_cuda.py +375 -0
  1464. build/lib/build/lib/build/lib/nabu/processing/fft_base.py +163 -0
  1465. build/lib/build/lib/build/lib/nabu/processing/fft_cuda.py +256 -0
  1466. build/lib/build/lib/build/lib/nabu/processing/fft_opencl.py +54 -0
  1467. build/lib/build/lib/build/lib/nabu/processing/fftshift.py +134 -0
  1468. build/lib/build/lib/build/lib/nabu/processing/histogram.py +286 -0
  1469. build/lib/build/lib/build/lib/nabu/processing/histogram_cuda.py +103 -0
  1470. build/lib/build/lib/build/lib/nabu/processing/kernel_base.py +126 -0
  1471. build/lib/build/lib/build/lib/nabu/processing/medfilt_cuda.py +159 -0
  1472. build/lib/build/lib/build/lib/nabu/processing/muladd.py +29 -0
  1473. build/lib/build/lib/build/lib/nabu/processing/muladd_cuda.py +68 -0
  1474. build/lib/build/lib/build/lib/nabu/processing/padding_base.py +71 -0
  1475. build/lib/build/lib/build/lib/nabu/processing/padding_cuda.py +75 -0
  1476. build/lib/build/lib/build/lib/nabu/processing/padding_opencl.py +77 -0
  1477. build/lib/build/lib/build/lib/nabu/processing/processing_base.py +123 -0
  1478. build/lib/build/lib/build/lib/nabu/processing/roll_opencl.py +64 -0
  1479. build/lib/build/lib/build/lib/nabu/processing/rotation.py +63 -0
  1480. build/lib/build/lib/build/lib/nabu/processing/rotation_cuda.py +66 -0
  1481. build/lib/build/lib/build/lib/nabu/processing/tests/__init__.py +0 -0
  1482. build/lib/build/lib/build/lib/nabu/processing/tests/test_fft.py +268 -0
  1483. build/lib/build/lib/build/lib/nabu/processing/tests/test_fftshift.py +71 -0
  1484. build/lib/build/lib/build/lib/nabu/processing/tests/test_histogram.py +55 -0
  1485. build/lib/build/lib/build/lib/nabu/processing/tests/test_medfilt.py +77 -0
  1486. build/lib/build/lib/build/lib/nabu/processing/tests/test_muladd.py +54 -0
  1487. build/lib/build/lib/build/lib/nabu/processing/tests/test_padding.py +247 -0
  1488. build/lib/build/lib/build/lib/nabu/processing/tests/test_roll.py +63 -0
  1489. build/lib/build/lib/build/lib/nabu/processing/tests/test_rotation.py +83 -0
  1490. build/lib/build/lib/build/lib/nabu/processing/tests/test_transpose.py +72 -0
  1491. build/lib/build/lib/build/lib/nabu/processing/tests/test_unsharp.py +106 -0
  1492. build/lib/build/lib/build/lib/nabu/processing/transpose.py +126 -0
  1493. build/lib/build/lib/build/lib/nabu/processing/unsharp.py +79 -0
  1494. build/lib/build/lib/build/lib/nabu/processing/unsharp_cuda.py +53 -0
  1495. build/lib/build/lib/build/lib/nabu/processing/unsharp_opencl.py +75 -0
  1496. build/lib/build/lib/build/lib/nabu/reconstruction/__init__.py +3 -0
  1497. build/lib/build/lib/build/lib/nabu/reconstruction/cone.py +241 -0
  1498. build/lib/build/lib/build/lib/nabu/reconstruction/fbp.py +124 -0
  1499. build/lib/build/lib/build/lib/nabu/reconstruction/fbp_base.py +391 -0
  1500. build/lib/build/lib/build/lib/nabu/reconstruction/fbp_opencl.py +78 -0
  1501. build/lib/build/lib/build/lib/nabu/reconstruction/filtering.py +220 -0
  1502. build/lib/build/lib/build/lib/nabu/reconstruction/filtering_cuda.py +103 -0
  1503. build/lib/build/lib/build/lib/nabu/reconstruction/filtering_opencl.py +111 -0
  1504. build/lib/build/lib/build/lib/nabu/reconstruction/projection.py +240 -0
  1505. build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor.py +174 -0
  1506. build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor_cuda.py +44 -0
  1507. build/lib/build/lib/build/lib/nabu/reconstruction/rings.py +248 -0
  1508. build/lib/build/lib/build/lib/nabu/reconstruction/rings_cuda.py +322 -0
  1509. build/lib/build/lib/build/lib/nabu/reconstruction/sinogram.py +467 -0
  1510. build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_cuda.py +250 -0
  1511. build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_opencl.py +40 -0
  1512. build/lib/build/lib/build/lib/nabu/reconstruction/tests/__init__.py +1 -0
  1513. build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_cone.py +308 -0
  1514. build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_deringer.py +220 -0
  1515. build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_fbp.py +252 -0
  1516. build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_filtering.py +133 -0
  1517. build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_halftomo.py +100 -0
  1518. build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_projector.py +164 -0
  1519. build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_reconstructor.py +93 -0
  1520. build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_sino_normalization.py +85 -0
  1521. build/lib/build/lib/build/lib/nabu/resources/__init__.py +0 -0
  1522. build/lib/build/lib/build/lib/nabu/resources/cli/__init__.py +0 -0
  1523. build/lib/build/lib/build/lib/nabu/resources/cor.py +5 -0
  1524. build/lib/build/lib/build/lib/nabu/resources/dataset_analyzer.py +469 -0
  1525. build/lib/build/lib/build/lib/nabu/resources/gpu.py +169 -0
  1526. build/lib/build/lib/build/lib/nabu/resources/logger.py +130 -0
  1527. build/lib/build/lib/build/lib/nabu/resources/nxflatfield.py +217 -0
  1528. build/lib/build/lib/build/lib/nabu/resources/templates/__init__.py +0 -0
  1529. build/lib/build/lib/build/lib/nabu/resources/tests/__init__.py +0 -0
  1530. build/lib/build/lib/build/lib/nabu/resources/tests/test_nxflatfield.py +104 -0
  1531. build/lib/build/lib/build/lib/nabu/resources/tests/test_units.py +47 -0
  1532. build/lib/build/lib/build/lib/nabu/resources/utils.py +174 -0
  1533. build/lib/build/lib/build/lib/nabu/stitching/__init__.py +0 -0
  1534. build/lib/build/lib/build/lib/nabu/stitching/alignment.py +184 -0
  1535. build/lib/build/lib/build/lib/nabu/stitching/config.py +1286 -0
  1536. build/lib/build/lib/build/lib/nabu/stitching/definitions.py +6 -0
  1537. build/lib/build/lib/build/lib/nabu/stitching/frame_composition.py +155 -0
  1538. build/lib/build/lib/build/lib/nabu/stitching/overlap.py +373 -0
  1539. build/lib/build/lib/build/lib/nabu/stitching/sample_normalization.py +60 -0
  1540. build/lib/build/lib/build/lib/nabu/stitching/slurm_utils.py +204 -0
  1541. build/lib/build/lib/build/lib/nabu/stitching/tests/__init__.py +0 -0
  1542. build/lib/build/lib/build/lib/nabu/stitching/tests/test_alignment.py +99 -0
  1543. build/lib/build/lib/build/lib/nabu/stitching/tests/test_config.py +226 -0
  1544. build/lib/build/lib/build/lib/nabu/stitching/tests/test_frame_composition.py +180 -0
  1545. build/lib/build/lib/build/lib/nabu/stitching/tests/test_overlap.py +98 -0
  1546. build/lib/build/lib/build/lib/nabu/stitching/tests/test_sample_normalization.py +49 -0
  1547. build/lib/build/lib/build/lib/nabu/stitching/tests/test_slurm_utils.py +146 -0
  1548. build/lib/build/lib/build/lib/nabu/stitching/tests/test_utils.py +21 -0
  1549. build/lib/build/lib/build/lib/nabu/stitching/tests/test_z_stitching.py +1183 -0
  1550. build/lib/build/lib/build/lib/nabu/stitching/utils.py +563 -0
  1551. build/lib/build/lib/build/lib/nabu/stitching/z_stitching.py +2279 -0
  1552. build/lib/build/lib/build/lib/nabu/tests.py +51 -0
  1553. build/lib/build/lib/build/lib/nabu/testutils.py +375 -0
  1554. build/lib/build/lib/build/lib/nabu/thirdparty/__init__.py +0 -0
  1555. build/lib/build/lib/build/lib/nabu/thirdparty/algotom_convert_sino.py +276 -0
  1556. build/lib/build/lib/build/lib/nabu/thirdparty/pore3d_deringer_munch.py +108 -0
  1557. build/lib/build/lib/build/lib/nabu/thirdparty/tomocupy_remove_stripe.py +586 -0
  1558. build/lib/build/lib/build/lib/nabu/thirdparty/tomopy_phase.py +239 -0
  1559. build/lib/build/lib/build/lib/nabu/thirdparty/tomwer_load_flats_darks.py +162 -0
  1560. build/lib/build/lib/build/lib/nabu/utils.py +836 -0
  1561. build/lib/build/lib/doc/conf.py +137 -0
  1562. build/lib/build/lib/doc/create_conf_doc.py +38 -0
  1563. build/lib/build/lib/doc/get_mathjax.py +34 -0
  1564. build/lib/build/lib/nabu/__init__.py +17 -0
  1565. build/lib/build/lib/nabu/app/__init__.py +0 -0
  1566. build/lib/build/lib/nabu/app/bootstrap.py +88 -0
  1567. build/lib/build/lib/nabu/app/bootstrap_stitching.py +69 -0
  1568. build/lib/build/lib/nabu/app/cast_volume.py +272 -0
  1569. build/lib/build/lib/nabu/app/cli_configs.py +626 -0
  1570. build/lib/build/lib/nabu/app/compare_volumes.py +94 -0
  1571. build/lib/build/lib/nabu/app/composite_cor.py +144 -0
  1572. build/lib/build/lib/nabu/app/correct_rot.py +70 -0
  1573. build/lib/build/lib/nabu/app/create_distortion_map_from_poly.py +153 -0
  1574. build/lib/build/lib/nabu/app/diag_to_pix.py +358 -0
  1575. build/lib/build/lib/nabu/app/diag_to_rot.py +449 -0
  1576. build/lib/build/lib/nabu/app/double_flatfield.py +143 -0
  1577. build/lib/build/lib/nabu/app/generate_header.py +261 -0
  1578. build/lib/build/lib/nabu/app/histogram.py +197 -0
  1579. build/lib/build/lib/nabu/app/multicor.py +90 -0
  1580. build/lib/build/lib/nabu/app/nx_z_splitter.py +125 -0
  1581. build/lib/build/lib/nabu/app/parse_reconstruction_log.py +151 -0
  1582. build/lib/build/lib/nabu/app/prepare_weights_double.py +163 -0
  1583. build/lib/build/lib/nabu/app/reconstruct.py +120 -0
  1584. build/lib/build/lib/nabu/app/reconstruct_helical.py +116 -0
  1585. build/lib/build/lib/nabu/app/reduce_dark_flat.py +181 -0
  1586. build/lib/build/lib/nabu/app/rotate.py +162 -0
  1587. build/lib/build/lib/nabu/app/shrink_dataset.py +98 -0
  1588. build/lib/build/lib/nabu/app/stitching.py +85 -0
  1589. build/lib/build/lib/nabu/app/tests/test_reduce_dark_flat.py +78 -0
  1590. build/lib/build/lib/nabu/app/utils.py +33 -0
  1591. build/lib/build/lib/nabu/app/validator.py +110 -0
  1592. build/lib/build/lib/nabu/cuda/__init__.py +0 -0
  1593. build/lib/build/lib/nabu/cuda/convolution.py +8 -0
  1594. build/lib/build/lib/nabu/cuda/fft.py +4 -0
  1595. build/lib/build/lib/nabu/cuda/kernel.py +97 -0
  1596. build/lib/build/lib/nabu/cuda/medfilt.py +6 -0
  1597. build/lib/build/lib/nabu/cuda/padding.py +6 -0
  1598. build/lib/build/lib/nabu/cuda/processing.py +75 -0
  1599. build/lib/build/lib/nabu/cuda/tests/__init__.py +1 -0
  1600. build/lib/build/lib/nabu/cuda/utils.py +331 -0
  1601. build/lib/build/lib/nabu/estimation/__init__.py +12 -0
  1602. build/lib/build/lib/nabu/estimation/alignment.py +578 -0
  1603. build/lib/build/lib/nabu/estimation/cor.py +1621 -0
  1604. build/lib/build/lib/nabu/estimation/cor_sino.py +183 -0
  1605. build/lib/build/lib/nabu/estimation/distortion.py +112 -0
  1606. build/lib/build/lib/nabu/estimation/focus.py +362 -0
  1607. build/lib/build/lib/nabu/estimation/tests/__init__.py +0 -0
  1608. build/lib/build/lib/nabu/estimation/tests/test_alignment.py +70 -0
  1609. build/lib/build/lib/nabu/estimation/tests/test_cor.py +472 -0
  1610. build/lib/build/lib/nabu/estimation/tests/test_focus.py +105 -0
  1611. build/lib/build/lib/nabu/estimation/tests/test_tilt.py +41 -0
  1612. build/lib/build/lib/nabu/estimation/tests/test_translation.py +78 -0
  1613. build/lib/build/lib/nabu/estimation/tilt.py +214 -0
  1614. build/lib/build/lib/nabu/estimation/translation.py +193 -0
  1615. build/lib/build/lib/nabu/estimation/utils.py +39 -0
  1616. build/lib/build/lib/nabu/io/__init__.py +2 -0
  1617. build/lib/build/lib/nabu/io/cast_volume.py +371 -0
  1618. build/lib/build/lib/nabu/io/detector_distortion.py +305 -0
  1619. build/lib/build/lib/nabu/io/reader.py +628 -0
  1620. build/lib/build/lib/nabu/io/reader_helical.py +114 -0
  1621. build/lib/build/lib/nabu/io/tests/__init__.py +0 -0
  1622. build/lib/build/lib/nabu/io/tests/test_cast_volume.py +339 -0
  1623. build/lib/build/lib/nabu/io/tests/test_detector_distortion.py +178 -0
  1624. build/lib/build/lib/nabu/io/tests/test_writers.py +187 -0
  1625. build/lib/build/lib/nabu/io/tiffwriter_zmm.py +99 -0
  1626. build/lib/build/lib/nabu/io/utils.py +263 -0
  1627. build/lib/build/lib/nabu/io/writer.py +892 -0
  1628. build/lib/build/lib/nabu/misc/__init__.py +0 -0
  1629. build/lib/build/lib/nabu/misc/binning.py +98 -0
  1630. build/lib/build/lib/nabu/misc/fftshift.py +6 -0
  1631. build/lib/build/lib/nabu/misc/filters.py +24 -0
  1632. build/lib/build/lib/nabu/misc/fourier_filters.py +152 -0
  1633. build/lib/build/lib/nabu/misc/histogram.py +6 -0
  1634. build/lib/build/lib/nabu/misc/histogram_cuda.py +8 -0
  1635. build/lib/build/lib/nabu/misc/kernel_base.py +4 -0
  1636. build/lib/build/lib/nabu/misc/padding.py +83 -0
  1637. build/lib/build/lib/nabu/misc/padding_base.py +6 -0
  1638. build/lib/build/lib/nabu/misc/processing_base.py +4 -0
  1639. build/lib/build/lib/nabu/misc/rotation.py +6 -0
  1640. build/lib/build/lib/nabu/misc/rotation_cuda.py +6 -0
  1641. build/lib/build/lib/nabu/misc/tests/__init__.py +1 -0
  1642. build/lib/build/lib/nabu/misc/tests/test_binning.py +48 -0
  1643. build/lib/build/lib/nabu/misc/tests/test_interpolation.py +70 -0
  1644. build/lib/build/lib/nabu/misc/transpose.py +6 -0
  1645. build/lib/build/lib/nabu/misc/unsharp.py +4 -0
  1646. build/lib/build/lib/nabu/misc/unsharp_cuda.py +6 -0
  1647. build/lib/build/lib/nabu/misc/unsharp_opencl.py +8 -0
  1648. build/lib/build/lib/nabu/misc/utils.py +117 -0
  1649. build/lib/build/lib/nabu/opencl/__init__.py +0 -0
  1650. build/lib/build/lib/nabu/opencl/fft.py +6 -0
  1651. build/lib/build/lib/nabu/opencl/kernel.py +135 -0
  1652. build/lib/build/lib/nabu/opencl/memcpy.py +35 -0
  1653. build/lib/build/lib/nabu/opencl/padding.py +6 -0
  1654. build/lib/build/lib/nabu/opencl/processing.py +62 -0
  1655. build/lib/build/lib/nabu/opencl/tests/__init__.py +0 -0
  1656. build/lib/build/lib/nabu/opencl/utils.py +292 -0
  1657. build/lib/build/lib/nabu/pipeline/__init__.py +0 -0
  1658. build/lib/build/lib/nabu/pipeline/config.py +265 -0
  1659. build/lib/build/lib/nabu/pipeline/config_validators.py +589 -0
  1660. build/lib/build/lib/nabu/pipeline/datadump.py +164 -0
  1661. build/lib/build/lib/nabu/pipeline/dataset_validator.py +211 -0
  1662. build/lib/build/lib/nabu/pipeline/detector_distortion_provider.py +20 -0
  1663. build/lib/build/lib/nabu/pipeline/estimators.py +1012 -0
  1664. build/lib/build/lib/nabu/pipeline/fallback_utils.py +149 -0
  1665. build/lib/build/lib/nabu/pipeline/fullfield/__init__.py +0 -0
  1666. build/lib/build/lib/nabu/pipeline/fullfield/chunked.py +849 -0
  1667. build/lib/build/lib/nabu/pipeline/fullfield/chunked_cuda.py +152 -0
  1668. build/lib/build/lib/nabu/pipeline/fullfield/computations.py +260 -0
  1669. build/lib/build/lib/nabu/pipeline/fullfield/dataset_validator.py +63 -0
  1670. build/lib/build/lib/nabu/pipeline/fullfield/nabu_config.py +590 -0
  1671. build/lib/build/lib/nabu/pipeline/fullfield/processconfig.py +825 -0
  1672. build/lib/build/lib/nabu/pipeline/fullfield/reconstruction.py +851 -0
  1673. build/lib/build/lib/nabu/pipeline/helical/__init__.py +0 -0
  1674. build/lib/build/lib/nabu/pipeline/helical/dataset_validator.py +19 -0
  1675. build/lib/build/lib/nabu/pipeline/helical/fbp.py +147 -0
  1676. build/lib/build/lib/nabu/pipeline/helical/filtering.py +246 -0
  1677. build/lib/build/lib/nabu/pipeline/helical/gridded_accumulator.py +575 -0
  1678. build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded.py +1670 -0
  1679. build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded_cuda.py +119 -0
  1680. build/lib/build/lib/nabu/pipeline/helical/helical_reconstruction.py +598 -0
  1681. build/lib/build/lib/nabu/pipeline/helical/helical_utils.py +42 -0
  1682. build/lib/build/lib/nabu/pipeline/helical/nabu_config.py +175 -0
  1683. build/lib/build/lib/nabu/pipeline/helical/processconfig.py +62 -0
  1684. build/lib/build/lib/nabu/pipeline/helical/span_strategy.py +483 -0
  1685. build/lib/build/lib/nabu/pipeline/helical/tests/__init__.py +0 -0
  1686. build/lib/build/lib/nabu/pipeline/helical/tests/test_accumulator.py +157 -0
  1687. build/lib/build/lib/nabu/pipeline/helical/tests/test_pipeline_elements_full.py +355 -0
  1688. build/lib/build/lib/nabu/pipeline/helical/tests/test_strategy.py +61 -0
  1689. build/lib/build/lib/nabu/pipeline/helical/utils.py +51 -0
  1690. build/lib/build/lib/nabu/pipeline/helical/weight_balancer.py +101 -0
  1691. build/lib/build/lib/nabu/pipeline/params.py +163 -0
  1692. build/lib/build/lib/nabu/pipeline/processconfig.py +210 -0
  1693. build/lib/build/lib/nabu/pipeline/tests/test_chunk_reader.py +78 -0
  1694. build/lib/build/lib/nabu/pipeline/tests/test_estimators.py +149 -0
  1695. build/lib/build/lib/nabu/pipeline/utils.py +116 -0
  1696. build/lib/build/lib/nabu/pipeline/writer.py +193 -0
  1697. build/lib/build/lib/nabu/pipeline/xrdct/__init__.py +0 -0
  1698. build/lib/build/lib/nabu/preproc/__init__.py +7 -0
  1699. build/lib/build/lib/nabu/preproc/alignment.py +11 -0
  1700. build/lib/build/lib/nabu/preproc/ccd.py +161 -0
  1701. build/lib/build/lib/nabu/preproc/ccd_cuda.py +169 -0
  1702. build/lib/build/lib/nabu/preproc/ctf.py +361 -0
  1703. build/lib/build/lib/nabu/preproc/ctf_cuda.py +142 -0
  1704. build/lib/build/lib/nabu/preproc/distortion.py +92 -0
  1705. build/lib/build/lib/nabu/preproc/double_flatfield.py +212 -0
  1706. build/lib/build/lib/nabu/preproc/double_flatfield_cuda.py +174 -0
  1707. build/lib/build/lib/nabu/preproc/double_flatfield_variable_region.py +68 -0
  1708. build/lib/build/lib/nabu/preproc/flatfield.py +448 -0
  1709. build/lib/build/lib/nabu/preproc/flatfield_cuda.py +144 -0
  1710. build/lib/build/lib/nabu/preproc/flatfield_variable_region.py +79 -0
  1711. build/lib/build/lib/nabu/preproc/phase.py +425 -0
  1712. build/lib/build/lib/nabu/preproc/phase_cuda.py +143 -0
  1713. build/lib/build/lib/nabu/preproc/shift.py +95 -0
  1714. build/lib/build/lib/nabu/preproc/shift_cuda.py +102 -0
  1715. build/lib/build/lib/nabu/preproc/tests/__init__.py +1 -0
  1716. build/lib/build/lib/nabu/preproc/tests/test_ccd_corr.py +59 -0
  1717. build/lib/build/lib/nabu/preproc/tests/test_ctf.py +250 -0
  1718. build/lib/build/lib/nabu/preproc/tests/test_double_flatfield.py +86 -0
  1719. build/lib/build/lib/nabu/preproc/tests/test_flatfield.py +626 -0
  1720. build/lib/build/lib/nabu/preproc/tests/test_paganin.py +67 -0
  1721. build/lib/build/lib/nabu/preproc/tests/test_vshift.py +73 -0
  1722. build/lib/build/lib/nabu/processing/__init__.py +0 -0
  1723. build/lib/build/lib/nabu/processing/convolution_cuda.py +375 -0
  1724. build/lib/build/lib/nabu/processing/fft_base.py +163 -0
  1725. build/lib/build/lib/nabu/processing/fft_cuda.py +256 -0
  1726. build/lib/build/lib/nabu/processing/fft_opencl.py +54 -0
  1727. build/lib/build/lib/nabu/processing/fftshift.py +134 -0
  1728. build/lib/build/lib/nabu/processing/histogram.py +286 -0
  1729. build/lib/build/lib/nabu/processing/histogram_cuda.py +103 -0
  1730. build/lib/build/lib/nabu/processing/kernel_base.py +126 -0
  1731. build/lib/build/lib/nabu/processing/medfilt_cuda.py +159 -0
  1732. build/lib/build/lib/nabu/processing/muladd.py +29 -0
  1733. build/lib/build/lib/nabu/processing/muladd_cuda.py +68 -0
  1734. build/lib/build/lib/nabu/processing/padding_base.py +71 -0
  1735. build/lib/build/lib/nabu/processing/padding_cuda.py +75 -0
  1736. build/lib/build/lib/nabu/processing/padding_opencl.py +77 -0
  1737. build/lib/build/lib/nabu/processing/processing_base.py +123 -0
  1738. build/lib/build/lib/nabu/processing/roll_opencl.py +64 -0
  1739. build/lib/build/lib/nabu/processing/rotation.py +63 -0
  1740. build/lib/build/lib/nabu/processing/rotation_cuda.py +66 -0
  1741. build/lib/build/lib/nabu/processing/tests/__init__.py +0 -0
  1742. build/lib/build/lib/nabu/processing/tests/test_fft.py +268 -0
  1743. build/lib/build/lib/nabu/processing/tests/test_fftshift.py +71 -0
  1744. build/lib/build/lib/nabu/processing/tests/test_histogram.py +55 -0
  1745. build/lib/build/lib/nabu/processing/tests/test_medfilt.py +77 -0
  1746. build/lib/build/lib/nabu/processing/tests/test_muladd.py +54 -0
  1747. build/lib/build/lib/nabu/processing/tests/test_padding.py +247 -0
  1748. build/lib/build/lib/nabu/processing/tests/test_roll.py +63 -0
  1749. build/lib/build/lib/nabu/processing/tests/test_rotation.py +83 -0
  1750. build/lib/build/lib/nabu/processing/tests/test_transpose.py +72 -0
  1751. build/lib/build/lib/nabu/processing/tests/test_unsharp.py +106 -0
  1752. build/lib/build/lib/nabu/processing/transpose.py +126 -0
  1753. build/lib/build/lib/nabu/processing/unsharp.py +79 -0
  1754. build/lib/build/lib/nabu/processing/unsharp_cuda.py +53 -0
  1755. build/lib/build/lib/nabu/processing/unsharp_opencl.py +75 -0
  1756. build/lib/build/lib/nabu/reconstruction/__init__.py +3 -0
  1757. build/lib/build/lib/nabu/reconstruction/cone.py +241 -0
  1758. build/lib/build/lib/nabu/reconstruction/fbp.py +124 -0
  1759. build/lib/build/lib/nabu/reconstruction/fbp_base.py +391 -0
  1760. build/lib/build/lib/nabu/reconstruction/fbp_opencl.py +78 -0
  1761. build/lib/build/lib/nabu/reconstruction/filtering.py +220 -0
  1762. build/lib/build/lib/nabu/reconstruction/filtering_cuda.py +103 -0
  1763. build/lib/build/lib/nabu/reconstruction/filtering_opencl.py +111 -0
  1764. build/lib/build/lib/nabu/reconstruction/projection.py +240 -0
  1765. build/lib/build/lib/nabu/reconstruction/reconstructor.py +174 -0
  1766. build/lib/build/lib/nabu/reconstruction/reconstructor_cuda.py +44 -0
  1767. build/lib/build/lib/nabu/reconstruction/rings.py +248 -0
  1768. build/lib/build/lib/nabu/reconstruction/rings_cuda.py +322 -0
  1769. build/lib/build/lib/nabu/reconstruction/sinogram.py +467 -0
  1770. build/lib/build/lib/nabu/reconstruction/sinogram_cuda.py +250 -0
  1771. build/lib/build/lib/nabu/reconstruction/sinogram_opencl.py +40 -0
  1772. build/lib/build/lib/nabu/reconstruction/tests/__init__.py +1 -0
  1773. build/lib/build/lib/nabu/reconstruction/tests/test_cone.py +308 -0
  1774. build/lib/build/lib/nabu/reconstruction/tests/test_deringer.py +220 -0
  1775. build/lib/build/lib/nabu/reconstruction/tests/test_fbp.py +252 -0
  1776. build/lib/build/lib/nabu/reconstruction/tests/test_filtering.py +133 -0
  1777. build/lib/build/lib/nabu/reconstruction/tests/test_halftomo.py +100 -0
  1778. build/lib/build/lib/nabu/reconstruction/tests/test_projector.py +164 -0
  1779. build/lib/build/lib/nabu/reconstruction/tests/test_reconstructor.py +93 -0
  1780. build/lib/build/lib/nabu/reconstruction/tests/test_sino_normalization.py +85 -0
  1781. build/lib/build/lib/nabu/resources/__init__.py +0 -0
  1782. build/lib/build/lib/nabu/resources/cli/__init__.py +0 -0
  1783. build/lib/build/lib/nabu/resources/cor.py +5 -0
  1784. build/lib/build/lib/nabu/resources/dataset_analyzer.py +469 -0
  1785. build/lib/build/lib/nabu/resources/gpu.py +169 -0
  1786. build/lib/build/lib/nabu/resources/logger.py +130 -0
  1787. build/lib/build/lib/nabu/resources/nxflatfield.py +217 -0
  1788. build/lib/build/lib/nabu/resources/templates/__init__.py +0 -0
  1789. build/lib/build/lib/nabu/resources/tests/__init__.py +0 -0
  1790. build/lib/build/lib/nabu/resources/tests/test_nxflatfield.py +104 -0
  1791. build/lib/build/lib/nabu/resources/tests/test_units.py +47 -0
  1792. build/lib/build/lib/nabu/resources/utils.py +174 -0
  1793. build/lib/build/lib/nabu/stitching/__init__.py +0 -0
  1794. build/lib/build/lib/nabu/stitching/alignment.py +184 -0
  1795. build/lib/build/lib/nabu/stitching/config.py +1286 -0
  1796. build/lib/build/lib/nabu/stitching/definitions.py +6 -0
  1797. build/lib/build/lib/nabu/stitching/frame_composition.py +155 -0
  1798. build/lib/build/lib/nabu/stitching/overlap.py +373 -0
  1799. build/lib/build/lib/nabu/stitching/sample_normalization.py +60 -0
  1800. build/lib/build/lib/nabu/stitching/slurm_utils.py +204 -0
  1801. build/lib/build/lib/nabu/stitching/tests/__init__.py +0 -0
  1802. build/lib/build/lib/nabu/stitching/tests/test_alignment.py +99 -0
  1803. build/lib/build/lib/nabu/stitching/tests/test_config.py +226 -0
  1804. build/lib/build/lib/nabu/stitching/tests/test_frame_composition.py +180 -0
  1805. build/lib/build/lib/nabu/stitching/tests/test_overlap.py +98 -0
  1806. build/lib/build/lib/nabu/stitching/tests/test_sample_normalization.py +49 -0
  1807. build/lib/build/lib/nabu/stitching/tests/test_slurm_utils.py +146 -0
  1808. build/lib/build/lib/nabu/stitching/tests/test_utils.py +21 -0
  1809. build/lib/build/lib/nabu/stitching/tests/test_z_stitching.py +1183 -0
  1810. build/lib/build/lib/nabu/stitching/utils.py +563 -0
  1811. build/lib/build/lib/nabu/stitching/z_stitching.py +2279 -0
  1812. build/lib/build/lib/nabu/tests.py +51 -0
  1813. build/lib/build/lib/nabu/testutils.py +375 -0
  1814. build/lib/build/lib/nabu/thirdparty/__init__.py +0 -0
  1815. build/lib/build/lib/nabu/thirdparty/algotom_convert_sino.py +276 -0
  1816. build/lib/build/lib/nabu/thirdparty/pore3d_deringer_munch.py +108 -0
  1817. build/lib/build/lib/nabu/thirdparty/tomocupy_remove_stripe.py +586 -0
  1818. build/lib/build/lib/nabu/thirdparty/tomopy_phase.py +239 -0
  1819. build/lib/build/lib/nabu/thirdparty/tomwer_load_flats_darks.py +162 -0
  1820. build/lib/build/lib/nabu/utils.py +836 -0
  1821. build/lib/doc/conf.py +137 -0
  1822. build/lib/doc/create_conf_doc.py +38 -0
  1823. build/lib/doc/get_mathjax.py +34 -0
  1824. build/lib/nabu/__init__.py +17 -0
  1825. build/lib/nabu/app/__init__.py +0 -0
  1826. build/lib/nabu/app/bootstrap.py +88 -0
  1827. build/lib/nabu/app/bootstrap_stitching.py +69 -0
  1828. build/lib/nabu/app/cast_volume.py +272 -0
  1829. build/lib/nabu/app/cli_configs.py +626 -0
  1830. build/lib/nabu/app/compare_volumes.py +94 -0
  1831. build/lib/nabu/app/composite_cor.py +144 -0
  1832. build/lib/nabu/app/correct_rot.py +70 -0
  1833. build/lib/nabu/app/create_distortion_map_from_poly.py +153 -0
  1834. build/lib/nabu/app/diag_to_pix.py +358 -0
  1835. build/lib/nabu/app/diag_to_rot.py +449 -0
  1836. build/lib/nabu/app/double_flatfield.py +143 -0
  1837. build/lib/nabu/app/generate_header.py +261 -0
  1838. build/lib/nabu/app/histogram.py +197 -0
  1839. build/lib/nabu/app/multicor.py +90 -0
  1840. build/lib/nabu/app/nx_z_splitter.py +125 -0
  1841. build/lib/nabu/app/parse_reconstruction_log.py +151 -0
  1842. build/lib/nabu/app/prepare_weights_double.py +163 -0
  1843. build/lib/nabu/app/reconstruct.py +120 -0
  1844. build/lib/nabu/app/reconstruct_helical.py +116 -0
  1845. build/lib/nabu/app/reduce_dark_flat.py +181 -0
  1846. build/lib/nabu/app/rotate.py +162 -0
  1847. build/lib/nabu/app/shrink_dataset.py +98 -0
  1848. build/lib/nabu/app/stitching.py +85 -0
  1849. build/lib/nabu/app/tests/test_reduce_dark_flat.py +78 -0
  1850. build/lib/nabu/app/utils.py +33 -0
  1851. build/lib/nabu/app/validator.py +110 -0
  1852. build/lib/nabu/cuda/__init__.py +0 -0
  1853. build/lib/nabu/cuda/convolution.py +8 -0
  1854. build/lib/nabu/cuda/fft.py +4 -0
  1855. build/lib/nabu/cuda/kernel.py +97 -0
  1856. build/lib/nabu/cuda/medfilt.py +6 -0
  1857. build/lib/nabu/cuda/padding.py +6 -0
  1858. build/lib/nabu/cuda/processing.py +75 -0
  1859. build/lib/nabu/cuda/tests/__init__.py +1 -0
  1860. build/lib/nabu/cuda/utils.py +331 -0
  1861. build/lib/nabu/estimation/__init__.py +12 -0
  1862. build/lib/nabu/estimation/alignment.py +578 -0
  1863. build/lib/nabu/estimation/cor.py +1621 -0
  1864. build/lib/nabu/estimation/cor_sino.py +183 -0
  1865. build/lib/nabu/estimation/distortion.py +112 -0
  1866. build/lib/nabu/estimation/focus.py +362 -0
  1867. build/lib/nabu/estimation/tests/__init__.py +0 -0
  1868. build/lib/nabu/estimation/tests/test_alignment.py +70 -0
  1869. build/lib/nabu/estimation/tests/test_cor.py +472 -0
  1870. build/lib/nabu/estimation/tests/test_focus.py +105 -0
  1871. build/lib/nabu/estimation/tests/test_tilt.py +41 -0
  1872. build/lib/nabu/estimation/tests/test_translation.py +78 -0
  1873. build/lib/nabu/estimation/tilt.py +214 -0
  1874. build/lib/nabu/estimation/translation.py +193 -0
  1875. build/lib/nabu/estimation/utils.py +39 -0
  1876. build/lib/nabu/io/__init__.py +2 -0
  1877. build/lib/nabu/io/cast_volume.py +371 -0
  1878. build/lib/nabu/io/detector_distortion.py +305 -0
  1879. build/lib/nabu/io/reader.py +628 -0
  1880. build/lib/nabu/io/reader_helical.py +114 -0
  1881. build/lib/nabu/io/tests/__init__.py +0 -0
  1882. build/lib/nabu/io/tests/test_cast_volume.py +339 -0
  1883. build/lib/nabu/io/tests/test_detector_distortion.py +178 -0
  1884. build/lib/nabu/io/tests/test_writers.py +187 -0
  1885. build/lib/nabu/io/tiffwriter_zmm.py +99 -0
  1886. build/lib/nabu/io/utils.py +263 -0
  1887. build/lib/nabu/io/writer.py +892 -0
  1888. build/lib/nabu/misc/__init__.py +0 -0
  1889. build/lib/nabu/misc/binning.py +98 -0
  1890. build/lib/nabu/misc/fftshift.py +6 -0
  1891. build/lib/nabu/misc/filters.py +24 -0
  1892. build/lib/nabu/misc/fourier_filters.py +152 -0
  1893. build/lib/nabu/misc/histogram.py +6 -0
  1894. build/lib/nabu/misc/histogram_cuda.py +8 -0
  1895. build/lib/nabu/misc/kernel_base.py +4 -0
  1896. build/lib/nabu/misc/padding.py +83 -0
  1897. build/lib/nabu/misc/padding_base.py +6 -0
  1898. build/lib/nabu/misc/processing_base.py +4 -0
  1899. build/lib/nabu/misc/rotation.py +6 -0
  1900. build/lib/nabu/misc/rotation_cuda.py +6 -0
  1901. build/lib/nabu/misc/tests/__init__.py +1 -0
  1902. build/lib/nabu/misc/tests/test_binning.py +48 -0
  1903. build/lib/nabu/misc/tests/test_interpolation.py +70 -0
  1904. build/lib/nabu/misc/transpose.py +6 -0
  1905. build/lib/nabu/misc/unsharp.py +4 -0
  1906. build/lib/nabu/misc/unsharp_cuda.py +6 -0
  1907. build/lib/nabu/misc/unsharp_opencl.py +8 -0
  1908. build/lib/nabu/misc/utils.py +117 -0
  1909. build/lib/nabu/opencl/__init__.py +0 -0
  1910. build/lib/nabu/opencl/fft.py +6 -0
  1911. build/lib/nabu/opencl/kernel.py +135 -0
  1912. build/lib/nabu/opencl/memcpy.py +35 -0
  1913. build/lib/nabu/opencl/padding.py +6 -0
  1914. build/lib/nabu/opencl/processing.py +62 -0
  1915. build/lib/nabu/opencl/tests/__init__.py +0 -0
  1916. build/lib/nabu/opencl/utils.py +292 -0
  1917. build/lib/nabu/pipeline/__init__.py +0 -0
  1918. build/lib/nabu/pipeline/config.py +265 -0
  1919. build/lib/nabu/pipeline/config_validators.py +589 -0
  1920. build/lib/nabu/pipeline/datadump.py +164 -0
  1921. build/lib/nabu/pipeline/dataset_validator.py +211 -0
  1922. build/lib/nabu/pipeline/detector_distortion_provider.py +20 -0
  1923. build/lib/nabu/pipeline/estimators.py +1012 -0
  1924. build/lib/nabu/pipeline/fallback_utils.py +149 -0
  1925. build/lib/nabu/pipeline/fullfield/__init__.py +0 -0
  1926. build/lib/nabu/pipeline/fullfield/chunked.py +849 -0
  1927. build/lib/nabu/pipeline/fullfield/chunked_cuda.py +152 -0
  1928. build/lib/nabu/pipeline/fullfield/computations.py +260 -0
  1929. build/lib/nabu/pipeline/fullfield/dataset_validator.py +63 -0
  1930. build/lib/nabu/pipeline/fullfield/nabu_config.py +590 -0
  1931. build/lib/nabu/pipeline/fullfield/processconfig.py +825 -0
  1932. build/lib/nabu/pipeline/fullfield/reconstruction.py +851 -0
  1933. build/lib/nabu/pipeline/helical/__init__.py +0 -0
  1934. build/lib/nabu/pipeline/helical/dataset_validator.py +19 -0
  1935. build/lib/nabu/pipeline/helical/fbp.py +147 -0
  1936. build/lib/nabu/pipeline/helical/filtering.py +246 -0
  1937. build/lib/nabu/pipeline/helical/gridded_accumulator.py +575 -0
  1938. build/lib/nabu/pipeline/helical/helical_chunked_regridded.py +1670 -0
  1939. build/lib/nabu/pipeline/helical/helical_chunked_regridded_cuda.py +119 -0
  1940. build/lib/nabu/pipeline/helical/helical_reconstruction.py +598 -0
  1941. build/lib/nabu/pipeline/helical/helical_utils.py +42 -0
  1942. build/lib/nabu/pipeline/helical/nabu_config.py +175 -0
  1943. build/lib/nabu/pipeline/helical/processconfig.py +62 -0
  1944. build/lib/nabu/pipeline/helical/span_strategy.py +483 -0
  1945. build/lib/nabu/pipeline/helical/tests/__init__.py +0 -0
  1946. build/lib/nabu/pipeline/helical/tests/test_accumulator.py +157 -0
  1947. build/lib/nabu/pipeline/helical/tests/test_pipeline_elements_full.py +355 -0
  1948. build/lib/nabu/pipeline/helical/tests/test_strategy.py +61 -0
  1949. build/lib/nabu/pipeline/helical/utils.py +51 -0
  1950. build/lib/nabu/pipeline/helical/weight_balancer.py +101 -0
  1951. build/lib/nabu/pipeline/params.py +163 -0
  1952. build/lib/nabu/pipeline/processconfig.py +210 -0
  1953. build/lib/nabu/pipeline/tests/test_chunk_reader.py +78 -0
  1954. build/lib/nabu/pipeline/tests/test_estimators.py +149 -0
  1955. build/lib/nabu/pipeline/utils.py +116 -0
  1956. build/lib/nabu/pipeline/writer.py +193 -0
  1957. build/lib/nabu/pipeline/xrdct/__init__.py +0 -0
  1958. build/lib/nabu/preproc/__init__.py +7 -0
  1959. build/lib/nabu/preproc/alignment.py +11 -0
  1960. build/lib/nabu/preproc/ccd.py +161 -0
  1961. build/lib/nabu/preproc/ccd_cuda.py +169 -0
  1962. build/lib/nabu/preproc/ctf.py +361 -0
  1963. build/lib/nabu/preproc/ctf_cuda.py +142 -0
  1964. build/lib/nabu/preproc/distortion.py +92 -0
  1965. build/lib/nabu/preproc/double_flatfield.py +212 -0
  1966. build/lib/nabu/preproc/double_flatfield_cuda.py +174 -0
  1967. build/lib/nabu/preproc/double_flatfield_variable_region.py +68 -0
  1968. build/lib/nabu/preproc/flatfield.py +448 -0
  1969. build/lib/nabu/preproc/flatfield_cuda.py +144 -0
  1970. build/lib/nabu/preproc/flatfield_variable_region.py +79 -0
  1971. build/lib/nabu/preproc/phase.py +425 -0
  1972. build/lib/nabu/preproc/phase_cuda.py +143 -0
  1973. build/lib/nabu/preproc/shift.py +95 -0
  1974. build/lib/nabu/preproc/shift_cuda.py +102 -0
  1975. build/lib/nabu/preproc/tests/__init__.py +1 -0
  1976. build/lib/nabu/preproc/tests/test_ccd_corr.py +59 -0
  1977. build/lib/nabu/preproc/tests/test_ctf.py +250 -0
  1978. build/lib/nabu/preproc/tests/test_double_flatfield.py +86 -0
  1979. build/lib/nabu/preproc/tests/test_flatfield.py +626 -0
  1980. build/lib/nabu/preproc/tests/test_paganin.py +67 -0
  1981. build/lib/nabu/preproc/tests/test_vshift.py +73 -0
  1982. build/lib/nabu/processing/__init__.py +0 -0
  1983. build/lib/nabu/processing/convolution_cuda.py +375 -0
  1984. build/lib/nabu/processing/fft_base.py +163 -0
  1985. build/lib/nabu/processing/fft_cuda.py +256 -0
  1986. build/lib/nabu/processing/fft_opencl.py +54 -0
  1987. build/lib/nabu/processing/fftshift.py +134 -0
  1988. build/lib/nabu/processing/histogram.py +286 -0
  1989. build/lib/nabu/processing/histogram_cuda.py +103 -0
  1990. build/lib/nabu/processing/kernel_base.py +126 -0
  1991. build/lib/nabu/processing/medfilt_cuda.py +159 -0
  1992. build/lib/nabu/processing/muladd.py +29 -0
  1993. build/lib/nabu/processing/muladd_cuda.py +68 -0
  1994. build/lib/nabu/processing/padding_base.py +71 -0
  1995. build/lib/nabu/processing/padding_cuda.py +75 -0
  1996. build/lib/nabu/processing/padding_opencl.py +77 -0
  1997. build/lib/nabu/processing/processing_base.py +123 -0
  1998. build/lib/nabu/processing/roll_opencl.py +64 -0
  1999. build/lib/nabu/processing/rotation.py +63 -0
  2000. build/lib/nabu/processing/rotation_cuda.py +66 -0
  2001. build/lib/nabu/processing/tests/__init__.py +0 -0
  2002. build/lib/nabu/processing/tests/test_fft.py +268 -0
  2003. build/lib/nabu/processing/tests/test_fftshift.py +71 -0
  2004. build/lib/nabu/processing/tests/test_histogram.py +55 -0
  2005. build/lib/nabu/processing/tests/test_medfilt.py +77 -0
  2006. build/lib/nabu/processing/tests/test_muladd.py +54 -0
  2007. build/lib/nabu/processing/tests/test_padding.py +247 -0
  2008. build/lib/nabu/processing/tests/test_roll.py +63 -0
  2009. build/lib/nabu/processing/tests/test_rotation.py +83 -0
  2010. build/lib/nabu/processing/tests/test_transpose.py +72 -0
  2011. build/lib/nabu/processing/tests/test_unsharp.py +106 -0
  2012. build/lib/nabu/processing/transpose.py +126 -0
  2013. build/lib/nabu/processing/unsharp.py +79 -0
  2014. build/lib/nabu/processing/unsharp_cuda.py +53 -0
  2015. build/lib/nabu/processing/unsharp_opencl.py +75 -0
  2016. build/lib/nabu/reconstruction/__init__.py +3 -0
  2017. build/lib/nabu/reconstruction/cone.py +241 -0
  2018. build/lib/nabu/reconstruction/fbp.py +124 -0
  2019. build/lib/nabu/reconstruction/fbp_base.py +391 -0
  2020. build/lib/nabu/reconstruction/fbp_opencl.py +78 -0
  2021. build/lib/nabu/reconstruction/filtering.py +220 -0
  2022. build/lib/nabu/reconstruction/filtering_cuda.py +103 -0
  2023. build/lib/nabu/reconstruction/filtering_opencl.py +111 -0
  2024. build/lib/nabu/reconstruction/projection.py +240 -0
  2025. build/lib/nabu/reconstruction/reconstructor.py +174 -0
  2026. build/lib/nabu/reconstruction/reconstructor_cuda.py +44 -0
  2027. build/lib/nabu/reconstruction/rings.py +248 -0
  2028. build/lib/nabu/reconstruction/rings_cuda.py +322 -0
  2029. build/lib/nabu/reconstruction/sinogram.py +467 -0
  2030. build/lib/nabu/reconstruction/sinogram_cuda.py +250 -0
  2031. build/lib/nabu/reconstruction/sinogram_opencl.py +40 -0
  2032. build/lib/nabu/reconstruction/tests/__init__.py +1 -0
  2033. build/lib/nabu/reconstruction/tests/test_cone.py +308 -0
  2034. build/lib/nabu/reconstruction/tests/test_deringer.py +220 -0
  2035. build/lib/nabu/reconstruction/tests/test_fbp.py +252 -0
  2036. build/lib/nabu/reconstruction/tests/test_filtering.py +133 -0
  2037. build/lib/nabu/reconstruction/tests/test_halftomo.py +100 -0
  2038. build/lib/nabu/reconstruction/tests/test_projector.py +164 -0
  2039. build/lib/nabu/reconstruction/tests/test_reconstructor.py +93 -0
  2040. build/lib/nabu/reconstruction/tests/test_sino_normalization.py +85 -0
  2041. build/lib/nabu/resources/__init__.py +0 -0
  2042. build/lib/nabu/resources/cli/__init__.py +0 -0
  2043. build/lib/nabu/resources/cor.py +5 -0
  2044. build/lib/nabu/resources/dataset_analyzer.py +469 -0
  2045. build/lib/nabu/resources/gpu.py +169 -0
  2046. build/lib/nabu/resources/logger.py +130 -0
  2047. build/lib/nabu/resources/nxflatfield.py +217 -0
  2048. build/lib/nabu/resources/templates/__init__.py +0 -0
  2049. build/lib/nabu/resources/tests/__init__.py +0 -0
  2050. build/lib/nabu/resources/tests/test_nxflatfield.py +104 -0
  2051. build/lib/nabu/resources/tests/test_units.py +47 -0
  2052. build/lib/nabu/resources/utils.py +174 -0
  2053. build/lib/nabu/stitching/__init__.py +0 -0
  2054. build/lib/nabu/stitching/alignment.py +184 -0
  2055. build/lib/nabu/stitching/config.py +1286 -0
  2056. build/lib/nabu/stitching/definitions.py +6 -0
  2057. build/lib/nabu/stitching/frame_composition.py +155 -0
  2058. build/lib/nabu/stitching/overlap.py +373 -0
  2059. build/lib/nabu/stitching/sample_normalization.py +60 -0
  2060. build/lib/nabu/stitching/slurm_utils.py +204 -0
  2061. build/lib/nabu/stitching/tests/__init__.py +0 -0
  2062. build/lib/nabu/stitching/tests/test_alignment.py +99 -0
  2063. build/lib/nabu/stitching/tests/test_config.py +226 -0
  2064. build/lib/nabu/stitching/tests/test_frame_composition.py +180 -0
  2065. build/lib/nabu/stitching/tests/test_overlap.py +98 -0
  2066. build/lib/nabu/stitching/tests/test_sample_normalization.py +49 -0
  2067. build/lib/nabu/stitching/tests/test_slurm_utils.py +146 -0
  2068. build/lib/nabu/stitching/tests/test_utils.py +21 -0
  2069. build/lib/nabu/stitching/tests/test_z_stitching.py +1183 -0
  2070. build/lib/nabu/stitching/utils.py +563 -0
  2071. build/lib/nabu/stitching/z_stitching.py +2279 -0
  2072. build/lib/nabu/tests.py +51 -0
  2073. build/lib/nabu/testutils.py +375 -0
  2074. build/lib/nabu/thirdparty/__init__.py +0 -0
  2075. build/lib/nabu/thirdparty/algotom_convert_sino.py +276 -0
  2076. build/lib/nabu/thirdparty/pore3d_deringer_munch.py +108 -0
  2077. build/lib/nabu/thirdparty/tomocupy_remove_stripe.py +586 -0
  2078. build/lib/nabu/thirdparty/tomopy_phase.py +239 -0
  2079. build/lib/nabu/thirdparty/tomwer_load_flats_darks.py +162 -0
  2080. build/lib/nabu/utils.py +836 -0
  2081. nabu/__init__.py +1 -1
  2082. nabu/estimation/cor.py +2 -2
  2083. nabu/io/cast_volume.py +10 -2
  2084. nabu/pipeline/estimators.py +13 -7
  2085. nabu/resources/dataset_analyzer.py +15 -6
  2086. nabu/stitching/config.py +2 -2
  2087. nabu/stitching/z_stitching.py +3 -1
  2088. {nabu-2024.1.0rc3.dist-info → nabu-2024.1.1.dist-info}/METADATA +1 -1
  2089. nabu-2024.1.1.dist-info/RECORD +2375 -0
  2090. nabu-2024.1.1.dist-info/top_level.txt +4 -0
  2091. doc/doc_config.py +0 -32
  2092. nabu-2024.1.0rc3.dist-info/RECORD +0 -296
  2093. nabu-2024.1.0rc3.dist-info/top_level.txt +0 -2
  2094. {nabu-2024.1.0rc3.dist-info → nabu-2024.1.1.dist-info}/LICENSE +0 -0
  2095. {nabu-2024.1.0rc3.dist-info → nabu-2024.1.1.dist-info}/WHEEL +0 -0
  2096. {nabu-2024.1.0rc3.dist-info → nabu-2024.1.1.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,825 @@
1
+ import os
2
+ import posixpath
3
+ import numpy as np
4
+ from silx.io import get_data
5
+ from silx.io.url import DataUrl
6
+ from ...utils import copy_dict_items, compare_dicts
7
+ from ...io.utils import hdf5_entry_exists, get_h5_value
8
+ from ...io.reader import import_h5_to_dict
9
+ from ...resources.utils import extract_parameters, get_values_from_file
10
+ from ...resources.nxflatfield import update_dataset_info_flats_darks
11
+ from ...resources.utils import get_quantities_and_units
12
+ from ..estimators import estimate_cor
13
+ from ..processconfig import ProcessConfigBase
14
+ from .nabu_config import nabu_config, renamed_keys
15
+ from .dataset_validator import FullFieldDatasetValidator
16
+ from nxtomo.nxobject.nxdetector import ImageKey
17
+
18
+
19
+ class ProcessConfig(ProcessConfigBase):
20
+
21
+ """
22
+ A ProcessConfig object has these main fields:
23
+ - dataset_info: information about the current dataset
24
+ - nabu_config: configuration from the user side
25
+ - processing_steps/processing_options: configuration "ready-to use" for underlying classes
26
+
27
+ It is built from the following steps.
28
+
29
+ (1a) parse config: (conf_fname or conf_dict) --> "nabu_config"
30
+
31
+ (1b) browse dataset: (nabu_config or existing dataset_info) --> dataset_info
32
+
33
+
34
+ (2) update_dataset_info_with_user_config
35
+ - Update flats/darks
36
+ - CoR (value or estimation method) # no estimation yet
37
+ - rotation angles
38
+ - translations files
39
+ - user sino normalization (eg. subtraction etc)
40
+
41
+ (3) estimations
42
+ - tilt
43
+ - CoR
44
+
45
+ (4) coupled validation
46
+
47
+ (5) build processing steps
48
+
49
+ (6) configure checkpoints (save/resume)
50
+ """
51
+
52
+ default_nabu_config = nabu_config
53
+ config_renamed_keys = renamed_keys
54
+ _use_horizontal_translations = True
55
+ _all_processing_steps = [
56
+ "read_chunk",
57
+ "flatfield",
58
+ "ccd_correction",
59
+ "double_flatfield",
60
+ "rotate_projections",
61
+ "phase",
62
+ "unsharp_mask",
63
+ "take_log",
64
+ "radios_movements", # radios are cropped after this step, if needed
65
+ "sino_normalization",
66
+ "sino_rings_correction",
67
+ "reconstruction",
68
+ "histogram",
69
+ "save",
70
+ ]
71
+
72
+ def _update_dataset_info_with_user_config(self):
73
+ """
74
+ Update the 'dataset_info' (DatasetAnalyzer class instance) data structure with options from user configuration.
75
+ """
76
+ self.logger.debug("Updating dataset information with user configuration")
77
+ if self.dataset_info.kind == "hdf5":
78
+ update_dataset_info_flats_darks(
79
+ self.dataset_info,
80
+ self.nabu_config["preproc"]["flatfield"],
81
+ output_dir=self.nabu_config["output"]["location"],
82
+ darks_flats_dir=self.nabu_config["dataset"]["darks_flats_dir"],
83
+ )
84
+ self.rec_params = self.nabu_config["reconstruction"]
85
+
86
+ self._update_dataset_with_user_overwrites()
87
+ self._get_rotation_axis_position()
88
+ self._update_rotation_angles()
89
+ self._get_translation_file("reconstruction", "translation_movements_file", "translations")
90
+ self._get_user_sino_normalization()
91
+
92
+ def _update_dataset_with_user_overwrites(self):
93
+ user_overwrites = self.nabu_config["dataset"]["overwrite_metadata"].strip()
94
+ if user_overwrites in ("", None):
95
+ return
96
+ possible_overwrites = {"pixel_size": 1e6, "distance": 1.0, "energy": 1.0}
97
+ try:
98
+ overwrites = get_quantities_and_units(user_overwrites)
99
+ except ValueError:
100
+ msg = (
101
+ "Something wrong in config file in 'overwrite_metadata': could not get quantities/units from '%s'. Please check that separators are ';' and that units are provided (separated by a space)"
102
+ % user_overwrites
103
+ )
104
+ self.logger.fatal(msg)
105
+ raise ValueError(msg)
106
+ for quantity, conversion_factor in possible_overwrites.items():
107
+ user_value = overwrites.pop(quantity, None)
108
+ if user_value is not None:
109
+ self.logger.info("Overwriting %s = %s" % (quantity, user_value))
110
+ user_value *= conversion_factor
111
+ setattr(self.dataset_info, quantity, user_value)
112
+
113
+ def _get_translation_file(self, config_section, config_key, dataset_info_attr, last_dim=2):
114
+ transl_file = self.nabu_config[config_section][config_key]
115
+ if transl_file in (None, ""):
116
+ return
117
+ translations = None
118
+ if transl_file is not None and "://" not in transl_file:
119
+ try:
120
+ translations = get_values_from_file(
121
+ transl_file, shape=(self.dataset_info.n_angles, last_dim), any_size=True
122
+ ).astype(np.float32)
123
+ except ValueError:
124
+ print("Something wrong with translation_movements_file %s" % transl_file)
125
+ raise
126
+ else:
127
+ try:
128
+ translations = get_data(transl_file)
129
+ except:
130
+ print("Something wrong with translation_movements_file %s" % transl_file)
131
+ raise
132
+ setattr(self.dataset_info, dataset_info_attr, translations)
133
+ if self._use_horizontal_translations and translations is not None:
134
+ # Horizontal translations are handled by "axis_correction" in backprojector
135
+ horizontal_translations = translations[:, 0]
136
+ if np.max(np.abs(horizontal_translations)) > 1e-3:
137
+ self.dataset_info.axis_correction = horizontal_translations
138
+
139
+ def _get_rotation_axis_position(self):
140
+ super()._get_rotation_axis_position()
141
+ rec_params = self.nabu_config["reconstruction"]
142
+ axis_correction_file = rec_params["axis_correction_file"]
143
+ axis_correction = None
144
+ if axis_correction_file is not None:
145
+ try:
146
+ axis_correction = get_values_from_file(
147
+ axis_correction_file,
148
+ n_values=self.dataset_info.n_angles,
149
+ any_size=True,
150
+ ).astype(np.float32)
151
+ except ValueError:
152
+ print("Something wrong with axis correction file %s" % axis_correction_file)
153
+ raise
154
+ self.dataset_info.axis_correction = axis_correction
155
+
156
+ def _update_rotation_angles(self):
157
+ rec_params = self.nabu_config["reconstruction"]
158
+ n_angles = self.dataset_info.n_angles
159
+ angles_file = rec_params["angles_file"]
160
+ if angles_file is not None:
161
+ try:
162
+ angles = get_values_from_file(angles_file, n_values=n_angles, any_size=True)
163
+ angles = np.deg2rad(angles)
164
+ except ValueError:
165
+ self.logger.fatal("Something wrong with angle file %s" % angles_file)
166
+ raise
167
+ self.dataset_info.rotation_angles = angles
168
+ elif self.dataset_info.rotation_angles is None:
169
+ angles_range_txt = "[0, 180[ degrees"
170
+ if rec_params["enable_halftomo"]:
171
+ angles_range_txt = "[0, 360] degrees"
172
+ angles = np.linspace(0, 2 * np.pi, n_angles, True)
173
+ else:
174
+ angles = np.linspace(0, np.pi, n_angles, False)
175
+ self.logger.warning(
176
+ "No information was found on rotation angles. Using default %s (half tomo is %s)"
177
+ % (angles_range_txt, {0: "OFF", 1: "ON"}[int(self.do_halftomo)])
178
+ )
179
+ self.dataset_info.rotation_angles = angles
180
+
181
+ def _get_cor(self):
182
+ cor = self.nabu_config["reconstruction"]["rotation_axis_position"]
183
+ if isinstance(cor, str): # auto-CoR
184
+ cor = estimate_cor(
185
+ cor,
186
+ self.dataset_info,
187
+ do_flatfield=(self.nabu_config["preproc"]["flatfield"] is not False),
188
+ cor_options=self.nabu_config["reconstruction"]["cor_options"],
189
+ logger=self.logger,
190
+ )
191
+ self.logger.info("Estimated center of rotation: %.3f" % cor)
192
+ self.dataset_info.axis_position = cor
193
+
194
+ def _get_user_sino_normalization(self):
195
+ self._sino_normalization_arr = None
196
+ norm = self.nabu_config["preproc"]["sino_normalization"]
197
+ if norm not in ["subtraction", "division"]:
198
+ return
199
+ norm_path = "silx://" + self.nabu_config["preproc"]["sino_normalization_file"].strip()
200
+ url = DataUrl(norm_path)
201
+ try:
202
+ norm_array = get_data(url)
203
+ self._sino_normalization_arr = norm_array.astype("f")
204
+ except (ValueError, OSError) as exc:
205
+ error_msg = "Could not load sino_normalization_file %s. The error was: %s" % (norm_path, str(exc))
206
+ self.logger.error(error_msg)
207
+ raise ValueError(error_msg)
208
+
209
+ @property
210
+ def do_halftomo(self):
211
+ """
212
+ Return True if the current dataset is to be reconstructed using 'half-acquisition' setting.
213
+ """
214
+ enable_halftomo = self.nabu_config["reconstruction"]["enable_halftomo"]
215
+ is_halftomo_dataset = self.dataset_info.is_halftomo
216
+ if enable_halftomo == "auto":
217
+ if is_halftomo_dataset is None:
218
+ raise ValueError(
219
+ "enable_halftomo was set to 'auto', but information on field of view was not found. Please set either 0 or 1 for enable_halftomo"
220
+ )
221
+ return is_halftomo_dataset
222
+ return enable_halftomo
223
+
224
+ def _coupled_validation(self):
225
+ self.logger.debug("Doing coupled validation")
226
+ self._dataset_validator = FullFieldDatasetValidator(self.nabu_config, self.dataset_info)
227
+ # Not so ideal to propagate fields like this
228
+ for what in ["rec_params", "rec_region", "binning", "subsampling_factor"]:
229
+ setattr(self, what, getattr(self._dataset_validator, what))
230
+
231
+ #
232
+ # Attributes that combine dataset information and user overwrites (eg. binning).
233
+ # Must be accessed after __init__() is done
234
+ #
235
+
236
+ @property
237
+ def binning_x(self):
238
+ return getattr(self, "binning", (1, 1))[0]
239
+
240
+ @property
241
+ def binning_z(self):
242
+ return getattr(self, "binning", (1, 1))[1]
243
+
244
+ @property
245
+ def subsampling(self):
246
+ return getattr(self, "subsampling_factor", None)
247
+
248
+ def radio_shape(self, binning=False):
249
+ n_x, n_z = self.dataset_info.radio_dims
250
+ if binning:
251
+ n_z //= self.binning_z
252
+ n_x //= self.binning_x
253
+ return (n_z, n_x)
254
+
255
+ def n_angles(self, subsampling=False):
256
+ rot_angles = self.dataset_info.rotation_angles
257
+ if subsampling:
258
+ rot_angles = rot_angles[:: (self.subsampling or 1)]
259
+ return len(rot_angles)
260
+
261
+ def radios_shape(self, binning=False, subsampling=False):
262
+ n_z, n_x = self.radio_shape(binning=binning)
263
+ n_a = self.n_angles(subsampling=subsampling)
264
+ return (n_a, n_z, n_x)
265
+
266
+ def rotation_axis_position(self, binning=False):
267
+ cor = self.dataset_info.axis_position # might be None (default to the middle of detector)
268
+ if cor is None and self.do_halftomo:
269
+ raise ValueError("No information on center of rotation, cannot use half-tomography reconstruction")
270
+ if cor is not None and binning:
271
+ # Backprojector uses middle of pixel for coordinate indices.
272
+ # This means that the leftmost edge of the leftmost pixel has coordinate -0.5.
273
+ # When using binning with a factor 'b', the CoR has to adapted as
274
+ # cor_binned = (cor + 0.5)/b - 0.5
275
+ cor = (cor + 0.5) / self.binning_x - 0.5
276
+ return cor
277
+
278
+ def sino_shape(self, binning=False, subsampling=False):
279
+ """
280
+ Return the shape of a sinogram image.
281
+
282
+ Parameter
283
+ ---------
284
+ binning: bool
285
+ Whether to account for image binning
286
+ subsampling: bool
287
+ Whether to account for projections subsampling
288
+ """
289
+ n_a, _, n_x = self.radios_shape(binning=binning, subsampling=subsampling)
290
+ return (n_a, n_x)
291
+
292
+ def sinos_shape(self, binning=False, subsampling=False):
293
+ n_z, _ = self.radio_shape(binning=binning)
294
+ return (n_z,) + self.sino_shape(binning=binning, subsampling=subsampling)
295
+
296
+ def projs_indices(self, subsampling=False):
297
+ step = 1
298
+ if subsampling:
299
+ step = self.subsampling or 1
300
+ return sorted(self.dataset_info.projections.keys())[::step]
301
+
302
+ def rotation_angles(self, subsampling=False):
303
+ step = 1
304
+ if subsampling:
305
+ step = self.subsampling or 1
306
+ return self.dataset_info.rotation_angles[::step]
307
+
308
+ @property
309
+ def rec_roi(self):
310
+ """
311
+ Returns the reconstruction region of interest (ROI), accounting for binning in both dimensions.
312
+ """
313
+ rec_params = self.rec_params # accounts for binning
314
+ x_s, x_e = rec_params["start_x"], rec_params["end_x"]
315
+ y_s, y_e = rec_params["start_y"], rec_params["end_y"]
316
+ # Upper bound (end_xy) is INCLUDED in nabu config, hence the +1 here
317
+ return (x_s, x_e + 1, y_s, y_e + 1)
318
+
319
+ @property
320
+ def rec_shape(self):
321
+ # Accounts for binning!
322
+ return tuple(np.diff(self.rec_roi)[::-2])
323
+
324
+ @property
325
+ def rec_delta_z(self):
326
+ # Accounts for binning!
327
+ z_s, z_e = self.rec_params["start_z"], self.rec_params["end_z"]
328
+ # Upper bound (end_xy) is INCLUDED in nabu config, hence the +1 here
329
+ return z_e + 1 - z_s
330
+
331
+ def is_before_radios_cropping(self, step):
332
+ """
333
+ Return true if a given processing step happens before radios cropping
334
+ """
335
+ if step == "sinogram":
336
+ return False
337
+ if step not in self._all_processing_steps:
338
+ raise ValueError("Unknown step: '%s'. Available are: %s" % (step, self._all_processing_steps))
339
+ # sino_normalization
340
+ return self._all_processing_steps.index(step) <= self._all_processing_steps.index("radios_movements")
341
+
342
+ #
343
+ # Build processing steps
344
+ #
345
+
346
+ # TODO update behavior and remove this function once GroupedPipeline cuda backend is implemented
347
+ def get_radios_rotation_mode(self):
348
+ """
349
+ Determine whether projections are to be rotated, and if so, when they are to be rotated.
350
+
351
+ Returns
352
+ -------
353
+ method: str or None
354
+ Rotation method: one of the values of `nabu.resources.params.radios_rotation_mode`
355
+ """
356
+ user_rotate_projections = self.nabu_config["preproc"]["rotate_projections"]
357
+ tilt = self.dataset_info.detector_tilt
358
+ phase_method = self.nabu_config["phase"]["method"]
359
+ do_ctf = phase_method == "CTF"
360
+ do_pag = phase_method == "paganin"
361
+ do_unsharp = (
362
+ self.nabu_config["phase"]["unsharp_method"] is not None and self.nabu_config["phase"]["unsharp_coeff"] > 0
363
+ )
364
+ if user_rotate_projections is None and tilt is None:
365
+ return None
366
+ if do_ctf:
367
+ return "full"
368
+ # TODO "chunked" rotation is done only when using a "processing margin"
369
+ # For now the processing margin is enabled only if phase or unsharp is enabled.
370
+ # We can either
371
+ # - Enable processing margin if rotating projections is needed (more complicated to implement)
372
+ # - Always do "full" rotation (simpler to implement, at the expense of performances)
373
+ if do_pag or do_unsharp:
374
+ return "chunk"
375
+ else:
376
+ return "full"
377
+
378
+ def _build_processing_steps(self):
379
+ nabu_config = self.nabu_config
380
+ dataset_info = self.dataset_info
381
+ binning = (nabu_config["dataset"]["binning"], nabu_config["dataset"]["binning_z"])
382
+ tasks = []
383
+ options = {}
384
+
385
+ #
386
+ # Dataset / Get data
387
+ #
388
+ # First thing to do is to get the data (radios or sinograms)
389
+ # For now data is assumed to be on disk (see issue #66).
390
+ tasks.append("read_chunk")
391
+ options["read_chunk"] = {
392
+ "files": dataset_info.projections,
393
+ "sub_region": None,
394
+ "binning": binning,
395
+ "dataset_subsampling": nabu_config["dataset"]["projections_subsampling"],
396
+ }
397
+ #
398
+ # Flat-field
399
+ #
400
+ if nabu_config["preproc"]["flatfield"]:
401
+ tasks.append("flatfield")
402
+ options["flatfield"] = {
403
+ # ChunkReader handles binning/subsampling by itself,
404
+ # but FlatField needs "real" indices (after binning/subsampling)
405
+ "projs_indices": self.projs_indices(subsampling=False),
406
+ "binning": binning,
407
+ "do_flat_distortion": nabu_config["preproc"]["flat_distortion_correction_enabled"],
408
+ "flat_distortion_params": extract_parameters(nabu_config["preproc"]["flat_distortion_params"]),
409
+ }
410
+ normalize_srcurrent = nabu_config["preproc"]["normalize_srcurrent"]
411
+ radios_srcurrent = None
412
+ flats_srcurrent = None
413
+ if normalize_srcurrent:
414
+ if (
415
+ dataset_info.projections_srcurrent is None
416
+ or dataset_info.flats_srcurrent is None
417
+ or len(dataset_info.flats_srcurrent) == 0
418
+ ):
419
+ self.logger.error("Cannot do SRCurrent normalization: missing flats and/or projections SRCurrent")
420
+ normalize_srcurrent = False
421
+ else:
422
+ radios_srcurrent = dataset_info.projections_srcurrent
423
+ flats_srcurrent = dataset_info.flats_srcurrent
424
+ options["flatfield"].update(
425
+ {
426
+ "normalize_srcurrent": normalize_srcurrent,
427
+ "radios_srcurrent": radios_srcurrent,
428
+ "flats_srcurrent": flats_srcurrent,
429
+ }
430
+ )
431
+ #
432
+ # Spikes filter
433
+ #
434
+ if nabu_config["preproc"]["ccd_filter_enabled"]:
435
+ tasks.append("ccd_correction")
436
+ options["ccd_correction"] = {
437
+ "type": "median_clip", # only one available for now
438
+ "median_clip_thresh": nabu_config["preproc"]["ccd_filter_threshold"],
439
+ }
440
+ #
441
+ # Double flat field
442
+ #
443
+ if nabu_config["preproc"]["double_flatfield_enabled"]:
444
+ tasks.append("double_flatfield")
445
+ options["double_flatfield"] = {
446
+ "sigma": nabu_config["preproc"]["dff_sigma"],
447
+ "processes_file": nabu_config["preproc"]["processes_file"],
448
+ "log_min_clip": nabu_config["preproc"]["log_min_clip"],
449
+ "log_max_clip": nabu_config["preproc"]["log_max_clip"],
450
+ }
451
+ #
452
+ # Radios rotation (do it here if possible)
453
+ #
454
+ if self.get_radios_rotation_mode() == "chunk":
455
+ tasks.append("rotate_projections")
456
+ options["rotate_projections"] = {
457
+ "angle": nabu_config["preproc"]["rotate_projections"] or dataset_info.detector_tilt,
458
+ "center": nabu_config["preproc"]["rotate_projections_center"],
459
+ "mode": "chunk",
460
+ }
461
+ #
462
+ #
463
+ # Phase retrieval
464
+ #
465
+ if nabu_config["phase"]["method"] is not None:
466
+ tasks.append("phase")
467
+ options["phase"] = copy_dict_items(nabu_config["phase"], ["method", "delta_beta", "padding_type"])
468
+ options["phase"].update(
469
+ {
470
+ "energy_kev": dataset_info.energy,
471
+ "distance_cm": dataset_info.distance * 1e2,
472
+ "distance_m": dataset_info.distance,
473
+ "pixel_size_microns": dataset_info.pixel_size,
474
+ "pixel_size_m": dataset_info.pixel_size * 1e-6,
475
+ }
476
+ )
477
+ if binning != (1, 1):
478
+ options["phase"]["delta_beta"] /= binning[0] * binning[1]
479
+ if options["phase"]["method"] == "CTF":
480
+ self._get_ctf_parameters(options["phase"])
481
+ #
482
+ # Unsharp
483
+ #
484
+ if (
485
+ nabu_config["phase"]["unsharp_method"] is not None
486
+ and nabu_config["phase"]["unsharp_coeff"] > 0
487
+ and nabu_config["phase"]["unsharp_sigma"] > 0
488
+ ):
489
+ tasks.append("unsharp_mask")
490
+ options["unsharp_mask"] = copy_dict_items(
491
+ nabu_config["phase"], ["unsharp_coeff", "unsharp_sigma", "unsharp_method"]
492
+ )
493
+ #
494
+ # -logarithm
495
+ #
496
+ if nabu_config["preproc"]["take_logarithm"]:
497
+ tasks.append("take_log")
498
+ options["take_log"] = copy_dict_items(nabu_config["preproc"], ["log_min_clip", "log_max_clip"])
499
+ #
500
+ # Radios rotation (do it here if mode=="full")
501
+ #
502
+ if self.get_radios_rotation_mode() == "full":
503
+ tasks.append("rotate_projections")
504
+ options["rotate_projections"] = {
505
+ "angle": nabu_config["preproc"]["rotate_projections"] or dataset_info.detector_tilt,
506
+ "center": nabu_config["preproc"]["rotate_projections_center"],
507
+ "mode": "full",
508
+ }
509
+ #
510
+ # Translation movements
511
+ #
512
+ translations = dataset_info.translations
513
+ if translations is not None:
514
+ tasks.append("radios_movements")
515
+ options["radios_movements"] = {"translation_movements": dataset_info.translations[:: self.binning_z]}
516
+ #
517
+ # Sinogram normalization (before half-tomo)
518
+ #
519
+ if nabu_config["preproc"]["sino_normalization"] is not None:
520
+ tasks.append("sino_normalization")
521
+ options["sino_normalization"] = {
522
+ "method": nabu_config["preproc"]["sino_normalization"],
523
+ "normalization_array": self._sino_normalization_arr,
524
+ }
525
+
526
+ #
527
+ # Sinogram-based rings artefacts removal
528
+ #
529
+ if nabu_config["preproc"]["sino_rings_correction"]:
530
+ tasks.append("sino_rings_correction")
531
+ options["sino_rings_correction"] = {
532
+ "method": nabu_config["preproc"]["sino_rings_correction"],
533
+ "user_options": nabu_config["preproc"]["sino_rings_options"],
534
+ }
535
+ #
536
+ # Reconstruction
537
+ #
538
+ if nabu_config["reconstruction"]["method"] is not None:
539
+ tasks.append("reconstruction")
540
+ # Iterative is not supported through configuration file for now.
541
+ options["reconstruction"] = copy_dict_items(
542
+ self.rec_params,
543
+ [
544
+ "method",
545
+ "fbp_filter_type",
546
+ "fbp_filter_cutoff",
547
+ "padding_type",
548
+ "start_x",
549
+ "end_x",
550
+ "start_y",
551
+ "end_y",
552
+ "start_z",
553
+ "end_z",
554
+ "centered_axis",
555
+ "clip_outer_circle",
556
+ "source_sample_dist",
557
+ "sample_detector_dist",
558
+ ],
559
+ )
560
+ rec_options = options["reconstruction"]
561
+ rec_options["rotation_axis_position"] = self.rotation_axis_position(binning=True)
562
+ rec_options["enable_halftomo"] = self.do_halftomo
563
+ rec_options["axis_correction"] = dataset_info.axis_correction
564
+ if dataset_info.axis_correction is not None:
565
+ rec_options["axis_correction"] = rec_options["axis_correction"][:: self.subsampling_factor]
566
+ rec_options["angles"] = np.array(self.rotation_angles(subsampling=True))
567
+ rec_options["angles"] += np.deg2rad(nabu_config["reconstruction"]["angle_offset"])
568
+ voxel_size = dataset_info.pixel_size * 1e-4
569
+ rec_options["voxel_size_cm"] = (
570
+ voxel_size,
571
+ voxel_size,
572
+ voxel_size,
573
+ ) # pix size is in microns in dataset_info
574
+
575
+ # x/y/z position information
576
+ def get_mean_pos(position_array):
577
+ if position_array is None:
578
+ return None
579
+ else:
580
+ position_array = np.array(position_array)
581
+ # filter only projections. Avoid getting noise
582
+ position_array = position_array[
583
+ np.asarray(dataset_info.dataset_scanner.image_key_control) == ImageKey.PROJECTION.value
584
+ ]
585
+ return float(np.mean(position_array))
586
+
587
+ mean_positions_xyz = (
588
+ get_mean_pos(dataset_info.dataset_scanner.z_translation),
589
+ get_mean_pos(dataset_info.dataset_scanner.y_translation),
590
+ get_mean_pos(dataset_info.dataset_scanner.x_translation),
591
+ )
592
+ if all([m is not None for m in mean_positions_xyz]):
593
+ rec_options["position"] = mean_positions_xyz
594
+ if rec_options["sample_detector_dist"] is None:
595
+ rec_options["sample_detector_dist"] = self.dataset_info.distance # was checked to be not None earlier
596
+
597
+ # New key
598
+ rec_options["cor_estimated_auto"] = isinstance(nabu_config["reconstruction"]["rotation_axis_position"], str)
599
+ #
600
+ # Histogram
601
+ #
602
+ if nabu_config["postproc"]["output_histogram"]:
603
+ tasks.append("histogram")
604
+ options["histogram"] = copy_dict_items(nabu_config["postproc"], ["histogram_bins"])
605
+ #
606
+ # Save
607
+ #
608
+ if nabu_config["output"]["location"] is not None:
609
+ tasks.append("save")
610
+ options["save"] = copy_dict_items(nabu_config["output"], list(nabu_config["output"].keys()))
611
+ options["save"]["overwrite"] = nabu_config["output"]["overwrite_results"]
612
+
613
+ self.processing_steps = tasks
614
+ self.processing_options = options
615
+ if set(self.processing_steps) != set(self.processing_options.keys()):
616
+ raise ValueError("Something wrong with process_config: options do not correspond to steps")
617
+ # Add check
618
+ if set(self.processing_steps) != set(self.processing_options.keys()):
619
+ raise ValueError("Something wrong when building processing steps")
620
+
621
+ def _get_ctf_parameters(self, phase_options):
622
+ dataset_info = self.dataset_info
623
+ user_phase_options = self.nabu_config["phase"]
624
+
625
+ ctf_geom = extract_parameters(user_phase_options["ctf_geometry"])
626
+ ctf_advanced_params = extract_parameters(user_phase_options["ctf_advanced_params"])
627
+
628
+ # z1_vh
629
+ z1_v = ctf_geom["z1_v"]
630
+ z1_h = ctf_geom["z1_h"]
631
+ z1_vh = None
632
+ if z1_h is None and z1_v is None:
633
+ # parallel beam
634
+ z1_vh = None
635
+ elif (z1_v is None) ^ (z1_h is None):
636
+ # only one is provided: source-sample distance
637
+ z1_vh = z1_v or z1_h
638
+ if z1_h is not None and z1_v is not None:
639
+ # distance of the vertically focused source (horizontal line) and the horizontaly focused source (vertical line)
640
+ # for KB mirrors
641
+ z1_vh = (z1_v, z1_h)
642
+ # pix_size_det
643
+ pix_size_det = ctf_geom["detec_pixel_size"] or dataset_info.pixel_size * 1e-6
644
+ # wavelength
645
+ wavelength = 1.23984199e-9 / dataset_info.energy
646
+
647
+ phase_options["ctf_geo_pars"] = {
648
+ "z1_vh": z1_vh,
649
+ "z2": phase_options["distance_m"],
650
+ "pix_size_det": pix_size_det,
651
+ "wavelength": wavelength,
652
+ "magnification": bool(ctf_geom["magnification"]),
653
+ "length_scale": ctf_advanced_params["length_scale"],
654
+ }
655
+ phase_options["ctf_lim1"] = ctf_advanced_params["lim1"]
656
+ phase_options["ctf_lim2"] = ctf_advanced_params["lim2"]
657
+ phase_options["ctf_normalize_by_mean"] = ctf_advanced_params["normalize_by_mean"]
658
+
659
+ def _configure_save_steps(self, steps_to_save=None):
660
+ self.steps_to_save = []
661
+ self.dump_sinogram = False
662
+ if steps_to_save is None:
663
+ steps_to_save = self.nabu_config["pipeline"]["save_steps"]
664
+ if steps_to_save in (None, ""):
665
+ return
666
+ steps_to_save = [s.strip() for s in steps_to_save.split(",")]
667
+ for step in self.processing_steps:
668
+ step = step.strip()
669
+ if step in steps_to_save:
670
+ self.processing_options[step]["save"] = True
671
+ self.processing_options[step]["save_steps_file"] = self.get_save_steps_file(step_name=step)
672
+ # "sinogram" is a special keyword, not explicitly in the processing steps
673
+ if "sinogram" in steps_to_save:
674
+ self.dump_sinogram = True
675
+ self.dump_sinogram_file = self.get_save_steps_file(step_name="sinogram")
676
+ self.steps_to_save = steps_to_save
677
+
678
+ def _get_dump_file_and_h5_path(self):
679
+ resume_from = self.resume_from_step
680
+ process_file = self.get_save_steps_file(step_name=resume_from)
681
+ if not os.path.isfile(process_file):
682
+ self.logger.error("Cannot resume processing from step '%s': no such file %s" % (resume_from, process_file))
683
+ return None, None
684
+ h5_entry = self.dataset_info.hdf5_entry or "entry"
685
+ process_h5_path = posixpath.join(h5_entry, resume_from, "results/data")
686
+ if not hdf5_entry_exists(process_file, process_h5_path):
687
+ self.logger.error("Could not find data in %s in file %s" % (process_h5_path, process_file))
688
+ process_h5_path = None
689
+ return process_file, process_h5_path
690
+
691
+ def _configure_resume(self, resume_from=None):
692
+ self.resume_from_step = None
693
+ if resume_from is None:
694
+ resume_from = self.nabu_config["pipeline"]["resume_from_step"]
695
+ if resume_from in (None, ""):
696
+ return
697
+ resume_from = resume_from.strip(" ,;")
698
+ self.resume_from_step = resume_from
699
+
700
+ processing_steps = self.processing_steps
701
+ # special case: resume from sinogram
702
+ if resume_from == "sinogram":
703
+ # disable up to 'reconstruction', not included
704
+ if "sino_rings_correction" in processing_steps:
705
+ # Sinogram destriping is done before building the half tomo sino.
706
+ # Not sure if this is needed (i.e can we do before building the extended sino ?)
707
+ # TODO find a more elegant way
708
+ idx = processing_steps.index("sino_rings_correction")
709
+ else:
710
+ idx = processing_steps.index("reconstruction")
711
+ #
712
+ elif resume_from in processing_steps:
713
+ idx = processing_steps.index(resume_from) + 1 # disable up to resume_from, included
714
+ else:
715
+ msg = "Cannot resume processing from step '%s': no such step in the current configuration" % resume_from
716
+ self.logger.error(msg)
717
+ self.resume_from_step = None
718
+ return
719
+
720
+ # Get corresponding file and h5 path
721
+ process_file, process_h5_path = self._get_dump_file_and_h5_path()
722
+ if process_file is None or process_h5_path is None:
723
+ self.resume_from_step = None
724
+ return
725
+ dump_info = self._check_dump_file(process_file, raise_on_error=False)
726
+ if dump_info is None:
727
+ self.logger.error("Cannot resume from step %s: cannot use file %s" % (resume_from, process_file))
728
+ self.resume_from_step = None
729
+ return
730
+ dump_start_z, dump_end_z = dump_info
731
+
732
+ # Disable steps
733
+ steps_to_disable = processing_steps[1:idx]
734
+ self.logger.debug("Disabling steps %s" % str(steps_to_disable))
735
+ for step_name in steps_to_disable:
736
+ processing_steps.remove(step_name)
737
+ self.processing_options.pop(step_name)
738
+
739
+ # Update configuration
740
+ self.logger.info("Processing will be resumed from step '%s' using file %s" % (resume_from, process_file))
741
+ self._old_read_chunk = self.processing_options["read_chunk"]
742
+ self.processing_options["read_chunk"] = {
743
+ "process_file": process_file,
744
+ "process_h5_path": process_h5_path,
745
+ "step_name": resume_from,
746
+ "dump_start_z": dump_start_z,
747
+ "dump_end_z": dump_end_z,
748
+ }
749
+ # Dont dump a step if we resume from this step
750
+ if resume_from in self.steps_to_save:
751
+ self.logger.warning(
752
+ "Processing is resumed from step '%s'. This step won't be dumped to a file" % resume_from
753
+ )
754
+ self.steps_to_save.remove(resume_from)
755
+ if resume_from == "sinogram":
756
+ self.dump_sinogram = False
757
+ else:
758
+ if resume_from in self.processing_options: # should not happen
759
+ self.processing_options[resume_from].pop("save")
760
+
761
+ def _check_dump_file(self, process_file, raise_on_error=False):
762
+ """
763
+ Return (start_z, end_z) on success
764
+ Return None on failure
765
+ """
766
+ # Ensure data in the file correspond to what is currently asked
767
+ if self.resume_from_step is None:
768
+ return None
769
+
770
+ # Check dataset shape/start_z/end_z
771
+ rec_cfg_h5_path = posixpath.join(
772
+ self.dataset_info.hdf5_entry or "entry",
773
+ self.resume_from_step,
774
+ "configuration/processing_options/reconstruction",
775
+ )
776
+ dump_start_z = get_h5_value(process_file, posixpath.join(rec_cfg_h5_path, "start_z"))
777
+ dump_end_z = get_h5_value(process_file, posixpath.join(rec_cfg_h5_path, "end_z"))
778
+ if dump_end_z < 0:
779
+ dump_end_z += self.radio_shape(binning=False)[0]
780
+ start_z, end_z = (
781
+ self.processing_options["reconstruction"]["start_z"],
782
+ self.processing_options["reconstruction"]["end_z"],
783
+ )
784
+ if not (dump_start_z <= start_z and end_z <= dump_end_z):
785
+ msg = (
786
+ "File %s was built with start_z=%d, end_z=%d but current configuration asks for start_z=%d, end_z=%d"
787
+ % (process_file, dump_start_z, dump_end_z, start_z, end_z)
788
+ )
789
+ if not raise_on_error:
790
+ self.logger.error(msg)
791
+ return None
792
+ self.logger.fatal(msg)
793
+ raise ValueError(msg)
794
+
795
+ # Check parameters other than reconstruction
796
+ filedump_nabu_config = import_h5_to_dict(
797
+ process_file,
798
+ posixpath.join(self.dataset_info.hdf5_entry or "entry", self.resume_from_step, "configuration/nabu_config"),
799
+ )
800
+ sections_to_ignore = ["reconstruction", "output", "pipeline"]
801
+ for section in sections_to_ignore:
802
+ filedump_nabu_config[section] = self.nabu_config[section]
803
+ # special case of the "save_steps process"
804
+ # filedump_nabu_config["pipeline"]["save_steps"] = self.nabu_config["pipeline"]["save_steps"]
805
+
806
+ diff = compare_dicts(filedump_nabu_config, self.nabu_config)
807
+ if diff is not None:
808
+ msg = "Nabu configuration in file %s differ from the current one: %s" % (process_file, diff)
809
+ if not raise_on_error:
810
+ self.logger.error(msg)
811
+ return None
812
+ self.logger.fatal(msg)
813
+ raise ValueError(msg)
814
+ #
815
+
816
+ return (dump_start_z, dump_end_z)
817
+
818
+ def get_save_steps_file(self, step_name=None):
819
+ if self.nabu_config["pipeline"]["steps_file"] not in (None, ""):
820
+ return self.nabu_config["pipeline"]["steps_file"]
821
+ nabu_save_options = self.nabu_config["output"]
822
+ output_dir = nabu_save_options["location"]
823
+ file_prefix = step_name + "_" + nabu_save_options["file_prefix"]
824
+ fname = os.path.join(output_dir, file_prefix) + ".hdf5"
825
+ return fname