nabu 2024.1.0rc4__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 (2092) 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/bootstrap.py +88 -0
  6. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap_stitching.py +69 -0
  7. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/cast_volume.py +272 -0
  8. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/cli_configs.py +626 -0
  9. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/compare_volumes.py +94 -0
  10. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/composite_cor.py +144 -0
  11. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/correct_rot.py +70 -0
  12. 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
  13. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_pix.py +358 -0
  14. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_rot.py +449 -0
  15. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/double_flatfield.py +143 -0
  16. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/generate_header.py +261 -0
  17. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/histogram.py +197 -0
  18. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/multicor.py +90 -0
  19. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/nx_z_splitter.py +125 -0
  20. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/parse_reconstruction_log.py +151 -0
  21. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/prepare_weights_double.py +163 -0
  22. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct.py +120 -0
  23. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct_helical.py +116 -0
  24. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reduce_dark_flat.py +181 -0
  25. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/rotate.py +162 -0
  26. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/shrink_dataset.py +98 -0
  27. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/stitching.py +85 -0
  28. 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
  29. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/utils.py +33 -0
  30. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/validator.py +110 -0
  31. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/__init__.py +0 -0
  32. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/convolution.py +8 -0
  33. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/fft.py +4 -0
  34. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/kernel.py +97 -0
  35. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/medfilt.py +6 -0
  36. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/padding.py +6 -0
  37. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/processing.py +75 -0
  38. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/tests/__init__.py +1 -0
  39. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/utils.py +331 -0
  40. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/__init__.py +12 -0
  41. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/alignment.py +578 -0
  42. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor.py +1621 -0
  43. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor_sino.py +183 -0
  44. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/distortion.py +112 -0
  45. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/focus.py +362 -0
  46. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/__init__.py +0 -0
  47. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_alignment.py +70 -0
  48. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_cor.py +472 -0
  49. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_focus.py +105 -0
  50. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_tilt.py +41 -0
  51. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_translation.py +78 -0
  52. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tilt.py +214 -0
  53. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/translation.py +193 -0
  54. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/utils.py +39 -0
  55. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/__init__.py +2 -0
  56. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/cast_volume.py +371 -0
  57. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/detector_distortion.py +305 -0
  58. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/reader.py +628 -0
  59. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/reader_helical.py +114 -0
  60. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/__init__.py +0 -0
  61. 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
  62. 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
  63. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_writers.py +187 -0
  64. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tiffwriter_zmm.py +99 -0
  65. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/utils.py +263 -0
  66. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/writer.py +892 -0
  67. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/__init__.py +0 -0
  68. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/binning.py +98 -0
  69. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/fftshift.py +6 -0
  70. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/filters.py +24 -0
  71. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/fourier_filters.py +152 -0
  72. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram.py +6 -0
  73. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram_cuda.py +8 -0
  74. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/kernel_base.py +4 -0
  75. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/padding.py +83 -0
  76. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/padding_base.py +6 -0
  77. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/processing_base.py +4 -0
  78. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation.py +6 -0
  79. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation_cuda.py +6 -0
  80. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/__init__.py +1 -0
  81. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_binning.py +48 -0
  82. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_interpolation.py +70 -0
  83. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/transpose.py +6 -0
  84. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp.py +4 -0
  85. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_cuda.py +6 -0
  86. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_opencl.py +8 -0
  87. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/utils.py +117 -0
  88. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/__init__.py +0 -0
  89. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/fft.py +6 -0
  90. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/kernel.py +135 -0
  91. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/memcpy.py +35 -0
  92. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/padding.py +6 -0
  93. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/processing.py +62 -0
  94. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/tests/__init__.py +0 -0
  95. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/utils.py +292 -0
  96. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/__init__.py +0 -0
  97. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config.py +265 -0
  98. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config_validators.py +589 -0
  99. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/datadump.py +164 -0
  100. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/dataset_validator.py +211 -0
  101. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/detector_distortion_provider.py +20 -0
  102. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/estimators.py +1012 -0
  103. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fallback_utils.py +149 -0
  104. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/__init__.py +0 -0
  105. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked.py +849 -0
  106. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked_cuda.py +152 -0
  107. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/computations.py +260 -0
  108. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/dataset_validator.py +63 -0
  109. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/nabu_config.py +590 -0
  110. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/processconfig.py +825 -0
  111. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/reconstruction.py +851 -0
  112. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/__init__.py +0 -0
  113. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/dataset_validator.py +19 -0
  114. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/fbp.py +147 -0
  115. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/filtering.py +246 -0
  116. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/gridded_accumulator.py +575 -0
  117. 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
  118. 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
  119. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_reconstruction.py +598 -0
  120. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_utils.py +42 -0
  121. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/nabu_config.py +175 -0
  122. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/processconfig.py +62 -0
  123. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/span_strategy.py +483 -0
  124. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/__init__.py +0 -0
  125. 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
  126. 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
  127. 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
  128. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/utils.py +51 -0
  129. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/weight_balancer.py +101 -0
  130. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/params.py +163 -0
  131. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/processconfig.py +210 -0
  132. 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
  133. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/tests/test_estimators.py +149 -0
  134. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/utils.py +116 -0
  135. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/writer.py +193 -0
  136. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/xrdct/__init__.py +0 -0
  137. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/__init__.py +7 -0
  138. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/alignment.py +11 -0
  139. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd.py +161 -0
  140. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd_cuda.py +169 -0
  141. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf.py +361 -0
  142. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf_cuda.py +142 -0
  143. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/distortion.py +92 -0
  144. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield.py +212 -0
  145. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_cuda.py +174 -0
  146. 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
  147. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield.py +448 -0
  148. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_cuda.py +144 -0
  149. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_variable_region.py +79 -0
  150. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase.py +425 -0
  151. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase_cuda.py +143 -0
  152. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift.py +95 -0
  153. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift_cuda.py +102 -0
  154. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/__init__.py +1 -0
  155. 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
  156. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_ctf.py +250 -0
  157. 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
  158. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_flatfield.py +626 -0
  159. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_paganin.py +67 -0
  160. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_vshift.py +73 -0
  161. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/__init__.py +0 -0
  162. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/convolution_cuda.py +375 -0
  163. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_base.py +163 -0
  164. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_cuda.py +256 -0
  165. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_opencl.py +54 -0
  166. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fftshift.py +134 -0
  167. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram.py +286 -0
  168. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram_cuda.py +103 -0
  169. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/kernel_base.py +126 -0
  170. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/medfilt_cuda.py +159 -0
  171. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd.py +29 -0
  172. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd_cuda.py +68 -0
  173. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_base.py +71 -0
  174. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_cuda.py +75 -0
  175. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_opencl.py +77 -0
  176. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/processing_base.py +123 -0
  177. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/roll_opencl.py +64 -0
  178. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation.py +63 -0
  179. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation_cuda.py +66 -0
  180. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/__init__.py +0 -0
  181. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fft.py +268 -0
  182. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fftshift.py +71 -0
  183. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_histogram.py +55 -0
  184. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_medfilt.py +77 -0
  185. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_muladd.py +54 -0
  186. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_padding.py +247 -0
  187. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_roll.py +63 -0
  188. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_rotation.py +83 -0
  189. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_transpose.py +72 -0
  190. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_unsharp.py +106 -0
  191. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/transpose.py +126 -0
  192. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp.py +79 -0
  193. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_cuda.py +53 -0
  194. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_opencl.py +75 -0
  195. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/__init__.py +3 -0
  196. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/cone.py +241 -0
  197. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp.py +124 -0
  198. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_base.py +391 -0
  199. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_opencl.py +78 -0
  200. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering.py +220 -0
  201. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_cuda.py +103 -0
  202. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_opencl.py +111 -0
  203. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/projection.py +240 -0
  204. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor.py +174 -0
  205. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor_cuda.py +44 -0
  206. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings.py +248 -0
  207. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings_cuda.py +322 -0
  208. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram.py +467 -0
  209. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_cuda.py +250 -0
  210. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_opencl.py +40 -0
  211. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/__init__.py +1 -0
  212. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_cone.py +308 -0
  213. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_deringer.py +220 -0
  214. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_fbp.py +252 -0
  215. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_filtering.py +133 -0
  216. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_halftomo.py +100 -0
  217. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_projector.py +164 -0
  218. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_reconstructor.py +93 -0
  219. 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
  220. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/__init__.py +0 -0
  221. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/cli/__init__.py +0 -0
  222. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/cor.py +5 -0
  223. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/dataset_analyzer.py +469 -0
  224. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/gpu.py +169 -0
  225. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/logger.py +130 -0
  226. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/nxflatfield.py +217 -0
  227. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/templates/__init__.py +0 -0
  228. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/__init__.py +0 -0
  229. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_nxflatfield.py +104 -0
  230. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_units.py +47 -0
  231. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/utils.py +174 -0
  232. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/__init__.py +0 -0
  233. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/alignment.py +184 -0
  234. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/config.py +1286 -0
  235. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/definitions.py +6 -0
  236. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/frame_composition.py +155 -0
  237. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/overlap.py +373 -0
  238. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/sample_normalization.py +60 -0
  239. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/slurm_utils.py +204 -0
  240. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/__init__.py +0 -0
  241. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_alignment.py +99 -0
  242. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_config.py +226 -0
  243. 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
  244. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_overlap.py +98 -0
  245. 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
  246. 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
  247. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_utils.py +21 -0
  248. 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
  249. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/utils.py +563 -0
  250. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/z_stitching.py +2279 -0
  251. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/tests.py +51 -0
  252. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/testutils.py +375 -0
  253. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/__init__.py +0 -0
  254. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/algotom_convert_sino.py +276 -0
  255. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/pore3d_deringer_munch.py +108 -0
  256. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomocupy_remove_stripe.py +586 -0
  257. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomopy_phase.py +239 -0
  258. 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
  259. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/utils.py +836 -0
  260. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/doc/conf.py +137 -0
  261. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/doc/create_conf_doc.py +38 -0
  262. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/doc/get_mathjax.py +34 -0
  263. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/__init__.py +17 -0
  264. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/__init__.py +0 -0
  265. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap.py +88 -0
  266. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap_stitching.py +69 -0
  267. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/cast_volume.py +272 -0
  268. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/cli_configs.py +626 -0
  269. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/compare_volumes.py +94 -0
  270. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/composite_cor.py +144 -0
  271. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/correct_rot.py +70 -0
  272. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/create_distortion_map_from_poly.py +153 -0
  273. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_pix.py +358 -0
  274. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_rot.py +449 -0
  275. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/double_flatfield.py +143 -0
  276. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/generate_header.py +261 -0
  277. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/histogram.py +197 -0
  278. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/multicor.py +90 -0
  279. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/nx_z_splitter.py +125 -0
  280. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/parse_reconstruction_log.py +151 -0
  281. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/prepare_weights_double.py +163 -0
  282. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct.py +120 -0
  283. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct_helical.py +116 -0
  284. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reduce_dark_flat.py +181 -0
  285. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/rotate.py +162 -0
  286. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/shrink_dataset.py +98 -0
  287. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/stitching.py +85 -0
  288. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/tests/test_reduce_dark_flat.py +78 -0
  289. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/utils.py +33 -0
  290. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/validator.py +110 -0
  291. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/__init__.py +0 -0
  292. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/convolution.py +8 -0
  293. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/fft.py +4 -0
  294. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/kernel.py +97 -0
  295. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/medfilt.py +6 -0
  296. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/padding.py +6 -0
  297. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/processing.py +75 -0
  298. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/tests/__init__.py +1 -0
  299. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/utils.py +331 -0
  300. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/__init__.py +12 -0
  301. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/alignment.py +578 -0
  302. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor.py +1621 -0
  303. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor_sino.py +183 -0
  304. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/distortion.py +112 -0
  305. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/focus.py +362 -0
  306. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/__init__.py +0 -0
  307. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_alignment.py +70 -0
  308. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_cor.py +472 -0
  309. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_focus.py +105 -0
  310. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_tilt.py +41 -0
  311. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_translation.py +78 -0
  312. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tilt.py +214 -0
  313. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/translation.py +193 -0
  314. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/utils.py +39 -0
  315. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/__init__.py +2 -0
  316. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/cast_volume.py +371 -0
  317. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/detector_distortion.py +305 -0
  318. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/reader.py +628 -0
  319. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/reader_helical.py +114 -0
  320. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/__init__.py +0 -0
  321. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_cast_volume.py +339 -0
  322. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_detector_distortion.py +178 -0
  323. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_writers.py +187 -0
  324. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tiffwriter_zmm.py +99 -0
  325. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/utils.py +263 -0
  326. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/writer.py +892 -0
  327. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/__init__.py +0 -0
  328. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/binning.py +98 -0
  329. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/fftshift.py +6 -0
  330. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/filters.py +24 -0
  331. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/fourier_filters.py +152 -0
  332. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram.py +6 -0
  333. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram_cuda.py +8 -0
  334. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/kernel_base.py +4 -0
  335. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/padding.py +83 -0
  336. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/padding_base.py +6 -0
  337. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/processing_base.py +4 -0
  338. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation.py +6 -0
  339. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation_cuda.py +6 -0
  340. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/__init__.py +1 -0
  341. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_binning.py +48 -0
  342. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_interpolation.py +70 -0
  343. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/transpose.py +6 -0
  344. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp.py +4 -0
  345. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_cuda.py +6 -0
  346. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_opencl.py +8 -0
  347. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/utils.py +117 -0
  348. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/__init__.py +0 -0
  349. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/fft.py +6 -0
  350. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/kernel.py +135 -0
  351. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/memcpy.py +35 -0
  352. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/padding.py +6 -0
  353. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/processing.py +62 -0
  354. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/tests/__init__.py +0 -0
  355. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/utils.py +292 -0
  356. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/__init__.py +0 -0
  357. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config.py +265 -0
  358. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config_validators.py +589 -0
  359. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/datadump.py +164 -0
  360. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/dataset_validator.py +211 -0
  361. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/detector_distortion_provider.py +20 -0
  362. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/estimators.py +1012 -0
  363. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fallback_utils.py +149 -0
  364. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/__init__.py +0 -0
  365. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked.py +849 -0
  366. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked_cuda.py +152 -0
  367. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/computations.py +260 -0
  368. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/dataset_validator.py +63 -0
  369. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/nabu_config.py +590 -0
  370. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/processconfig.py +825 -0
  371. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/reconstruction.py +851 -0
  372. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/__init__.py +0 -0
  373. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/dataset_validator.py +19 -0
  374. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/fbp.py +147 -0
  375. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/filtering.py +246 -0
  376. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/gridded_accumulator.py +575 -0
  377. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded.py +1670 -0
  378. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded_cuda.py +119 -0
  379. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_reconstruction.py +598 -0
  380. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_utils.py +42 -0
  381. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/nabu_config.py +175 -0
  382. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/processconfig.py +62 -0
  383. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/span_strategy.py +483 -0
  384. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/__init__.py +0 -0
  385. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_accumulator.py +157 -0
  386. 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
  387. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_strategy.py +61 -0
  388. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/utils.py +51 -0
  389. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/weight_balancer.py +101 -0
  390. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/params.py +163 -0
  391. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/processconfig.py +210 -0
  392. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/tests/test_chunk_reader.py +78 -0
  393. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/tests/test_estimators.py +149 -0
  394. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/utils.py +116 -0
  395. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/writer.py +193 -0
  396. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/xrdct/__init__.py +0 -0
  397. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/__init__.py +7 -0
  398. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/alignment.py +11 -0
  399. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd.py +161 -0
  400. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd_cuda.py +169 -0
  401. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf.py +361 -0
  402. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf_cuda.py +142 -0
  403. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/distortion.py +92 -0
  404. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield.py +212 -0
  405. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_cuda.py +174 -0
  406. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_variable_region.py +68 -0
  407. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield.py +448 -0
  408. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_cuda.py +144 -0
  409. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_variable_region.py +79 -0
  410. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase.py +425 -0
  411. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase_cuda.py +143 -0
  412. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift.py +95 -0
  413. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift_cuda.py +102 -0
  414. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/__init__.py +1 -0
  415. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_ccd_corr.py +59 -0
  416. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_ctf.py +250 -0
  417. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_double_flatfield.py +86 -0
  418. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_flatfield.py +626 -0
  419. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_paganin.py +67 -0
  420. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_vshift.py +73 -0
  421. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/__init__.py +0 -0
  422. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/convolution_cuda.py +375 -0
  423. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_base.py +163 -0
  424. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_cuda.py +256 -0
  425. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_opencl.py +54 -0
  426. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fftshift.py +134 -0
  427. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram.py +286 -0
  428. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram_cuda.py +103 -0
  429. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/kernel_base.py +126 -0
  430. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/medfilt_cuda.py +159 -0
  431. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd.py +29 -0
  432. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd_cuda.py +68 -0
  433. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_base.py +71 -0
  434. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_cuda.py +75 -0
  435. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_opencl.py +77 -0
  436. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/processing_base.py +123 -0
  437. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/roll_opencl.py +64 -0
  438. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation.py +63 -0
  439. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation_cuda.py +66 -0
  440. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/__init__.py +0 -0
  441. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fft.py +268 -0
  442. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fftshift.py +71 -0
  443. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_histogram.py +55 -0
  444. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_medfilt.py +77 -0
  445. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_muladd.py +54 -0
  446. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_padding.py +247 -0
  447. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_roll.py +63 -0
  448. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_rotation.py +83 -0
  449. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_transpose.py +72 -0
  450. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_unsharp.py +106 -0
  451. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/transpose.py +126 -0
  452. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp.py +79 -0
  453. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_cuda.py +53 -0
  454. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_opencl.py +75 -0
  455. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/__init__.py +3 -0
  456. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/cone.py +241 -0
  457. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp.py +124 -0
  458. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_base.py +391 -0
  459. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_opencl.py +78 -0
  460. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering.py +220 -0
  461. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_cuda.py +103 -0
  462. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_opencl.py +111 -0
  463. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/projection.py +240 -0
  464. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor.py +174 -0
  465. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor_cuda.py +44 -0
  466. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings.py +248 -0
  467. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings_cuda.py +322 -0
  468. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram.py +467 -0
  469. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_cuda.py +250 -0
  470. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_opencl.py +40 -0
  471. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/__init__.py +1 -0
  472. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_cone.py +308 -0
  473. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_deringer.py +220 -0
  474. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_fbp.py +252 -0
  475. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_filtering.py +133 -0
  476. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_halftomo.py +100 -0
  477. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_projector.py +164 -0
  478. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_reconstructor.py +93 -0
  479. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_sino_normalization.py +85 -0
  480. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/__init__.py +0 -0
  481. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/cli/__init__.py +0 -0
  482. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/cor.py +5 -0
  483. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/dataset_analyzer.py +469 -0
  484. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/gpu.py +169 -0
  485. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/logger.py +130 -0
  486. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/nxflatfield.py +217 -0
  487. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/templates/__init__.py +0 -0
  488. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/__init__.py +0 -0
  489. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_nxflatfield.py +104 -0
  490. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_units.py +47 -0
  491. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/utils.py +174 -0
  492. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/__init__.py +0 -0
  493. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/alignment.py +184 -0
  494. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/config.py +1286 -0
  495. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/definitions.py +6 -0
  496. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/frame_composition.py +155 -0
  497. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/overlap.py +373 -0
  498. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/sample_normalization.py +60 -0
  499. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/slurm_utils.py +204 -0
  500. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/__init__.py +0 -0
  501. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_alignment.py +99 -0
  502. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_config.py +226 -0
  503. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_frame_composition.py +180 -0
  504. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_overlap.py +98 -0
  505. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_sample_normalization.py +49 -0
  506. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_slurm_utils.py +146 -0
  507. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_utils.py +21 -0
  508. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_z_stitching.py +1183 -0
  509. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/utils.py +563 -0
  510. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/z_stitching.py +2279 -0
  511. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/tests.py +51 -0
  512. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/testutils.py +375 -0
  513. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/__init__.py +0 -0
  514. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/algotom_convert_sino.py +276 -0
  515. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/pore3d_deringer_munch.py +108 -0
  516. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomocupy_remove_stripe.py +586 -0
  517. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomopy_phase.py +239 -0
  518. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomwer_load_flats_darks.py +162 -0
  519. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/utils.py +836 -0
  520. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/doc/conf.py +137 -0
  521. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/doc/create_conf_doc.py +38 -0
  522. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/doc/get_mathjax.py +34 -0
  523. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/__init__.py +17 -0
  524. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/__init__.py +0 -0
  525. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap.py +88 -0
  526. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap_stitching.py +69 -0
  527. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/cast_volume.py +272 -0
  528. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/cli_configs.py +626 -0
  529. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/compare_volumes.py +94 -0
  530. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/composite_cor.py +144 -0
  531. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/correct_rot.py +70 -0
  532. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/create_distortion_map_from_poly.py +153 -0
  533. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_pix.py +358 -0
  534. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_rot.py +449 -0
  535. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/double_flatfield.py +143 -0
  536. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/generate_header.py +261 -0
  537. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/histogram.py +197 -0
  538. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/multicor.py +90 -0
  539. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/nx_z_splitter.py +125 -0
  540. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/parse_reconstruction_log.py +151 -0
  541. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/prepare_weights_double.py +163 -0
  542. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct.py +120 -0
  543. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct_helical.py +116 -0
  544. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reduce_dark_flat.py +181 -0
  545. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/rotate.py +162 -0
  546. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/shrink_dataset.py +98 -0
  547. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/stitching.py +85 -0
  548. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/tests/test_reduce_dark_flat.py +78 -0
  549. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/utils.py +33 -0
  550. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/validator.py +110 -0
  551. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/__init__.py +0 -0
  552. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/convolution.py +8 -0
  553. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/fft.py +4 -0
  554. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/kernel.py +97 -0
  555. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/medfilt.py +6 -0
  556. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/padding.py +6 -0
  557. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/processing.py +75 -0
  558. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/tests/__init__.py +1 -0
  559. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/utils.py +331 -0
  560. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/__init__.py +12 -0
  561. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/alignment.py +578 -0
  562. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor.py +1621 -0
  563. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor_sino.py +183 -0
  564. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/distortion.py +112 -0
  565. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/focus.py +362 -0
  566. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/__init__.py +0 -0
  567. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_alignment.py +70 -0
  568. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_cor.py +472 -0
  569. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_focus.py +105 -0
  570. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_tilt.py +41 -0
  571. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_translation.py +78 -0
  572. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tilt.py +214 -0
  573. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/translation.py +193 -0
  574. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/utils.py +39 -0
  575. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/__init__.py +2 -0
  576. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/cast_volume.py +371 -0
  577. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/detector_distortion.py +305 -0
  578. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/reader.py +628 -0
  579. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/reader_helical.py +114 -0
  580. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/__init__.py +0 -0
  581. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_cast_volume.py +339 -0
  582. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_detector_distortion.py +178 -0
  583. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_writers.py +187 -0
  584. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tiffwriter_zmm.py +99 -0
  585. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/utils.py +263 -0
  586. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/writer.py +892 -0
  587. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/__init__.py +0 -0
  588. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/binning.py +98 -0
  589. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/fftshift.py +6 -0
  590. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/filters.py +24 -0
  591. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/fourier_filters.py +152 -0
  592. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram.py +6 -0
  593. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram_cuda.py +8 -0
  594. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/kernel_base.py +4 -0
  595. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/padding.py +83 -0
  596. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/padding_base.py +6 -0
  597. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/processing_base.py +4 -0
  598. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation.py +6 -0
  599. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation_cuda.py +6 -0
  600. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/__init__.py +1 -0
  601. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_binning.py +48 -0
  602. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_interpolation.py +70 -0
  603. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/transpose.py +6 -0
  604. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp.py +4 -0
  605. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_cuda.py +6 -0
  606. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_opencl.py +8 -0
  607. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/utils.py +117 -0
  608. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/__init__.py +0 -0
  609. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/fft.py +6 -0
  610. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/kernel.py +135 -0
  611. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/memcpy.py +35 -0
  612. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/padding.py +6 -0
  613. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/processing.py +62 -0
  614. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/tests/__init__.py +0 -0
  615. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/utils.py +292 -0
  616. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/__init__.py +0 -0
  617. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config.py +265 -0
  618. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config_validators.py +589 -0
  619. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/datadump.py +164 -0
  620. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/dataset_validator.py +211 -0
  621. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/detector_distortion_provider.py +20 -0
  622. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/estimators.py +1012 -0
  623. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fallback_utils.py +149 -0
  624. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/__init__.py +0 -0
  625. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked.py +849 -0
  626. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked_cuda.py +152 -0
  627. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/computations.py +260 -0
  628. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/dataset_validator.py +63 -0
  629. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/nabu_config.py +590 -0
  630. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/processconfig.py +825 -0
  631. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/reconstruction.py +851 -0
  632. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/__init__.py +0 -0
  633. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/dataset_validator.py +19 -0
  634. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/fbp.py +147 -0
  635. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/filtering.py +246 -0
  636. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/gridded_accumulator.py +575 -0
  637. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded.py +1670 -0
  638. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded_cuda.py +119 -0
  639. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_reconstruction.py +598 -0
  640. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_utils.py +42 -0
  641. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/nabu_config.py +175 -0
  642. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/processconfig.py +62 -0
  643. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/span_strategy.py +483 -0
  644. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/__init__.py +0 -0
  645. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_accumulator.py +157 -0
  646. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_pipeline_elements_full.py +355 -0
  647. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_strategy.py +61 -0
  648. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/utils.py +51 -0
  649. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/weight_balancer.py +101 -0
  650. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/params.py +163 -0
  651. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/processconfig.py +210 -0
  652. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/tests/test_chunk_reader.py +78 -0
  653. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/tests/test_estimators.py +149 -0
  654. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/utils.py +116 -0
  655. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/writer.py +193 -0
  656. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/xrdct/__init__.py +0 -0
  657. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/__init__.py +7 -0
  658. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/alignment.py +11 -0
  659. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd.py +161 -0
  660. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd_cuda.py +169 -0
  661. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf.py +361 -0
  662. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf_cuda.py +142 -0
  663. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/distortion.py +92 -0
  664. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield.py +212 -0
  665. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_cuda.py +174 -0
  666. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_variable_region.py +68 -0
  667. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield.py +448 -0
  668. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_cuda.py +144 -0
  669. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_variable_region.py +79 -0
  670. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase.py +425 -0
  671. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase_cuda.py +143 -0
  672. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift.py +95 -0
  673. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift_cuda.py +102 -0
  674. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/__init__.py +1 -0
  675. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_ccd_corr.py +59 -0
  676. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_ctf.py +250 -0
  677. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_double_flatfield.py +86 -0
  678. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_flatfield.py +626 -0
  679. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_paganin.py +67 -0
  680. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_vshift.py +73 -0
  681. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/__init__.py +0 -0
  682. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/convolution_cuda.py +375 -0
  683. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_base.py +163 -0
  684. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_cuda.py +256 -0
  685. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_opencl.py +54 -0
  686. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fftshift.py +134 -0
  687. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram.py +286 -0
  688. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram_cuda.py +103 -0
  689. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/kernel_base.py +126 -0
  690. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/medfilt_cuda.py +159 -0
  691. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd.py +29 -0
  692. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd_cuda.py +68 -0
  693. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_base.py +71 -0
  694. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_cuda.py +75 -0
  695. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_opencl.py +77 -0
  696. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/processing_base.py +123 -0
  697. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/roll_opencl.py +64 -0
  698. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation.py +63 -0
  699. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation_cuda.py +66 -0
  700. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/__init__.py +0 -0
  701. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fft.py +268 -0
  702. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fftshift.py +71 -0
  703. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_histogram.py +55 -0
  704. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_medfilt.py +77 -0
  705. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_muladd.py +54 -0
  706. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_padding.py +247 -0
  707. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_roll.py +63 -0
  708. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_rotation.py +83 -0
  709. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_transpose.py +72 -0
  710. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_unsharp.py +106 -0
  711. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/transpose.py +126 -0
  712. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp.py +79 -0
  713. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_cuda.py +53 -0
  714. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_opencl.py +75 -0
  715. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/__init__.py +3 -0
  716. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/cone.py +241 -0
  717. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp.py +124 -0
  718. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_base.py +391 -0
  719. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_opencl.py +78 -0
  720. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering.py +220 -0
  721. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_cuda.py +103 -0
  722. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_opencl.py +111 -0
  723. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/projection.py +240 -0
  724. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor.py +174 -0
  725. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor_cuda.py +44 -0
  726. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings.py +248 -0
  727. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings_cuda.py +322 -0
  728. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram.py +467 -0
  729. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_cuda.py +250 -0
  730. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_opencl.py +40 -0
  731. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/__init__.py +1 -0
  732. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_cone.py +308 -0
  733. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_deringer.py +220 -0
  734. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_fbp.py +252 -0
  735. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_filtering.py +133 -0
  736. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_halftomo.py +100 -0
  737. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_projector.py +164 -0
  738. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_reconstructor.py +93 -0
  739. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_sino_normalization.py +85 -0
  740. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/__init__.py +0 -0
  741. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/cli/__init__.py +0 -0
  742. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/cor.py +5 -0
  743. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/dataset_analyzer.py +469 -0
  744. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/gpu.py +169 -0
  745. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/logger.py +130 -0
  746. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/nxflatfield.py +217 -0
  747. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/templates/__init__.py +0 -0
  748. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/__init__.py +0 -0
  749. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_nxflatfield.py +104 -0
  750. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_units.py +47 -0
  751. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/utils.py +174 -0
  752. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/__init__.py +0 -0
  753. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/alignment.py +184 -0
  754. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/config.py +1286 -0
  755. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/definitions.py +6 -0
  756. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/frame_composition.py +155 -0
  757. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/overlap.py +373 -0
  758. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/sample_normalization.py +60 -0
  759. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/slurm_utils.py +204 -0
  760. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/__init__.py +0 -0
  761. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_alignment.py +99 -0
  762. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_config.py +226 -0
  763. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_frame_composition.py +180 -0
  764. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_overlap.py +98 -0
  765. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_sample_normalization.py +49 -0
  766. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_slurm_utils.py +146 -0
  767. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_utils.py +21 -0
  768. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_z_stitching.py +1183 -0
  769. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/utils.py +563 -0
  770. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/z_stitching.py +2279 -0
  771. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/tests.py +51 -0
  772. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/testutils.py +375 -0
  773. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/__init__.py +0 -0
  774. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/algotom_convert_sino.py +276 -0
  775. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/pore3d_deringer_munch.py +108 -0
  776. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomocupy_remove_stripe.py +586 -0
  777. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomopy_phase.py +239 -0
  778. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomwer_load_flats_darks.py +162 -0
  779. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/utils.py +836 -0
  780. build/lib/build/lib/build/lib/build/lib/build/lib/doc/conf.py +137 -0
  781. build/lib/build/lib/build/lib/build/lib/build/lib/doc/create_conf_doc.py +38 -0
  782. build/lib/build/lib/build/lib/build/lib/build/lib/doc/get_mathjax.py +34 -0
  783. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/__init__.py +17 -0
  784. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/__init__.py +0 -0
  785. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap.py +88 -0
  786. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap_stitching.py +69 -0
  787. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/cast_volume.py +272 -0
  788. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/cli_configs.py +626 -0
  789. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/compare_volumes.py +94 -0
  790. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/composite_cor.py +144 -0
  791. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/correct_rot.py +70 -0
  792. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/create_distortion_map_from_poly.py +153 -0
  793. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_pix.py +358 -0
  794. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_rot.py +449 -0
  795. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/double_flatfield.py +143 -0
  796. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/generate_header.py +261 -0
  797. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/histogram.py +197 -0
  798. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/multicor.py +90 -0
  799. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/nx_z_splitter.py +125 -0
  800. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/parse_reconstruction_log.py +151 -0
  801. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/prepare_weights_double.py +163 -0
  802. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct.py +120 -0
  803. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct_helical.py +116 -0
  804. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reduce_dark_flat.py +181 -0
  805. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/rotate.py +162 -0
  806. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/shrink_dataset.py +98 -0
  807. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/stitching.py +85 -0
  808. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/tests/test_reduce_dark_flat.py +78 -0
  809. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/utils.py +33 -0
  810. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/validator.py +110 -0
  811. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/__init__.py +0 -0
  812. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/convolution.py +8 -0
  813. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/fft.py +4 -0
  814. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/kernel.py +97 -0
  815. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/medfilt.py +6 -0
  816. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/padding.py +6 -0
  817. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/processing.py +75 -0
  818. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/tests/__init__.py +1 -0
  819. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/utils.py +331 -0
  820. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/__init__.py +12 -0
  821. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/alignment.py +578 -0
  822. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor.py +1621 -0
  823. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor_sino.py +183 -0
  824. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/distortion.py +112 -0
  825. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/focus.py +362 -0
  826. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/__init__.py +0 -0
  827. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_alignment.py +70 -0
  828. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_cor.py +472 -0
  829. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_focus.py +105 -0
  830. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_tilt.py +41 -0
  831. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_translation.py +78 -0
  832. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tilt.py +214 -0
  833. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/translation.py +193 -0
  834. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/utils.py +39 -0
  835. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/__init__.py +2 -0
  836. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/cast_volume.py +371 -0
  837. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/detector_distortion.py +305 -0
  838. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/reader.py +628 -0
  839. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/reader_helical.py +114 -0
  840. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/__init__.py +0 -0
  841. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_cast_volume.py +339 -0
  842. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_detector_distortion.py +178 -0
  843. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_writers.py +187 -0
  844. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tiffwriter_zmm.py +99 -0
  845. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/utils.py +263 -0
  846. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/writer.py +892 -0
  847. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/__init__.py +0 -0
  848. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/binning.py +98 -0
  849. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/fftshift.py +6 -0
  850. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/filters.py +24 -0
  851. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/fourier_filters.py +152 -0
  852. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram.py +6 -0
  853. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram_cuda.py +8 -0
  854. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/kernel_base.py +4 -0
  855. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/padding.py +83 -0
  856. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/padding_base.py +6 -0
  857. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/processing_base.py +4 -0
  858. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation.py +6 -0
  859. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation_cuda.py +6 -0
  860. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/__init__.py +1 -0
  861. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_binning.py +48 -0
  862. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_interpolation.py +70 -0
  863. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/transpose.py +6 -0
  864. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp.py +4 -0
  865. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_cuda.py +6 -0
  866. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_opencl.py +8 -0
  867. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/utils.py +117 -0
  868. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/__init__.py +0 -0
  869. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/fft.py +6 -0
  870. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/kernel.py +135 -0
  871. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/memcpy.py +35 -0
  872. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/padding.py +6 -0
  873. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/processing.py +62 -0
  874. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/tests/__init__.py +0 -0
  875. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/utils.py +292 -0
  876. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/__init__.py +0 -0
  877. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config.py +265 -0
  878. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config_validators.py +589 -0
  879. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/datadump.py +164 -0
  880. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/dataset_validator.py +211 -0
  881. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/detector_distortion_provider.py +20 -0
  882. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/estimators.py +1012 -0
  883. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fallback_utils.py +149 -0
  884. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/__init__.py +0 -0
  885. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked.py +849 -0
  886. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked_cuda.py +152 -0
  887. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/computations.py +260 -0
  888. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/dataset_validator.py +63 -0
  889. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/nabu_config.py +590 -0
  890. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/processconfig.py +825 -0
  891. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/reconstruction.py +851 -0
  892. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/__init__.py +0 -0
  893. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/dataset_validator.py +19 -0
  894. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/fbp.py +147 -0
  895. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/filtering.py +246 -0
  896. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/gridded_accumulator.py +575 -0
  897. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded.py +1670 -0
  898. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded_cuda.py +119 -0
  899. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_reconstruction.py +598 -0
  900. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_utils.py +42 -0
  901. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/nabu_config.py +175 -0
  902. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/processconfig.py +62 -0
  903. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/span_strategy.py +483 -0
  904. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/__init__.py +0 -0
  905. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_accumulator.py +157 -0
  906. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_pipeline_elements_full.py +355 -0
  907. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_strategy.py +61 -0
  908. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/utils.py +51 -0
  909. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/weight_balancer.py +101 -0
  910. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/params.py +163 -0
  911. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/processconfig.py +210 -0
  912. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/tests/test_chunk_reader.py +78 -0
  913. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/tests/test_estimators.py +149 -0
  914. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/utils.py +116 -0
  915. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/writer.py +193 -0
  916. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/xrdct/__init__.py +0 -0
  917. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/__init__.py +7 -0
  918. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/alignment.py +11 -0
  919. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd.py +161 -0
  920. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd_cuda.py +169 -0
  921. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf.py +361 -0
  922. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf_cuda.py +142 -0
  923. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/distortion.py +92 -0
  924. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield.py +212 -0
  925. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_cuda.py +174 -0
  926. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_variable_region.py +68 -0
  927. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield.py +448 -0
  928. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_cuda.py +144 -0
  929. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_variable_region.py +79 -0
  930. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase.py +425 -0
  931. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase_cuda.py +143 -0
  932. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift.py +95 -0
  933. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift_cuda.py +102 -0
  934. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/__init__.py +1 -0
  935. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_ccd_corr.py +59 -0
  936. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_ctf.py +250 -0
  937. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_double_flatfield.py +86 -0
  938. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_flatfield.py +626 -0
  939. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_paganin.py +67 -0
  940. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_vshift.py +73 -0
  941. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/__init__.py +0 -0
  942. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/convolution_cuda.py +375 -0
  943. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_base.py +163 -0
  944. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_cuda.py +256 -0
  945. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_opencl.py +54 -0
  946. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fftshift.py +134 -0
  947. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram.py +286 -0
  948. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram_cuda.py +103 -0
  949. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/kernel_base.py +126 -0
  950. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/medfilt_cuda.py +159 -0
  951. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd.py +29 -0
  952. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd_cuda.py +68 -0
  953. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_base.py +71 -0
  954. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_cuda.py +75 -0
  955. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_opencl.py +77 -0
  956. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/processing_base.py +123 -0
  957. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/roll_opencl.py +64 -0
  958. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation.py +63 -0
  959. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation_cuda.py +66 -0
  960. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/__init__.py +0 -0
  961. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fft.py +268 -0
  962. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fftshift.py +71 -0
  963. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_histogram.py +55 -0
  964. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_medfilt.py +77 -0
  965. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_muladd.py +54 -0
  966. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_padding.py +247 -0
  967. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_roll.py +63 -0
  968. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_rotation.py +83 -0
  969. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_transpose.py +72 -0
  970. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_unsharp.py +106 -0
  971. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/transpose.py +126 -0
  972. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp.py +79 -0
  973. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_cuda.py +53 -0
  974. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_opencl.py +75 -0
  975. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/__init__.py +3 -0
  976. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/cone.py +241 -0
  977. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp.py +124 -0
  978. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_base.py +391 -0
  979. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_opencl.py +78 -0
  980. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering.py +220 -0
  981. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_cuda.py +103 -0
  982. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_opencl.py +111 -0
  983. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/projection.py +240 -0
  984. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor.py +174 -0
  985. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor_cuda.py +44 -0
  986. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings.py +248 -0
  987. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings_cuda.py +322 -0
  988. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram.py +467 -0
  989. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_cuda.py +250 -0
  990. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_opencl.py +40 -0
  991. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/__init__.py +1 -0
  992. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_cone.py +308 -0
  993. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_deringer.py +220 -0
  994. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_fbp.py +252 -0
  995. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_filtering.py +133 -0
  996. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_halftomo.py +100 -0
  997. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_projector.py +164 -0
  998. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_reconstructor.py +93 -0
  999. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_sino_normalization.py +85 -0
  1000. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/__init__.py +0 -0
  1001. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/cli/__init__.py +0 -0
  1002. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/cor.py +5 -0
  1003. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/dataset_analyzer.py +469 -0
  1004. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/gpu.py +169 -0
  1005. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/logger.py +130 -0
  1006. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/nxflatfield.py +217 -0
  1007. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/templates/__init__.py +0 -0
  1008. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/__init__.py +0 -0
  1009. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_nxflatfield.py +104 -0
  1010. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_units.py +47 -0
  1011. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/utils.py +174 -0
  1012. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/__init__.py +0 -0
  1013. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/alignment.py +184 -0
  1014. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/config.py +1286 -0
  1015. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/definitions.py +6 -0
  1016. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/frame_composition.py +155 -0
  1017. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/overlap.py +373 -0
  1018. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/sample_normalization.py +60 -0
  1019. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/slurm_utils.py +204 -0
  1020. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/__init__.py +0 -0
  1021. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_alignment.py +99 -0
  1022. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_config.py +226 -0
  1023. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_frame_composition.py +180 -0
  1024. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_overlap.py +98 -0
  1025. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_sample_normalization.py +49 -0
  1026. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_slurm_utils.py +146 -0
  1027. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_utils.py +21 -0
  1028. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_z_stitching.py +1183 -0
  1029. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/utils.py +563 -0
  1030. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/z_stitching.py +2279 -0
  1031. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/tests.py +51 -0
  1032. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/testutils.py +375 -0
  1033. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/__init__.py +0 -0
  1034. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/algotom_convert_sino.py +276 -0
  1035. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/pore3d_deringer_munch.py +108 -0
  1036. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomocupy_remove_stripe.py +586 -0
  1037. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomopy_phase.py +239 -0
  1038. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomwer_load_flats_darks.py +162 -0
  1039. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/utils.py +836 -0
  1040. build/lib/build/lib/build/lib/build/lib/doc/conf.py +137 -0
  1041. build/lib/build/lib/build/lib/build/lib/doc/create_conf_doc.py +38 -0
  1042. build/lib/build/lib/build/lib/build/lib/doc/get_mathjax.py +34 -0
  1043. build/lib/build/lib/build/lib/build/lib/nabu/__init__.py +17 -0
  1044. build/lib/build/lib/build/lib/build/lib/nabu/app/__init__.py +0 -0
  1045. build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap.py +88 -0
  1046. build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap_stitching.py +69 -0
  1047. build/lib/build/lib/build/lib/build/lib/nabu/app/cast_volume.py +272 -0
  1048. build/lib/build/lib/build/lib/build/lib/nabu/app/cli_configs.py +626 -0
  1049. build/lib/build/lib/build/lib/build/lib/nabu/app/compare_volumes.py +94 -0
  1050. build/lib/build/lib/build/lib/build/lib/nabu/app/composite_cor.py +144 -0
  1051. build/lib/build/lib/build/lib/build/lib/nabu/app/correct_rot.py +70 -0
  1052. build/lib/build/lib/build/lib/build/lib/nabu/app/create_distortion_map_from_poly.py +153 -0
  1053. build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_pix.py +358 -0
  1054. build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_rot.py +449 -0
  1055. build/lib/build/lib/build/lib/build/lib/nabu/app/double_flatfield.py +143 -0
  1056. build/lib/build/lib/build/lib/build/lib/nabu/app/generate_header.py +261 -0
  1057. build/lib/build/lib/build/lib/build/lib/nabu/app/histogram.py +197 -0
  1058. build/lib/build/lib/build/lib/build/lib/nabu/app/multicor.py +90 -0
  1059. build/lib/build/lib/build/lib/build/lib/nabu/app/nx_z_splitter.py +125 -0
  1060. build/lib/build/lib/build/lib/build/lib/nabu/app/parse_reconstruction_log.py +151 -0
  1061. build/lib/build/lib/build/lib/build/lib/nabu/app/prepare_weights_double.py +163 -0
  1062. build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct.py +120 -0
  1063. build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct_helical.py +116 -0
  1064. build/lib/build/lib/build/lib/build/lib/nabu/app/reduce_dark_flat.py +181 -0
  1065. build/lib/build/lib/build/lib/build/lib/nabu/app/rotate.py +162 -0
  1066. build/lib/build/lib/build/lib/build/lib/nabu/app/shrink_dataset.py +98 -0
  1067. build/lib/build/lib/build/lib/build/lib/nabu/app/stitching.py +85 -0
  1068. build/lib/build/lib/build/lib/build/lib/nabu/app/tests/test_reduce_dark_flat.py +78 -0
  1069. build/lib/build/lib/build/lib/build/lib/nabu/app/utils.py +33 -0
  1070. build/lib/build/lib/build/lib/build/lib/nabu/app/validator.py +110 -0
  1071. build/lib/build/lib/build/lib/build/lib/nabu/cuda/__init__.py +0 -0
  1072. build/lib/build/lib/build/lib/build/lib/nabu/cuda/convolution.py +8 -0
  1073. build/lib/build/lib/build/lib/build/lib/nabu/cuda/fft.py +4 -0
  1074. build/lib/build/lib/build/lib/build/lib/nabu/cuda/kernel.py +97 -0
  1075. build/lib/build/lib/build/lib/build/lib/nabu/cuda/medfilt.py +6 -0
  1076. build/lib/build/lib/build/lib/build/lib/nabu/cuda/padding.py +6 -0
  1077. build/lib/build/lib/build/lib/build/lib/nabu/cuda/processing.py +75 -0
  1078. build/lib/build/lib/build/lib/build/lib/nabu/cuda/tests/__init__.py +1 -0
  1079. build/lib/build/lib/build/lib/build/lib/nabu/cuda/utils.py +331 -0
  1080. build/lib/build/lib/build/lib/build/lib/nabu/estimation/__init__.py +12 -0
  1081. build/lib/build/lib/build/lib/build/lib/nabu/estimation/alignment.py +578 -0
  1082. build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor.py +1621 -0
  1083. build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor_sino.py +183 -0
  1084. build/lib/build/lib/build/lib/build/lib/nabu/estimation/distortion.py +112 -0
  1085. build/lib/build/lib/build/lib/build/lib/nabu/estimation/focus.py +362 -0
  1086. build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/__init__.py +0 -0
  1087. build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_alignment.py +70 -0
  1088. build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_cor.py +472 -0
  1089. build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_focus.py +105 -0
  1090. build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_tilt.py +41 -0
  1091. build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_translation.py +78 -0
  1092. build/lib/build/lib/build/lib/build/lib/nabu/estimation/tilt.py +214 -0
  1093. build/lib/build/lib/build/lib/build/lib/nabu/estimation/translation.py +193 -0
  1094. build/lib/build/lib/build/lib/build/lib/nabu/estimation/utils.py +39 -0
  1095. build/lib/build/lib/build/lib/build/lib/nabu/io/__init__.py +2 -0
  1096. build/lib/build/lib/build/lib/build/lib/nabu/io/cast_volume.py +371 -0
  1097. build/lib/build/lib/build/lib/build/lib/nabu/io/detector_distortion.py +305 -0
  1098. build/lib/build/lib/build/lib/build/lib/nabu/io/reader.py +628 -0
  1099. build/lib/build/lib/build/lib/build/lib/nabu/io/reader_helical.py +114 -0
  1100. build/lib/build/lib/build/lib/build/lib/nabu/io/tests/__init__.py +0 -0
  1101. build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_cast_volume.py +339 -0
  1102. build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_detector_distortion.py +178 -0
  1103. build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_writers.py +187 -0
  1104. build/lib/build/lib/build/lib/build/lib/nabu/io/tiffwriter_zmm.py +99 -0
  1105. build/lib/build/lib/build/lib/build/lib/nabu/io/utils.py +263 -0
  1106. build/lib/build/lib/build/lib/build/lib/nabu/io/writer.py +892 -0
  1107. build/lib/build/lib/build/lib/build/lib/nabu/misc/__init__.py +0 -0
  1108. build/lib/build/lib/build/lib/build/lib/nabu/misc/binning.py +98 -0
  1109. build/lib/build/lib/build/lib/build/lib/nabu/misc/fftshift.py +6 -0
  1110. build/lib/build/lib/build/lib/build/lib/nabu/misc/filters.py +24 -0
  1111. build/lib/build/lib/build/lib/build/lib/nabu/misc/fourier_filters.py +152 -0
  1112. build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram.py +6 -0
  1113. build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram_cuda.py +8 -0
  1114. build/lib/build/lib/build/lib/build/lib/nabu/misc/kernel_base.py +4 -0
  1115. build/lib/build/lib/build/lib/build/lib/nabu/misc/padding.py +83 -0
  1116. build/lib/build/lib/build/lib/build/lib/nabu/misc/padding_base.py +6 -0
  1117. build/lib/build/lib/build/lib/build/lib/nabu/misc/processing_base.py +4 -0
  1118. build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation.py +6 -0
  1119. build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation_cuda.py +6 -0
  1120. build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/__init__.py +1 -0
  1121. build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_binning.py +48 -0
  1122. build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_interpolation.py +70 -0
  1123. build/lib/build/lib/build/lib/build/lib/nabu/misc/transpose.py +6 -0
  1124. build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp.py +4 -0
  1125. build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_cuda.py +6 -0
  1126. build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_opencl.py +8 -0
  1127. build/lib/build/lib/build/lib/build/lib/nabu/misc/utils.py +117 -0
  1128. build/lib/build/lib/build/lib/build/lib/nabu/opencl/__init__.py +0 -0
  1129. build/lib/build/lib/build/lib/build/lib/nabu/opencl/fft.py +6 -0
  1130. build/lib/build/lib/build/lib/build/lib/nabu/opencl/kernel.py +135 -0
  1131. build/lib/build/lib/build/lib/build/lib/nabu/opencl/memcpy.py +35 -0
  1132. build/lib/build/lib/build/lib/build/lib/nabu/opencl/padding.py +6 -0
  1133. build/lib/build/lib/build/lib/build/lib/nabu/opencl/processing.py +62 -0
  1134. build/lib/build/lib/build/lib/build/lib/nabu/opencl/tests/__init__.py +0 -0
  1135. build/lib/build/lib/build/lib/build/lib/nabu/opencl/utils.py +292 -0
  1136. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/__init__.py +0 -0
  1137. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config.py +265 -0
  1138. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config_validators.py +589 -0
  1139. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/datadump.py +164 -0
  1140. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/dataset_validator.py +211 -0
  1141. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/detector_distortion_provider.py +20 -0
  1142. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/estimators.py +1012 -0
  1143. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fallback_utils.py +149 -0
  1144. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/__init__.py +0 -0
  1145. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked.py +849 -0
  1146. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked_cuda.py +152 -0
  1147. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/computations.py +260 -0
  1148. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/dataset_validator.py +63 -0
  1149. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/nabu_config.py +590 -0
  1150. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/processconfig.py +825 -0
  1151. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/reconstruction.py +851 -0
  1152. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/__init__.py +0 -0
  1153. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/dataset_validator.py +19 -0
  1154. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/fbp.py +147 -0
  1155. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/filtering.py +246 -0
  1156. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/gridded_accumulator.py +575 -0
  1157. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded.py +1670 -0
  1158. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded_cuda.py +119 -0
  1159. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_reconstruction.py +598 -0
  1160. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_utils.py +42 -0
  1161. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/nabu_config.py +175 -0
  1162. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/processconfig.py +62 -0
  1163. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/span_strategy.py +483 -0
  1164. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/__init__.py +0 -0
  1165. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_accumulator.py +157 -0
  1166. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_pipeline_elements_full.py +355 -0
  1167. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_strategy.py +61 -0
  1168. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/utils.py +51 -0
  1169. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/weight_balancer.py +101 -0
  1170. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/params.py +163 -0
  1171. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/processconfig.py +210 -0
  1172. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/tests/test_chunk_reader.py +78 -0
  1173. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/tests/test_estimators.py +149 -0
  1174. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/utils.py +116 -0
  1175. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/writer.py +193 -0
  1176. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/xrdct/__init__.py +0 -0
  1177. build/lib/build/lib/build/lib/build/lib/nabu/preproc/__init__.py +7 -0
  1178. build/lib/build/lib/build/lib/build/lib/nabu/preproc/alignment.py +11 -0
  1179. build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd.py +161 -0
  1180. build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd_cuda.py +169 -0
  1181. build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf.py +361 -0
  1182. build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf_cuda.py +142 -0
  1183. build/lib/build/lib/build/lib/build/lib/nabu/preproc/distortion.py +92 -0
  1184. build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield.py +212 -0
  1185. build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_cuda.py +174 -0
  1186. build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_variable_region.py +68 -0
  1187. build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield.py +448 -0
  1188. build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_cuda.py +144 -0
  1189. build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_variable_region.py +79 -0
  1190. build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase.py +425 -0
  1191. build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase_cuda.py +143 -0
  1192. build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift.py +95 -0
  1193. build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift_cuda.py +102 -0
  1194. build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/__init__.py +1 -0
  1195. build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_ccd_corr.py +59 -0
  1196. build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_ctf.py +250 -0
  1197. build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_double_flatfield.py +86 -0
  1198. build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_flatfield.py +626 -0
  1199. build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_paganin.py +67 -0
  1200. build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_vshift.py +73 -0
  1201. build/lib/build/lib/build/lib/build/lib/nabu/processing/__init__.py +0 -0
  1202. build/lib/build/lib/build/lib/build/lib/nabu/processing/convolution_cuda.py +375 -0
  1203. build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_base.py +163 -0
  1204. build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_cuda.py +256 -0
  1205. build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_opencl.py +54 -0
  1206. build/lib/build/lib/build/lib/build/lib/nabu/processing/fftshift.py +134 -0
  1207. build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram.py +286 -0
  1208. build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram_cuda.py +103 -0
  1209. build/lib/build/lib/build/lib/build/lib/nabu/processing/kernel_base.py +126 -0
  1210. build/lib/build/lib/build/lib/build/lib/nabu/processing/medfilt_cuda.py +159 -0
  1211. build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd.py +29 -0
  1212. build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd_cuda.py +68 -0
  1213. build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_base.py +71 -0
  1214. build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_cuda.py +75 -0
  1215. build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_opencl.py +77 -0
  1216. build/lib/build/lib/build/lib/build/lib/nabu/processing/processing_base.py +123 -0
  1217. build/lib/build/lib/build/lib/build/lib/nabu/processing/roll_opencl.py +64 -0
  1218. build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation.py +63 -0
  1219. build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation_cuda.py +66 -0
  1220. build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/__init__.py +0 -0
  1221. build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fft.py +268 -0
  1222. build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fftshift.py +71 -0
  1223. build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_histogram.py +55 -0
  1224. build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_medfilt.py +77 -0
  1225. build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_muladd.py +54 -0
  1226. build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_padding.py +247 -0
  1227. build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_roll.py +63 -0
  1228. build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_rotation.py +83 -0
  1229. build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_transpose.py +72 -0
  1230. build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_unsharp.py +106 -0
  1231. build/lib/build/lib/build/lib/build/lib/nabu/processing/transpose.py +126 -0
  1232. build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp.py +79 -0
  1233. build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_cuda.py +53 -0
  1234. build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_opencl.py +75 -0
  1235. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/__init__.py +3 -0
  1236. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/cone.py +241 -0
  1237. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp.py +124 -0
  1238. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_base.py +391 -0
  1239. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_opencl.py +78 -0
  1240. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering.py +220 -0
  1241. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_cuda.py +103 -0
  1242. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_opencl.py +111 -0
  1243. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/projection.py +240 -0
  1244. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor.py +174 -0
  1245. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor_cuda.py +44 -0
  1246. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings.py +248 -0
  1247. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings_cuda.py +322 -0
  1248. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram.py +467 -0
  1249. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_cuda.py +250 -0
  1250. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_opencl.py +40 -0
  1251. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/__init__.py +1 -0
  1252. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_cone.py +308 -0
  1253. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_deringer.py +220 -0
  1254. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_fbp.py +252 -0
  1255. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_filtering.py +133 -0
  1256. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_halftomo.py +100 -0
  1257. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_projector.py +164 -0
  1258. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_reconstructor.py +93 -0
  1259. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_sino_normalization.py +85 -0
  1260. build/lib/build/lib/build/lib/build/lib/nabu/resources/__init__.py +0 -0
  1261. build/lib/build/lib/build/lib/build/lib/nabu/resources/cli/__init__.py +0 -0
  1262. build/lib/build/lib/build/lib/build/lib/nabu/resources/cor.py +5 -0
  1263. build/lib/build/lib/build/lib/build/lib/nabu/resources/dataset_analyzer.py +469 -0
  1264. build/lib/build/lib/build/lib/build/lib/nabu/resources/gpu.py +169 -0
  1265. build/lib/build/lib/build/lib/build/lib/nabu/resources/logger.py +130 -0
  1266. build/lib/build/lib/build/lib/build/lib/nabu/resources/nxflatfield.py +217 -0
  1267. build/lib/build/lib/build/lib/build/lib/nabu/resources/templates/__init__.py +0 -0
  1268. build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/__init__.py +0 -0
  1269. build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_nxflatfield.py +104 -0
  1270. build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_units.py +47 -0
  1271. build/lib/build/lib/build/lib/build/lib/nabu/resources/utils.py +174 -0
  1272. build/lib/build/lib/build/lib/build/lib/nabu/stitching/__init__.py +0 -0
  1273. build/lib/build/lib/build/lib/build/lib/nabu/stitching/alignment.py +184 -0
  1274. build/lib/build/lib/build/lib/build/lib/nabu/stitching/config.py +1286 -0
  1275. build/lib/build/lib/build/lib/build/lib/nabu/stitching/definitions.py +6 -0
  1276. build/lib/build/lib/build/lib/build/lib/nabu/stitching/frame_composition.py +155 -0
  1277. build/lib/build/lib/build/lib/build/lib/nabu/stitching/overlap.py +373 -0
  1278. build/lib/build/lib/build/lib/build/lib/nabu/stitching/sample_normalization.py +60 -0
  1279. build/lib/build/lib/build/lib/build/lib/nabu/stitching/slurm_utils.py +204 -0
  1280. build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/__init__.py +0 -0
  1281. build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_alignment.py +99 -0
  1282. build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_config.py +226 -0
  1283. build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_frame_composition.py +180 -0
  1284. build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_overlap.py +98 -0
  1285. build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_sample_normalization.py +49 -0
  1286. build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_slurm_utils.py +146 -0
  1287. build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_utils.py +21 -0
  1288. build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_z_stitching.py +1183 -0
  1289. build/lib/build/lib/build/lib/build/lib/nabu/stitching/utils.py +563 -0
  1290. build/lib/build/lib/build/lib/build/lib/nabu/stitching/z_stitching.py +2279 -0
  1291. build/lib/build/lib/build/lib/build/lib/nabu/tests.py +51 -0
  1292. build/lib/build/lib/build/lib/build/lib/nabu/testutils.py +375 -0
  1293. build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/__init__.py +0 -0
  1294. build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/algotom_convert_sino.py +276 -0
  1295. build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/pore3d_deringer_munch.py +108 -0
  1296. build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomocupy_remove_stripe.py +586 -0
  1297. build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomopy_phase.py +239 -0
  1298. build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomwer_load_flats_darks.py +162 -0
  1299. build/lib/build/lib/build/lib/build/lib/nabu/utils.py +836 -0
  1300. build/lib/build/lib/build/lib/doc/conf.py +137 -0
  1301. build/lib/build/lib/build/lib/doc/create_conf_doc.py +38 -0
  1302. build/lib/build/lib/build/lib/doc/get_mathjax.py +34 -0
  1303. build/lib/build/lib/build/lib/nabu/__init__.py +17 -0
  1304. build/lib/build/lib/build/lib/nabu/app/__init__.py +0 -0
  1305. build/lib/build/lib/build/lib/nabu/app/bootstrap.py +88 -0
  1306. build/lib/build/lib/build/lib/nabu/app/bootstrap_stitching.py +69 -0
  1307. build/lib/build/lib/build/lib/nabu/app/cast_volume.py +272 -0
  1308. build/lib/build/lib/build/lib/nabu/app/cli_configs.py +626 -0
  1309. build/lib/build/lib/build/lib/nabu/app/compare_volumes.py +94 -0
  1310. build/lib/build/lib/build/lib/nabu/app/composite_cor.py +144 -0
  1311. build/lib/build/lib/build/lib/nabu/app/correct_rot.py +70 -0
  1312. build/lib/build/lib/build/lib/nabu/app/create_distortion_map_from_poly.py +153 -0
  1313. build/lib/build/lib/build/lib/nabu/app/diag_to_pix.py +358 -0
  1314. build/lib/build/lib/build/lib/nabu/app/diag_to_rot.py +449 -0
  1315. build/lib/build/lib/build/lib/nabu/app/double_flatfield.py +143 -0
  1316. build/lib/build/lib/build/lib/nabu/app/generate_header.py +261 -0
  1317. build/lib/build/lib/build/lib/nabu/app/histogram.py +197 -0
  1318. build/lib/build/lib/build/lib/nabu/app/multicor.py +90 -0
  1319. build/lib/build/lib/build/lib/nabu/app/nx_z_splitter.py +125 -0
  1320. build/lib/build/lib/build/lib/nabu/app/parse_reconstruction_log.py +151 -0
  1321. build/lib/build/lib/build/lib/nabu/app/prepare_weights_double.py +163 -0
  1322. build/lib/build/lib/build/lib/nabu/app/reconstruct.py +120 -0
  1323. build/lib/build/lib/build/lib/nabu/app/reconstruct_helical.py +116 -0
  1324. build/lib/build/lib/build/lib/nabu/app/reduce_dark_flat.py +181 -0
  1325. build/lib/build/lib/build/lib/nabu/app/rotate.py +162 -0
  1326. build/lib/build/lib/build/lib/nabu/app/shrink_dataset.py +98 -0
  1327. build/lib/build/lib/build/lib/nabu/app/stitching.py +85 -0
  1328. build/lib/build/lib/build/lib/nabu/app/tests/test_reduce_dark_flat.py +78 -0
  1329. build/lib/build/lib/build/lib/nabu/app/utils.py +33 -0
  1330. build/lib/build/lib/build/lib/nabu/app/validator.py +110 -0
  1331. build/lib/build/lib/build/lib/nabu/cuda/__init__.py +0 -0
  1332. build/lib/build/lib/build/lib/nabu/cuda/convolution.py +8 -0
  1333. build/lib/build/lib/build/lib/nabu/cuda/fft.py +4 -0
  1334. build/lib/build/lib/build/lib/nabu/cuda/kernel.py +97 -0
  1335. build/lib/build/lib/build/lib/nabu/cuda/medfilt.py +6 -0
  1336. build/lib/build/lib/build/lib/nabu/cuda/padding.py +6 -0
  1337. build/lib/build/lib/build/lib/nabu/cuda/processing.py +75 -0
  1338. build/lib/build/lib/build/lib/nabu/cuda/tests/__init__.py +1 -0
  1339. build/lib/build/lib/build/lib/nabu/cuda/utils.py +331 -0
  1340. build/lib/build/lib/build/lib/nabu/estimation/__init__.py +12 -0
  1341. build/lib/build/lib/build/lib/nabu/estimation/alignment.py +578 -0
  1342. build/lib/build/lib/build/lib/nabu/estimation/cor.py +1621 -0
  1343. build/lib/build/lib/build/lib/nabu/estimation/cor_sino.py +183 -0
  1344. build/lib/build/lib/build/lib/nabu/estimation/distortion.py +112 -0
  1345. build/lib/build/lib/build/lib/nabu/estimation/focus.py +362 -0
  1346. build/lib/build/lib/build/lib/nabu/estimation/tests/__init__.py +0 -0
  1347. build/lib/build/lib/build/lib/nabu/estimation/tests/test_alignment.py +70 -0
  1348. build/lib/build/lib/build/lib/nabu/estimation/tests/test_cor.py +472 -0
  1349. build/lib/build/lib/build/lib/nabu/estimation/tests/test_focus.py +105 -0
  1350. build/lib/build/lib/build/lib/nabu/estimation/tests/test_tilt.py +41 -0
  1351. build/lib/build/lib/build/lib/nabu/estimation/tests/test_translation.py +78 -0
  1352. build/lib/build/lib/build/lib/nabu/estimation/tilt.py +214 -0
  1353. build/lib/build/lib/build/lib/nabu/estimation/translation.py +193 -0
  1354. build/lib/build/lib/build/lib/nabu/estimation/utils.py +39 -0
  1355. build/lib/build/lib/build/lib/nabu/io/__init__.py +2 -0
  1356. build/lib/build/lib/build/lib/nabu/io/cast_volume.py +371 -0
  1357. build/lib/build/lib/build/lib/nabu/io/detector_distortion.py +305 -0
  1358. build/lib/build/lib/build/lib/nabu/io/reader.py +628 -0
  1359. build/lib/build/lib/build/lib/nabu/io/reader_helical.py +114 -0
  1360. build/lib/build/lib/build/lib/nabu/io/tests/__init__.py +0 -0
  1361. build/lib/build/lib/build/lib/nabu/io/tests/test_cast_volume.py +339 -0
  1362. build/lib/build/lib/build/lib/nabu/io/tests/test_detector_distortion.py +178 -0
  1363. build/lib/build/lib/build/lib/nabu/io/tests/test_writers.py +187 -0
  1364. build/lib/build/lib/build/lib/nabu/io/tiffwriter_zmm.py +99 -0
  1365. build/lib/build/lib/build/lib/nabu/io/utils.py +263 -0
  1366. build/lib/build/lib/build/lib/nabu/io/writer.py +892 -0
  1367. build/lib/build/lib/build/lib/nabu/misc/__init__.py +0 -0
  1368. build/lib/build/lib/build/lib/nabu/misc/binning.py +98 -0
  1369. build/lib/build/lib/build/lib/nabu/misc/fftshift.py +6 -0
  1370. build/lib/build/lib/build/lib/nabu/misc/filters.py +24 -0
  1371. build/lib/build/lib/build/lib/nabu/misc/fourier_filters.py +152 -0
  1372. build/lib/build/lib/build/lib/nabu/misc/histogram.py +6 -0
  1373. build/lib/build/lib/build/lib/nabu/misc/histogram_cuda.py +8 -0
  1374. build/lib/build/lib/build/lib/nabu/misc/kernel_base.py +4 -0
  1375. build/lib/build/lib/build/lib/nabu/misc/padding.py +83 -0
  1376. build/lib/build/lib/build/lib/nabu/misc/padding_base.py +6 -0
  1377. build/lib/build/lib/build/lib/nabu/misc/processing_base.py +4 -0
  1378. build/lib/build/lib/build/lib/nabu/misc/rotation.py +6 -0
  1379. build/lib/build/lib/build/lib/nabu/misc/rotation_cuda.py +6 -0
  1380. build/lib/build/lib/build/lib/nabu/misc/tests/__init__.py +1 -0
  1381. build/lib/build/lib/build/lib/nabu/misc/tests/test_binning.py +48 -0
  1382. build/lib/build/lib/build/lib/nabu/misc/tests/test_interpolation.py +70 -0
  1383. build/lib/build/lib/build/lib/nabu/misc/transpose.py +6 -0
  1384. build/lib/build/lib/build/lib/nabu/misc/unsharp.py +4 -0
  1385. build/lib/build/lib/build/lib/nabu/misc/unsharp_cuda.py +6 -0
  1386. build/lib/build/lib/build/lib/nabu/misc/unsharp_opencl.py +8 -0
  1387. build/lib/build/lib/build/lib/nabu/misc/utils.py +117 -0
  1388. build/lib/build/lib/build/lib/nabu/opencl/__init__.py +0 -0
  1389. build/lib/build/lib/build/lib/nabu/opencl/fft.py +6 -0
  1390. build/lib/build/lib/build/lib/nabu/opencl/kernel.py +135 -0
  1391. build/lib/build/lib/build/lib/nabu/opencl/memcpy.py +35 -0
  1392. build/lib/build/lib/build/lib/nabu/opencl/padding.py +6 -0
  1393. build/lib/build/lib/build/lib/nabu/opencl/processing.py +62 -0
  1394. build/lib/build/lib/build/lib/nabu/opencl/tests/__init__.py +0 -0
  1395. build/lib/build/lib/build/lib/nabu/opencl/utils.py +292 -0
  1396. build/lib/build/lib/build/lib/nabu/pipeline/__init__.py +0 -0
  1397. build/lib/build/lib/build/lib/nabu/pipeline/config.py +265 -0
  1398. build/lib/build/lib/build/lib/nabu/pipeline/config_validators.py +589 -0
  1399. build/lib/build/lib/build/lib/nabu/pipeline/datadump.py +164 -0
  1400. build/lib/build/lib/build/lib/nabu/pipeline/dataset_validator.py +211 -0
  1401. build/lib/build/lib/build/lib/nabu/pipeline/detector_distortion_provider.py +20 -0
  1402. build/lib/build/lib/build/lib/nabu/pipeline/estimators.py +1012 -0
  1403. build/lib/build/lib/build/lib/nabu/pipeline/fallback_utils.py +149 -0
  1404. build/lib/build/lib/build/lib/nabu/pipeline/fullfield/__init__.py +0 -0
  1405. build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked.py +849 -0
  1406. build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked_cuda.py +152 -0
  1407. build/lib/build/lib/build/lib/nabu/pipeline/fullfield/computations.py +260 -0
  1408. build/lib/build/lib/build/lib/nabu/pipeline/fullfield/dataset_validator.py +63 -0
  1409. build/lib/build/lib/build/lib/nabu/pipeline/fullfield/nabu_config.py +590 -0
  1410. build/lib/build/lib/build/lib/nabu/pipeline/fullfield/processconfig.py +825 -0
  1411. build/lib/build/lib/build/lib/nabu/pipeline/fullfield/reconstruction.py +851 -0
  1412. build/lib/build/lib/build/lib/nabu/pipeline/helical/__init__.py +0 -0
  1413. build/lib/build/lib/build/lib/nabu/pipeline/helical/dataset_validator.py +19 -0
  1414. build/lib/build/lib/build/lib/nabu/pipeline/helical/fbp.py +147 -0
  1415. build/lib/build/lib/build/lib/nabu/pipeline/helical/filtering.py +246 -0
  1416. build/lib/build/lib/build/lib/nabu/pipeline/helical/gridded_accumulator.py +575 -0
  1417. build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded.py +1670 -0
  1418. build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded_cuda.py +119 -0
  1419. build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_reconstruction.py +598 -0
  1420. build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_utils.py +42 -0
  1421. build/lib/build/lib/build/lib/nabu/pipeline/helical/nabu_config.py +175 -0
  1422. build/lib/build/lib/build/lib/nabu/pipeline/helical/processconfig.py +62 -0
  1423. build/lib/build/lib/build/lib/nabu/pipeline/helical/span_strategy.py +483 -0
  1424. build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/__init__.py +0 -0
  1425. build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_accumulator.py +157 -0
  1426. build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_pipeline_elements_full.py +355 -0
  1427. build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_strategy.py +61 -0
  1428. build/lib/build/lib/build/lib/nabu/pipeline/helical/utils.py +51 -0
  1429. build/lib/build/lib/build/lib/nabu/pipeline/helical/weight_balancer.py +101 -0
  1430. build/lib/build/lib/build/lib/nabu/pipeline/params.py +163 -0
  1431. build/lib/build/lib/build/lib/nabu/pipeline/processconfig.py +210 -0
  1432. build/lib/build/lib/build/lib/nabu/pipeline/tests/test_chunk_reader.py +78 -0
  1433. build/lib/build/lib/build/lib/nabu/pipeline/tests/test_estimators.py +149 -0
  1434. build/lib/build/lib/build/lib/nabu/pipeline/utils.py +116 -0
  1435. build/lib/build/lib/build/lib/nabu/pipeline/writer.py +193 -0
  1436. build/lib/build/lib/build/lib/nabu/pipeline/xrdct/__init__.py +0 -0
  1437. build/lib/build/lib/build/lib/nabu/preproc/__init__.py +7 -0
  1438. build/lib/build/lib/build/lib/nabu/preproc/alignment.py +11 -0
  1439. build/lib/build/lib/build/lib/nabu/preproc/ccd.py +161 -0
  1440. build/lib/build/lib/build/lib/nabu/preproc/ccd_cuda.py +169 -0
  1441. build/lib/build/lib/build/lib/nabu/preproc/ctf.py +361 -0
  1442. build/lib/build/lib/build/lib/nabu/preproc/ctf_cuda.py +142 -0
  1443. build/lib/build/lib/build/lib/nabu/preproc/distortion.py +92 -0
  1444. build/lib/build/lib/build/lib/nabu/preproc/double_flatfield.py +212 -0
  1445. build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_cuda.py +174 -0
  1446. build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_variable_region.py +68 -0
  1447. build/lib/build/lib/build/lib/nabu/preproc/flatfield.py +448 -0
  1448. build/lib/build/lib/build/lib/nabu/preproc/flatfield_cuda.py +144 -0
  1449. build/lib/build/lib/build/lib/nabu/preproc/flatfield_variable_region.py +79 -0
  1450. build/lib/build/lib/build/lib/nabu/preproc/phase.py +425 -0
  1451. build/lib/build/lib/build/lib/nabu/preproc/phase_cuda.py +143 -0
  1452. build/lib/build/lib/build/lib/nabu/preproc/shift.py +95 -0
  1453. build/lib/build/lib/build/lib/nabu/preproc/shift_cuda.py +102 -0
  1454. build/lib/build/lib/build/lib/nabu/preproc/tests/__init__.py +1 -0
  1455. build/lib/build/lib/build/lib/nabu/preproc/tests/test_ccd_corr.py +59 -0
  1456. build/lib/build/lib/build/lib/nabu/preproc/tests/test_ctf.py +250 -0
  1457. build/lib/build/lib/build/lib/nabu/preproc/tests/test_double_flatfield.py +86 -0
  1458. build/lib/build/lib/build/lib/nabu/preproc/tests/test_flatfield.py +626 -0
  1459. build/lib/build/lib/build/lib/nabu/preproc/tests/test_paganin.py +67 -0
  1460. build/lib/build/lib/build/lib/nabu/preproc/tests/test_vshift.py +73 -0
  1461. build/lib/build/lib/build/lib/nabu/processing/__init__.py +0 -0
  1462. build/lib/build/lib/build/lib/nabu/processing/convolution_cuda.py +375 -0
  1463. build/lib/build/lib/build/lib/nabu/processing/fft_base.py +163 -0
  1464. build/lib/build/lib/build/lib/nabu/processing/fft_cuda.py +256 -0
  1465. build/lib/build/lib/build/lib/nabu/processing/fft_opencl.py +54 -0
  1466. build/lib/build/lib/build/lib/nabu/processing/fftshift.py +134 -0
  1467. build/lib/build/lib/build/lib/nabu/processing/histogram.py +286 -0
  1468. build/lib/build/lib/build/lib/nabu/processing/histogram_cuda.py +103 -0
  1469. build/lib/build/lib/build/lib/nabu/processing/kernel_base.py +126 -0
  1470. build/lib/build/lib/build/lib/nabu/processing/medfilt_cuda.py +159 -0
  1471. build/lib/build/lib/build/lib/nabu/processing/muladd.py +29 -0
  1472. build/lib/build/lib/build/lib/nabu/processing/muladd_cuda.py +68 -0
  1473. build/lib/build/lib/build/lib/nabu/processing/padding_base.py +71 -0
  1474. build/lib/build/lib/build/lib/nabu/processing/padding_cuda.py +75 -0
  1475. build/lib/build/lib/build/lib/nabu/processing/padding_opencl.py +77 -0
  1476. build/lib/build/lib/build/lib/nabu/processing/processing_base.py +123 -0
  1477. build/lib/build/lib/build/lib/nabu/processing/roll_opencl.py +64 -0
  1478. build/lib/build/lib/build/lib/nabu/processing/rotation.py +63 -0
  1479. build/lib/build/lib/build/lib/nabu/processing/rotation_cuda.py +66 -0
  1480. build/lib/build/lib/build/lib/nabu/processing/tests/__init__.py +0 -0
  1481. build/lib/build/lib/build/lib/nabu/processing/tests/test_fft.py +268 -0
  1482. build/lib/build/lib/build/lib/nabu/processing/tests/test_fftshift.py +71 -0
  1483. build/lib/build/lib/build/lib/nabu/processing/tests/test_histogram.py +55 -0
  1484. build/lib/build/lib/build/lib/nabu/processing/tests/test_medfilt.py +77 -0
  1485. build/lib/build/lib/build/lib/nabu/processing/tests/test_muladd.py +54 -0
  1486. build/lib/build/lib/build/lib/nabu/processing/tests/test_padding.py +247 -0
  1487. build/lib/build/lib/build/lib/nabu/processing/tests/test_roll.py +63 -0
  1488. build/lib/build/lib/build/lib/nabu/processing/tests/test_rotation.py +83 -0
  1489. build/lib/build/lib/build/lib/nabu/processing/tests/test_transpose.py +72 -0
  1490. build/lib/build/lib/build/lib/nabu/processing/tests/test_unsharp.py +106 -0
  1491. build/lib/build/lib/build/lib/nabu/processing/transpose.py +126 -0
  1492. build/lib/build/lib/build/lib/nabu/processing/unsharp.py +79 -0
  1493. build/lib/build/lib/build/lib/nabu/processing/unsharp_cuda.py +53 -0
  1494. build/lib/build/lib/build/lib/nabu/processing/unsharp_opencl.py +75 -0
  1495. build/lib/build/lib/build/lib/nabu/reconstruction/__init__.py +3 -0
  1496. build/lib/build/lib/build/lib/nabu/reconstruction/cone.py +241 -0
  1497. build/lib/build/lib/build/lib/nabu/reconstruction/fbp.py +124 -0
  1498. build/lib/build/lib/build/lib/nabu/reconstruction/fbp_base.py +391 -0
  1499. build/lib/build/lib/build/lib/nabu/reconstruction/fbp_opencl.py +78 -0
  1500. build/lib/build/lib/build/lib/nabu/reconstruction/filtering.py +220 -0
  1501. build/lib/build/lib/build/lib/nabu/reconstruction/filtering_cuda.py +103 -0
  1502. build/lib/build/lib/build/lib/nabu/reconstruction/filtering_opencl.py +111 -0
  1503. build/lib/build/lib/build/lib/nabu/reconstruction/projection.py +240 -0
  1504. build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor.py +174 -0
  1505. build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor_cuda.py +44 -0
  1506. build/lib/build/lib/build/lib/nabu/reconstruction/rings.py +248 -0
  1507. build/lib/build/lib/build/lib/nabu/reconstruction/rings_cuda.py +322 -0
  1508. build/lib/build/lib/build/lib/nabu/reconstruction/sinogram.py +467 -0
  1509. build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_cuda.py +250 -0
  1510. build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_opencl.py +40 -0
  1511. build/lib/build/lib/build/lib/nabu/reconstruction/tests/__init__.py +1 -0
  1512. build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_cone.py +308 -0
  1513. build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_deringer.py +220 -0
  1514. build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_fbp.py +252 -0
  1515. build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_filtering.py +133 -0
  1516. build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_halftomo.py +100 -0
  1517. build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_projector.py +164 -0
  1518. build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_reconstructor.py +93 -0
  1519. build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_sino_normalization.py +85 -0
  1520. build/lib/build/lib/build/lib/nabu/resources/__init__.py +0 -0
  1521. build/lib/build/lib/build/lib/nabu/resources/cli/__init__.py +0 -0
  1522. build/lib/build/lib/build/lib/nabu/resources/cor.py +5 -0
  1523. build/lib/build/lib/build/lib/nabu/resources/dataset_analyzer.py +469 -0
  1524. build/lib/build/lib/build/lib/nabu/resources/gpu.py +169 -0
  1525. build/lib/build/lib/build/lib/nabu/resources/logger.py +130 -0
  1526. build/lib/build/lib/build/lib/nabu/resources/nxflatfield.py +217 -0
  1527. build/lib/build/lib/build/lib/nabu/resources/templates/__init__.py +0 -0
  1528. build/lib/build/lib/build/lib/nabu/resources/tests/__init__.py +0 -0
  1529. build/lib/build/lib/build/lib/nabu/resources/tests/test_nxflatfield.py +104 -0
  1530. build/lib/build/lib/build/lib/nabu/resources/tests/test_units.py +47 -0
  1531. build/lib/build/lib/build/lib/nabu/resources/utils.py +174 -0
  1532. build/lib/build/lib/build/lib/nabu/stitching/__init__.py +0 -0
  1533. build/lib/build/lib/build/lib/nabu/stitching/alignment.py +184 -0
  1534. build/lib/build/lib/build/lib/nabu/stitching/config.py +1286 -0
  1535. build/lib/build/lib/build/lib/nabu/stitching/definitions.py +6 -0
  1536. build/lib/build/lib/build/lib/nabu/stitching/frame_composition.py +155 -0
  1537. build/lib/build/lib/build/lib/nabu/stitching/overlap.py +373 -0
  1538. build/lib/build/lib/build/lib/nabu/stitching/sample_normalization.py +60 -0
  1539. build/lib/build/lib/build/lib/nabu/stitching/slurm_utils.py +204 -0
  1540. build/lib/build/lib/build/lib/nabu/stitching/tests/__init__.py +0 -0
  1541. build/lib/build/lib/build/lib/nabu/stitching/tests/test_alignment.py +99 -0
  1542. build/lib/build/lib/build/lib/nabu/stitching/tests/test_config.py +226 -0
  1543. build/lib/build/lib/build/lib/nabu/stitching/tests/test_frame_composition.py +180 -0
  1544. build/lib/build/lib/build/lib/nabu/stitching/tests/test_overlap.py +98 -0
  1545. build/lib/build/lib/build/lib/nabu/stitching/tests/test_sample_normalization.py +49 -0
  1546. build/lib/build/lib/build/lib/nabu/stitching/tests/test_slurm_utils.py +146 -0
  1547. build/lib/build/lib/build/lib/nabu/stitching/tests/test_utils.py +21 -0
  1548. build/lib/build/lib/build/lib/nabu/stitching/tests/test_z_stitching.py +1183 -0
  1549. build/lib/build/lib/build/lib/nabu/stitching/utils.py +563 -0
  1550. build/lib/build/lib/build/lib/nabu/stitching/z_stitching.py +2279 -0
  1551. build/lib/build/lib/build/lib/nabu/tests.py +51 -0
  1552. build/lib/build/lib/build/lib/nabu/testutils.py +375 -0
  1553. build/lib/build/lib/build/lib/nabu/thirdparty/__init__.py +0 -0
  1554. build/lib/build/lib/build/lib/nabu/thirdparty/algotom_convert_sino.py +276 -0
  1555. build/lib/build/lib/build/lib/nabu/thirdparty/pore3d_deringer_munch.py +108 -0
  1556. build/lib/build/lib/build/lib/nabu/thirdparty/tomocupy_remove_stripe.py +586 -0
  1557. build/lib/build/lib/build/lib/nabu/thirdparty/tomopy_phase.py +239 -0
  1558. build/lib/build/lib/build/lib/nabu/thirdparty/tomwer_load_flats_darks.py +162 -0
  1559. build/lib/build/lib/build/lib/nabu/utils.py +836 -0
  1560. build/lib/build/lib/doc/conf.py +137 -0
  1561. build/lib/build/lib/doc/create_conf_doc.py +38 -0
  1562. build/lib/build/lib/doc/get_mathjax.py +34 -0
  1563. build/lib/build/lib/nabu/__init__.py +17 -0
  1564. build/lib/build/lib/nabu/app/__init__.py +0 -0
  1565. build/lib/build/lib/nabu/app/bootstrap.py +88 -0
  1566. build/lib/build/lib/nabu/app/bootstrap_stitching.py +69 -0
  1567. build/lib/build/lib/nabu/app/cast_volume.py +272 -0
  1568. build/lib/build/lib/nabu/app/cli_configs.py +626 -0
  1569. build/lib/build/lib/nabu/app/compare_volumes.py +94 -0
  1570. build/lib/build/lib/nabu/app/composite_cor.py +144 -0
  1571. build/lib/build/lib/nabu/app/correct_rot.py +70 -0
  1572. build/lib/build/lib/nabu/app/create_distortion_map_from_poly.py +153 -0
  1573. build/lib/build/lib/nabu/app/diag_to_pix.py +358 -0
  1574. build/lib/build/lib/nabu/app/diag_to_rot.py +449 -0
  1575. build/lib/build/lib/nabu/app/double_flatfield.py +143 -0
  1576. build/lib/build/lib/nabu/app/generate_header.py +261 -0
  1577. build/lib/build/lib/nabu/app/histogram.py +197 -0
  1578. build/lib/build/lib/nabu/app/multicor.py +90 -0
  1579. build/lib/build/lib/nabu/app/nx_z_splitter.py +125 -0
  1580. build/lib/build/lib/nabu/app/parse_reconstruction_log.py +151 -0
  1581. build/lib/build/lib/nabu/app/prepare_weights_double.py +163 -0
  1582. build/lib/build/lib/nabu/app/reconstruct.py +120 -0
  1583. build/lib/build/lib/nabu/app/reconstruct_helical.py +116 -0
  1584. build/lib/build/lib/nabu/app/reduce_dark_flat.py +181 -0
  1585. build/lib/build/lib/nabu/app/rotate.py +162 -0
  1586. build/lib/build/lib/nabu/app/shrink_dataset.py +98 -0
  1587. build/lib/build/lib/nabu/app/stitching.py +85 -0
  1588. build/lib/build/lib/nabu/app/tests/test_reduce_dark_flat.py +78 -0
  1589. build/lib/build/lib/nabu/app/utils.py +33 -0
  1590. build/lib/build/lib/nabu/app/validator.py +110 -0
  1591. build/lib/build/lib/nabu/cuda/__init__.py +0 -0
  1592. build/lib/build/lib/nabu/cuda/convolution.py +8 -0
  1593. build/lib/build/lib/nabu/cuda/fft.py +4 -0
  1594. build/lib/build/lib/nabu/cuda/kernel.py +97 -0
  1595. build/lib/build/lib/nabu/cuda/medfilt.py +6 -0
  1596. build/lib/build/lib/nabu/cuda/padding.py +6 -0
  1597. build/lib/build/lib/nabu/cuda/processing.py +75 -0
  1598. build/lib/build/lib/nabu/cuda/tests/__init__.py +1 -0
  1599. build/lib/build/lib/nabu/cuda/utils.py +331 -0
  1600. build/lib/build/lib/nabu/estimation/__init__.py +12 -0
  1601. build/lib/build/lib/nabu/estimation/alignment.py +578 -0
  1602. build/lib/build/lib/nabu/estimation/cor.py +1621 -0
  1603. build/lib/build/lib/nabu/estimation/cor_sino.py +183 -0
  1604. build/lib/build/lib/nabu/estimation/distortion.py +112 -0
  1605. build/lib/build/lib/nabu/estimation/focus.py +362 -0
  1606. build/lib/build/lib/nabu/estimation/tests/__init__.py +0 -0
  1607. build/lib/build/lib/nabu/estimation/tests/test_alignment.py +70 -0
  1608. build/lib/build/lib/nabu/estimation/tests/test_cor.py +472 -0
  1609. build/lib/build/lib/nabu/estimation/tests/test_focus.py +105 -0
  1610. build/lib/build/lib/nabu/estimation/tests/test_tilt.py +41 -0
  1611. build/lib/build/lib/nabu/estimation/tests/test_translation.py +78 -0
  1612. build/lib/build/lib/nabu/estimation/tilt.py +214 -0
  1613. build/lib/build/lib/nabu/estimation/translation.py +193 -0
  1614. build/lib/build/lib/nabu/estimation/utils.py +39 -0
  1615. build/lib/build/lib/nabu/io/__init__.py +2 -0
  1616. build/lib/build/lib/nabu/io/cast_volume.py +371 -0
  1617. build/lib/build/lib/nabu/io/detector_distortion.py +305 -0
  1618. build/lib/build/lib/nabu/io/reader.py +628 -0
  1619. build/lib/build/lib/nabu/io/reader_helical.py +114 -0
  1620. build/lib/build/lib/nabu/io/tests/__init__.py +0 -0
  1621. build/lib/build/lib/nabu/io/tests/test_cast_volume.py +339 -0
  1622. build/lib/build/lib/nabu/io/tests/test_detector_distortion.py +178 -0
  1623. build/lib/build/lib/nabu/io/tests/test_writers.py +187 -0
  1624. build/lib/build/lib/nabu/io/tiffwriter_zmm.py +99 -0
  1625. build/lib/build/lib/nabu/io/utils.py +263 -0
  1626. build/lib/build/lib/nabu/io/writer.py +892 -0
  1627. build/lib/build/lib/nabu/misc/__init__.py +0 -0
  1628. build/lib/build/lib/nabu/misc/binning.py +98 -0
  1629. build/lib/build/lib/nabu/misc/fftshift.py +6 -0
  1630. build/lib/build/lib/nabu/misc/filters.py +24 -0
  1631. build/lib/build/lib/nabu/misc/fourier_filters.py +152 -0
  1632. build/lib/build/lib/nabu/misc/histogram.py +6 -0
  1633. build/lib/build/lib/nabu/misc/histogram_cuda.py +8 -0
  1634. build/lib/build/lib/nabu/misc/kernel_base.py +4 -0
  1635. build/lib/build/lib/nabu/misc/padding.py +83 -0
  1636. build/lib/build/lib/nabu/misc/padding_base.py +6 -0
  1637. build/lib/build/lib/nabu/misc/processing_base.py +4 -0
  1638. build/lib/build/lib/nabu/misc/rotation.py +6 -0
  1639. build/lib/build/lib/nabu/misc/rotation_cuda.py +6 -0
  1640. build/lib/build/lib/nabu/misc/tests/__init__.py +1 -0
  1641. build/lib/build/lib/nabu/misc/tests/test_binning.py +48 -0
  1642. build/lib/build/lib/nabu/misc/tests/test_interpolation.py +70 -0
  1643. build/lib/build/lib/nabu/misc/transpose.py +6 -0
  1644. build/lib/build/lib/nabu/misc/unsharp.py +4 -0
  1645. build/lib/build/lib/nabu/misc/unsharp_cuda.py +6 -0
  1646. build/lib/build/lib/nabu/misc/unsharp_opencl.py +8 -0
  1647. build/lib/build/lib/nabu/misc/utils.py +117 -0
  1648. build/lib/build/lib/nabu/opencl/__init__.py +0 -0
  1649. build/lib/build/lib/nabu/opencl/fft.py +6 -0
  1650. build/lib/build/lib/nabu/opencl/kernel.py +135 -0
  1651. build/lib/build/lib/nabu/opencl/memcpy.py +35 -0
  1652. build/lib/build/lib/nabu/opencl/padding.py +6 -0
  1653. build/lib/build/lib/nabu/opencl/processing.py +62 -0
  1654. build/lib/build/lib/nabu/opencl/tests/__init__.py +0 -0
  1655. build/lib/build/lib/nabu/opencl/utils.py +292 -0
  1656. build/lib/build/lib/nabu/pipeline/__init__.py +0 -0
  1657. build/lib/build/lib/nabu/pipeline/config.py +265 -0
  1658. build/lib/build/lib/nabu/pipeline/config_validators.py +589 -0
  1659. build/lib/build/lib/nabu/pipeline/datadump.py +164 -0
  1660. build/lib/build/lib/nabu/pipeline/dataset_validator.py +211 -0
  1661. build/lib/build/lib/nabu/pipeline/detector_distortion_provider.py +20 -0
  1662. build/lib/build/lib/nabu/pipeline/estimators.py +1012 -0
  1663. build/lib/build/lib/nabu/pipeline/fallback_utils.py +149 -0
  1664. build/lib/build/lib/nabu/pipeline/fullfield/__init__.py +0 -0
  1665. build/lib/build/lib/nabu/pipeline/fullfield/chunked.py +849 -0
  1666. build/lib/build/lib/nabu/pipeline/fullfield/chunked_cuda.py +152 -0
  1667. build/lib/build/lib/nabu/pipeline/fullfield/computations.py +260 -0
  1668. build/lib/build/lib/nabu/pipeline/fullfield/dataset_validator.py +63 -0
  1669. build/lib/build/lib/nabu/pipeline/fullfield/nabu_config.py +590 -0
  1670. build/lib/build/lib/nabu/pipeline/fullfield/processconfig.py +825 -0
  1671. build/lib/build/lib/nabu/pipeline/fullfield/reconstruction.py +851 -0
  1672. build/lib/build/lib/nabu/pipeline/helical/__init__.py +0 -0
  1673. build/lib/build/lib/nabu/pipeline/helical/dataset_validator.py +19 -0
  1674. build/lib/build/lib/nabu/pipeline/helical/fbp.py +147 -0
  1675. build/lib/build/lib/nabu/pipeline/helical/filtering.py +246 -0
  1676. build/lib/build/lib/nabu/pipeline/helical/gridded_accumulator.py +575 -0
  1677. build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded.py +1670 -0
  1678. build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded_cuda.py +119 -0
  1679. build/lib/build/lib/nabu/pipeline/helical/helical_reconstruction.py +598 -0
  1680. build/lib/build/lib/nabu/pipeline/helical/helical_utils.py +42 -0
  1681. build/lib/build/lib/nabu/pipeline/helical/nabu_config.py +175 -0
  1682. build/lib/build/lib/nabu/pipeline/helical/processconfig.py +62 -0
  1683. build/lib/build/lib/nabu/pipeline/helical/span_strategy.py +483 -0
  1684. build/lib/build/lib/nabu/pipeline/helical/tests/__init__.py +0 -0
  1685. build/lib/build/lib/nabu/pipeline/helical/tests/test_accumulator.py +157 -0
  1686. build/lib/build/lib/nabu/pipeline/helical/tests/test_pipeline_elements_full.py +355 -0
  1687. build/lib/build/lib/nabu/pipeline/helical/tests/test_strategy.py +61 -0
  1688. build/lib/build/lib/nabu/pipeline/helical/utils.py +51 -0
  1689. build/lib/build/lib/nabu/pipeline/helical/weight_balancer.py +101 -0
  1690. build/lib/build/lib/nabu/pipeline/params.py +163 -0
  1691. build/lib/build/lib/nabu/pipeline/processconfig.py +210 -0
  1692. build/lib/build/lib/nabu/pipeline/tests/test_chunk_reader.py +78 -0
  1693. build/lib/build/lib/nabu/pipeline/tests/test_estimators.py +149 -0
  1694. build/lib/build/lib/nabu/pipeline/utils.py +116 -0
  1695. build/lib/build/lib/nabu/pipeline/writer.py +193 -0
  1696. build/lib/build/lib/nabu/pipeline/xrdct/__init__.py +0 -0
  1697. build/lib/build/lib/nabu/preproc/__init__.py +7 -0
  1698. build/lib/build/lib/nabu/preproc/alignment.py +11 -0
  1699. build/lib/build/lib/nabu/preproc/ccd.py +161 -0
  1700. build/lib/build/lib/nabu/preproc/ccd_cuda.py +169 -0
  1701. build/lib/build/lib/nabu/preproc/ctf.py +361 -0
  1702. build/lib/build/lib/nabu/preproc/ctf_cuda.py +142 -0
  1703. build/lib/build/lib/nabu/preproc/distortion.py +92 -0
  1704. build/lib/build/lib/nabu/preproc/double_flatfield.py +212 -0
  1705. build/lib/build/lib/nabu/preproc/double_flatfield_cuda.py +174 -0
  1706. build/lib/build/lib/nabu/preproc/double_flatfield_variable_region.py +68 -0
  1707. build/lib/build/lib/nabu/preproc/flatfield.py +448 -0
  1708. build/lib/build/lib/nabu/preproc/flatfield_cuda.py +144 -0
  1709. build/lib/build/lib/nabu/preproc/flatfield_variable_region.py +79 -0
  1710. build/lib/build/lib/nabu/preproc/phase.py +425 -0
  1711. build/lib/build/lib/nabu/preproc/phase_cuda.py +143 -0
  1712. build/lib/build/lib/nabu/preproc/shift.py +95 -0
  1713. build/lib/build/lib/nabu/preproc/shift_cuda.py +102 -0
  1714. build/lib/build/lib/nabu/preproc/tests/__init__.py +1 -0
  1715. build/lib/build/lib/nabu/preproc/tests/test_ccd_corr.py +59 -0
  1716. build/lib/build/lib/nabu/preproc/tests/test_ctf.py +250 -0
  1717. build/lib/build/lib/nabu/preproc/tests/test_double_flatfield.py +86 -0
  1718. build/lib/build/lib/nabu/preproc/tests/test_flatfield.py +626 -0
  1719. build/lib/build/lib/nabu/preproc/tests/test_paganin.py +67 -0
  1720. build/lib/build/lib/nabu/preproc/tests/test_vshift.py +73 -0
  1721. build/lib/build/lib/nabu/processing/__init__.py +0 -0
  1722. build/lib/build/lib/nabu/processing/convolution_cuda.py +375 -0
  1723. build/lib/build/lib/nabu/processing/fft_base.py +163 -0
  1724. build/lib/build/lib/nabu/processing/fft_cuda.py +256 -0
  1725. build/lib/build/lib/nabu/processing/fft_opencl.py +54 -0
  1726. build/lib/build/lib/nabu/processing/fftshift.py +134 -0
  1727. build/lib/build/lib/nabu/processing/histogram.py +286 -0
  1728. build/lib/build/lib/nabu/processing/histogram_cuda.py +103 -0
  1729. build/lib/build/lib/nabu/processing/kernel_base.py +126 -0
  1730. build/lib/build/lib/nabu/processing/medfilt_cuda.py +159 -0
  1731. build/lib/build/lib/nabu/processing/muladd.py +29 -0
  1732. build/lib/build/lib/nabu/processing/muladd_cuda.py +68 -0
  1733. build/lib/build/lib/nabu/processing/padding_base.py +71 -0
  1734. build/lib/build/lib/nabu/processing/padding_cuda.py +75 -0
  1735. build/lib/build/lib/nabu/processing/padding_opencl.py +77 -0
  1736. build/lib/build/lib/nabu/processing/processing_base.py +123 -0
  1737. build/lib/build/lib/nabu/processing/roll_opencl.py +64 -0
  1738. build/lib/build/lib/nabu/processing/rotation.py +63 -0
  1739. build/lib/build/lib/nabu/processing/rotation_cuda.py +66 -0
  1740. build/lib/build/lib/nabu/processing/tests/__init__.py +0 -0
  1741. build/lib/build/lib/nabu/processing/tests/test_fft.py +268 -0
  1742. build/lib/build/lib/nabu/processing/tests/test_fftshift.py +71 -0
  1743. build/lib/build/lib/nabu/processing/tests/test_histogram.py +55 -0
  1744. build/lib/build/lib/nabu/processing/tests/test_medfilt.py +77 -0
  1745. build/lib/build/lib/nabu/processing/tests/test_muladd.py +54 -0
  1746. build/lib/build/lib/nabu/processing/tests/test_padding.py +247 -0
  1747. build/lib/build/lib/nabu/processing/tests/test_roll.py +63 -0
  1748. build/lib/build/lib/nabu/processing/tests/test_rotation.py +83 -0
  1749. build/lib/build/lib/nabu/processing/tests/test_transpose.py +72 -0
  1750. build/lib/build/lib/nabu/processing/tests/test_unsharp.py +106 -0
  1751. build/lib/build/lib/nabu/processing/transpose.py +126 -0
  1752. build/lib/build/lib/nabu/processing/unsharp.py +79 -0
  1753. build/lib/build/lib/nabu/processing/unsharp_cuda.py +53 -0
  1754. build/lib/build/lib/nabu/processing/unsharp_opencl.py +75 -0
  1755. build/lib/build/lib/nabu/reconstruction/__init__.py +3 -0
  1756. build/lib/build/lib/nabu/reconstruction/cone.py +241 -0
  1757. build/lib/build/lib/nabu/reconstruction/fbp.py +124 -0
  1758. build/lib/build/lib/nabu/reconstruction/fbp_base.py +391 -0
  1759. build/lib/build/lib/nabu/reconstruction/fbp_opencl.py +78 -0
  1760. build/lib/build/lib/nabu/reconstruction/filtering.py +220 -0
  1761. build/lib/build/lib/nabu/reconstruction/filtering_cuda.py +103 -0
  1762. build/lib/build/lib/nabu/reconstruction/filtering_opencl.py +111 -0
  1763. build/lib/build/lib/nabu/reconstruction/projection.py +240 -0
  1764. build/lib/build/lib/nabu/reconstruction/reconstructor.py +174 -0
  1765. build/lib/build/lib/nabu/reconstruction/reconstructor_cuda.py +44 -0
  1766. build/lib/build/lib/nabu/reconstruction/rings.py +248 -0
  1767. build/lib/build/lib/nabu/reconstruction/rings_cuda.py +322 -0
  1768. build/lib/build/lib/nabu/reconstruction/sinogram.py +467 -0
  1769. build/lib/build/lib/nabu/reconstruction/sinogram_cuda.py +250 -0
  1770. build/lib/build/lib/nabu/reconstruction/sinogram_opencl.py +40 -0
  1771. build/lib/build/lib/nabu/reconstruction/tests/__init__.py +1 -0
  1772. build/lib/build/lib/nabu/reconstruction/tests/test_cone.py +308 -0
  1773. build/lib/build/lib/nabu/reconstruction/tests/test_deringer.py +220 -0
  1774. build/lib/build/lib/nabu/reconstruction/tests/test_fbp.py +252 -0
  1775. build/lib/build/lib/nabu/reconstruction/tests/test_filtering.py +133 -0
  1776. build/lib/build/lib/nabu/reconstruction/tests/test_halftomo.py +100 -0
  1777. build/lib/build/lib/nabu/reconstruction/tests/test_projector.py +164 -0
  1778. build/lib/build/lib/nabu/reconstruction/tests/test_reconstructor.py +93 -0
  1779. build/lib/build/lib/nabu/reconstruction/tests/test_sino_normalization.py +85 -0
  1780. build/lib/build/lib/nabu/resources/__init__.py +0 -0
  1781. build/lib/build/lib/nabu/resources/cli/__init__.py +0 -0
  1782. build/lib/build/lib/nabu/resources/cor.py +5 -0
  1783. build/lib/build/lib/nabu/resources/dataset_analyzer.py +469 -0
  1784. build/lib/build/lib/nabu/resources/gpu.py +169 -0
  1785. build/lib/build/lib/nabu/resources/logger.py +130 -0
  1786. build/lib/build/lib/nabu/resources/nxflatfield.py +217 -0
  1787. build/lib/build/lib/nabu/resources/templates/__init__.py +0 -0
  1788. build/lib/build/lib/nabu/resources/tests/__init__.py +0 -0
  1789. build/lib/build/lib/nabu/resources/tests/test_nxflatfield.py +104 -0
  1790. build/lib/build/lib/nabu/resources/tests/test_units.py +47 -0
  1791. build/lib/build/lib/nabu/resources/utils.py +174 -0
  1792. build/lib/build/lib/nabu/stitching/__init__.py +0 -0
  1793. build/lib/build/lib/nabu/stitching/alignment.py +184 -0
  1794. build/lib/build/lib/nabu/stitching/config.py +1286 -0
  1795. build/lib/build/lib/nabu/stitching/definitions.py +6 -0
  1796. build/lib/build/lib/nabu/stitching/frame_composition.py +155 -0
  1797. build/lib/build/lib/nabu/stitching/overlap.py +373 -0
  1798. build/lib/build/lib/nabu/stitching/sample_normalization.py +60 -0
  1799. build/lib/build/lib/nabu/stitching/slurm_utils.py +204 -0
  1800. build/lib/build/lib/nabu/stitching/tests/__init__.py +0 -0
  1801. build/lib/build/lib/nabu/stitching/tests/test_alignment.py +99 -0
  1802. build/lib/build/lib/nabu/stitching/tests/test_config.py +226 -0
  1803. build/lib/build/lib/nabu/stitching/tests/test_frame_composition.py +180 -0
  1804. build/lib/build/lib/nabu/stitching/tests/test_overlap.py +98 -0
  1805. build/lib/build/lib/nabu/stitching/tests/test_sample_normalization.py +49 -0
  1806. build/lib/build/lib/nabu/stitching/tests/test_slurm_utils.py +146 -0
  1807. build/lib/build/lib/nabu/stitching/tests/test_utils.py +21 -0
  1808. build/lib/build/lib/nabu/stitching/tests/test_z_stitching.py +1183 -0
  1809. build/lib/build/lib/nabu/stitching/utils.py +563 -0
  1810. build/lib/build/lib/nabu/stitching/z_stitching.py +2279 -0
  1811. build/lib/build/lib/nabu/tests.py +51 -0
  1812. build/lib/build/lib/nabu/testutils.py +375 -0
  1813. build/lib/build/lib/nabu/thirdparty/__init__.py +0 -0
  1814. build/lib/build/lib/nabu/thirdparty/algotom_convert_sino.py +276 -0
  1815. build/lib/build/lib/nabu/thirdparty/pore3d_deringer_munch.py +108 -0
  1816. build/lib/build/lib/nabu/thirdparty/tomocupy_remove_stripe.py +586 -0
  1817. build/lib/build/lib/nabu/thirdparty/tomopy_phase.py +239 -0
  1818. build/lib/build/lib/nabu/thirdparty/tomwer_load_flats_darks.py +162 -0
  1819. build/lib/build/lib/nabu/utils.py +836 -0
  1820. build/lib/doc/conf.py +137 -0
  1821. build/lib/doc/create_conf_doc.py +38 -0
  1822. build/lib/doc/get_mathjax.py +34 -0
  1823. build/lib/nabu/__init__.py +17 -0
  1824. build/lib/nabu/app/__init__.py +0 -0
  1825. build/lib/nabu/app/bootstrap.py +88 -0
  1826. build/lib/nabu/app/bootstrap_stitching.py +69 -0
  1827. build/lib/nabu/app/cast_volume.py +272 -0
  1828. build/lib/nabu/app/cli_configs.py +626 -0
  1829. build/lib/nabu/app/compare_volumes.py +94 -0
  1830. build/lib/nabu/app/composite_cor.py +144 -0
  1831. build/lib/nabu/app/correct_rot.py +70 -0
  1832. build/lib/nabu/app/create_distortion_map_from_poly.py +153 -0
  1833. build/lib/nabu/app/diag_to_pix.py +358 -0
  1834. build/lib/nabu/app/diag_to_rot.py +449 -0
  1835. build/lib/nabu/app/double_flatfield.py +143 -0
  1836. build/lib/nabu/app/generate_header.py +261 -0
  1837. build/lib/nabu/app/histogram.py +197 -0
  1838. build/lib/nabu/app/multicor.py +90 -0
  1839. build/lib/nabu/app/nx_z_splitter.py +125 -0
  1840. build/lib/nabu/app/parse_reconstruction_log.py +151 -0
  1841. build/lib/nabu/app/prepare_weights_double.py +163 -0
  1842. build/lib/nabu/app/reconstruct.py +120 -0
  1843. build/lib/nabu/app/reconstruct_helical.py +116 -0
  1844. build/lib/nabu/app/reduce_dark_flat.py +181 -0
  1845. build/lib/nabu/app/rotate.py +162 -0
  1846. build/lib/nabu/app/shrink_dataset.py +98 -0
  1847. build/lib/nabu/app/stitching.py +85 -0
  1848. build/lib/nabu/app/tests/test_reduce_dark_flat.py +78 -0
  1849. build/lib/nabu/app/utils.py +33 -0
  1850. build/lib/nabu/app/validator.py +110 -0
  1851. build/lib/nabu/cuda/__init__.py +0 -0
  1852. build/lib/nabu/cuda/convolution.py +8 -0
  1853. build/lib/nabu/cuda/fft.py +4 -0
  1854. build/lib/nabu/cuda/kernel.py +97 -0
  1855. build/lib/nabu/cuda/medfilt.py +6 -0
  1856. build/lib/nabu/cuda/padding.py +6 -0
  1857. build/lib/nabu/cuda/processing.py +75 -0
  1858. build/lib/nabu/cuda/tests/__init__.py +1 -0
  1859. build/lib/nabu/cuda/utils.py +331 -0
  1860. build/lib/nabu/estimation/__init__.py +12 -0
  1861. build/lib/nabu/estimation/alignment.py +578 -0
  1862. build/lib/nabu/estimation/cor.py +1621 -0
  1863. build/lib/nabu/estimation/cor_sino.py +183 -0
  1864. build/lib/nabu/estimation/distortion.py +112 -0
  1865. build/lib/nabu/estimation/focus.py +362 -0
  1866. build/lib/nabu/estimation/tests/__init__.py +0 -0
  1867. build/lib/nabu/estimation/tests/test_alignment.py +70 -0
  1868. build/lib/nabu/estimation/tests/test_cor.py +472 -0
  1869. build/lib/nabu/estimation/tests/test_focus.py +105 -0
  1870. build/lib/nabu/estimation/tests/test_tilt.py +41 -0
  1871. build/lib/nabu/estimation/tests/test_translation.py +78 -0
  1872. build/lib/nabu/estimation/tilt.py +214 -0
  1873. build/lib/nabu/estimation/translation.py +193 -0
  1874. build/lib/nabu/estimation/utils.py +39 -0
  1875. build/lib/nabu/io/__init__.py +2 -0
  1876. build/lib/nabu/io/cast_volume.py +371 -0
  1877. build/lib/nabu/io/detector_distortion.py +305 -0
  1878. build/lib/nabu/io/reader.py +628 -0
  1879. build/lib/nabu/io/reader_helical.py +114 -0
  1880. build/lib/nabu/io/tests/__init__.py +0 -0
  1881. build/lib/nabu/io/tests/test_cast_volume.py +339 -0
  1882. build/lib/nabu/io/tests/test_detector_distortion.py +178 -0
  1883. build/lib/nabu/io/tests/test_writers.py +187 -0
  1884. build/lib/nabu/io/tiffwriter_zmm.py +99 -0
  1885. build/lib/nabu/io/utils.py +263 -0
  1886. build/lib/nabu/io/writer.py +892 -0
  1887. build/lib/nabu/misc/__init__.py +0 -0
  1888. build/lib/nabu/misc/binning.py +98 -0
  1889. build/lib/nabu/misc/fftshift.py +6 -0
  1890. build/lib/nabu/misc/filters.py +24 -0
  1891. build/lib/nabu/misc/fourier_filters.py +152 -0
  1892. build/lib/nabu/misc/histogram.py +6 -0
  1893. build/lib/nabu/misc/histogram_cuda.py +8 -0
  1894. build/lib/nabu/misc/kernel_base.py +4 -0
  1895. build/lib/nabu/misc/padding.py +83 -0
  1896. build/lib/nabu/misc/padding_base.py +6 -0
  1897. build/lib/nabu/misc/processing_base.py +4 -0
  1898. build/lib/nabu/misc/rotation.py +6 -0
  1899. build/lib/nabu/misc/rotation_cuda.py +6 -0
  1900. build/lib/nabu/misc/tests/__init__.py +1 -0
  1901. build/lib/nabu/misc/tests/test_binning.py +48 -0
  1902. build/lib/nabu/misc/tests/test_interpolation.py +70 -0
  1903. build/lib/nabu/misc/transpose.py +6 -0
  1904. build/lib/nabu/misc/unsharp.py +4 -0
  1905. build/lib/nabu/misc/unsharp_cuda.py +6 -0
  1906. build/lib/nabu/misc/unsharp_opencl.py +8 -0
  1907. build/lib/nabu/misc/utils.py +117 -0
  1908. build/lib/nabu/opencl/__init__.py +0 -0
  1909. build/lib/nabu/opencl/fft.py +6 -0
  1910. build/lib/nabu/opencl/kernel.py +135 -0
  1911. build/lib/nabu/opencl/memcpy.py +35 -0
  1912. build/lib/nabu/opencl/padding.py +6 -0
  1913. build/lib/nabu/opencl/processing.py +62 -0
  1914. build/lib/nabu/opencl/tests/__init__.py +0 -0
  1915. build/lib/nabu/opencl/utils.py +292 -0
  1916. build/lib/nabu/pipeline/__init__.py +0 -0
  1917. build/lib/nabu/pipeline/config.py +265 -0
  1918. build/lib/nabu/pipeline/config_validators.py +589 -0
  1919. build/lib/nabu/pipeline/datadump.py +164 -0
  1920. build/lib/nabu/pipeline/dataset_validator.py +211 -0
  1921. build/lib/nabu/pipeline/detector_distortion_provider.py +20 -0
  1922. build/lib/nabu/pipeline/estimators.py +1012 -0
  1923. build/lib/nabu/pipeline/fallback_utils.py +149 -0
  1924. build/lib/nabu/pipeline/fullfield/__init__.py +0 -0
  1925. build/lib/nabu/pipeline/fullfield/chunked.py +849 -0
  1926. build/lib/nabu/pipeline/fullfield/chunked_cuda.py +152 -0
  1927. build/lib/nabu/pipeline/fullfield/computations.py +260 -0
  1928. build/lib/nabu/pipeline/fullfield/dataset_validator.py +63 -0
  1929. build/lib/nabu/pipeline/fullfield/nabu_config.py +590 -0
  1930. build/lib/nabu/pipeline/fullfield/processconfig.py +825 -0
  1931. build/lib/nabu/pipeline/fullfield/reconstruction.py +851 -0
  1932. build/lib/nabu/pipeline/helical/__init__.py +0 -0
  1933. build/lib/nabu/pipeline/helical/dataset_validator.py +19 -0
  1934. build/lib/nabu/pipeline/helical/fbp.py +147 -0
  1935. build/lib/nabu/pipeline/helical/filtering.py +246 -0
  1936. build/lib/nabu/pipeline/helical/gridded_accumulator.py +575 -0
  1937. build/lib/nabu/pipeline/helical/helical_chunked_regridded.py +1670 -0
  1938. build/lib/nabu/pipeline/helical/helical_chunked_regridded_cuda.py +119 -0
  1939. build/lib/nabu/pipeline/helical/helical_reconstruction.py +598 -0
  1940. build/lib/nabu/pipeline/helical/helical_utils.py +42 -0
  1941. build/lib/nabu/pipeline/helical/nabu_config.py +175 -0
  1942. build/lib/nabu/pipeline/helical/processconfig.py +62 -0
  1943. build/lib/nabu/pipeline/helical/span_strategy.py +483 -0
  1944. build/lib/nabu/pipeline/helical/tests/__init__.py +0 -0
  1945. build/lib/nabu/pipeline/helical/tests/test_accumulator.py +157 -0
  1946. build/lib/nabu/pipeline/helical/tests/test_pipeline_elements_full.py +355 -0
  1947. build/lib/nabu/pipeline/helical/tests/test_strategy.py +61 -0
  1948. build/lib/nabu/pipeline/helical/utils.py +51 -0
  1949. build/lib/nabu/pipeline/helical/weight_balancer.py +101 -0
  1950. build/lib/nabu/pipeline/params.py +163 -0
  1951. build/lib/nabu/pipeline/processconfig.py +210 -0
  1952. build/lib/nabu/pipeline/tests/test_chunk_reader.py +78 -0
  1953. build/lib/nabu/pipeline/tests/test_estimators.py +149 -0
  1954. build/lib/nabu/pipeline/utils.py +116 -0
  1955. build/lib/nabu/pipeline/writer.py +193 -0
  1956. build/lib/nabu/pipeline/xrdct/__init__.py +0 -0
  1957. build/lib/nabu/preproc/__init__.py +7 -0
  1958. build/lib/nabu/preproc/alignment.py +11 -0
  1959. build/lib/nabu/preproc/ccd.py +161 -0
  1960. build/lib/nabu/preproc/ccd_cuda.py +169 -0
  1961. build/lib/nabu/preproc/ctf.py +361 -0
  1962. build/lib/nabu/preproc/ctf_cuda.py +142 -0
  1963. build/lib/nabu/preproc/distortion.py +92 -0
  1964. build/lib/nabu/preproc/double_flatfield.py +212 -0
  1965. build/lib/nabu/preproc/double_flatfield_cuda.py +174 -0
  1966. build/lib/nabu/preproc/double_flatfield_variable_region.py +68 -0
  1967. build/lib/nabu/preproc/flatfield.py +448 -0
  1968. build/lib/nabu/preproc/flatfield_cuda.py +144 -0
  1969. build/lib/nabu/preproc/flatfield_variable_region.py +79 -0
  1970. build/lib/nabu/preproc/phase.py +425 -0
  1971. build/lib/nabu/preproc/phase_cuda.py +143 -0
  1972. build/lib/nabu/preproc/shift.py +95 -0
  1973. build/lib/nabu/preproc/shift_cuda.py +102 -0
  1974. build/lib/nabu/preproc/tests/__init__.py +1 -0
  1975. build/lib/nabu/preproc/tests/test_ccd_corr.py +59 -0
  1976. build/lib/nabu/preproc/tests/test_ctf.py +250 -0
  1977. build/lib/nabu/preproc/tests/test_double_flatfield.py +86 -0
  1978. build/lib/nabu/preproc/tests/test_flatfield.py +626 -0
  1979. build/lib/nabu/preproc/tests/test_paganin.py +67 -0
  1980. build/lib/nabu/preproc/tests/test_vshift.py +73 -0
  1981. build/lib/nabu/processing/__init__.py +0 -0
  1982. build/lib/nabu/processing/convolution_cuda.py +375 -0
  1983. build/lib/nabu/processing/fft_base.py +163 -0
  1984. build/lib/nabu/processing/fft_cuda.py +256 -0
  1985. build/lib/nabu/processing/fft_opencl.py +54 -0
  1986. build/lib/nabu/processing/fftshift.py +134 -0
  1987. build/lib/nabu/processing/histogram.py +286 -0
  1988. build/lib/nabu/processing/histogram_cuda.py +103 -0
  1989. build/lib/nabu/processing/kernel_base.py +126 -0
  1990. build/lib/nabu/processing/medfilt_cuda.py +159 -0
  1991. build/lib/nabu/processing/muladd.py +29 -0
  1992. build/lib/nabu/processing/muladd_cuda.py +68 -0
  1993. build/lib/nabu/processing/padding_base.py +71 -0
  1994. build/lib/nabu/processing/padding_cuda.py +75 -0
  1995. build/lib/nabu/processing/padding_opencl.py +77 -0
  1996. build/lib/nabu/processing/processing_base.py +123 -0
  1997. build/lib/nabu/processing/roll_opencl.py +64 -0
  1998. build/lib/nabu/processing/rotation.py +63 -0
  1999. build/lib/nabu/processing/rotation_cuda.py +66 -0
  2000. build/lib/nabu/processing/tests/__init__.py +0 -0
  2001. build/lib/nabu/processing/tests/test_fft.py +268 -0
  2002. build/lib/nabu/processing/tests/test_fftshift.py +71 -0
  2003. build/lib/nabu/processing/tests/test_histogram.py +55 -0
  2004. build/lib/nabu/processing/tests/test_medfilt.py +77 -0
  2005. build/lib/nabu/processing/tests/test_muladd.py +54 -0
  2006. build/lib/nabu/processing/tests/test_padding.py +247 -0
  2007. build/lib/nabu/processing/tests/test_roll.py +63 -0
  2008. build/lib/nabu/processing/tests/test_rotation.py +83 -0
  2009. build/lib/nabu/processing/tests/test_transpose.py +72 -0
  2010. build/lib/nabu/processing/tests/test_unsharp.py +106 -0
  2011. build/lib/nabu/processing/transpose.py +126 -0
  2012. build/lib/nabu/processing/unsharp.py +79 -0
  2013. build/lib/nabu/processing/unsharp_cuda.py +53 -0
  2014. build/lib/nabu/processing/unsharp_opencl.py +75 -0
  2015. build/lib/nabu/reconstruction/__init__.py +3 -0
  2016. build/lib/nabu/reconstruction/cone.py +241 -0
  2017. build/lib/nabu/reconstruction/fbp.py +124 -0
  2018. build/lib/nabu/reconstruction/fbp_base.py +391 -0
  2019. build/lib/nabu/reconstruction/fbp_opencl.py +78 -0
  2020. build/lib/nabu/reconstruction/filtering.py +220 -0
  2021. build/lib/nabu/reconstruction/filtering_cuda.py +103 -0
  2022. build/lib/nabu/reconstruction/filtering_opencl.py +111 -0
  2023. build/lib/nabu/reconstruction/projection.py +240 -0
  2024. build/lib/nabu/reconstruction/reconstructor.py +174 -0
  2025. build/lib/nabu/reconstruction/reconstructor_cuda.py +44 -0
  2026. build/lib/nabu/reconstruction/rings.py +248 -0
  2027. build/lib/nabu/reconstruction/rings_cuda.py +322 -0
  2028. build/lib/nabu/reconstruction/sinogram.py +467 -0
  2029. build/lib/nabu/reconstruction/sinogram_cuda.py +250 -0
  2030. build/lib/nabu/reconstruction/sinogram_opencl.py +40 -0
  2031. build/lib/nabu/reconstruction/tests/__init__.py +1 -0
  2032. build/lib/nabu/reconstruction/tests/test_cone.py +308 -0
  2033. build/lib/nabu/reconstruction/tests/test_deringer.py +220 -0
  2034. build/lib/nabu/reconstruction/tests/test_fbp.py +252 -0
  2035. build/lib/nabu/reconstruction/tests/test_filtering.py +133 -0
  2036. build/lib/nabu/reconstruction/tests/test_halftomo.py +100 -0
  2037. build/lib/nabu/reconstruction/tests/test_projector.py +164 -0
  2038. build/lib/nabu/reconstruction/tests/test_reconstructor.py +93 -0
  2039. build/lib/nabu/reconstruction/tests/test_sino_normalization.py +85 -0
  2040. build/lib/nabu/resources/__init__.py +0 -0
  2041. build/lib/nabu/resources/cli/__init__.py +0 -0
  2042. build/lib/nabu/resources/cor.py +5 -0
  2043. build/lib/nabu/resources/dataset_analyzer.py +469 -0
  2044. build/lib/nabu/resources/gpu.py +169 -0
  2045. build/lib/nabu/resources/logger.py +130 -0
  2046. build/lib/nabu/resources/nxflatfield.py +217 -0
  2047. build/lib/nabu/resources/templates/__init__.py +0 -0
  2048. build/lib/nabu/resources/tests/__init__.py +0 -0
  2049. build/lib/nabu/resources/tests/test_nxflatfield.py +104 -0
  2050. build/lib/nabu/resources/tests/test_units.py +47 -0
  2051. build/lib/nabu/resources/utils.py +174 -0
  2052. build/lib/nabu/stitching/__init__.py +0 -0
  2053. build/lib/nabu/stitching/alignment.py +184 -0
  2054. build/lib/nabu/stitching/config.py +1286 -0
  2055. build/lib/nabu/stitching/definitions.py +6 -0
  2056. build/lib/nabu/stitching/frame_composition.py +155 -0
  2057. build/lib/nabu/stitching/overlap.py +373 -0
  2058. build/lib/nabu/stitching/sample_normalization.py +60 -0
  2059. build/lib/nabu/stitching/slurm_utils.py +204 -0
  2060. build/lib/nabu/stitching/tests/__init__.py +0 -0
  2061. build/lib/nabu/stitching/tests/test_alignment.py +99 -0
  2062. build/lib/nabu/stitching/tests/test_config.py +226 -0
  2063. build/lib/nabu/stitching/tests/test_frame_composition.py +180 -0
  2064. build/lib/nabu/stitching/tests/test_overlap.py +98 -0
  2065. build/lib/nabu/stitching/tests/test_sample_normalization.py +49 -0
  2066. build/lib/nabu/stitching/tests/test_slurm_utils.py +146 -0
  2067. build/lib/nabu/stitching/tests/test_utils.py +21 -0
  2068. build/lib/nabu/stitching/tests/test_z_stitching.py +1183 -0
  2069. build/lib/nabu/stitching/utils.py +563 -0
  2070. build/lib/nabu/stitching/z_stitching.py +2279 -0
  2071. build/lib/nabu/tests.py +51 -0
  2072. build/lib/nabu/testutils.py +375 -0
  2073. build/lib/nabu/thirdparty/__init__.py +0 -0
  2074. build/lib/nabu/thirdparty/algotom_convert_sino.py +276 -0
  2075. build/lib/nabu/thirdparty/pore3d_deringer_munch.py +108 -0
  2076. build/lib/nabu/thirdparty/tomocupy_remove_stripe.py +586 -0
  2077. build/lib/nabu/thirdparty/tomopy_phase.py +239 -0
  2078. build/lib/nabu/thirdparty/tomwer_load_flats_darks.py +162 -0
  2079. build/lib/nabu/utils.py +836 -0
  2080. nabu/__init__.py +1 -1
  2081. nabu/io/cast_volume.py +10 -2
  2082. nabu/stitching/config.py +2 -2
  2083. nabu/stitching/z_stitching.py +3 -1
  2084. {nabu-2024.1.0rc4.dist-info → nabu-2024.1.1.dist-info}/METADATA +1 -1
  2085. nabu-2024.1.1.dist-info/RECORD +2375 -0
  2086. {nabu-2024.1.0rc4.dist-info → nabu-2024.1.1.dist-info}/WHEEL +1 -1
  2087. nabu-2024.1.1.dist-info/top_level.txt +4 -0
  2088. nabu-2024.1.0rc4.dist-info/RECORD +0 -296
  2089. nabu-2024.1.0rc4.dist-info/top_level.txt +0 -2
  2090. {nabu/app/tests → build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app}/__init__.py +0 -0
  2091. {nabu-2024.1.0rc4.dist-info → nabu-2024.1.1.dist-info}/LICENSE +0 -0
  2092. {nabu-2024.1.0rc4.dist-info → nabu-2024.1.1.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,1183 @@
1
+ # coding: utf-8
2
+ # /*##########################################################################
3
+ #
4
+ # Copyright (c) 2016-2017 European Synchrotron Radiation Facility
5
+ #
6
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ # of this software and associated documentation files (the "Software"), to deal
8
+ # in the Software without restriction, including without limitation the rights
9
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ # copies of the Software, and to permit persons to whom the Software is
11
+ # furnished to do so, subject to the following conditions:
12
+ #
13
+ # The above copyright notice and this permission notice shall be included in
14
+ # all copies or substantial portions of the Software.
15
+ #
16
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22
+ # THE SOFTWARE.
23
+ #
24
+ # ###########################################################################*/
25
+
26
+ __authors__ = ["H. Payno"]
27
+ __license__ = "MIT"
28
+ __date__ = "13/05/2022"
29
+
30
+
31
+ import os
32
+ from silx.image.phantomgenerator import PhantomGenerator
33
+ from scipy.ndimage import shift as scipy_shift
34
+ import numpy
35
+ import pytest
36
+ from nabu.stitching.config import (
37
+ PreProcessedZStitchingConfiguration,
38
+ PostProcessedZStitchingConfiguration,
39
+ )
40
+ from nabu.utils import Progress
41
+ from nabu.stitching.config import KEY_IMG_REG_METHOD, NormalizationBySample
42
+ from nabu.stitching.overlap import ZStichOverlapKernel, OverlapStitchingStrategy
43
+ from nabu.stitching.z_stitching import (
44
+ PostProcessZStitcher,
45
+ PreProcessZStitcher,
46
+ stitch_vertically_raw_frames,
47
+ ZStitcher,
48
+ )
49
+ from nxtomo.nxobject.nxdetector import ImageKey
50
+ from nxtomo.utils.transformation import UDDetTransformation, LRDetTransformation
51
+ from nxtomo.application.nxtomo import NXtomo
52
+ from nabu.stitching.alignment import AlignmentAxis1, AlignmentAxis2
53
+ from tomoscan.factory import Factory as TomoscanFactory
54
+ from tomoscan.utils.volume import concatenate as concatenate_volumes
55
+ from tomoscan.esrf.scan.nxtomoscan import NXtomoScan
56
+ from tomoscan.esrf.volume import HDF5Volume, EDFVolume
57
+ from tomoscan.esrf.volume.jp2kvolume import JP2KVolume, has_minimal_openjpeg
58
+ from tomoscan.esrf.volume.tiffvolume import TIFFVolume, has_tifffile
59
+ from nabu.stitching.utils import ShiftAlgorithm
60
+ import h5py
61
+
62
+
63
+ strategies_to_test_weights = (
64
+ OverlapStitchingStrategy.CLOSEST,
65
+ OverlapStitchingStrategy.COSINUS_WEIGHTS,
66
+ OverlapStitchingStrategy.LINEAR_WEIGHTS,
67
+ OverlapStitchingStrategy.MEAN,
68
+ )
69
+
70
+
71
+ def build_raw_volume():
72
+ """util to create some raw volume"""
73
+ raw_volume = numpy.stack(
74
+ [
75
+ PhantomGenerator.get2DPhantomSheppLogan(n=120).astype(numpy.float32) * 256.0,
76
+ PhantomGenerator.get2DPhantomSheppLogan(n=120).astype(numpy.float32) * 128.0,
77
+ PhantomGenerator.get2DPhantomSheppLogan(n=120).astype(numpy.float32) * 32.0,
78
+ PhantomGenerator.get2DPhantomSheppLogan(n=120).astype(numpy.float32) * 16.0,
79
+ ]
80
+ )
81
+ assert raw_volume.shape == (4, 120, 120)
82
+ raw_volume = numpy.rollaxis(raw_volume, axis=1, start=0)
83
+ assert raw_volume.shape == (120, 4, 120)
84
+ return raw_volume
85
+
86
+
87
+ @pytest.mark.parametrize("strategy", strategies_to_test_weights)
88
+ def test_overlap_z_stitcher(strategy):
89
+ frame_width = 128
90
+ frame_height = frame_width
91
+ frame_1 = PhantomGenerator.get2DPhantomSheppLogan(n=frame_width)
92
+ stitcher = ZStichOverlapKernel(
93
+ stitching_strategy=strategy,
94
+ overlap_size=frame_height,
95
+ frame_width=128,
96
+ )
97
+ stitched_frame = stitcher.stitch(frame_1, frame_1)[0]
98
+ assert stitched_frame.shape == (frame_height, frame_width)
99
+ # check result is close to the expected one
100
+ numpy.testing.assert_allclose(frame_1, stitched_frame, atol=10e-10)
101
+
102
+ # check sum of weights ~ 1.0
103
+ numpy.testing.assert_allclose(
104
+ stitcher.weights_img_1 + stitcher.weights_img_2,
105
+ numpy.ones_like(stitcher.weights_img_1),
106
+ )
107
+
108
+
109
+ @pytest.mark.parametrize("dtype", (numpy.float16, numpy.float32))
110
+ def test_z_stitch_raw_frames(dtype):
111
+ """
112
+ test z_stitch_raw_frames: insure a stitching with 3 frames and different overlap can be done
113
+ """
114
+ ref_frame_width = 256
115
+ frame_ref = PhantomGenerator.get2DPhantomSheppLogan(n=ref_frame_width).astype(dtype)
116
+
117
+ # split the frame into several part
118
+ frame_1 = frame_ref[0:100]
119
+ frame_2 = frame_ref[80:164]
120
+ frame_3 = frame_ref[154:]
121
+
122
+ kernel_1 = ZStichOverlapKernel(frame_width=ref_frame_width, overlap_size=20)
123
+ kernel_2 = ZStichOverlapKernel(frame_width=ref_frame_width, overlap_size=10)
124
+
125
+ stitched = stitch_vertically_raw_frames(
126
+ frames=(frame_1, frame_2, frame_3),
127
+ output_dtype=dtype,
128
+ overlap_kernels=(kernel_1, kernel_2),
129
+ raw_frames_compositions=None,
130
+ overlap_frames_compositions=None,
131
+ key_lines=(
132
+ (
133
+ 90, # frame_1 height - kernel_1 height / 2.0
134
+ 10, # kernel_1 height / 2.0
135
+ ),
136
+ (
137
+ 79, # frame_2 height - kernel_2 height / 2.0 ou 102-20 ?
138
+ 5, # kernel_2 height / 2.0
139
+ ),
140
+ ),
141
+ )
142
+
143
+ assert stitched.shape == frame_ref.shape
144
+ numpy.testing.assert_array_almost_equal(frame_ref, stitched)
145
+
146
+
147
+ def test_z_stitch_raw_frames_2():
148
+ """
149
+ test z_stitch_raw_frames: insure a stitching with 3 frames and different overlap can be done
150
+ """
151
+ ref_frame_width = 256
152
+ frame_ref = PhantomGenerator.get2DPhantomSheppLogan(n=ref_frame_width).astype(numpy.float32)
153
+
154
+ # split the frame into several part
155
+ frame_1 = frame_ref.copy()
156
+ frame_2 = frame_ref.copy()
157
+ frame_3 = frame_ref.copy()
158
+
159
+ kernel_1 = ZStichOverlapKernel(frame_width=ref_frame_width, overlap_size=10)
160
+ kernel_2 = ZStichOverlapKernel(frame_width=ref_frame_width, overlap_size=10)
161
+
162
+ stitched = stitch_vertically_raw_frames(
163
+ frames=(frame_1, frame_2, frame_3),
164
+ output_dtype=numpy.float32,
165
+ overlap_kernels=(kernel_1, kernel_2),
166
+ raw_frames_compositions=None,
167
+ overlap_frames_compositions=None,
168
+ key_lines=((20, 20), (105, 105)),
169
+ )
170
+
171
+ assert stitched.shape == frame_ref.shape
172
+ numpy.testing.assert_array_almost_equal(frame_ref, stitched)
173
+
174
+
175
+ _stitching_configurations = (
176
+ # simple case where shifts are provided
177
+ {
178
+ "n_proj": 4,
179
+ "raw_pos": ((0, 0, 0), (-90, 0, 0), (-180, 0, 0)), # requested shift to
180
+ "input_pos": ((0, 0, 0), (-90, 0, 0), (-180, 0, 0)), # requested shift to
181
+ "raw_shifts": ((0, 0), (-90, 0), (-180, 0)),
182
+ },
183
+ # simple case where shift is found from z position
184
+ {
185
+ "n_proj": 4,
186
+ "raw_pos": ((90, 0, 0), (0, 0, 0), (-90, 0, 0)),
187
+ "input_pos": ((90, 0, 0), (0, 0, 0), (-90, 0, 0)),
188
+ "check_bb": ((40, 140), (-50, 50), (-140, -40)),
189
+ "axis_0_params": {
190
+ KEY_IMG_REG_METHOD: ShiftAlgorithm.NONE,
191
+ },
192
+ "axis_2_params": {
193
+ KEY_IMG_REG_METHOD: ShiftAlgorithm.NONE,
194
+ },
195
+ "raw_shifts": ((0, 0), (-90, 0), (-180, 0)),
196
+ },
197
+ )
198
+
199
+
200
+ @pytest.mark.parametrize("configuration", _stitching_configurations)
201
+ @pytest.mark.parametrize("dtype", (numpy.float32, numpy.int16))
202
+ def test_PreProcessZStitcher(tmp_path, dtype, configuration):
203
+ """
204
+ test PreProcessZStitcher class and insure a full stitching can be done automatically.
205
+ """
206
+ n_proj = configuration["n_proj"]
207
+ ref_frame_width = 280
208
+ raw_frame_height = 100
209
+ ref_frame = PhantomGenerator.get2DPhantomSheppLogan(n=ref_frame_width).astype(dtype) * 256.0
210
+
211
+ # add some mark for image registration
212
+ ref_frame[:, 96] = -3.2
213
+ ref_frame[:, 125] = 9.1
214
+ ref_frame[:, 165] = 4.4
215
+ ref_frame[:, 200] = -2.5
216
+ # create raw data
217
+ frame_0_shift, frame_1_shift, frame_2_shift = configuration["raw_shifts"]
218
+ frame_0 = scipy_shift(ref_frame, shift=frame_0_shift)[:raw_frame_height]
219
+ frame_1 = scipy_shift(ref_frame, shift=frame_1_shift)[:raw_frame_height]
220
+ frame_2 = scipy_shift(ref_frame, shift=frame_2_shift)[:raw_frame_height]
221
+
222
+ frames = frame_0, frame_1, frame_2
223
+ frame_0_input_pos, frame_1_input_pos, frame_2_input_pos = configuration["input_pos"]
224
+ frame_0_raw_pos, frame_1_raw_pos, frame_2_raw_pos = configuration["raw_pos"]
225
+
226
+ # create a Nxtomo for each of those raw data
227
+ raw_data_dir = tmp_path / "raw_data"
228
+ raw_data_dir.mkdir()
229
+ output_dir = tmp_path / "output_dir"
230
+ output_dir.mkdir()
231
+ z_position = (
232
+ frame_0_raw_pos[0],
233
+ frame_1_raw_pos[0],
234
+ frame_2_raw_pos[0],
235
+ )
236
+ scans = []
237
+ for (i_frame, frame), z_pos in zip(enumerate(frames), z_position):
238
+ nx_tomo = NXtomo()
239
+ nx_tomo.sample.z_translation = [z_pos] * n_proj
240
+ nx_tomo.sample.rotation_angle = numpy.linspace(0, 180, num=n_proj, endpoint=False)
241
+ nx_tomo.instrument.detector.image_key_control = [ImageKey.PROJECTION] * n_proj
242
+ nx_tomo.instrument.detector.x_pixel_size = 1.0
243
+ nx_tomo.instrument.detector.y_pixel_size = 1.0
244
+ nx_tomo.instrument.detector.distance = 2.3
245
+ nx_tomo.energy = 19.2
246
+ nx_tomo.instrument.detector.data = numpy.asarray([frame] * n_proj)
247
+
248
+ file_path = os.path.join(raw_data_dir, f"nxtomo_{i_frame}.nx")
249
+ entry = f"entry000{i_frame}"
250
+ nx_tomo.save(file_path=file_path, data_path=entry)
251
+ scans.append(NXtomoScan(scan=file_path, entry=entry))
252
+
253
+ # if requested: check bounding box
254
+ check_bb = configuration.get("check_bb", None)
255
+ if check_bb is not None:
256
+ for scan, expected_bb in zip(scans, check_bb):
257
+ assert scan.get_bounding_box(axis="z") == expected_bb
258
+ output_file_path = os.path.join(output_dir, "stitched.nx")
259
+ output_data_path = "stitched"
260
+ z_stich_config = PreProcessedZStitchingConfiguration(
261
+ stitching_strategy=OverlapStitchingStrategy.LINEAR_WEIGHTS,
262
+ overwrite_results=True,
263
+ axis_0_pos_px=(
264
+ frame_0_input_pos[0],
265
+ frame_1_input_pos[0],
266
+ frame_2_input_pos[0],
267
+ ),
268
+ axis_1_pos_px=(
269
+ frame_0_input_pos[1],
270
+ frame_1_input_pos[1],
271
+ frame_2_input_pos[1],
272
+ ),
273
+ axis_2_pos_px=(
274
+ frame_0_input_pos[2],
275
+ frame_1_input_pos[2],
276
+ frame_2_input_pos[2],
277
+ ),
278
+ axis_0_pos_mm=None,
279
+ axis_1_pos_mm=None,
280
+ axis_2_pos_mm=None,
281
+ input_scans=scans,
282
+ output_file_path=output_file_path,
283
+ output_data_path=output_data_path,
284
+ axis_0_params=configuration.get("axis_0_params", {}),
285
+ axis_1_params=configuration.get("axis_1_params", {}),
286
+ axis_2_params=configuration.get("axis_2_params", {}),
287
+ output_nexus_version=None,
288
+ slices=None,
289
+ slurm_config=None,
290
+ slice_for_cross_correlation="middle",
291
+ pixel_size=None,
292
+ )
293
+ stitcher = PreProcessZStitcher(z_stich_config)
294
+ output_identifier = stitcher.stitch()
295
+ assert output_identifier.file_path == output_file_path
296
+ assert output_identifier.data_path == output_data_path
297
+
298
+ created_nx_tomo = NXtomo().load(
299
+ file_path=output_identifier.file_path,
300
+ data_path=output_identifier.data_path,
301
+ detector_data_as="as_numpy_array",
302
+ )
303
+
304
+ assert created_nx_tomo.instrument.detector.data.ndim == 3
305
+ mean_abs_error = configuration.get("mean_abs_error", None)
306
+ if mean_abs_error is not None:
307
+ assert (
308
+ numpy.mean(numpy.abs(ref_frame - created_nx_tomo.instrument.detector.data[0, :ref_frame_width, :]))
309
+ < mean_abs_error
310
+ )
311
+ else:
312
+ numpy.testing.assert_array_almost_equal(
313
+ ref_frame, created_nx_tomo.instrument.detector.data[0, :ref_frame_width, :]
314
+ )
315
+
316
+ # check also other metadata are here
317
+ assert created_nx_tomo.instrument.detector.distance.value == 2.3
318
+ assert created_nx_tomo.energy.value == 19.2
319
+ numpy.testing.assert_array_equal(
320
+ created_nx_tomo.instrument.detector.image_key_control,
321
+ numpy.asarray([ImageKey.PROJECTION.PROJECTION] * n_proj),
322
+ )
323
+
324
+ # check configuration has been saved
325
+ with h5py.File(output_identifier.file_path, mode="r") as h5f:
326
+ assert "stitching_configuration" in h5f[output_identifier.data_path]
327
+
328
+
329
+ slices_to_test_pre = (
330
+ {
331
+ "slices": (None,),
332
+ "complete": True,
333
+ },
334
+ {
335
+ "slices": (("first",), ("middle",), ("last",)),
336
+ "complete": False,
337
+ },
338
+ {
339
+ "slices": ((0, 1, 2), slice(3, -1, 1)),
340
+ "complete": True,
341
+ },
342
+ )
343
+
344
+
345
+ @pytest.mark.parametrize("configuration_dist", slices_to_test_pre)
346
+ def test_DistributePreProcessZStitcher(tmp_path, configuration_dist):
347
+ slices = configuration_dist["slices"]
348
+ complete = configuration_dist["complete"]
349
+
350
+ n_projs = 100
351
+ raw_data = numpy.arange(100 * 128 * 128).reshape((100, 128, 128))
352
+
353
+ # create raw data
354
+ frame_0 = raw_data[:, 60:]
355
+ assert frame_0.ndim == 3
356
+ frame_0_pos = 40
357
+ frame_1 = raw_data[:, 0:80]
358
+ assert frame_1.ndim == 3
359
+ frame_1_pos = 94
360
+ frames = (frame_0, frame_1)
361
+ z_positions = (frame_0_pos, frame_1_pos)
362
+
363
+ # create a Nxtomo for each of those raw data
364
+ raw_data_dir = tmp_path / "raw_data"
365
+ raw_data_dir.mkdir()
366
+ output_dir = tmp_path / "output_dir"
367
+ output_dir.mkdir()
368
+
369
+ scans = []
370
+ for (i_frame, frame), z_pos in zip(enumerate(frames), z_positions):
371
+ nx_tomo = NXtomo()
372
+ nx_tomo.sample.z_translation = [z_pos] * n_projs
373
+ nx_tomo.sample.rotation_angle = numpy.linspace(0, 180, num=n_projs, endpoint=False)
374
+ nx_tomo.instrument.detector.image_key_control = [ImageKey.PROJECTION] * n_projs
375
+ nx_tomo.instrument.detector.x_pixel_size = 1.0
376
+ nx_tomo.instrument.detector.y_pixel_size = 1.0
377
+ nx_tomo.instrument.detector.distance = 2.3
378
+ nx_tomo.energy = 19.2
379
+ nx_tomo.instrument.detector.data = frame
380
+
381
+ file_path = os.path.join(raw_data_dir, f"nxtomo_{i_frame}.nx")
382
+ entry = f"entry000{i_frame}"
383
+ nx_tomo.save(file_path=file_path, data_path=entry)
384
+ scans.append(NXtomoScan(scan=file_path, entry=entry))
385
+
386
+ stitched_nx_tomo = []
387
+ for s in slices:
388
+ output_file_path = os.path.join(output_dir, "stitched_section.nx")
389
+ output_data_path = f"stitched_{s}"
390
+ z_stich_config = PreProcessedZStitchingConfiguration(
391
+ axis_0_pos_px=z_positions,
392
+ axis_1_pos_px=None,
393
+ axis_2_pos_px=(0, 0),
394
+ axis_0_pos_mm=None,
395
+ axis_1_pos_mm=None,
396
+ axis_2_pos_mm=None,
397
+ axis_0_params={},
398
+ axis_1_params={},
399
+ axis_2_params={},
400
+ stitching_strategy=OverlapStitchingStrategy.CLOSEST,
401
+ overwrite_results=True,
402
+ input_scans=scans,
403
+ output_file_path=output_file_path,
404
+ output_data_path=output_data_path,
405
+ output_nexus_version=None,
406
+ slices=s,
407
+ slurm_config=None,
408
+ slice_for_cross_correlation="middle",
409
+ pixel_size=None,
410
+ )
411
+ stitcher = PreProcessZStitcher(z_stich_config)
412
+ output_identifier = stitcher.stitch()
413
+ assert output_identifier.file_path == output_file_path
414
+ assert output_identifier.data_path == output_data_path
415
+
416
+ created_nx_tomo = NXtomo().load(
417
+ file_path=output_identifier.file_path,
418
+ data_path=output_identifier.data_path,
419
+ detector_data_as="as_numpy_array",
420
+ )
421
+ stitched_nx_tomo.append(created_nx_tomo)
422
+ assert len(stitched_nx_tomo) == len(slices)
423
+ final_nx_tomo = NXtomo.concatenate(stitched_nx_tomo)
424
+ assert isinstance(final_nx_tomo.instrument.detector.data, numpy.ndarray)
425
+ final_nx_tomo.save(
426
+ file_path=os.path.join(output_dir, "final_stitched.nx"),
427
+ data_path="entry0000",
428
+ )
429
+
430
+ if complete:
431
+ len(final_nx_tomo.instrument.detector.data) == 128
432
+ # test middle
433
+ numpy.testing.assert_array_almost_equal(raw_data[1], final_nx_tomo.instrument.detector.data[1, :, :])
434
+ else:
435
+ len(final_nx_tomo.instrument.detector.data) == 3
436
+ # test middle
437
+ numpy.testing.assert_array_almost_equal(raw_data[49], final_nx_tomo.instrument.detector.data[1, :, :])
438
+ # in the case of first, middle and last frames
439
+ # test first
440
+ numpy.testing.assert_array_almost_equal(raw_data[0], final_nx_tomo.instrument.detector.data[0, :, :])
441
+
442
+ # test last
443
+ numpy.testing.assert_array_almost_equal(raw_data[-1], final_nx_tomo.instrument.detector.data[-1, :, :])
444
+
445
+
446
+ _VOL_CLASSES_TO_TEST_FOR_POSTPROC_STITCHING = [HDF5Volume, EDFVolume]
447
+ # avoid testing glymur because doesn't handle float
448
+ # if has_minimal_openjpeg:
449
+ # _VOL_CLASSES_TO_TEST_FOR_POSTPROC_STITCHING.append(JP2KVolume)
450
+ if has_tifffile:
451
+ _VOL_CLASSES_TO_TEST_FOR_POSTPROC_STITCHING.append(TIFFVolume)
452
+
453
+
454
+ @pytest.mark.parametrize("progress", (None, Progress("z-stitching")))
455
+ @pytest.mark.parametrize("volume_class", (_VOL_CLASSES_TO_TEST_FOR_POSTPROC_STITCHING))
456
+ def test_PostProcessZStitcher(
457
+ tmp_path,
458
+ volume_class,
459
+ progress,
460
+ ):
461
+ """
462
+ test PreProcessZStitcher class and insure a full stitching can be done automatically.
463
+
464
+ :param bool clear_input_volumes_data: if True save the volume then clear volume.data (used to check internal management of loading volumes - used to check behavior with HDF5)
465
+ :param volume_class: class to be used (same class for input and output for now)
466
+ :param axis_0_pos: position of the different TomoObj along axis 0 (Also know as z axis)
467
+ """
468
+ # create some random data.
469
+ raw_volume = build_raw_volume()
470
+
471
+ # create folder to save data (and debug)
472
+ raw_data_dir = tmp_path / "raw_data"
473
+ raw_data_dir.mkdir()
474
+ output_dir = tmp_path / "output_dir"
475
+ output_dir.mkdir()
476
+
477
+ # create a simple case where the volume have 10 voxel of overlap and a height (z) of 30 Voxels, 40 and 30 Voxels
478
+ vol_1_constructor_params = {
479
+ "data": raw_volume[0:30, :, :],
480
+ "metadata": {
481
+ "processing_options": {
482
+ "reconstruction": {
483
+ "position": (-15.0, 0.0, 0.0),
484
+ "voxel_size_cm": (100.0, 100.0, 100.0),
485
+ }
486
+ },
487
+ },
488
+ }
489
+
490
+ vol_2_constructor_params = {
491
+ "data": raw_volume[20:80, :, :],
492
+ "metadata": {
493
+ "processing_options": {
494
+ "reconstruction": {
495
+ "position": (-50.0, 0.0, 0.0),
496
+ "voxel_size_cm": (100.0, 100.0, 100.0),
497
+ }
498
+ },
499
+ },
500
+ }
501
+
502
+ vol_3_constructor_params = {
503
+ "data": raw_volume[60:, :, :],
504
+ "metadata": {
505
+ "processing_options": {
506
+ "reconstruction": {
507
+ "position": (-90.0, 0.0, 0.0),
508
+ "voxel_size_cm": (100.0, 100.0, 100.0),
509
+ }
510
+ },
511
+ },
512
+ }
513
+
514
+ raw_volumes = []
515
+ axis_0_positions = []
516
+ for i_vol, vol_params in enumerate([vol_1_constructor_params, vol_2_constructor_params, vol_3_constructor_params]):
517
+ if volume_class == HDF5Volume:
518
+ vol_params.update(
519
+ {
520
+ "file_path": os.path.join(raw_data_dir, f"raw_volume_{i_vol}.hdf5"),
521
+ "data_path": "volume",
522
+ }
523
+ )
524
+ else:
525
+ vol_params.update(
526
+ {
527
+ "folder": os.path.join(raw_data_dir, f"raw_volume_{i_vol}"),
528
+ }
529
+ )
530
+ axis_0_positions.append(vol_params["metadata"]["processing_options"]["reconstruction"]["position"][0])
531
+
532
+ volume = volume_class(**vol_params)
533
+ volume.save()
534
+ raw_volumes.append(volume)
535
+
536
+ volume_1, volume_2, volume_3 = raw_volumes
537
+
538
+ output_volume = HDF5Volume(
539
+ file_path=os.path.join(output_dir, "stitched_volume.hdf5"),
540
+ data_path="stitched_volume",
541
+ )
542
+
543
+ z_stich_config = PostProcessedZStitchingConfiguration(
544
+ stitching_strategy=OverlapStitchingStrategy.LINEAR_WEIGHTS,
545
+ overwrite_results=True,
546
+ input_volumes=(volume_1, volume_2, volume_3),
547
+ output_volume=output_volume,
548
+ slices=None,
549
+ slurm_config=None,
550
+ axis_0_pos_px=axis_0_positions,
551
+ axis_0_pos_mm=None,
552
+ axis_0_params={"img_reg_method": ShiftAlgorithm.NONE},
553
+ axis_1_pos_px=None,
554
+ axis_1_pos_mm=None,
555
+ axis_1_params={"img_reg_method": ShiftAlgorithm.NONE},
556
+ axis_2_pos_px=None,
557
+ axis_2_pos_mm=None,
558
+ axis_2_params={"img_reg_method": ShiftAlgorithm.NONE},
559
+ slice_for_cross_correlation="middle",
560
+ voxel_size=None,
561
+ )
562
+
563
+ stitcher = PostProcessZStitcher(z_stich_config, progress=progress)
564
+ output_identifier = stitcher.stitch()
565
+ assert output_identifier.file_path == output_volume.file_path
566
+ assert output_identifier.data_path == output_volume.data_path
567
+
568
+ output_volume.data = None
569
+ output_volume.metadata = None
570
+ output_volume.load_data(store=True)
571
+ output_volume.load_metadata(store=True)
572
+
573
+ assert raw_volume.shape == output_volume.data.shape
574
+
575
+ numpy.testing.assert_array_almost_equal(raw_volume, output_volume.data)
576
+
577
+ metadata = output_volume.metadata
578
+ assert metadata["program"] == "nabu-stitching"
579
+ assert "configuration" in metadata
580
+ assert output_volume.position[0] == -60.0
581
+ assert output_volume.pixel_size == (1.0, 1.0, 1.0)
582
+
583
+
584
+ slices_to_test_post = (
585
+ {
586
+ "slices": (None,),
587
+ "complete": True,
588
+ },
589
+ {
590
+ "slices": (("first",), ("middle",), ("last",)),
591
+ "complete": False,
592
+ },
593
+ {
594
+ "slices": ((0, 1, 2), slice(3, -1, 1)),
595
+ "complete": True,
596
+ },
597
+ )
598
+
599
+
600
+ @pytest.mark.parametrize("flip_ud", (True, False))
601
+ @pytest.mark.parametrize("configuration_dist", slices_to_test_post)
602
+ def test_DistributePostProcessZStitcher(tmp_path, configuration_dist, flip_ud):
603
+ # create some random data.
604
+ slices = configuration_dist["slices"]
605
+ complete = configuration_dist["complete"]
606
+
607
+ raw_volume = numpy.ones((80, 40, 120), dtype=numpy.float16)
608
+ raw_volume[:, 0, :] = (
609
+ PhantomGenerator.get2DPhantomSheppLogan(n=120).astype(numpy.float16)[30:110, :] * 80 * 40 * 120
610
+ )
611
+ raw_volume[:, 8, :] = (
612
+ PhantomGenerator.get2DPhantomSheppLogan(n=120).astype(numpy.float16)[30:110, :] * 80 * 40 * 120 + 2
613
+ )
614
+ raw_volume[12] = 1.0
615
+ raw_volume[:, 23] = 1.2
616
+ # create folder to save data (and debug)
617
+ raw_data_dir = tmp_path / "raw_data"
618
+ raw_data_dir.mkdir()
619
+ output_dir = tmp_path / "output_dir"
620
+ output_dir.mkdir()
621
+
622
+ def flip_input_data(data):
623
+ if flip_ud:
624
+ data = numpy.flipud(data)
625
+ return data
626
+
627
+ volume_1 = HDF5Volume(
628
+ file_path=os.path.join(raw_data_dir, "volume_1.hdf5"),
629
+ data_path="volume",
630
+ data=flip_input_data(raw_volume[-60:, :, :]),
631
+ metadata={
632
+ "processing_options": {
633
+ "reconstruction": {
634
+ "position": (-30.0, 0.0, 0.0),
635
+ "voxel_size_cm": (100.0, 100.0, 100.0),
636
+ }
637
+ },
638
+ },
639
+ )
640
+ volume_1.save()
641
+
642
+ volume_2 = HDF5Volume(
643
+ file_path=os.path.join(raw_data_dir, "volume_2.hdf5"),
644
+ data_path="volume",
645
+ data=flip_input_data(raw_volume[:60, :, :]),
646
+ metadata={
647
+ "processing_options": {
648
+ "reconstruction": {
649
+ "position": (-50.0, 0.0, 0.0),
650
+ "voxel_size_cm": (100.0, 100.0, 100.0),
651
+ }
652
+ },
653
+ },
654
+ )
655
+ volume_2.save()
656
+
657
+ reconstructed_sub_volumes = []
658
+ for i_slice, s in enumerate(slices):
659
+ output_volume = HDF5Volume(
660
+ file_path=os.path.join(output_dir, f"stitched_subvolume_{i_slice}.hdf5"),
661
+ data_path="stitched_volume",
662
+ )
663
+ volumes = (volume_2, volume_1)
664
+ z_stich_config = PostProcessedZStitchingConfiguration(
665
+ stitching_strategy=OverlapStitchingStrategy.LINEAR_WEIGHTS,
666
+ axis_0_pos_px=tuple(
667
+ volume.metadata["processing_options"]["reconstruction"]["position"][0] for volume in volumes
668
+ ),
669
+ axis_0_pos_mm=None,
670
+ axis_0_params={},
671
+ axis_1_pos_px=None,
672
+ axis_1_pos_mm=None,
673
+ axis_1_params={},
674
+ axis_2_pos_px=(0, 0),
675
+ axis_2_pos_mm=None,
676
+ axis_2_params={},
677
+ overwrite_results=True,
678
+ input_volumes=volumes,
679
+ output_volume=output_volume,
680
+ slices=s,
681
+ slurm_config=None,
682
+ slice_for_cross_correlation="middle",
683
+ voxel_size=None,
684
+ flip_ud=flip_ud,
685
+ )
686
+
687
+ stitcher = PostProcessZStitcher(z_stich_config)
688
+ vol_id = stitcher.stitch()
689
+ reconstructed_sub_volumes.append(TomoscanFactory.create_tomo_object_from_identifier(identifier=vol_id))
690
+
691
+ final_vol = HDF5Volume(
692
+ file_path=os.path.join(output_dir, "final_volume"),
693
+ data_path="volume",
694
+ )
695
+ if complete:
696
+ concatenate_volumes(output_volume=final_vol, volumes=tuple(reconstructed_sub_volumes), axis=1)
697
+ final_vol.load_data(store=True)
698
+ with h5py.File("debug.hdf5", mode="w") as h5f:
699
+ h5f["raw_volume"] = raw_volume
700
+ h5f["final_vol"] = final_vol.data
701
+ h5f["volume1"] = volume_1.data
702
+ h5f["volume2"] = volume_2.data
703
+ numpy.testing.assert_almost_equal(
704
+ raw_volume,
705
+ final_vol.data,
706
+ )
707
+
708
+
709
+ def test_get_overlap_areas():
710
+ """test get_overlap_areas function"""
711
+ f_upper = numpy.linspace(7, 15, num=9, endpoint=True)
712
+ f_lower = numpy.linspace(0, 12, num=13, endpoint=True)
713
+
714
+ o_1, o_2 = ZStitcher.get_overlap_areas(
715
+ upper_frame=f_upper,
716
+ lower_frame=f_lower,
717
+ upper_frame_key_line=3,
718
+ lower_frame_key_line=10,
719
+ overlap_size=4,
720
+ stitching_axis=0,
721
+ )
722
+
723
+ numpy.testing.assert_array_equal(o_1, o_2)
724
+ numpy.testing.assert_array_equal(o_1, numpy.linspace(8, 11, num=4, endpoint=True))
725
+
726
+
727
+ def test_frame_flip(tmp_path):
728
+ """check it with some NXtomo fliped"""
729
+ pytest.skip(reason="Broken test")
730
+ ref_frame_width = 280
731
+ n_proj = 10
732
+ raw_frame_width = 100
733
+ ref_frame = PhantomGenerator.get2DPhantomSheppLogan(n=ref_frame_width).astype(numpy.float32) * 256.0
734
+ # create raw data
735
+ frame_0_shift = (0, 0)
736
+ frame_1_shift = (-90, 0)
737
+ frame_2_shift = (-180, 0)
738
+
739
+ frame_0 = scipy_shift(ref_frame, shift=frame_0_shift)[:raw_frame_width]
740
+ frame_1 = scipy_shift(ref_frame, shift=frame_1_shift)[:raw_frame_width]
741
+ frame_2 = scipy_shift(ref_frame, shift=frame_2_shift)[:raw_frame_width]
742
+ frames = frame_0, frame_1, frame_2
743
+
744
+ x_flips = [False, True, True]
745
+ y_flips = [False, False, True]
746
+
747
+ def apply_flip(args):
748
+ frame, flip_x, flip_y = args
749
+ if flip_x:
750
+ frame = numpy.fliplr(frame)
751
+ if flip_y:
752
+ frame = numpy.flipud(frame)
753
+ return frame
754
+
755
+ frames = map(apply_flip, zip(frames, x_flips, y_flips))
756
+
757
+ # create a Nxtomo for each of those raw data
758
+ raw_data_dir = tmp_path / "raw_data"
759
+ raw_data_dir.mkdir()
760
+ output_dir = tmp_path / "output_dir"
761
+ output_dir.mkdir()
762
+ z_position = (90, 0, -90)
763
+
764
+ scans = []
765
+ for (i_frame, frame), z_pos, x_flip, y_flip in zip(enumerate(frames), z_position, x_flips, y_flips):
766
+ nx_tomo = NXtomo()
767
+ nx_tomo.sample.z_translation = [z_pos] * n_proj
768
+ nx_tomo.sample.rotation_angle = numpy.linspace(0, 180, num=n_proj, endpoint=False)
769
+ nx_tomo.instrument.detector.image_key_control = [ImageKey.PROJECTION] * n_proj
770
+ nx_tomo.instrument.detector.x_pixel_size = 1.0
771
+ nx_tomo.instrument.detector.y_pixel_size = 1.0
772
+ nx_tomo.instrument.detector.distance = 2.3
773
+ if x_flip:
774
+ nx_tomo.instrument.detector.transformations.add_transformation(LRDetTransformation())
775
+ if y_flip:
776
+ nx_tomo.instrument.detector.transformations.add_transformation(UDDetTransformation())
777
+ nx_tomo.energy = 19.2
778
+ nx_tomo.instrument.detector.data = numpy.asarray([frame] * n_proj)
779
+
780
+ file_path = os.path.join(raw_data_dir, f"nxtomo_{i_frame}.nx")
781
+ entry = f"entry000{i_frame}"
782
+ nx_tomo.save(file_path=file_path, data_path=entry)
783
+ scans.append(NXtomoScan(scan=file_path, entry=entry))
784
+
785
+ output_file_path = os.path.join(output_dir, "stitched.nx")
786
+ output_data_path = "stitched"
787
+ assert len(scans) == 3
788
+ z_stich_config = PreProcessedZStitchingConfiguration(
789
+ axis_0_pos_px=(0, -90, -180),
790
+ axis_1_pos_px=None,
791
+ axis_2_pos_px=(0, 0, 0),
792
+ axis_0_pos_mm=None,
793
+ axis_1_pos_mm=None,
794
+ axis_2_pos_mm=None,
795
+ axis_0_params={},
796
+ axis_1_params={},
797
+ axis_2_params={},
798
+ stitching_strategy=OverlapStitchingStrategy.LINEAR_WEIGHTS,
799
+ overwrite_results=True,
800
+ input_scans=scans,
801
+ output_file_path=output_file_path,
802
+ output_data_path=output_data_path,
803
+ output_nexus_version=None,
804
+ slices=None,
805
+ slurm_config=None,
806
+ slice_for_cross_correlation="middle",
807
+ pixel_size=None,
808
+ )
809
+ stitcher = PreProcessZStitcher(z_stich_config)
810
+ output_identifier = stitcher.stitch()
811
+ assert output_identifier.file_path == output_file_path
812
+ assert output_identifier.data_path == output_data_path
813
+
814
+ created_nx_tomo = NXtomo().load(
815
+ file_path=output_identifier.file_path,
816
+ data_path=output_identifier.data_path,
817
+ detector_data_as="as_numpy_array",
818
+ )
819
+
820
+ assert created_nx_tomo.instrument.detector.data.ndim == 3
821
+ # insure flipping has been taking into account
822
+ numpy.testing.assert_array_almost_equal(ref_frame, created_nx_tomo.instrument.detector.data[0, :ref_frame_width, :])
823
+
824
+ assert len(created_nx_tomo.instrument.detector.transformations) == 0
825
+
826
+
827
+ @pytest.mark.parametrize("alignment_axis_2", ("left", "right", "center"))
828
+ def test_vol_z_stitching_with_alignment_axis_2(tmp_path, alignment_axis_2):
829
+ """
830
+ test z volume stitching with different width (and so that requires image alignment over axis 2)
831
+ """
832
+ # create some random data.
833
+ raw_volume = build_raw_volume()
834
+ # create folder to save data (and debug)
835
+ raw_data_dir = tmp_path / "raw_data"
836
+ raw_data_dir.mkdir()
837
+ output_dir = tmp_path / "output_dir"
838
+ output_dir.mkdir()
839
+
840
+ # create a simple case where the volume have 10 voxel of overlap and a height (z) of 30 Voxels, 40 and 30 Voxels
841
+ vol_1_constructor_params = {
842
+ "data": raw_volume[0:30, :, 4:-4],
843
+ "metadata": {
844
+ "processing_options": {
845
+ "reconstruction": {
846
+ "position": (-15.0, 0.0, 0.0),
847
+ "voxel_size_cm": (100.0, 100.0, 100.0),
848
+ }
849
+ },
850
+ },
851
+ }
852
+
853
+ vol_2_constructor_params = {
854
+ "data": raw_volume[20:80, :, :],
855
+ "metadata": {
856
+ "processing_options": {
857
+ "reconstruction": {
858
+ "position": (-50.0, 0.0, 0.0),
859
+ "voxel_size_cm": (100.0, 100.0, 100.0),
860
+ }
861
+ },
862
+ },
863
+ }
864
+
865
+ vol_3_constructor_params = {
866
+ "data": raw_volume[60:, :, 10:-10],
867
+ "metadata": {
868
+ "processing_options": {
869
+ "reconstruction": {
870
+ "position": (-90.0, 0.0, 0.0),
871
+ "voxel_size_cm": (100.0, 100.0, 100.0),
872
+ }
873
+ },
874
+ },
875
+ }
876
+
877
+ raw_volumes = []
878
+ axis_0_positions = []
879
+ for i_vol, vol_params in enumerate([vol_1_constructor_params, vol_2_constructor_params, vol_3_constructor_params]):
880
+ vol_params.update(
881
+ {
882
+ "file_path": os.path.join(raw_data_dir, f"raw_volume_{i_vol}.hdf5"),
883
+ "data_path": "volume",
884
+ }
885
+ )
886
+ axis_0_positions.append(vol_params["metadata"]["processing_options"]["reconstruction"]["position"][0])
887
+ volume = HDF5Volume(**vol_params)
888
+ volume.save()
889
+ raw_volumes.append(volume)
890
+
891
+ volume_1, volume_2, volume_3 = raw_volumes
892
+
893
+ output_volume = HDF5Volume(
894
+ file_path=os.path.join(output_dir, "stitched_volume.hdf5"),
895
+ data_path="stitched_volume",
896
+ )
897
+
898
+ z_stich_config = PostProcessedZStitchingConfiguration(
899
+ stitching_strategy=OverlapStitchingStrategy.LINEAR_WEIGHTS,
900
+ overwrite_results=True,
901
+ input_volumes=(volume_1, volume_2, volume_3),
902
+ output_volume=output_volume,
903
+ slices=None,
904
+ slurm_config=None,
905
+ axis_0_pos_px=axis_0_positions,
906
+ axis_0_pos_mm=None,
907
+ axis_0_params={"img_reg_method": ShiftAlgorithm.NONE},
908
+ axis_1_pos_px=None,
909
+ axis_1_pos_mm=None,
910
+ axis_1_params={"img_reg_method": ShiftAlgorithm.NONE},
911
+ axis_2_pos_px=None,
912
+ axis_2_pos_mm=None,
913
+ axis_2_params={"img_reg_method": ShiftAlgorithm.NONE},
914
+ slice_for_cross_correlation="middle",
915
+ voxel_size=None,
916
+ alignment_axis_2=AlignmentAxis2.from_value(alignment_axis_2),
917
+ )
918
+
919
+ stitcher = PostProcessZStitcher(z_stich_config, progress=None)
920
+ output_identifier = stitcher.stitch()
921
+ assert output_identifier.file_path == output_volume.file_path
922
+ assert output_identifier.data_path == output_volume.data_path
923
+
924
+ output_volume.load_data(store=True)
925
+ output_volume.load_metadata(store=True)
926
+
927
+ assert output_volume.data.shape == (120, 4, 120)
928
+
929
+ import h5py
930
+
931
+ with h5py.File("input.h5", mode="w") as h5f:
932
+ h5f["data"] = raw_volume
933
+
934
+ with h5py.File("output.h5", mode="w") as h5f:
935
+ h5f["data"] = output_volume.data
936
+
937
+ if alignment_axis_2 == "center":
938
+ numpy.testing.assert_array_almost_equal(raw_volume[:, :, 10:-10], output_volume.data[:, :, 10:-10])
939
+ elif alignment_axis_2 == "left":
940
+ numpy.testing.assert_array_almost_equal(raw_volume[:, :, :-20], output_volume.data[:, :, :-20])
941
+ elif alignment_axis_2 == "right":
942
+ numpy.testing.assert_array_almost_equal(raw_volume[:, :, 20:], output_volume.data[:, :, 20:])
943
+
944
+
945
+ @pytest.mark.parametrize("alignment_axis_1", ("front", "center", "back"))
946
+ def test_vol_z_stitching_with_alignment_axis_1(tmp_path, alignment_axis_1):
947
+ """
948
+ test z volume stitching with different number of frames (and so that requires image alignment over axis 0)
949
+ """
950
+ # create some random data.
951
+ raw_volume = build_raw_volume()
952
+
953
+ # create folder to save data (and debug)
954
+ raw_data_dir = tmp_path / "raw_data"
955
+ raw_data_dir.mkdir()
956
+ output_dir = tmp_path / "output_dir"
957
+ output_dir.mkdir()
958
+
959
+ # create a simple case where the volume have 10 voxel of overlap and a height (z) of 30 Voxels, 40 and 30 Voxels
960
+ vol_1_constructor_params = {
961
+ "data": raw_volume[
962
+ 0:30,
963
+ 1:3,
964
+ ],
965
+ "metadata": {
966
+ "processing_options": {
967
+ "reconstruction": {
968
+ "position": (-15.0, 0.0, 0.0),
969
+ "voxel_size_cm": (100.0, 100.0, 100.0),
970
+ }
971
+ },
972
+ },
973
+ }
974
+
975
+ vol_2_constructor_params = {
976
+ "data": raw_volume[20:80, :, :],
977
+ "metadata": {
978
+ "processing_options": {
979
+ "reconstruction": {
980
+ "position": (-50.0, 0.0, 0.0),
981
+ "voxel_size_cm": (100.0, 100.0, 100.0),
982
+ }
983
+ },
984
+ },
985
+ }
986
+
987
+ vol_3_constructor_params = {
988
+ "data": raw_volume[
989
+ 60:,
990
+ 1:3,
991
+ ],
992
+ "metadata": {
993
+ "processing_options": {
994
+ "reconstruction": {
995
+ "position": (-90.0, 0.0, 0.0),
996
+ "voxel_size_cm": (100.0, 100.0, 100.0),
997
+ }
998
+ },
999
+ },
1000
+ }
1001
+
1002
+ raw_volumes = []
1003
+ axis_0_positions = []
1004
+ for i_vol, vol_params in enumerate([vol_1_constructor_params, vol_2_constructor_params, vol_3_constructor_params]):
1005
+ vol_params.update(
1006
+ {
1007
+ "file_path": os.path.join(raw_data_dir, f"raw_volume_{i_vol}.hdf5"),
1008
+ "data_path": "volume",
1009
+ }
1010
+ )
1011
+ axis_0_positions.append(vol_params["metadata"]["processing_options"]["reconstruction"]["position"][0])
1012
+ volume = HDF5Volume(**vol_params)
1013
+ volume.save()
1014
+ raw_volumes.append(volume)
1015
+
1016
+ volume_1, volume_2, volume_3 = raw_volumes
1017
+
1018
+ output_volume = HDF5Volume(
1019
+ file_path=os.path.join(output_dir, "stitched_volume.hdf5"),
1020
+ data_path="stitched_volume",
1021
+ )
1022
+
1023
+ z_stich_config = PostProcessedZStitchingConfiguration(
1024
+ stitching_strategy=OverlapStitchingStrategy.LINEAR_WEIGHTS,
1025
+ overwrite_results=True,
1026
+ input_volumes=(volume_1, volume_2, volume_3),
1027
+ output_volume=output_volume,
1028
+ slices=None,
1029
+ slurm_config=None,
1030
+ axis_0_pos_px=axis_0_positions,
1031
+ axis_0_pos_mm=None,
1032
+ axis_0_params={"img_reg_method": ShiftAlgorithm.NONE},
1033
+ axis_1_pos_px=None,
1034
+ axis_1_pos_mm=None,
1035
+ axis_1_params={"img_reg_method": ShiftAlgorithm.NONE},
1036
+ axis_2_pos_px=None,
1037
+ axis_2_pos_mm=None,
1038
+ axis_2_params={"img_reg_method": ShiftAlgorithm.NONE},
1039
+ slice_for_cross_correlation="middle",
1040
+ voxel_size=None,
1041
+ alignment_axis_1=AlignmentAxis1.from_value(alignment_axis_1),
1042
+ )
1043
+
1044
+ stitcher = PostProcessZStitcher(z_stich_config, progress=None)
1045
+ output_identifier = stitcher.stitch()
1046
+ assert output_identifier.file_path == output_volume.file_path
1047
+ assert output_identifier.data_path == output_volume.data_path
1048
+
1049
+ output_volume.load_data(store=True)
1050
+ output_volume.load_metadata(store=True)
1051
+
1052
+ assert output_volume.data.shape == (120, 4, 120)
1053
+
1054
+ if alignment_axis_1 == "middle":
1055
+ numpy.testing.assert_array_almost_equal(raw_volume[:, 10:-10, :], output_volume.data[:, 10:-10, :])
1056
+ elif alignment_axis_1 == "front":
1057
+ numpy.testing.assert_array_almost_equal(raw_volume[:, :-20, :], output_volume.data[:, :-20, :])
1058
+ elif alignment_axis_1 == "middle":
1059
+ numpy.testing.assert_array_almost_equal(raw_volume[:, 20:, :], output_volume.data[:, 20:, :])
1060
+
1061
+
1062
+ def test_normalization_by_sample(tmp_path):
1063
+ """
1064
+ simple test of a volume stitching.
1065
+ Raw volumes have 'extra' values (+2, +5, +9) that must be removed at the end thanks to the normalization
1066
+ """
1067
+ from copy import deepcopy
1068
+
1069
+ raw_volume = build_raw_volume()
1070
+ # create folder to save data (and debug)
1071
+ raw_data_dir = tmp_path / "raw_data"
1072
+ raw_data_dir.mkdir()
1073
+ output_dir = tmp_path / "output_dir"
1074
+ output_dir.mkdir()
1075
+
1076
+ # create a simple case where the volume have 10 voxel of overlap and a height (z) of 30 Voxels, 40 and 30 Voxels
1077
+ vol_1_constructor_params = {
1078
+ "data": raw_volume[0:30, :, :] + 3,
1079
+ "metadata": {
1080
+ "processing_options": {
1081
+ "reconstruction": {
1082
+ "position": (-15.0, 0.0, 0.0),
1083
+ "voxel_size_cm": (100.0, 100.0, 100.0),
1084
+ }
1085
+ },
1086
+ },
1087
+ }
1088
+
1089
+ vol_2_constructor_params = {
1090
+ "data": raw_volume[20:80, :, :] + 5,
1091
+ "metadata": {
1092
+ "processing_options": {
1093
+ "reconstruction": {
1094
+ "position": (-50.0, 0.0, 0.0),
1095
+ "voxel_size_cm": (100.0, 100.0, 100.0),
1096
+ }
1097
+ },
1098
+ },
1099
+ }
1100
+
1101
+ vol_3_constructor_params = {
1102
+ "data": raw_volume[60:, :, :] + 12,
1103
+ "metadata": {
1104
+ "processing_options": {
1105
+ "reconstruction": {
1106
+ "position": (-90.0, 0.0, 0.0),
1107
+ "voxel_size_cm": (100.0, 100.0, 100.0),
1108
+ }
1109
+ },
1110
+ },
1111
+ }
1112
+
1113
+ raw_volumes = []
1114
+ axis_0_positions = []
1115
+ for i_vol, vol_params in enumerate([vol_1_constructor_params, vol_2_constructor_params, vol_3_constructor_params]):
1116
+ vol_params.update(
1117
+ {
1118
+ "file_path": os.path.join(raw_data_dir, f"raw_volume_{i_vol}.hdf5"),
1119
+ "data_path": "volume",
1120
+ }
1121
+ )
1122
+
1123
+ axis_0_positions.append(vol_params["metadata"]["processing_options"]["reconstruction"]["position"][0])
1124
+
1125
+ volume = HDF5Volume(**vol_params)
1126
+ volume.save()
1127
+ raw_volumes.append(volume)
1128
+
1129
+ volume_1, volume_2, volume_3 = raw_volumes
1130
+
1131
+ output_volume = HDF5Volume(
1132
+ file_path=os.path.join(output_dir, "stitched_volume.hdf5"),
1133
+ data_path="stitched_volume",
1134
+ )
1135
+
1136
+ normalization_by_sample = NormalizationBySample()
1137
+ normalization_by_sample.set_is_active(True)
1138
+ normalization_by_sample.width = 1
1139
+ normalization_by_sample.margin = 0
1140
+ normalization_by_sample.side = "left"
1141
+ normalization_by_sample.method = "median"
1142
+
1143
+ z_stich_config = PostProcessedZStitchingConfiguration(
1144
+ stitching_strategy=OverlapStitchingStrategy.CLOSEST,
1145
+ overwrite_results=True,
1146
+ input_volumes=(volume_1, volume_2, volume_3),
1147
+ output_volume=output_volume,
1148
+ slices=None,
1149
+ slurm_config=None,
1150
+ axis_0_pos_px=axis_0_positions,
1151
+ axis_0_pos_mm=None,
1152
+ axis_0_params={"img_reg_method": ShiftAlgorithm.NONE},
1153
+ axis_1_pos_px=None,
1154
+ axis_1_pos_mm=None,
1155
+ axis_1_params={"img_reg_method": ShiftAlgorithm.NONE},
1156
+ axis_2_pos_px=None,
1157
+ axis_2_pos_mm=None,
1158
+ axis_2_params={"img_reg_method": ShiftAlgorithm.NONE},
1159
+ slice_for_cross_correlation="middle",
1160
+ voxel_size=None,
1161
+ normalization_by_sample=normalization_by_sample,
1162
+ )
1163
+
1164
+ stitcher = PostProcessZStitcher(z_stich_config, progress=None)
1165
+ output_identifier = stitcher.stitch()
1166
+
1167
+ assert output_identifier.file_path == output_volume.file_path
1168
+ assert output_identifier.data_path == output_volume.data_path
1169
+
1170
+ output_volume.data = None
1171
+ output_volume.metadata = None
1172
+ output_volume.load_data(store=True)
1173
+ output_volume.load_metadata(store=True)
1174
+
1175
+ assert raw_volume.shape == output_volume.data.shape
1176
+
1177
+ numpy.testing.assert_array_almost_equal(raw_volume, output_volume.data)
1178
+
1179
+ metadata = output_volume.metadata
1180
+ assert metadata["program"] == "nabu-stitching"
1181
+ assert "configuration" in metadata
1182
+ assert output_volume.position[0] == -60.0
1183
+ assert output_volume.pixel_size == (1.0, 1.0, 1.0)