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,851 @@
1
+ from os import environ
2
+ from os.path import join, isfile, basename, dirname
3
+ from math import ceil
4
+ import gc
5
+ from psutil import virtual_memory
6
+ from silx.io import get_data
7
+ from silx.io.url import DataUrl
8
+ from tomoscan.esrf.volume.singleframebase import VolumeSingleFrameBase
9
+ from ... import version as nabu_version
10
+ from ...utils import check_supported, subdivide_into_overlapping_segment
11
+ from ...resources.logger import LoggerOrPrint
12
+ from ...resources.utils import is_hdf5_extension
13
+ from ...io.writer import merge_hdf5_files, NXProcessWriter
14
+ from ...cuda.utils import collect_cuda_gpus, __has_pycuda__
15
+ from ...preproc.phase import compute_paganin_margin
16
+ from ...processing.histogram import PartialHistogram, add_last_bin, hist_as_2Darray
17
+ from .chunked import ChunkedPipeline
18
+ from .computations import estimate_max_chunk_size
19
+
20
+ if __has_pycuda__:
21
+ from .chunked_cuda import CudaChunkedPipeline
22
+
23
+
24
+ def variable_idxlen_sort(fname):
25
+ return int(fname.split("_")[-1].split(".")[0])
26
+
27
+
28
+ class FullFieldReconstructor:
29
+ """
30
+ A reconstructor spawns and manages Pipeline objects, depending on the current chunk/group size.
31
+ """
32
+
33
+ _available_backends = ["cuda", "numpy"]
34
+
35
+ _process_name = "reconstruction"
36
+
37
+ default_advanced_options = {
38
+ "gpu_mem_fraction": 0.9,
39
+ "cpu_mem_fraction": 0.9,
40
+ "chunk_size": None,
41
+ "margin": None,
42
+ "force_grouped_mode": False,
43
+ }
44
+
45
+ def __init__(self, process_config, logger=None, backend="cuda", extra_options=None, cuda_options=None):
46
+ """
47
+ Initialize a Reconstructor object.
48
+ This class is used for managing pipelines.
49
+
50
+ Parameters
51
+ ----------
52
+ process_config: ProcessConfig object
53
+ Data structure with process configuration
54
+ logger: Logger, optional
55
+ logging object
56
+ backend: str, optional
57
+ Which backend to use. Available are: "cuda", "numpy".
58
+ extra_options: dict, optional
59
+ Dictionary with advanced options. Please see 'Other parameters' below
60
+ cuda_options: dict, optional
61
+ Dictionary with cuda options passed to `nabu.cuda.processing.CudaProcessing`
62
+
63
+
64
+ Other parameters
65
+ -----------------
66
+ Advanced options can be passed in the 'extra_options' dictionary. These can be:
67
+
68
+ - cpu_mem_fraction: 0.9,
69
+ - gpu_mem_fraction: 0.9,
70
+ - chunk_size: None,
71
+ - margin: None,
72
+ - force_grouped_mode: False
73
+ """
74
+ self.logger = LoggerOrPrint(logger)
75
+ self.process_config = process_config
76
+ self._set_extra_options(extra_options)
77
+ self._get_reconstruction_range()
78
+ self._get_resources()
79
+ self._get_backend(backend, cuda_options)
80
+ self._compute_margin()
81
+ self._compute_max_chunk_size()
82
+ self._get_pipeline_mode()
83
+ self._build_tasks()
84
+
85
+ self._do_histograms = self.process_config.nabu_config["postproc"]["output_histogram"]
86
+ self._reconstruction_output_format_is_hdf5 = is_hdf5_extension(
87
+ self.process_config.nabu_config["output"]["file_format"]
88
+ )
89
+ self._histogram_merged = False
90
+ self.pipeline = None
91
+ self._histogram_merged = False
92
+
93
+ #
94
+ # Initialization
95
+ #
96
+
97
+ def _set_extra_options(self, extra_options):
98
+ self.extra_options = self.default_advanced_options.copy()
99
+ self.extra_options.update(extra_options or {})
100
+ self.gpu_mem_fraction = self.extra_options["gpu_mem_fraction"]
101
+ self.cpu_mem_fraction = self.extra_options["cpu_mem_fraction"]
102
+
103
+ def _get_reconstruction_range(self):
104
+ rec_region = self.process_config.rec_region # without binning
105
+ self.z_min = rec_region["start_z"]
106
+ # In the user configuration, the upper bound is included: [start_z, end_z].
107
+ # In python syntax, the upper bound is not: [start_z, end_z[
108
+ self.z_max = rec_region["end_z"] + 1
109
+ self.delta_z = self.z_max - self.z_min
110
+ # Cache some volume info
111
+ self.n_angles = self.process_config.n_angles(subsampling=False)
112
+ self.n_z, self.n_x = self.process_config.radio_shape(binning=False)
113
+
114
+ def _get_resources(self):
115
+ self.resources = {}
116
+ self._get_gpu()
117
+ self._get_memory()
118
+
119
+ def _get_memory(self):
120
+ vm = virtual_memory()
121
+ self.resources["mem_avail_GB"] = vm.available / 1e9
122
+ # Account for other memory constraints. There might be a better way
123
+ slurm_mem_constraint_MB = int(environ.get("SLURM_MEM_PER_NODE", 0))
124
+ if slurm_mem_constraint_MB > 0:
125
+ self.resources["mem_avail_GB"] = slurm_mem_constraint_MB / 1e3
126
+ #
127
+ self.cpu_mem = self.resources["mem_avail_GB"] * self.cpu_mem_fraction
128
+
129
+ def _get_gpu(self):
130
+ avail_gpus = collect_cuda_gpus() or {}
131
+ self.resources["gpus"] = avail_gpus
132
+ if len(avail_gpus) == 0:
133
+ return
134
+ # pick first GPU by default. TODO: handle user's nabu_config["resources"]["gpu_id"]
135
+ self.resources["gpu_id"] = self._gpu_id = list(avail_gpus.keys())[0]
136
+
137
+ def _get_backend(self, backend, cuda_options):
138
+ self._pipeline_cls = ChunkedPipeline
139
+ check_supported(backend, self._available_backends, "backend")
140
+ if backend == "cuda":
141
+ self.cuda_options = cuda_options
142
+ if len(self.resources["gpus"]) == 0:
143
+ # Not sure if an error should be raised in this case
144
+ self.logger.error("Could not find any cuda device. Falling back on numpy/CPU backend.")
145
+ backend = "numpy"
146
+ else:
147
+ self.gpu_mem = self.resources["gpus"][self._gpu_id]["memory_GB"] * self.gpu_mem_fraction
148
+ if backend == "cuda":
149
+ self._pipeline_cls = CudaChunkedPipeline
150
+ self.backend = backend
151
+
152
+ def _compute_max_chunk_size(self):
153
+ """
154
+ Compute the maximum number of (partial) radios that can be processed in memory.
155
+ Ideally, the processing is done by reading N lines of all the projections.
156
+ This function estimates max_chunk_size = N_max, the maximum number of lines that can be read
157
+ in all the projections while still fitting the memory.
158
+ On the other hand, if a "processing margin" is needed (eg. phase retrieval), then we need to read
159
+ at least N_min = 2 * margin_v + n_slices lines of each image.
160
+ For large datasets, we have N_min > max_chunk_size, so we can't read lines from all the projections.
161
+ """
162
+ user_chunk_size = self.extra_options["chunk_size"]
163
+ if user_chunk_size is not None:
164
+ self.chunk_size = user_chunk_size
165
+ else:
166
+ self.cpu_max_chunk_size = estimate_max_chunk_size(
167
+ self.cpu_mem, self.process_config, pipeline_part="all", step=5
168
+ )
169
+ self.chunk_size = self.cpu_max_chunk_size
170
+ if self.backend == "cuda":
171
+ self.gpu_max_chunk_size = estimate_max_chunk_size(
172
+ self.gpu_mem,
173
+ self.process_config,
174
+ pipeline_part="all",
175
+ step=5,
176
+ )
177
+ self.chunk_size = min(self.gpu_max_chunk_size, self.cpu_max_chunk_size)
178
+ self.chunk_size = min(self.chunk_size, self.n_z)
179
+
180
+ def _compute_max_group_size(self):
181
+ """
182
+ Compute the maximum number of (partial) images that can be processed in memory
183
+ """
184
+
185
+ #
186
+ # "Group size" (i.e, how many radios can be processed in one pass for the first part of the pipeline)
187
+ #
188
+ user_group_size = self.extra_options.get("chunk_size", None)
189
+ if user_group_size is not None:
190
+ self.group_size = user_group_size
191
+ else:
192
+ self.cpu_max_group_size = estimate_max_chunk_size(
193
+ self.cpu_mem,
194
+ self.process_config,
195
+ pipeline_part="radios",
196
+ n_rows=min(2 * self._margin_v + self.delta_z, self.n_z),
197
+ step=10,
198
+ )
199
+ self.group_size = self.cpu_max_group_size
200
+ if self.backend == "cuda":
201
+ self.gpu_max_group_size = estimate_max_chunk_size(
202
+ self.gpu_mem,
203
+ self.process_config,
204
+ pipeline_part="radios",
205
+ n_rows=min(2 * self._margin_v + self.delta_z, self.n_z),
206
+ step=10,
207
+ )
208
+ self.group_size = min(self.gpu_max_group_size, self.cpu_max_group_size)
209
+ self.group_size = min(self.group_size, self.n_angles)
210
+
211
+ #
212
+ # "sinos chunk size" (i.e, how many sinograms can be processed in one pass for the second part of the pipeline)
213
+ #
214
+ self.cpu_max_chunk_size_sinos = estimate_max_chunk_size(
215
+ self.cpu_mem,
216
+ self.process_config,
217
+ pipeline_part="sinos",
218
+ step=10,
219
+ )
220
+ if self.backend == "cuda":
221
+ self.gpu_max_chunk_size_sinos = estimate_max_chunk_size(
222
+ self.gpu_mem,
223
+ self.process_config,
224
+ pipeline_part="sinos",
225
+ step=5,
226
+ )
227
+ self.chunk_size_sinos = min(self.gpu_max_chunk_size_sinos, self.cpu_max_chunk_size_sinos)
228
+ self.chunk_size_sinos = min(self.chunk_size_sinos, self.delta_z)
229
+
230
+ def _get_pipeline_mode(self):
231
+ # "Pipeline mode" means we either process data chunks of type [:, delta_z, :] or [delta_theta, :, :].
232
+ # The first case is better in terms of performances and should be preferred.
233
+ # However, in some cases, it's not possible to use it (eg. high "delta_z" because of margin)
234
+ chunk_size_for_one_slice = 1 + 2 * self._margin_v # TODO ignore margin when resuming from sinogram ?
235
+ chunk_is_too_small = False
236
+ if chunk_size_for_one_slice > self.chunk_size:
237
+ msg = str(
238
+ "Margin is %d, so we need to process at least %d detector rows. However, the available memory enables to process only %d rows at once"
239
+ % (self._margin_v, chunk_size_for_one_slice, self.chunk_size)
240
+ )
241
+ chunk_is_too_small = True
242
+ if self._margin_v > self.chunk_size // 3:
243
+ n_slices = max(1, self.chunk_size - (2 * self._margin_v))
244
+ n_stages = ceil(self.delta_z / n_slices)
245
+ if n_stages > 1:
246
+ msg = str("Margin (%d) is too big for chunk size (%d)" % (self._margin_v, self.chunk_size))
247
+ chunk_is_too_small = True
248
+ force_grouped_mode = self.extra_options.get("force_grouped_mode", False)
249
+ if force_grouped_mode:
250
+ msg = "Forcing grouped mode"
251
+ if self.process_config.processing_options.get("phase", {}).get("method", None) == "CTF":
252
+ force_grouped_mode = True
253
+ msg = "CTF phase retrieval needs to process full radios"
254
+ if self.process_config.processing_options.get("rotate_projections", {}).get("angle", 0) > 15:
255
+ force_grouped_mode = True
256
+ msg = "Radios rotation with a large angle needs to process full radios"
257
+ if self.process_config.resume_from_step == "sinogram" and force_grouped_mode:
258
+ self.logger.warning("Cannot use grouped-radios processing when resuming from sinogram")
259
+ force_grouped_mode = False
260
+ if not (chunk_is_too_small or force_grouped_mode):
261
+ # Default case (preferred)
262
+ self._pipeline_mode = "chunked"
263
+ self.chunk_shape = (self.n_angles, self.chunk_size, self.n_x)
264
+ else:
265
+ # Fall-back mode (slower)
266
+ self.logger.warning(msg)
267
+ self._pipeline_mode = "grouped"
268
+ self._compute_max_group_size()
269
+ self.chunk_shape = (self.group_size, self.delta_z, self.n_x)
270
+ self.logger.info("Using 'grouped' pipeline mode")
271
+
272
+ #
273
+ # "Margin"
274
+ #
275
+
276
+ def _compute_margin(self):
277
+ user_margin = self.extra_options.get("margin", None)
278
+ if self.process_config.resume_from_step == "sinogram":
279
+ self.logger.debug("Margin not needed when resuming from sinogram")
280
+ margin_v, margin_h = 0, 0
281
+ elif user_margin is not None and user_margin > 0:
282
+ margin_v, margin_h = user_margin, user_margin
283
+ self.logger.info("Using user-defined margin: %d" % user_margin)
284
+ else:
285
+ unsharp_margin = self._compute_unsharp_margin()
286
+ phase_margin = self._compute_phase_margin()
287
+ translations_margin = self._compute_translations_margin()
288
+ cone_margin = self._compute_cone_overlap()
289
+ # TODO radios rotation/movements
290
+ margin_v = max(unsharp_margin[0], phase_margin[0], translations_margin[0], cone_margin[0])
291
+ margin_h = max(unsharp_margin[1], phase_margin[1], translations_margin[1], cone_margin[1])
292
+ if margin_v > 0:
293
+ self.logger.info("Estimated margin: %d pixels" % margin_v)
294
+
295
+ margin_v = min(margin_v, self.n_z)
296
+ margin_h = min(margin_h, self.n_x)
297
+ self._margin = margin_v, margin_h
298
+ self._margin_v = margin_v
299
+
300
+ def _compute_unsharp_margin(self):
301
+ if "unsharp_mask" not in self.process_config.processing_steps:
302
+ return (0, 0)
303
+ opts = self.process_config.processing_options["unsharp_mask"]
304
+ sigma = opts["unsharp_sigma"]
305
+ # nabu uses cutoff = 4
306
+ cutoff = 4
307
+ gaussian_kernel_size = int(ceil(2 * cutoff * sigma + 1))
308
+ self.logger.debug("Unsharp mask margin: %d pixels" % gaussian_kernel_size)
309
+ return (gaussian_kernel_size, gaussian_kernel_size)
310
+
311
+ def _compute_phase_margin(self):
312
+ phase_options = self.process_config.processing_options.get("phase", None)
313
+ if phase_options is None:
314
+ margin_v, margin_h = (0, 0)
315
+ elif phase_options["method"] == "paganin":
316
+ radio_shape = self.process_config.dataset_info.radio_dims[::-1]
317
+ margin_v, margin_h = compute_paganin_margin(
318
+ radio_shape,
319
+ distance=phase_options["distance_m"],
320
+ energy=phase_options["energy_kev"],
321
+ delta_beta=phase_options["delta_beta"],
322
+ pixel_size=phase_options["pixel_size_m"],
323
+ padding=phase_options["padding_type"],
324
+ )
325
+ elif phase_options["method"] == "CTF":
326
+ # The whole projection has to be processed!
327
+ margin_v = ceil(
328
+ (self.n_z - self.delta_z) / 2
329
+ ) # not so elegant. Use a dedicated flag eg. _process_whole_image ?
330
+ margin_h = 0 # unused for now
331
+ else:
332
+ margin_v, margin_h = (0, 0)
333
+ return (margin_v, margin_h)
334
+
335
+ def _compute_translations_margin(self):
336
+ translations = self.process_config.dataset_info.translations
337
+ if translations is None:
338
+ return (0, 0)
339
+ margin_h_v = []
340
+ for i in range(2):
341
+ transl = translations[:, i]
342
+ margin_h_v.append(ceil(max([transl.max(), (-transl).max()])))
343
+ self.logger.debug("Maximum vertical displacement: %d pixels" % margin_h_v[1])
344
+ return tuple(margin_h_v[::-1])
345
+
346
+ def _compute_cone_overlap(self):
347
+ rec_cfg = self.process_config.processing_options.get("reconstruction", {})
348
+ rec_method = rec_cfg.get("method", None)
349
+ if rec_method != "cone":
350
+ return (0, 0)
351
+ d1 = rec_cfg["source_sample_dist"]
352
+ d2 = rec_cfg["sample_detector_dist"]
353
+ n_z, _ = self.process_config.radio_shape(binning=True)
354
+
355
+ delta_z = self.process_config.rec_delta_z # accounts_for_binning
356
+ overlap = ceil(delta_z * d2 / (d1 + d2)) # sqrt(2) missing ?
357
+
358
+ max_overlap = ceil(n_z * d2 / (d1 + d2)) # sqrt(2) missing ?
359
+
360
+ return (max_overlap, 0)
361
+
362
+ def _ensure_good_chunk_size_and_margin(self):
363
+ """
364
+ Check that "chunk_size" and "margin" (if any) are a multiple of binning factor.
365
+ See nabu:!208
366
+ After that, all subregion lengths of _build_tasks_chunked() should be multiple of the binning factor,
367
+ because "delta_z" itself was checked to be a multiple in DatasetValidator._handle_binning()
368
+ """
369
+ bin_z = self.process_config.binning_z
370
+ if bin_z <= 1:
371
+ return
372
+ self.chunk_size -= self.chunk_size % bin_z
373
+ if self._margin_v > 0 and (self._margin_v % bin_z) > 0:
374
+ self._margin_v += bin_z - (self._margin_v % bin_z) # i.e margin = ((margin % bin_z) + 1) * bin_z
375
+
376
+ #
377
+ # Tasks management
378
+ #
379
+
380
+ def _modify_processconfig_stage_1(self):
381
+ # Modify the "process_config" object to dump sinograms
382
+ proc = self.process_config
383
+ self._old_steps_to_save = proc.steps_to_save.copy()
384
+ if "sinogram" in proc.steps_to_save:
385
+ return
386
+ proc._configure_save_steps(self._old_steps_to_save + ["sinogram"])
387
+
388
+ def _undo_modify_processconfig_stage_1(self):
389
+ self.process_config.steps_to_save = self._old_steps_to_save
390
+ if "sinogram" not in self._old_steps_to_save:
391
+ self.process_config.dump_sinogram = False
392
+
393
+ def _modify_processconfig_stage_2(self):
394
+ # Modify the "process_config" object to resume from sinograms
395
+ proc = self.process_config
396
+ self._old_resume_from = proc.resume_from_step
397
+ self._old_proc_steps = proc.processing_steps.copy()
398
+ self._old_proc_options = proc.processing_options.copy()
399
+ proc._configure_resume(resume_from="sinogram")
400
+
401
+ def _undo_modify_processconfig_stage_2(self):
402
+ self.process_config.resume_from_step = self._old_resume_from
403
+ self.process_config.processing_steps = self._old_proc_steps
404
+ self.process_config.processing_options = self._old_proc_options
405
+
406
+ def _build_tasks_grouped(self):
407
+ tasks = []
408
+ segments = subdivide_into_overlapping_segment(self.n_angles, self.group_size, 0)
409
+ for segment in segments:
410
+ _, start_angle, end_angle, _ = segment
411
+ z_min = max(self.z_min - self._margin_v, 0)
412
+ z_max = min(self.z_max + self._margin_v, self.n_z)
413
+ sub_region = ((start_angle, end_angle), (z_min, z_max), (0, self.chunk_shape[-1]))
414
+ tasks.append({"sub_region": sub_region, "margin": (self.z_min - z_min, z_max - self.z_max)})
415
+ self.tasks = tasks
416
+ # Build tasks for stage 2 (sinogram processing + reconstruction)
417
+ segments = subdivide_into_overlapping_segment(self.delta_z, self.chunk_size_sinos, 0)
418
+ self._sino_tasks = []
419
+ for segment in segments:
420
+ _, start_z, end_z, _ = segment
421
+ z_min = self.z_min + start_z
422
+ z_max = min(self.z_min + end_z, self.n_z)
423
+ sub_region = ((0, self.n_angles), (z_min, z_max), (0, self.chunk_shape[-1]))
424
+ self._sino_tasks.append({"sub_region": sub_region, "margin": None})
425
+
426
+ def _build_tasks_chunked(self):
427
+ margin_v = self._margin_v
428
+ if self.chunk_size >= self.delta_z and self.z_min == 0 and self.z_max == self.n_z:
429
+ # In this case we can do everything in a single stage, without margin
430
+ self.tasks = [
431
+ {
432
+ "sub_region": ((0, self.n_angles), (self.z_min, self.z_max), (0, self.chunk_shape[-1])),
433
+ "margin": None,
434
+ }
435
+ ]
436
+ return
437
+ if self.chunk_size - (2 * margin_v) >= self.delta_z:
438
+ # In this case we can do everything in a single stage
439
+ n_slices = self.delta_z
440
+ (margin_up, margin_down) = (min(margin_v, self.z_min), min(margin_v, self.n_z - self.z_max))
441
+ self.tasks = [
442
+ {
443
+ "sub_region": (
444
+ (0, self.n_angles),
445
+ (self.z_min - margin_up, self.z_max + margin_down),
446
+ (0, self.chunk_shape[-1]),
447
+ ),
448
+ "margin": ((margin_up, margin_down), (0, 0)),
449
+ }
450
+ ]
451
+ return
452
+ # In this case there are at least two stages
453
+ n_slices = self.chunk_size - (2 * margin_v)
454
+ n_stages = ceil(self.delta_z / n_slices)
455
+ self.tasks = []
456
+ curr_z_min = self.z_min
457
+ curr_z_max = self.z_min + n_slices
458
+ for i in range(n_stages):
459
+ margin_up = min(margin_v, curr_z_min)
460
+ margin_down = min(margin_v, max(self.n_z - curr_z_max, 0))
461
+ if curr_z_max + margin_down >= self.z_max:
462
+ curr_z_max -= curr_z_max - (self.z_max + 0)
463
+ margin_down = min(margin_v, max(self.n_z - 1 - curr_z_max, 0))
464
+ self.tasks.append(
465
+ {
466
+ "sub_region": (
467
+ (0, self.n_angles),
468
+ (curr_z_min - margin_up, curr_z_max + margin_down),
469
+ (0, self.chunk_shape[-1]),
470
+ ),
471
+ "margin": ((margin_up, margin_down), (0, 0)),
472
+ }
473
+ )
474
+ if curr_z_max == self.z_max:
475
+ # No need for further tasks
476
+ break
477
+ curr_z_min += n_slices
478
+ curr_z_max += n_slices
479
+
480
+ def _build_tasks(self):
481
+ if self._pipeline_mode == "grouped":
482
+ self._build_tasks_grouped()
483
+ else:
484
+ self._ensure_good_chunk_size_and_margin()
485
+ self._build_tasks_chunked()
486
+
487
+ def _print_tasks_chunked(self):
488
+ for task in self.tasks:
489
+ margin_up, margin_down = task["margin"][0]
490
+ s_u, s_d = task["sub_region"][1]
491
+ print(
492
+ "Top Margin: [%04d, %04d[ | Slices: [%04d, %04d[ | Bottom Margin: [%04d, %04d["
493
+ % (s_u, s_u + margin_up, s_u + margin_up, s_d - margin_down, s_d - margin_down, s_d)
494
+ )
495
+
496
+ def _print_tasks(self):
497
+ for task in self.tasks:
498
+ margin_up, margin_down = task["phase_margin"][0]
499
+ s_u, s_d = task["sub_region"]
500
+ print(
501
+ "Top Margin: [%04d, %04d[ | Slices: [%04d, %04d[ | Bottom Margin: [%04d, %04d[" # pylint: disable=E1307
502
+ % (s_u, s_u + margin_up, s_u + margin_up, s_d - margin_down, s_d - margin_down, s_d)
503
+ )
504
+
505
+ def _get_chunk_length(self, task):
506
+ if self._pipeline_mode == "helical":
507
+ (start_z, end_z) = task["sub_region"]
508
+ return end_z - start_z
509
+
510
+ else:
511
+ (start_angle, end_angle), (start_z, end_z), _ = task["sub_region"]
512
+
513
+ if self._pipeline_mode == "chunked":
514
+ return end_z - start_z
515
+ else:
516
+ return end_angle - start_angle
517
+
518
+ def _give_progress_info(self, task):
519
+ self.logger.info("Processing sub-volume %s" % (str(task["sub_region"][:-1])))
520
+
521
+ #
522
+ # Reconstruction
523
+ #
524
+
525
+ def _instantiate_pipeline(self, task):
526
+ self.logger.debug("Creating a new pipeline object")
527
+ chunk_shape = tuple(s[1] - s[0] for s in task["sub_region"])
528
+ args = [self.process_config, chunk_shape]
529
+ kwargs = {}
530
+ if self.backend == "cuda":
531
+ kwargs["cuda_options"] = self.cuda_options
532
+ kwargs["use_grouped_mode"] = self._pipeline_mode == "grouped"
533
+ pipeline = self._pipeline_cls(*args, logger=self.logger, margin=task["margin"], **kwargs)
534
+ self.pipeline = pipeline
535
+
536
+ def _instantiate_pipeline_if_necessary(self, current_task, other_task):
537
+ """
538
+ Instantiate a pipeline only if current_task has a different "delta z" than other_task
539
+ """
540
+ if self.pipeline is None:
541
+ self._instantiate_pipeline(current_task)
542
+ return
543
+ length_cur = self._get_chunk_length(current_task)
544
+ length_other = self._get_chunk_length(other_task)
545
+ if length_cur != length_other:
546
+ self.logger.debug("Destroying pipeline instance and releasing memory")
547
+ self._destroy_pipeline()
548
+ self._instantiate_pipeline(current_task)
549
+
550
+ def _destroy_pipeline(self):
551
+ self.pipeline = None
552
+ # Not elegant, but for now the only way to release Cuda memory
553
+ gc.collect()
554
+
555
+ def _reconstruct_chunked(self, tasks=None):
556
+ self.results = {}
557
+ self._histograms = {}
558
+ self._data_dumps = {}
559
+ tasks = tasks or self.tasks
560
+ prev_task = tasks[0]
561
+ for task in tasks:
562
+ self.logger.info("Processing sub-volume %s" % (str(task["sub_region"])))
563
+ self._instantiate_pipeline_if_necessary(task, prev_task)
564
+ self.pipeline.process_chunk(task["sub_region"])
565
+ task_key = self.pipeline.sub_region
566
+ task_result = self.pipeline.writer.fname
567
+ self.results[task_key] = task_result
568
+ if self.pipeline.writer.histogram:
569
+ self._histograms[task_key] = self.pipeline.writer.histogram_writer.fname
570
+ if len(self.pipeline.datadump_manager.data_dump) > 0:
571
+ self._data_dumps[task_key] = {}
572
+ for step_name, writer in self.pipeline.datadump_manager.data_dump.items():
573
+ self._data_dumps[task_key][step_name] = writer.fname
574
+ prev_task = task
575
+
576
+ def _reconstruct_grouped(self):
577
+ self.results = {}
578
+ # self._histograms = {}
579
+ self._data_dumps = {}
580
+ prev_task = self.tasks[0]
581
+
582
+ # Stage 1: radios processing
583
+ self._modify_processconfig_stage_1()
584
+ for task in self.tasks:
585
+ self.logger.info("Processing sub-volume %s" % (str(task["sub_region"])))
586
+ self._instantiate_pipeline_if_necessary(task, prev_task)
587
+ self.pipeline.process_chunk(task["sub_region"])
588
+ task_key = self.pipeline.sub_region
589
+ task_result = self.pipeline.datadump_manager.data_dump["sinogram"].fname
590
+ self.results[task_key] = task_result
591
+ if len(self.pipeline.datadump_manager.data_dump) > 0:
592
+ self._data_dumps[task_key] = {}
593
+ for step_name, writer in self.pipeline.datadump_manager.data_dump.items():
594
+ self._data_dumps[task_key][step_name] = writer.fname
595
+ prev_task = task
596
+
597
+ self.merge_data_dumps(axis=0)
598
+ self._destroy_pipeline()
599
+ self.logger.info("End of first stage of processing. Will now process sinograms saved on disk")
600
+ self._undo_modify_processconfig_stage_1()
601
+
602
+ # Stage 2: sinograms processing and reconstruction
603
+ self._modify_processconfig_stage_2()
604
+ self._pipeline_mode = "chunked"
605
+ self._reconstruct_chunked(tasks=self._sino_tasks)
606
+ self._pipeline_mode = "grouped"
607
+ self._undo_modify_processconfig_stage_2()
608
+
609
+ def reconstruct(self):
610
+ if self._pipeline_mode == "chunked":
611
+ self._reconstruct_chunked()
612
+ else:
613
+ self._reconstruct_grouped()
614
+
615
+ #
616
+ # Writing data
617
+ #
618
+
619
+ def get_relative_files(self, files=None):
620
+ out_cfg = self.process_config.nabu_config["output"]
621
+ if files is None:
622
+ files = list(self.results.values())
623
+ try:
624
+ files.sort(key=variable_idxlen_sort)
625
+ except:
626
+ self.logger.error(
627
+ "Lexical ordering failed, falling back to default sort - it will fail for more than 10k projections"
628
+ )
629
+ files.sort()
630
+ local_files = [join(out_cfg["file_prefix"], basename(fname)) for fname in files]
631
+ return local_files
632
+
633
+ def _get_reconstruction_metadata(self, partial_volumes_files=None):
634
+ metadata = {
635
+ "nabu_config": self.process_config.nabu_config,
636
+ "processing_options": self.process_config.processing_options,
637
+ }
638
+ if self._reconstruction_output_format_is_hdf5 and partial_volumes_files is not None:
639
+ metadata[self._process_name + "_stages"] = {
640
+ str(k): v for k, v in zip(self.results.keys(), partial_volumes_files)
641
+ }
642
+ if not (self._reconstruction_output_format_is_hdf5):
643
+ metadata["process_info"] = {
644
+ "process_name": "reconstruction",
645
+ "processing_index": 0,
646
+ "nabu_version": nabu_version,
647
+ }
648
+ return metadata
649
+
650
+ def merge_hdf5_reconstructions(
651
+ self,
652
+ output_file=None,
653
+ prefix=None,
654
+ files=None,
655
+ process_name=None,
656
+ axis=0,
657
+ merge_histograms=True,
658
+ output_dir=None,
659
+ ):
660
+ """
661
+ Merge existing hdf5 files by creating a HDF5 virtual dataset.
662
+
663
+ Parameters
664
+ ----------
665
+ output_file: str, optional
666
+ Output file name. If not given, the file prefix in section "output"
667
+ of nabu config will be taken.
668
+ """
669
+ out_cfg = self.process_config.nabu_config["output"]
670
+ out_dir = output_dir or out_cfg["location"]
671
+ prefix = prefix or ""
672
+ # Prevent issue when out_dir is empty, which happens only if dataset/location is a relative path.
673
+ # TODO this should be prevented earlier
674
+ if out_dir is None or len(out_dir.strip()) == 0:
675
+ out_dir = dirname(dirname(self.results[list(self.results.keys())[0]]))
676
+ #
677
+ if output_file is None:
678
+ output_file = join(out_dir, prefix + out_cfg["file_prefix"]) + ".hdf5"
679
+ if isfile(output_file):
680
+ msg = str("File %s already exists" % output_file)
681
+ if out_cfg["overwrite_results"]:
682
+ msg += ". Overwriting as requested in configuration file"
683
+ self.logger.warning(msg)
684
+ else:
685
+ msg += ". Set overwrite_results to True in [output] to overwrite existing files."
686
+ self.logger.fatal(msg)
687
+ raise ValueError(msg)
688
+
689
+ local_files = files
690
+ if local_files is None:
691
+ local_files = self.get_relative_files()
692
+ if local_files == []:
693
+ self.logger.error("No files to merge")
694
+ return
695
+ entry = getattr(self.process_config.dataset_info.dataset_scanner, "entry", "entry")
696
+ process_name = process_name or self._process_name
697
+ h5_path = join(entry, *[process_name, "results", "data"])
698
+ #
699
+ self.logger.info("Merging %ss to %s" % (process_name, output_file))
700
+ #
701
+ # When dumping to disk an intermediate step taking place before cropping the radios,
702
+ # 'start_z' and 'end_z' found in nabu config have to be augmented with margin_z.
703
+ # (these values are checked in ProcessConfig._configure_resume())
704
+ #
705
+ patched_start_end_z = False
706
+ user_rec_config = self.process_config.processing_options["reconstruction"]
707
+ if (
708
+ self._margin_v > 0
709
+ and process_name != "reconstruction"
710
+ and self.process_config.is_before_radios_cropping(process_name)
711
+ ):
712
+ patched_start_end_z = True
713
+ old_start_z = user_rec_config["start_z"]
714
+ old_end_z = user_rec_config["end_z"]
715
+ user_rec_config["start_z"] = max(0, old_start_z - self._margin_v)
716
+ user_rec_config["end_z"] = min(self.n_z, old_end_z + self._margin_v)
717
+ #
718
+ merge_hdf5_files(
719
+ local_files,
720
+ h5_path,
721
+ output_file,
722
+ process_name,
723
+ output_entry=entry,
724
+ output_filemode="a",
725
+ processing_index=0,
726
+ config=self._get_reconstruction_metadata(local_files),
727
+ base_dir=out_dir,
728
+ axis=axis,
729
+ overwrite=out_cfg["overwrite_results"],
730
+ )
731
+ if merge_histograms:
732
+ self.merge_histograms(output_file=output_file)
733
+ if patched_start_end_z:
734
+ user_rec_config["start_z"] = old_start_z
735
+ user_rec_config["end_z"] = old_end_z
736
+ return output_file
737
+
738
+ def merge_histograms(self, output_file=None, force_merge=False):
739
+ """
740
+ Merge the partial histograms
741
+ """
742
+ if not (self._do_histograms):
743
+ return
744
+ if self._histogram_merged and not (force_merge):
745
+ return
746
+ self.logger.info("Merging histograms")
747
+
748
+ masterfile_entry = getattr(self.process_config.dataset_info.dataset_scanner, "entry", "entry")
749
+ masterfile_process_name = "histogram" # TODO don't hardcode process name
750
+ output_entry = masterfile_entry
751
+
752
+ out_cfg = self.process_config.nabu_config["output"]
753
+ if output_file is None:
754
+ output_file = (
755
+ join(dirname(list(self._histograms.values())[0]), out_cfg["file_prefix"] + "_histogram") + ".hdf5"
756
+ )
757
+ local_files = self.get_relative_files(files=list(self._histograms.values()))
758
+ #
759
+ h5_path = join(masterfile_entry, *[masterfile_process_name, "results", "data"])
760
+ #
761
+
762
+ try:
763
+ files = sorted(self._histograms.values(), key=variable_idxlen_sort)
764
+ except:
765
+ self.logger.error(
766
+ "Lexical ordering of histogram failed, falling back to default sort - it will fail for more than 10k projections"
767
+ )
768
+ files = sorted(self._histograms.values())
769
+ data_urls = []
770
+ for fname in files:
771
+ url = DataUrl(file_path=fname, data_path=h5_path, data_slice=None, scheme="silx")
772
+ data_urls.append(url)
773
+ histograms = []
774
+ for data_url in data_urls:
775
+ h2D = get_data(data_url)
776
+ histograms.append((h2D[0], add_last_bin(h2D[1])))
777
+ histograms_merger = PartialHistogram(method="fixed_bins_number", num_bins=histograms[0][0].size)
778
+ merged_hist = histograms_merger.merge_histograms(histograms)
779
+
780
+ rec_region = self.process_config.rec_region
781
+ # Not sure if we should account for binning here.
782
+ # (note that "rec_region" does not account for binning).
783
+ # Anyway the histogram has little use when using binning
784
+ volume_shape = (
785
+ rec_region["end_z"] - rec_region["start_z"] + 1,
786
+ rec_region["end_y"] - rec_region["start_y"] + 1,
787
+ rec_region["end_x"] - rec_region["start_x"] + 1,
788
+ )
789
+ writer = NXProcessWriter(output_file, entry=output_entry, filemode="a", overwrite=True)
790
+ writer.write(
791
+ hist_as_2Darray(merged_hist),
792
+ "histogram",
793
+ processing_index=1,
794
+ config={
795
+ "files": local_files,
796
+ "bins": self.process_config.nabu_config["postproc"]["histogram_bins"],
797
+ "volume_shape": volume_shape,
798
+ },
799
+ is_frames_stack=False,
800
+ direct_access=False,
801
+ )
802
+ self._histogram_merged = True
803
+
804
+ def merge_data_dumps(self, axis=1):
805
+ # Collect in a dict where keys are step names (instead of task keys)
806
+ dumps = {}
807
+ for task_key, data_dumps in self._data_dumps.items():
808
+ for step_name, fname in data_dumps.items():
809
+ fname = join(basename(dirname(fname)), basename(fname))
810
+ if step_name not in dumps:
811
+ dumps[step_name] = [fname]
812
+ else:
813
+ dumps[step_name].append(fname)
814
+ # Merge HDF5 files
815
+ for step_name, files in dumps.items():
816
+ dump_file = self.process_config.get_save_steps_file(step_name=step_name)
817
+ self.merge_hdf5_reconstructions(
818
+ output_file=dump_file,
819
+ output_dir=dirname(dump_file),
820
+ files=files,
821
+ process_name=step_name,
822
+ axis=axis,
823
+ merge_histograms=False,
824
+ )
825
+
826
+ def write_metadata_file(self):
827
+ metadata = self._get_reconstruction_metadata()
828
+ save_options = self.process_config.processing_options["save"]
829
+ # Perhaps there is more elegant
830
+ metadata_writer = VolumeSingleFrameBase(
831
+ url=DataUrl(file_path=save_options["location"], data_path="/"),
832
+ volume_basename=save_options["file_prefix"],
833
+ overwrite=True,
834
+ metadata=metadata,
835
+ )
836
+ metadata_writer.save_metadata()
837
+
838
+ def finalize_files_saving(self):
839
+ """
840
+ Last step to save data. This will do several things:
841
+ - Merge data dumps (which are always HDF5 files): create a master file for all data-dump sub-volumes
842
+ - Merge HDF5 reconstruction (if output format is HDF5)
843
+ - Create a "metadata file" (if output format is not HDF5)
844
+ - Merge histograms (if output format is not HDF5)
845
+ """
846
+ self.merge_data_dumps()
847
+ if self._reconstruction_output_format_is_hdf5:
848
+ self.merge_hdf5_reconstructions()
849
+ else:
850
+ self.merge_histograms()
851
+ self.write_metadata_file()