nabu 2024.1.1__py3-none-any.whl → 2024.1.2__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 (2095) hide show
  1. nabu/__init__.py +1 -1
  2. nabu/app/cast_volume.py +11 -2
  3. nabu/app/multicor.py +24 -2
  4. nabu/io/cast_volume.py +3 -3
  5. nabu/io/utils.py +2 -2
  6. nabu/stitching/tests/test_z_stitching.py +0 -1
  7. nabu/stitching/z_stitching.py +3 -3
  8. {nabu-2024.1.1.dist-info → nabu-2024.1.2.dist-info}/METADATA +2 -2
  9. nabu-2024.1.2.dist-info/RECORD +296 -0
  10. {nabu-2024.1.1.dist-info → nabu-2024.1.2.dist-info}/WHEEL +1 -1
  11. nabu-2024.1.2.dist-info/top_level.txt +2 -0
  12. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/doc/conf.py +0 -137
  13. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/doc/create_conf_doc.py +0 -38
  14. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/doc/get_mathjax.py +0 -34
  15. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/__init__.py +0 -17
  16. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap.py +0 -88
  17. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap_stitching.py +0 -69
  18. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/cast_volume.py +0 -272
  19. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/cli_configs.py +0 -626
  20. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/compare_volumes.py +0 -94
  21. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/composite_cor.py +0 -144
  22. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/correct_rot.py +0 -70
  23. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/create_distortion_map_from_poly.py +0 -153
  24. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_pix.py +0 -358
  25. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_rot.py +0 -449
  26. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/double_flatfield.py +0 -143
  27. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/generate_header.py +0 -261
  28. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/histogram.py +0 -197
  29. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/multicor.py +0 -90
  30. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/nx_z_splitter.py +0 -125
  31. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/parse_reconstruction_log.py +0 -151
  32. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/prepare_weights_double.py +0 -163
  33. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct.py +0 -120
  34. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct_helical.py +0 -116
  35. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reduce_dark_flat.py +0 -181
  36. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/rotate.py +0 -162
  37. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/shrink_dataset.py +0 -98
  38. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/stitching.py +0 -85
  39. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/tests/test_reduce_dark_flat.py +0 -78
  40. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/utils.py +0 -33
  41. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/validator.py +0 -110
  42. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/__init__.py +0 -0
  43. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/convolution.py +0 -8
  44. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/fft.py +0 -4
  45. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/kernel.py +0 -97
  46. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/medfilt.py +0 -6
  47. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/padding.py +0 -6
  48. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/processing.py +0 -75
  49. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/tests/__init__.py +0 -1
  50. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/utils.py +0 -331
  51. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/__init__.py +0 -12
  52. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/alignment.py +0 -578
  53. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor.py +0 -1621
  54. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor_sino.py +0 -183
  55. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/distortion.py +0 -112
  56. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/focus.py +0 -362
  57. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/__init__.py +0 -0
  58. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_alignment.py +0 -70
  59. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_cor.py +0 -472
  60. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_focus.py +0 -105
  61. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_tilt.py +0 -41
  62. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_translation.py +0 -78
  63. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tilt.py +0 -214
  64. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/translation.py +0 -193
  65. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/utils.py +0 -39
  66. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/__init__.py +0 -2
  67. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/cast_volume.py +0 -371
  68. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/detector_distortion.py +0 -305
  69. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/reader.py +0 -628
  70. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/reader_helical.py +0 -114
  71. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/__init__.py +0 -0
  72. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_cast_volume.py +0 -339
  73. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_detector_distortion.py +0 -178
  74. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_writers.py +0 -187
  75. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tiffwriter_zmm.py +0 -99
  76. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/utils.py +0 -263
  77. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/writer.py +0 -892
  78. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/__init__.py +0 -0
  79. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/binning.py +0 -98
  80. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/fftshift.py +0 -6
  81. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/filters.py +0 -24
  82. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/fourier_filters.py +0 -152
  83. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram.py +0 -6
  84. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram_cuda.py +0 -8
  85. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/kernel_base.py +0 -4
  86. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/padding.py +0 -83
  87. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/padding_base.py +0 -6
  88. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/processing_base.py +0 -4
  89. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation.py +0 -6
  90. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation_cuda.py +0 -6
  91. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/__init__.py +0 -1
  92. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_binning.py +0 -48
  93. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_interpolation.py +0 -70
  94. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/transpose.py +0 -6
  95. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp.py +0 -4
  96. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_cuda.py +0 -6
  97. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_opencl.py +0 -8
  98. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/utils.py +0 -117
  99. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/__init__.py +0 -0
  100. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/fft.py +0 -6
  101. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/kernel.py +0 -135
  102. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/memcpy.py +0 -35
  103. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/padding.py +0 -6
  104. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/processing.py +0 -62
  105. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/tests/__init__.py +0 -0
  106. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/utils.py +0 -292
  107. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/__init__.py +0 -0
  108. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config.py +0 -265
  109. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config_validators.py +0 -589
  110. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/datadump.py +0 -164
  111. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/dataset_validator.py +0 -211
  112. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/detector_distortion_provider.py +0 -20
  113. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/estimators.py +0 -1012
  114. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fallback_utils.py +0 -149
  115. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/__init__.py +0 -0
  116. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked.py +0 -849
  117. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked_cuda.py +0 -152
  118. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/computations.py +0 -260
  119. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/dataset_validator.py +0 -63
  120. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/nabu_config.py +0 -590
  121. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/processconfig.py +0 -825
  122. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/reconstruction.py +0 -851
  123. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/__init__.py +0 -0
  124. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/dataset_validator.py +0 -19
  125. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/fbp.py +0 -147
  126. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/filtering.py +0 -246
  127. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/gridded_accumulator.py +0 -575
  128. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded.py +0 -1670
  129. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded_cuda.py +0 -119
  130. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_reconstruction.py +0 -598
  131. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_utils.py +0 -42
  132. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/nabu_config.py +0 -175
  133. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/processconfig.py +0 -62
  134. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/span_strategy.py +0 -483
  135. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/__init__.py +0 -0
  136. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_accumulator.py +0 -157
  137. 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 +0 -355
  138. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_strategy.py +0 -61
  139. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/utils.py +0 -51
  140. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/weight_balancer.py +0 -101
  141. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/params.py +0 -163
  142. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/processconfig.py +0 -210
  143. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/tests/test_chunk_reader.py +0 -78
  144. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/tests/test_estimators.py +0 -149
  145. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/utils.py +0 -116
  146. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/writer.py +0 -193
  147. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/xrdct/__init__.py +0 -0
  148. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/__init__.py +0 -7
  149. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/alignment.py +0 -11
  150. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd.py +0 -161
  151. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd_cuda.py +0 -169
  152. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf.py +0 -361
  153. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf_cuda.py +0 -142
  154. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/distortion.py +0 -92
  155. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield.py +0 -212
  156. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_cuda.py +0 -174
  157. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_variable_region.py +0 -68
  158. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield.py +0 -448
  159. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_cuda.py +0 -144
  160. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_variable_region.py +0 -79
  161. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase.py +0 -425
  162. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase_cuda.py +0 -143
  163. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift.py +0 -95
  164. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift_cuda.py +0 -102
  165. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/__init__.py +0 -1
  166. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_ccd_corr.py +0 -59
  167. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_ctf.py +0 -250
  168. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_double_flatfield.py +0 -86
  169. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_flatfield.py +0 -626
  170. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_paganin.py +0 -67
  171. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_vshift.py +0 -73
  172. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/__init__.py +0 -0
  173. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/convolution_cuda.py +0 -375
  174. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_base.py +0 -163
  175. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_cuda.py +0 -256
  176. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_opencl.py +0 -54
  177. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fftshift.py +0 -134
  178. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram.py +0 -286
  179. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram_cuda.py +0 -103
  180. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/kernel_base.py +0 -126
  181. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/medfilt_cuda.py +0 -159
  182. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd.py +0 -29
  183. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd_cuda.py +0 -68
  184. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_base.py +0 -71
  185. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_cuda.py +0 -75
  186. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_opencl.py +0 -77
  187. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/processing_base.py +0 -123
  188. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/roll_opencl.py +0 -64
  189. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation.py +0 -63
  190. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation_cuda.py +0 -66
  191. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/__init__.py +0 -0
  192. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fft.py +0 -268
  193. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fftshift.py +0 -71
  194. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_histogram.py +0 -55
  195. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_medfilt.py +0 -77
  196. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_muladd.py +0 -54
  197. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_padding.py +0 -247
  198. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_roll.py +0 -63
  199. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_rotation.py +0 -83
  200. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_transpose.py +0 -72
  201. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_unsharp.py +0 -106
  202. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/transpose.py +0 -126
  203. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp.py +0 -79
  204. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_cuda.py +0 -53
  205. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_opencl.py +0 -75
  206. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/__init__.py +0 -3
  207. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/cone.py +0 -241
  208. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp.py +0 -124
  209. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_base.py +0 -391
  210. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_opencl.py +0 -78
  211. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering.py +0 -220
  212. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_cuda.py +0 -103
  213. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_opencl.py +0 -111
  214. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/projection.py +0 -240
  215. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor.py +0 -174
  216. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor_cuda.py +0 -44
  217. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings.py +0 -248
  218. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings_cuda.py +0 -322
  219. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram.py +0 -467
  220. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_cuda.py +0 -250
  221. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_opencl.py +0 -40
  222. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/__init__.py +0 -1
  223. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_cone.py +0 -308
  224. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_deringer.py +0 -220
  225. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_fbp.py +0 -252
  226. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_filtering.py +0 -133
  227. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_halftomo.py +0 -100
  228. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_projector.py +0 -164
  229. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_reconstructor.py +0 -93
  230. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_sino_normalization.py +0 -85
  231. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/__init__.py +0 -0
  232. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/cli/__init__.py +0 -0
  233. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/cor.py +0 -5
  234. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/dataset_analyzer.py +0 -469
  235. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/gpu.py +0 -169
  236. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/logger.py +0 -130
  237. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/nxflatfield.py +0 -217
  238. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/templates/__init__.py +0 -0
  239. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/__init__.py +0 -0
  240. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_nxflatfield.py +0 -104
  241. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_units.py +0 -47
  242. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/utils.py +0 -174
  243. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/__init__.py +0 -0
  244. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/alignment.py +0 -184
  245. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/config.py +0 -1286
  246. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/definitions.py +0 -6
  247. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/frame_composition.py +0 -155
  248. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/overlap.py +0 -373
  249. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/sample_normalization.py +0 -60
  250. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/slurm_utils.py +0 -204
  251. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/__init__.py +0 -0
  252. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_alignment.py +0 -99
  253. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_config.py +0 -226
  254. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_frame_composition.py +0 -180
  255. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_overlap.py +0 -98
  256. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_sample_normalization.py +0 -49
  257. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_slurm_utils.py +0 -146
  258. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_utils.py +0 -21
  259. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_z_stitching.py +0 -1183
  260. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/utils.py +0 -563
  261. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/z_stitching.py +0 -2279
  262. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/tests.py +0 -51
  263. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/testutils.py +0 -375
  264. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/__init__.py +0 -0
  265. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/algotom_convert_sino.py +0 -276
  266. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/pore3d_deringer_munch.py +0 -108
  267. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomocupy_remove_stripe.py +0 -586
  268. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomopy_phase.py +0 -239
  269. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomwer_load_flats_darks.py +0 -162
  270. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/utils.py +0 -836
  271. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/doc/conf.py +0 -137
  272. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/doc/create_conf_doc.py +0 -38
  273. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/doc/get_mathjax.py +0 -34
  274. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/__init__.py +0 -17
  275. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/__init__.py +0 -0
  276. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap.py +0 -88
  277. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap_stitching.py +0 -69
  278. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/cast_volume.py +0 -272
  279. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/cli_configs.py +0 -626
  280. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/compare_volumes.py +0 -94
  281. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/composite_cor.py +0 -144
  282. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/correct_rot.py +0 -70
  283. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/create_distortion_map_from_poly.py +0 -153
  284. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_pix.py +0 -358
  285. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_rot.py +0 -449
  286. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/double_flatfield.py +0 -143
  287. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/generate_header.py +0 -261
  288. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/histogram.py +0 -197
  289. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/multicor.py +0 -90
  290. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/nx_z_splitter.py +0 -125
  291. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/parse_reconstruction_log.py +0 -151
  292. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/prepare_weights_double.py +0 -163
  293. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct.py +0 -120
  294. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct_helical.py +0 -116
  295. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reduce_dark_flat.py +0 -181
  296. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/rotate.py +0 -162
  297. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/shrink_dataset.py +0 -98
  298. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/stitching.py +0 -85
  299. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/tests/test_reduce_dark_flat.py +0 -78
  300. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/utils.py +0 -33
  301. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/validator.py +0 -110
  302. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/__init__.py +0 -0
  303. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/convolution.py +0 -8
  304. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/fft.py +0 -4
  305. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/kernel.py +0 -97
  306. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/medfilt.py +0 -6
  307. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/padding.py +0 -6
  308. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/processing.py +0 -75
  309. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/tests/__init__.py +0 -1
  310. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/utils.py +0 -331
  311. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/__init__.py +0 -12
  312. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/alignment.py +0 -578
  313. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor.py +0 -1621
  314. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor_sino.py +0 -183
  315. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/distortion.py +0 -112
  316. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/focus.py +0 -362
  317. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/__init__.py +0 -0
  318. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_alignment.py +0 -70
  319. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_cor.py +0 -472
  320. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_focus.py +0 -105
  321. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_tilt.py +0 -41
  322. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_translation.py +0 -78
  323. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tilt.py +0 -214
  324. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/translation.py +0 -193
  325. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/utils.py +0 -39
  326. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/__init__.py +0 -2
  327. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/cast_volume.py +0 -371
  328. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/detector_distortion.py +0 -305
  329. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/reader.py +0 -628
  330. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/reader_helical.py +0 -114
  331. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/__init__.py +0 -0
  332. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_cast_volume.py +0 -339
  333. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_detector_distortion.py +0 -178
  334. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_writers.py +0 -187
  335. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tiffwriter_zmm.py +0 -99
  336. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/utils.py +0 -263
  337. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/writer.py +0 -892
  338. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/__init__.py +0 -0
  339. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/binning.py +0 -98
  340. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/fftshift.py +0 -6
  341. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/filters.py +0 -24
  342. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/fourier_filters.py +0 -152
  343. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram.py +0 -6
  344. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram_cuda.py +0 -8
  345. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/kernel_base.py +0 -4
  346. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/padding.py +0 -83
  347. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/padding_base.py +0 -6
  348. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/processing_base.py +0 -4
  349. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation.py +0 -6
  350. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation_cuda.py +0 -6
  351. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/__init__.py +0 -1
  352. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_binning.py +0 -48
  353. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_interpolation.py +0 -70
  354. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/transpose.py +0 -6
  355. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp.py +0 -4
  356. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_cuda.py +0 -6
  357. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_opencl.py +0 -8
  358. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/utils.py +0 -117
  359. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/__init__.py +0 -0
  360. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/fft.py +0 -6
  361. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/kernel.py +0 -135
  362. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/memcpy.py +0 -35
  363. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/padding.py +0 -6
  364. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/processing.py +0 -62
  365. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/tests/__init__.py +0 -0
  366. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/utils.py +0 -292
  367. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/__init__.py +0 -0
  368. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config.py +0 -265
  369. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config_validators.py +0 -589
  370. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/datadump.py +0 -164
  371. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/dataset_validator.py +0 -211
  372. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/detector_distortion_provider.py +0 -20
  373. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/estimators.py +0 -1012
  374. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fallback_utils.py +0 -149
  375. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/__init__.py +0 -0
  376. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked.py +0 -849
  377. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked_cuda.py +0 -152
  378. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/computations.py +0 -260
  379. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/dataset_validator.py +0 -63
  380. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/nabu_config.py +0 -590
  381. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/processconfig.py +0 -825
  382. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/reconstruction.py +0 -851
  383. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/__init__.py +0 -0
  384. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/dataset_validator.py +0 -19
  385. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/fbp.py +0 -147
  386. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/filtering.py +0 -246
  387. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/gridded_accumulator.py +0 -575
  388. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded.py +0 -1670
  389. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded_cuda.py +0 -119
  390. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_reconstruction.py +0 -598
  391. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_utils.py +0 -42
  392. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/nabu_config.py +0 -175
  393. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/processconfig.py +0 -62
  394. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/span_strategy.py +0 -483
  395. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/__init__.py +0 -0
  396. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_accumulator.py +0 -157
  397. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_pipeline_elements_full.py +0 -355
  398. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_strategy.py +0 -61
  399. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/utils.py +0 -51
  400. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/weight_balancer.py +0 -101
  401. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/params.py +0 -163
  402. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/processconfig.py +0 -210
  403. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/tests/test_chunk_reader.py +0 -78
  404. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/tests/test_estimators.py +0 -149
  405. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/utils.py +0 -116
  406. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/writer.py +0 -193
  407. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/xrdct/__init__.py +0 -0
  408. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/__init__.py +0 -7
  409. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/alignment.py +0 -11
  410. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd.py +0 -161
  411. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd_cuda.py +0 -169
  412. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf.py +0 -361
  413. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf_cuda.py +0 -142
  414. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/distortion.py +0 -92
  415. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield.py +0 -212
  416. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_cuda.py +0 -174
  417. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_variable_region.py +0 -68
  418. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield.py +0 -448
  419. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_cuda.py +0 -144
  420. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_variable_region.py +0 -79
  421. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase.py +0 -425
  422. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase_cuda.py +0 -143
  423. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift.py +0 -95
  424. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift_cuda.py +0 -102
  425. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/__init__.py +0 -1
  426. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_ccd_corr.py +0 -59
  427. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_ctf.py +0 -250
  428. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_double_flatfield.py +0 -86
  429. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_flatfield.py +0 -626
  430. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_paganin.py +0 -67
  431. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_vshift.py +0 -73
  432. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/__init__.py +0 -0
  433. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/convolution_cuda.py +0 -375
  434. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_base.py +0 -163
  435. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_cuda.py +0 -256
  436. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_opencl.py +0 -54
  437. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fftshift.py +0 -134
  438. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram.py +0 -286
  439. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram_cuda.py +0 -103
  440. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/kernel_base.py +0 -126
  441. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/medfilt_cuda.py +0 -159
  442. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd.py +0 -29
  443. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd_cuda.py +0 -68
  444. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_base.py +0 -71
  445. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_cuda.py +0 -75
  446. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_opencl.py +0 -77
  447. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/processing_base.py +0 -123
  448. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/roll_opencl.py +0 -64
  449. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation.py +0 -63
  450. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation_cuda.py +0 -66
  451. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/__init__.py +0 -0
  452. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fft.py +0 -268
  453. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fftshift.py +0 -71
  454. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_histogram.py +0 -55
  455. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_medfilt.py +0 -77
  456. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_muladd.py +0 -54
  457. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_padding.py +0 -247
  458. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_roll.py +0 -63
  459. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_rotation.py +0 -83
  460. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_transpose.py +0 -72
  461. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_unsharp.py +0 -106
  462. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/transpose.py +0 -126
  463. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp.py +0 -79
  464. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_cuda.py +0 -53
  465. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_opencl.py +0 -75
  466. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/__init__.py +0 -3
  467. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/cone.py +0 -241
  468. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp.py +0 -124
  469. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_base.py +0 -391
  470. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_opencl.py +0 -78
  471. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering.py +0 -220
  472. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_cuda.py +0 -103
  473. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_opencl.py +0 -111
  474. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/projection.py +0 -240
  475. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor.py +0 -174
  476. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor_cuda.py +0 -44
  477. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings.py +0 -248
  478. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings_cuda.py +0 -322
  479. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram.py +0 -467
  480. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_cuda.py +0 -250
  481. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_opencl.py +0 -40
  482. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/__init__.py +0 -1
  483. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_cone.py +0 -308
  484. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_deringer.py +0 -220
  485. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_fbp.py +0 -252
  486. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_filtering.py +0 -133
  487. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_halftomo.py +0 -100
  488. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_projector.py +0 -164
  489. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_reconstructor.py +0 -93
  490. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_sino_normalization.py +0 -85
  491. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/__init__.py +0 -0
  492. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/cli/__init__.py +0 -0
  493. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/cor.py +0 -5
  494. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/dataset_analyzer.py +0 -469
  495. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/gpu.py +0 -169
  496. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/logger.py +0 -130
  497. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/nxflatfield.py +0 -217
  498. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/templates/__init__.py +0 -0
  499. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/__init__.py +0 -0
  500. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_nxflatfield.py +0 -104
  501. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_units.py +0 -47
  502. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/utils.py +0 -174
  503. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/__init__.py +0 -0
  504. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/alignment.py +0 -184
  505. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/config.py +0 -1286
  506. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/definitions.py +0 -6
  507. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/frame_composition.py +0 -155
  508. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/overlap.py +0 -373
  509. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/sample_normalization.py +0 -60
  510. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/slurm_utils.py +0 -204
  511. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/__init__.py +0 -0
  512. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_alignment.py +0 -99
  513. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_config.py +0 -226
  514. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_frame_composition.py +0 -180
  515. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_overlap.py +0 -98
  516. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_sample_normalization.py +0 -49
  517. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_slurm_utils.py +0 -146
  518. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_utils.py +0 -21
  519. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_z_stitching.py +0 -1183
  520. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/utils.py +0 -563
  521. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/z_stitching.py +0 -2279
  522. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/tests.py +0 -51
  523. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/testutils.py +0 -375
  524. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/__init__.py +0 -0
  525. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/algotom_convert_sino.py +0 -276
  526. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/pore3d_deringer_munch.py +0 -108
  527. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomocupy_remove_stripe.py +0 -586
  528. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomopy_phase.py +0 -239
  529. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomwer_load_flats_darks.py +0 -162
  530. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/utils.py +0 -836
  531. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/doc/conf.py +0 -137
  532. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/doc/create_conf_doc.py +0 -38
  533. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/doc/get_mathjax.py +0 -34
  534. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/__init__.py +0 -17
  535. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/__init__.py +0 -0
  536. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap.py +0 -88
  537. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap_stitching.py +0 -69
  538. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/cast_volume.py +0 -272
  539. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/cli_configs.py +0 -626
  540. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/compare_volumes.py +0 -94
  541. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/composite_cor.py +0 -144
  542. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/correct_rot.py +0 -70
  543. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/create_distortion_map_from_poly.py +0 -153
  544. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_pix.py +0 -358
  545. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_rot.py +0 -449
  546. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/double_flatfield.py +0 -143
  547. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/generate_header.py +0 -261
  548. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/histogram.py +0 -197
  549. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/multicor.py +0 -90
  550. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/nx_z_splitter.py +0 -125
  551. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/parse_reconstruction_log.py +0 -151
  552. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/prepare_weights_double.py +0 -163
  553. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct.py +0 -120
  554. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct_helical.py +0 -116
  555. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reduce_dark_flat.py +0 -181
  556. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/rotate.py +0 -162
  557. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/shrink_dataset.py +0 -98
  558. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/stitching.py +0 -85
  559. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/tests/test_reduce_dark_flat.py +0 -78
  560. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/utils.py +0 -33
  561. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/validator.py +0 -110
  562. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/__init__.py +0 -0
  563. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/convolution.py +0 -8
  564. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/fft.py +0 -4
  565. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/kernel.py +0 -97
  566. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/medfilt.py +0 -6
  567. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/padding.py +0 -6
  568. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/processing.py +0 -75
  569. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/tests/__init__.py +0 -1
  570. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/utils.py +0 -331
  571. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/__init__.py +0 -12
  572. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/alignment.py +0 -578
  573. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor.py +0 -1621
  574. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor_sino.py +0 -183
  575. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/distortion.py +0 -112
  576. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/focus.py +0 -362
  577. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/__init__.py +0 -0
  578. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_alignment.py +0 -70
  579. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_cor.py +0 -472
  580. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_focus.py +0 -105
  581. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_tilt.py +0 -41
  582. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_translation.py +0 -78
  583. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tilt.py +0 -214
  584. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/translation.py +0 -193
  585. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/utils.py +0 -39
  586. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/__init__.py +0 -2
  587. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/cast_volume.py +0 -371
  588. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/detector_distortion.py +0 -305
  589. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/reader.py +0 -628
  590. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/reader_helical.py +0 -114
  591. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/__init__.py +0 -0
  592. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_cast_volume.py +0 -339
  593. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_detector_distortion.py +0 -178
  594. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_writers.py +0 -187
  595. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tiffwriter_zmm.py +0 -99
  596. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/utils.py +0 -263
  597. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/writer.py +0 -892
  598. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/__init__.py +0 -0
  599. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/binning.py +0 -98
  600. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/fftshift.py +0 -6
  601. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/filters.py +0 -24
  602. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/fourier_filters.py +0 -152
  603. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram.py +0 -6
  604. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram_cuda.py +0 -8
  605. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/kernel_base.py +0 -4
  606. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/padding.py +0 -83
  607. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/padding_base.py +0 -6
  608. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/processing_base.py +0 -4
  609. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation.py +0 -6
  610. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation_cuda.py +0 -6
  611. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/__init__.py +0 -1
  612. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_binning.py +0 -48
  613. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_interpolation.py +0 -70
  614. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/transpose.py +0 -6
  615. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp.py +0 -4
  616. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_cuda.py +0 -6
  617. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_opencl.py +0 -8
  618. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/utils.py +0 -117
  619. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/__init__.py +0 -0
  620. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/fft.py +0 -6
  621. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/kernel.py +0 -135
  622. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/memcpy.py +0 -35
  623. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/padding.py +0 -6
  624. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/processing.py +0 -62
  625. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/tests/__init__.py +0 -0
  626. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/utils.py +0 -292
  627. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/__init__.py +0 -0
  628. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config.py +0 -265
  629. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config_validators.py +0 -589
  630. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/datadump.py +0 -164
  631. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/dataset_validator.py +0 -211
  632. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/detector_distortion_provider.py +0 -20
  633. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/estimators.py +0 -1012
  634. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fallback_utils.py +0 -149
  635. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/__init__.py +0 -0
  636. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked.py +0 -849
  637. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked_cuda.py +0 -152
  638. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/computations.py +0 -260
  639. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/dataset_validator.py +0 -63
  640. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/nabu_config.py +0 -590
  641. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/processconfig.py +0 -825
  642. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/reconstruction.py +0 -851
  643. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/__init__.py +0 -0
  644. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/dataset_validator.py +0 -19
  645. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/fbp.py +0 -147
  646. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/filtering.py +0 -246
  647. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/gridded_accumulator.py +0 -575
  648. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded.py +0 -1670
  649. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded_cuda.py +0 -119
  650. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_reconstruction.py +0 -598
  651. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_utils.py +0 -42
  652. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/nabu_config.py +0 -175
  653. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/processconfig.py +0 -62
  654. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/span_strategy.py +0 -483
  655. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/__init__.py +0 -0
  656. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_accumulator.py +0 -157
  657. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_pipeline_elements_full.py +0 -355
  658. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_strategy.py +0 -61
  659. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/utils.py +0 -51
  660. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/weight_balancer.py +0 -101
  661. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/params.py +0 -163
  662. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/processconfig.py +0 -210
  663. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/tests/test_chunk_reader.py +0 -78
  664. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/tests/test_estimators.py +0 -149
  665. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/utils.py +0 -116
  666. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/writer.py +0 -193
  667. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/xrdct/__init__.py +0 -0
  668. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/__init__.py +0 -7
  669. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/alignment.py +0 -11
  670. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd.py +0 -161
  671. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd_cuda.py +0 -169
  672. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf.py +0 -361
  673. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf_cuda.py +0 -142
  674. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/distortion.py +0 -92
  675. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield.py +0 -212
  676. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_cuda.py +0 -174
  677. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_variable_region.py +0 -68
  678. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield.py +0 -448
  679. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_cuda.py +0 -144
  680. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_variable_region.py +0 -79
  681. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase.py +0 -425
  682. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase_cuda.py +0 -143
  683. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift.py +0 -95
  684. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift_cuda.py +0 -102
  685. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/__init__.py +0 -1
  686. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_ccd_corr.py +0 -59
  687. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_ctf.py +0 -250
  688. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_double_flatfield.py +0 -86
  689. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_flatfield.py +0 -626
  690. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_paganin.py +0 -67
  691. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_vshift.py +0 -73
  692. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/__init__.py +0 -0
  693. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/convolution_cuda.py +0 -375
  694. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_base.py +0 -163
  695. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_cuda.py +0 -256
  696. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_opencl.py +0 -54
  697. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fftshift.py +0 -134
  698. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram.py +0 -286
  699. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram_cuda.py +0 -103
  700. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/kernel_base.py +0 -126
  701. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/medfilt_cuda.py +0 -159
  702. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd.py +0 -29
  703. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd_cuda.py +0 -68
  704. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_base.py +0 -71
  705. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_cuda.py +0 -75
  706. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_opencl.py +0 -77
  707. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/processing_base.py +0 -123
  708. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/roll_opencl.py +0 -64
  709. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation.py +0 -63
  710. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation_cuda.py +0 -66
  711. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/__init__.py +0 -0
  712. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fft.py +0 -268
  713. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fftshift.py +0 -71
  714. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_histogram.py +0 -55
  715. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_medfilt.py +0 -77
  716. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_muladd.py +0 -54
  717. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_padding.py +0 -247
  718. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_roll.py +0 -63
  719. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_rotation.py +0 -83
  720. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_transpose.py +0 -72
  721. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_unsharp.py +0 -106
  722. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/transpose.py +0 -126
  723. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp.py +0 -79
  724. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_cuda.py +0 -53
  725. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_opencl.py +0 -75
  726. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/__init__.py +0 -3
  727. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/cone.py +0 -241
  728. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp.py +0 -124
  729. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_base.py +0 -391
  730. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_opencl.py +0 -78
  731. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering.py +0 -220
  732. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_cuda.py +0 -103
  733. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_opencl.py +0 -111
  734. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/projection.py +0 -240
  735. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor.py +0 -174
  736. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor_cuda.py +0 -44
  737. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings.py +0 -248
  738. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings_cuda.py +0 -322
  739. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram.py +0 -467
  740. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_cuda.py +0 -250
  741. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_opencl.py +0 -40
  742. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/__init__.py +0 -1
  743. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_cone.py +0 -308
  744. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_deringer.py +0 -220
  745. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_fbp.py +0 -252
  746. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_filtering.py +0 -133
  747. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_halftomo.py +0 -100
  748. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_projector.py +0 -164
  749. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_reconstructor.py +0 -93
  750. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_sino_normalization.py +0 -85
  751. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/__init__.py +0 -0
  752. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/cli/__init__.py +0 -0
  753. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/cor.py +0 -5
  754. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/dataset_analyzer.py +0 -469
  755. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/gpu.py +0 -169
  756. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/logger.py +0 -130
  757. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/nxflatfield.py +0 -217
  758. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/templates/__init__.py +0 -0
  759. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/__init__.py +0 -0
  760. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_nxflatfield.py +0 -104
  761. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_units.py +0 -47
  762. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/utils.py +0 -174
  763. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/__init__.py +0 -0
  764. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/alignment.py +0 -184
  765. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/config.py +0 -1286
  766. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/definitions.py +0 -6
  767. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/frame_composition.py +0 -155
  768. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/overlap.py +0 -373
  769. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/sample_normalization.py +0 -60
  770. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/slurm_utils.py +0 -204
  771. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/__init__.py +0 -0
  772. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_alignment.py +0 -99
  773. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_config.py +0 -226
  774. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_frame_composition.py +0 -180
  775. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_overlap.py +0 -98
  776. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_sample_normalization.py +0 -49
  777. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_slurm_utils.py +0 -146
  778. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_utils.py +0 -21
  779. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_z_stitching.py +0 -1183
  780. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/utils.py +0 -563
  781. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/z_stitching.py +0 -2279
  782. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/tests.py +0 -51
  783. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/testutils.py +0 -375
  784. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/__init__.py +0 -0
  785. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/algotom_convert_sino.py +0 -276
  786. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/pore3d_deringer_munch.py +0 -108
  787. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomocupy_remove_stripe.py +0 -586
  788. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomopy_phase.py +0 -239
  789. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomwer_load_flats_darks.py +0 -162
  790. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/utils.py +0 -836
  791. build/lib/build/lib/build/lib/build/lib/build/lib/doc/conf.py +0 -137
  792. build/lib/build/lib/build/lib/build/lib/build/lib/doc/create_conf_doc.py +0 -38
  793. build/lib/build/lib/build/lib/build/lib/build/lib/doc/get_mathjax.py +0 -34
  794. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/__init__.py +0 -17
  795. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/__init__.py +0 -0
  796. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap.py +0 -88
  797. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap_stitching.py +0 -69
  798. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/cast_volume.py +0 -272
  799. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/cli_configs.py +0 -626
  800. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/compare_volumes.py +0 -94
  801. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/composite_cor.py +0 -144
  802. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/correct_rot.py +0 -70
  803. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/create_distortion_map_from_poly.py +0 -153
  804. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_pix.py +0 -358
  805. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_rot.py +0 -449
  806. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/double_flatfield.py +0 -143
  807. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/generate_header.py +0 -261
  808. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/histogram.py +0 -197
  809. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/multicor.py +0 -90
  810. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/nx_z_splitter.py +0 -125
  811. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/parse_reconstruction_log.py +0 -151
  812. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/prepare_weights_double.py +0 -163
  813. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct.py +0 -120
  814. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct_helical.py +0 -116
  815. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reduce_dark_flat.py +0 -181
  816. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/rotate.py +0 -162
  817. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/shrink_dataset.py +0 -98
  818. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/stitching.py +0 -85
  819. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/tests/test_reduce_dark_flat.py +0 -78
  820. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/utils.py +0 -33
  821. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/validator.py +0 -110
  822. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/__init__.py +0 -0
  823. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/convolution.py +0 -8
  824. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/fft.py +0 -4
  825. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/kernel.py +0 -97
  826. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/medfilt.py +0 -6
  827. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/padding.py +0 -6
  828. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/processing.py +0 -75
  829. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/tests/__init__.py +0 -1
  830. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/utils.py +0 -331
  831. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/__init__.py +0 -12
  832. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/alignment.py +0 -578
  833. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor.py +0 -1621
  834. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor_sino.py +0 -183
  835. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/distortion.py +0 -112
  836. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/focus.py +0 -362
  837. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/__init__.py +0 -0
  838. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_alignment.py +0 -70
  839. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_cor.py +0 -472
  840. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_focus.py +0 -105
  841. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_tilt.py +0 -41
  842. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_translation.py +0 -78
  843. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tilt.py +0 -214
  844. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/translation.py +0 -193
  845. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/utils.py +0 -39
  846. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/__init__.py +0 -2
  847. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/cast_volume.py +0 -371
  848. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/detector_distortion.py +0 -305
  849. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/reader.py +0 -628
  850. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/reader_helical.py +0 -114
  851. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/__init__.py +0 -0
  852. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_cast_volume.py +0 -339
  853. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_detector_distortion.py +0 -178
  854. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_writers.py +0 -187
  855. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tiffwriter_zmm.py +0 -99
  856. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/utils.py +0 -263
  857. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/writer.py +0 -892
  858. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/__init__.py +0 -0
  859. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/binning.py +0 -98
  860. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/fftshift.py +0 -6
  861. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/filters.py +0 -24
  862. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/fourier_filters.py +0 -152
  863. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram.py +0 -6
  864. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram_cuda.py +0 -8
  865. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/kernel_base.py +0 -4
  866. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/padding.py +0 -83
  867. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/padding_base.py +0 -6
  868. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/processing_base.py +0 -4
  869. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation.py +0 -6
  870. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation_cuda.py +0 -6
  871. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/__init__.py +0 -1
  872. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_binning.py +0 -48
  873. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_interpolation.py +0 -70
  874. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/transpose.py +0 -6
  875. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp.py +0 -4
  876. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_cuda.py +0 -6
  877. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_opencl.py +0 -8
  878. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/utils.py +0 -117
  879. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/__init__.py +0 -0
  880. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/fft.py +0 -6
  881. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/kernel.py +0 -135
  882. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/memcpy.py +0 -35
  883. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/padding.py +0 -6
  884. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/processing.py +0 -62
  885. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/tests/__init__.py +0 -0
  886. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/utils.py +0 -292
  887. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/__init__.py +0 -0
  888. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config.py +0 -265
  889. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config_validators.py +0 -589
  890. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/datadump.py +0 -164
  891. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/dataset_validator.py +0 -211
  892. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/detector_distortion_provider.py +0 -20
  893. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/estimators.py +0 -1012
  894. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fallback_utils.py +0 -149
  895. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/__init__.py +0 -0
  896. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked.py +0 -849
  897. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked_cuda.py +0 -152
  898. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/computations.py +0 -260
  899. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/dataset_validator.py +0 -63
  900. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/nabu_config.py +0 -590
  901. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/processconfig.py +0 -825
  902. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/reconstruction.py +0 -851
  903. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/__init__.py +0 -0
  904. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/dataset_validator.py +0 -19
  905. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/fbp.py +0 -147
  906. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/filtering.py +0 -246
  907. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/gridded_accumulator.py +0 -575
  908. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded.py +0 -1670
  909. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded_cuda.py +0 -119
  910. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_reconstruction.py +0 -598
  911. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_utils.py +0 -42
  912. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/nabu_config.py +0 -175
  913. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/processconfig.py +0 -62
  914. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/span_strategy.py +0 -483
  915. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/__init__.py +0 -0
  916. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_accumulator.py +0 -157
  917. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_pipeline_elements_full.py +0 -355
  918. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_strategy.py +0 -61
  919. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/utils.py +0 -51
  920. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/weight_balancer.py +0 -101
  921. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/params.py +0 -163
  922. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/processconfig.py +0 -210
  923. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/tests/test_chunk_reader.py +0 -78
  924. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/tests/test_estimators.py +0 -149
  925. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/utils.py +0 -116
  926. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/writer.py +0 -193
  927. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/xrdct/__init__.py +0 -0
  928. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/__init__.py +0 -7
  929. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/alignment.py +0 -11
  930. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd.py +0 -161
  931. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd_cuda.py +0 -169
  932. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf.py +0 -361
  933. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf_cuda.py +0 -142
  934. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/distortion.py +0 -92
  935. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield.py +0 -212
  936. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_cuda.py +0 -174
  937. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_variable_region.py +0 -68
  938. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield.py +0 -448
  939. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_cuda.py +0 -144
  940. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_variable_region.py +0 -79
  941. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase.py +0 -425
  942. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase_cuda.py +0 -143
  943. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift.py +0 -95
  944. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift_cuda.py +0 -102
  945. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/__init__.py +0 -1
  946. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_ccd_corr.py +0 -59
  947. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_ctf.py +0 -250
  948. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_double_flatfield.py +0 -86
  949. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_flatfield.py +0 -626
  950. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_paganin.py +0 -67
  951. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_vshift.py +0 -73
  952. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/__init__.py +0 -0
  953. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/convolution_cuda.py +0 -375
  954. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_base.py +0 -163
  955. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_cuda.py +0 -256
  956. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_opencl.py +0 -54
  957. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fftshift.py +0 -134
  958. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram.py +0 -286
  959. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram_cuda.py +0 -103
  960. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/kernel_base.py +0 -126
  961. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/medfilt_cuda.py +0 -159
  962. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd.py +0 -29
  963. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd_cuda.py +0 -68
  964. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_base.py +0 -71
  965. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_cuda.py +0 -75
  966. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_opencl.py +0 -77
  967. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/processing_base.py +0 -123
  968. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/roll_opencl.py +0 -64
  969. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation.py +0 -63
  970. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation_cuda.py +0 -66
  971. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/__init__.py +0 -0
  972. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fft.py +0 -268
  973. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fftshift.py +0 -71
  974. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_histogram.py +0 -55
  975. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_medfilt.py +0 -77
  976. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_muladd.py +0 -54
  977. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_padding.py +0 -247
  978. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_roll.py +0 -63
  979. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_rotation.py +0 -83
  980. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_transpose.py +0 -72
  981. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_unsharp.py +0 -106
  982. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/transpose.py +0 -126
  983. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp.py +0 -79
  984. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_cuda.py +0 -53
  985. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_opencl.py +0 -75
  986. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/__init__.py +0 -3
  987. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/cone.py +0 -241
  988. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp.py +0 -124
  989. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_base.py +0 -391
  990. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_opencl.py +0 -78
  991. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering.py +0 -220
  992. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_cuda.py +0 -103
  993. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_opencl.py +0 -111
  994. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/projection.py +0 -240
  995. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor.py +0 -174
  996. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor_cuda.py +0 -44
  997. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings.py +0 -248
  998. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings_cuda.py +0 -322
  999. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram.py +0 -467
  1000. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_cuda.py +0 -250
  1001. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_opencl.py +0 -40
  1002. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/__init__.py +0 -1
  1003. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_cone.py +0 -308
  1004. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_deringer.py +0 -220
  1005. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_fbp.py +0 -252
  1006. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_filtering.py +0 -133
  1007. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_halftomo.py +0 -100
  1008. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_projector.py +0 -164
  1009. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_reconstructor.py +0 -93
  1010. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_sino_normalization.py +0 -85
  1011. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/__init__.py +0 -0
  1012. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/cli/__init__.py +0 -0
  1013. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/cor.py +0 -5
  1014. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/dataset_analyzer.py +0 -469
  1015. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/gpu.py +0 -169
  1016. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/logger.py +0 -130
  1017. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/nxflatfield.py +0 -217
  1018. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/templates/__init__.py +0 -0
  1019. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/__init__.py +0 -0
  1020. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_nxflatfield.py +0 -104
  1021. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_units.py +0 -47
  1022. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/utils.py +0 -174
  1023. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/__init__.py +0 -0
  1024. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/alignment.py +0 -184
  1025. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/config.py +0 -1286
  1026. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/definitions.py +0 -6
  1027. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/frame_composition.py +0 -155
  1028. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/overlap.py +0 -373
  1029. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/sample_normalization.py +0 -60
  1030. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/slurm_utils.py +0 -204
  1031. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/__init__.py +0 -0
  1032. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_alignment.py +0 -99
  1033. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_config.py +0 -226
  1034. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_frame_composition.py +0 -180
  1035. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_overlap.py +0 -98
  1036. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_sample_normalization.py +0 -49
  1037. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_slurm_utils.py +0 -146
  1038. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_utils.py +0 -21
  1039. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_z_stitching.py +0 -1183
  1040. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/utils.py +0 -563
  1041. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/z_stitching.py +0 -2279
  1042. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/tests.py +0 -51
  1043. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/testutils.py +0 -375
  1044. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/__init__.py +0 -0
  1045. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/algotom_convert_sino.py +0 -276
  1046. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/pore3d_deringer_munch.py +0 -108
  1047. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomocupy_remove_stripe.py +0 -586
  1048. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomopy_phase.py +0 -239
  1049. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomwer_load_flats_darks.py +0 -162
  1050. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/utils.py +0 -836
  1051. build/lib/build/lib/build/lib/build/lib/doc/conf.py +0 -137
  1052. build/lib/build/lib/build/lib/build/lib/doc/create_conf_doc.py +0 -38
  1053. build/lib/build/lib/build/lib/build/lib/doc/get_mathjax.py +0 -34
  1054. build/lib/build/lib/build/lib/build/lib/nabu/__init__.py +0 -17
  1055. build/lib/build/lib/build/lib/build/lib/nabu/app/__init__.py +0 -0
  1056. build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap.py +0 -88
  1057. build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap_stitching.py +0 -69
  1058. build/lib/build/lib/build/lib/build/lib/nabu/app/cast_volume.py +0 -272
  1059. build/lib/build/lib/build/lib/build/lib/nabu/app/cli_configs.py +0 -626
  1060. build/lib/build/lib/build/lib/build/lib/nabu/app/compare_volumes.py +0 -94
  1061. build/lib/build/lib/build/lib/build/lib/nabu/app/composite_cor.py +0 -144
  1062. build/lib/build/lib/build/lib/build/lib/nabu/app/correct_rot.py +0 -70
  1063. build/lib/build/lib/build/lib/build/lib/nabu/app/create_distortion_map_from_poly.py +0 -153
  1064. build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_pix.py +0 -358
  1065. build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_rot.py +0 -449
  1066. build/lib/build/lib/build/lib/build/lib/nabu/app/double_flatfield.py +0 -143
  1067. build/lib/build/lib/build/lib/build/lib/nabu/app/generate_header.py +0 -261
  1068. build/lib/build/lib/build/lib/build/lib/nabu/app/histogram.py +0 -197
  1069. build/lib/build/lib/build/lib/build/lib/nabu/app/multicor.py +0 -90
  1070. build/lib/build/lib/build/lib/build/lib/nabu/app/nx_z_splitter.py +0 -125
  1071. build/lib/build/lib/build/lib/build/lib/nabu/app/parse_reconstruction_log.py +0 -151
  1072. build/lib/build/lib/build/lib/build/lib/nabu/app/prepare_weights_double.py +0 -163
  1073. build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct.py +0 -120
  1074. build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct_helical.py +0 -116
  1075. build/lib/build/lib/build/lib/build/lib/nabu/app/reduce_dark_flat.py +0 -181
  1076. build/lib/build/lib/build/lib/build/lib/nabu/app/rotate.py +0 -162
  1077. build/lib/build/lib/build/lib/build/lib/nabu/app/shrink_dataset.py +0 -98
  1078. build/lib/build/lib/build/lib/build/lib/nabu/app/stitching.py +0 -85
  1079. build/lib/build/lib/build/lib/build/lib/nabu/app/tests/test_reduce_dark_flat.py +0 -78
  1080. build/lib/build/lib/build/lib/build/lib/nabu/app/utils.py +0 -33
  1081. build/lib/build/lib/build/lib/build/lib/nabu/app/validator.py +0 -110
  1082. build/lib/build/lib/build/lib/build/lib/nabu/cuda/__init__.py +0 -0
  1083. build/lib/build/lib/build/lib/build/lib/nabu/cuda/convolution.py +0 -8
  1084. build/lib/build/lib/build/lib/build/lib/nabu/cuda/fft.py +0 -4
  1085. build/lib/build/lib/build/lib/build/lib/nabu/cuda/kernel.py +0 -97
  1086. build/lib/build/lib/build/lib/build/lib/nabu/cuda/medfilt.py +0 -6
  1087. build/lib/build/lib/build/lib/build/lib/nabu/cuda/padding.py +0 -6
  1088. build/lib/build/lib/build/lib/build/lib/nabu/cuda/processing.py +0 -75
  1089. build/lib/build/lib/build/lib/build/lib/nabu/cuda/tests/__init__.py +0 -1
  1090. build/lib/build/lib/build/lib/build/lib/nabu/cuda/utils.py +0 -331
  1091. build/lib/build/lib/build/lib/build/lib/nabu/estimation/__init__.py +0 -12
  1092. build/lib/build/lib/build/lib/build/lib/nabu/estimation/alignment.py +0 -578
  1093. build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor.py +0 -1621
  1094. build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor_sino.py +0 -183
  1095. build/lib/build/lib/build/lib/build/lib/nabu/estimation/distortion.py +0 -112
  1096. build/lib/build/lib/build/lib/build/lib/nabu/estimation/focus.py +0 -362
  1097. build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/__init__.py +0 -0
  1098. build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_alignment.py +0 -70
  1099. build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_cor.py +0 -472
  1100. build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_focus.py +0 -105
  1101. build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_tilt.py +0 -41
  1102. build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_translation.py +0 -78
  1103. build/lib/build/lib/build/lib/build/lib/nabu/estimation/tilt.py +0 -214
  1104. build/lib/build/lib/build/lib/build/lib/nabu/estimation/translation.py +0 -193
  1105. build/lib/build/lib/build/lib/build/lib/nabu/estimation/utils.py +0 -39
  1106. build/lib/build/lib/build/lib/build/lib/nabu/io/__init__.py +0 -2
  1107. build/lib/build/lib/build/lib/build/lib/nabu/io/cast_volume.py +0 -371
  1108. build/lib/build/lib/build/lib/build/lib/nabu/io/detector_distortion.py +0 -305
  1109. build/lib/build/lib/build/lib/build/lib/nabu/io/reader.py +0 -628
  1110. build/lib/build/lib/build/lib/build/lib/nabu/io/reader_helical.py +0 -114
  1111. build/lib/build/lib/build/lib/build/lib/nabu/io/tests/__init__.py +0 -0
  1112. build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_cast_volume.py +0 -339
  1113. build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_detector_distortion.py +0 -178
  1114. build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_writers.py +0 -187
  1115. build/lib/build/lib/build/lib/build/lib/nabu/io/tiffwriter_zmm.py +0 -99
  1116. build/lib/build/lib/build/lib/build/lib/nabu/io/utils.py +0 -263
  1117. build/lib/build/lib/build/lib/build/lib/nabu/io/writer.py +0 -892
  1118. build/lib/build/lib/build/lib/build/lib/nabu/misc/__init__.py +0 -0
  1119. build/lib/build/lib/build/lib/build/lib/nabu/misc/binning.py +0 -98
  1120. build/lib/build/lib/build/lib/build/lib/nabu/misc/fftshift.py +0 -6
  1121. build/lib/build/lib/build/lib/build/lib/nabu/misc/filters.py +0 -24
  1122. build/lib/build/lib/build/lib/build/lib/nabu/misc/fourier_filters.py +0 -152
  1123. build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram.py +0 -6
  1124. build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram_cuda.py +0 -8
  1125. build/lib/build/lib/build/lib/build/lib/nabu/misc/kernel_base.py +0 -4
  1126. build/lib/build/lib/build/lib/build/lib/nabu/misc/padding.py +0 -83
  1127. build/lib/build/lib/build/lib/build/lib/nabu/misc/padding_base.py +0 -6
  1128. build/lib/build/lib/build/lib/build/lib/nabu/misc/processing_base.py +0 -4
  1129. build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation.py +0 -6
  1130. build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation_cuda.py +0 -6
  1131. build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/__init__.py +0 -1
  1132. build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_binning.py +0 -48
  1133. build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_interpolation.py +0 -70
  1134. build/lib/build/lib/build/lib/build/lib/nabu/misc/transpose.py +0 -6
  1135. build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp.py +0 -4
  1136. build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_cuda.py +0 -6
  1137. build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_opencl.py +0 -8
  1138. build/lib/build/lib/build/lib/build/lib/nabu/misc/utils.py +0 -117
  1139. build/lib/build/lib/build/lib/build/lib/nabu/opencl/__init__.py +0 -0
  1140. build/lib/build/lib/build/lib/build/lib/nabu/opencl/fft.py +0 -6
  1141. build/lib/build/lib/build/lib/build/lib/nabu/opencl/kernel.py +0 -135
  1142. build/lib/build/lib/build/lib/build/lib/nabu/opencl/memcpy.py +0 -35
  1143. build/lib/build/lib/build/lib/build/lib/nabu/opencl/padding.py +0 -6
  1144. build/lib/build/lib/build/lib/build/lib/nabu/opencl/processing.py +0 -62
  1145. build/lib/build/lib/build/lib/build/lib/nabu/opencl/tests/__init__.py +0 -0
  1146. build/lib/build/lib/build/lib/build/lib/nabu/opencl/utils.py +0 -292
  1147. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/__init__.py +0 -0
  1148. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config.py +0 -265
  1149. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config_validators.py +0 -589
  1150. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/datadump.py +0 -164
  1151. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/dataset_validator.py +0 -211
  1152. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/detector_distortion_provider.py +0 -20
  1153. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/estimators.py +0 -1012
  1154. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fallback_utils.py +0 -149
  1155. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/__init__.py +0 -0
  1156. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked.py +0 -849
  1157. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked_cuda.py +0 -152
  1158. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/computations.py +0 -260
  1159. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/dataset_validator.py +0 -63
  1160. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/nabu_config.py +0 -590
  1161. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/processconfig.py +0 -825
  1162. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/reconstruction.py +0 -851
  1163. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/__init__.py +0 -0
  1164. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/dataset_validator.py +0 -19
  1165. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/fbp.py +0 -147
  1166. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/filtering.py +0 -246
  1167. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/gridded_accumulator.py +0 -575
  1168. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded.py +0 -1670
  1169. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded_cuda.py +0 -119
  1170. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_reconstruction.py +0 -598
  1171. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_utils.py +0 -42
  1172. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/nabu_config.py +0 -175
  1173. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/processconfig.py +0 -62
  1174. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/span_strategy.py +0 -483
  1175. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/__init__.py +0 -0
  1176. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_accumulator.py +0 -157
  1177. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_pipeline_elements_full.py +0 -355
  1178. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_strategy.py +0 -61
  1179. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/utils.py +0 -51
  1180. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/weight_balancer.py +0 -101
  1181. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/params.py +0 -163
  1182. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/processconfig.py +0 -210
  1183. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/tests/test_chunk_reader.py +0 -78
  1184. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/tests/test_estimators.py +0 -149
  1185. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/utils.py +0 -116
  1186. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/writer.py +0 -193
  1187. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/xrdct/__init__.py +0 -0
  1188. build/lib/build/lib/build/lib/build/lib/nabu/preproc/__init__.py +0 -7
  1189. build/lib/build/lib/build/lib/build/lib/nabu/preproc/alignment.py +0 -11
  1190. build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd.py +0 -161
  1191. build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd_cuda.py +0 -169
  1192. build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf.py +0 -361
  1193. build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf_cuda.py +0 -142
  1194. build/lib/build/lib/build/lib/build/lib/nabu/preproc/distortion.py +0 -92
  1195. build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield.py +0 -212
  1196. build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_cuda.py +0 -174
  1197. build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_variable_region.py +0 -68
  1198. build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield.py +0 -448
  1199. build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_cuda.py +0 -144
  1200. build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_variable_region.py +0 -79
  1201. build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase.py +0 -425
  1202. build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase_cuda.py +0 -143
  1203. build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift.py +0 -95
  1204. build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift_cuda.py +0 -102
  1205. build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/__init__.py +0 -1
  1206. build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_ccd_corr.py +0 -59
  1207. build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_ctf.py +0 -250
  1208. build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_double_flatfield.py +0 -86
  1209. build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_flatfield.py +0 -626
  1210. build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_paganin.py +0 -67
  1211. build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_vshift.py +0 -73
  1212. build/lib/build/lib/build/lib/build/lib/nabu/processing/__init__.py +0 -0
  1213. build/lib/build/lib/build/lib/build/lib/nabu/processing/convolution_cuda.py +0 -375
  1214. build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_base.py +0 -163
  1215. build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_cuda.py +0 -256
  1216. build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_opencl.py +0 -54
  1217. build/lib/build/lib/build/lib/build/lib/nabu/processing/fftshift.py +0 -134
  1218. build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram.py +0 -286
  1219. build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram_cuda.py +0 -103
  1220. build/lib/build/lib/build/lib/build/lib/nabu/processing/kernel_base.py +0 -126
  1221. build/lib/build/lib/build/lib/build/lib/nabu/processing/medfilt_cuda.py +0 -159
  1222. build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd.py +0 -29
  1223. build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd_cuda.py +0 -68
  1224. build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_base.py +0 -71
  1225. build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_cuda.py +0 -75
  1226. build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_opencl.py +0 -77
  1227. build/lib/build/lib/build/lib/build/lib/nabu/processing/processing_base.py +0 -123
  1228. build/lib/build/lib/build/lib/build/lib/nabu/processing/roll_opencl.py +0 -64
  1229. build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation.py +0 -63
  1230. build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation_cuda.py +0 -66
  1231. build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/__init__.py +0 -0
  1232. build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fft.py +0 -268
  1233. build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fftshift.py +0 -71
  1234. build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_histogram.py +0 -55
  1235. build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_medfilt.py +0 -77
  1236. build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_muladd.py +0 -54
  1237. build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_padding.py +0 -247
  1238. build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_roll.py +0 -63
  1239. build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_rotation.py +0 -83
  1240. build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_transpose.py +0 -72
  1241. build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_unsharp.py +0 -106
  1242. build/lib/build/lib/build/lib/build/lib/nabu/processing/transpose.py +0 -126
  1243. build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp.py +0 -79
  1244. build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_cuda.py +0 -53
  1245. build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_opencl.py +0 -75
  1246. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/__init__.py +0 -3
  1247. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/cone.py +0 -241
  1248. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp.py +0 -124
  1249. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_base.py +0 -391
  1250. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_opencl.py +0 -78
  1251. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering.py +0 -220
  1252. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_cuda.py +0 -103
  1253. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_opencl.py +0 -111
  1254. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/projection.py +0 -240
  1255. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor.py +0 -174
  1256. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor_cuda.py +0 -44
  1257. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings.py +0 -248
  1258. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings_cuda.py +0 -322
  1259. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram.py +0 -467
  1260. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_cuda.py +0 -250
  1261. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_opencl.py +0 -40
  1262. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/__init__.py +0 -1
  1263. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_cone.py +0 -308
  1264. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_deringer.py +0 -220
  1265. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_fbp.py +0 -252
  1266. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_filtering.py +0 -133
  1267. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_halftomo.py +0 -100
  1268. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_projector.py +0 -164
  1269. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_reconstructor.py +0 -93
  1270. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_sino_normalization.py +0 -85
  1271. build/lib/build/lib/build/lib/build/lib/nabu/resources/__init__.py +0 -0
  1272. build/lib/build/lib/build/lib/build/lib/nabu/resources/cli/__init__.py +0 -0
  1273. build/lib/build/lib/build/lib/build/lib/nabu/resources/cor.py +0 -5
  1274. build/lib/build/lib/build/lib/build/lib/nabu/resources/dataset_analyzer.py +0 -469
  1275. build/lib/build/lib/build/lib/build/lib/nabu/resources/gpu.py +0 -169
  1276. build/lib/build/lib/build/lib/build/lib/nabu/resources/logger.py +0 -130
  1277. build/lib/build/lib/build/lib/build/lib/nabu/resources/nxflatfield.py +0 -217
  1278. build/lib/build/lib/build/lib/build/lib/nabu/resources/templates/__init__.py +0 -0
  1279. build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/__init__.py +0 -0
  1280. build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_nxflatfield.py +0 -104
  1281. build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_units.py +0 -47
  1282. build/lib/build/lib/build/lib/build/lib/nabu/resources/utils.py +0 -174
  1283. build/lib/build/lib/build/lib/build/lib/nabu/stitching/__init__.py +0 -0
  1284. build/lib/build/lib/build/lib/build/lib/nabu/stitching/alignment.py +0 -184
  1285. build/lib/build/lib/build/lib/build/lib/nabu/stitching/config.py +0 -1286
  1286. build/lib/build/lib/build/lib/build/lib/nabu/stitching/definitions.py +0 -6
  1287. build/lib/build/lib/build/lib/build/lib/nabu/stitching/frame_composition.py +0 -155
  1288. build/lib/build/lib/build/lib/build/lib/nabu/stitching/overlap.py +0 -373
  1289. build/lib/build/lib/build/lib/build/lib/nabu/stitching/sample_normalization.py +0 -60
  1290. build/lib/build/lib/build/lib/build/lib/nabu/stitching/slurm_utils.py +0 -204
  1291. build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/__init__.py +0 -0
  1292. build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_alignment.py +0 -99
  1293. build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_config.py +0 -226
  1294. build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_frame_composition.py +0 -180
  1295. build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_overlap.py +0 -98
  1296. build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_sample_normalization.py +0 -49
  1297. build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_slurm_utils.py +0 -146
  1298. build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_utils.py +0 -21
  1299. build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_z_stitching.py +0 -1183
  1300. build/lib/build/lib/build/lib/build/lib/nabu/stitching/utils.py +0 -563
  1301. build/lib/build/lib/build/lib/build/lib/nabu/stitching/z_stitching.py +0 -2279
  1302. build/lib/build/lib/build/lib/build/lib/nabu/tests.py +0 -51
  1303. build/lib/build/lib/build/lib/build/lib/nabu/testutils.py +0 -375
  1304. build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/__init__.py +0 -0
  1305. build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/algotom_convert_sino.py +0 -276
  1306. build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/pore3d_deringer_munch.py +0 -108
  1307. build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomocupy_remove_stripe.py +0 -586
  1308. build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomopy_phase.py +0 -239
  1309. build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomwer_load_flats_darks.py +0 -162
  1310. build/lib/build/lib/build/lib/build/lib/nabu/utils.py +0 -836
  1311. build/lib/build/lib/build/lib/doc/conf.py +0 -137
  1312. build/lib/build/lib/build/lib/doc/create_conf_doc.py +0 -38
  1313. build/lib/build/lib/build/lib/doc/get_mathjax.py +0 -34
  1314. build/lib/build/lib/build/lib/nabu/__init__.py +0 -17
  1315. build/lib/build/lib/build/lib/nabu/app/__init__.py +0 -0
  1316. build/lib/build/lib/build/lib/nabu/app/bootstrap.py +0 -88
  1317. build/lib/build/lib/build/lib/nabu/app/bootstrap_stitching.py +0 -69
  1318. build/lib/build/lib/build/lib/nabu/app/cast_volume.py +0 -272
  1319. build/lib/build/lib/build/lib/nabu/app/cli_configs.py +0 -626
  1320. build/lib/build/lib/build/lib/nabu/app/compare_volumes.py +0 -94
  1321. build/lib/build/lib/build/lib/nabu/app/composite_cor.py +0 -144
  1322. build/lib/build/lib/build/lib/nabu/app/correct_rot.py +0 -70
  1323. build/lib/build/lib/build/lib/nabu/app/create_distortion_map_from_poly.py +0 -153
  1324. build/lib/build/lib/build/lib/nabu/app/diag_to_pix.py +0 -358
  1325. build/lib/build/lib/build/lib/nabu/app/diag_to_rot.py +0 -449
  1326. build/lib/build/lib/build/lib/nabu/app/double_flatfield.py +0 -143
  1327. build/lib/build/lib/build/lib/nabu/app/generate_header.py +0 -261
  1328. build/lib/build/lib/build/lib/nabu/app/histogram.py +0 -197
  1329. build/lib/build/lib/build/lib/nabu/app/multicor.py +0 -90
  1330. build/lib/build/lib/build/lib/nabu/app/nx_z_splitter.py +0 -125
  1331. build/lib/build/lib/build/lib/nabu/app/parse_reconstruction_log.py +0 -151
  1332. build/lib/build/lib/build/lib/nabu/app/prepare_weights_double.py +0 -163
  1333. build/lib/build/lib/build/lib/nabu/app/reconstruct.py +0 -120
  1334. build/lib/build/lib/build/lib/nabu/app/reconstruct_helical.py +0 -116
  1335. build/lib/build/lib/build/lib/nabu/app/reduce_dark_flat.py +0 -181
  1336. build/lib/build/lib/build/lib/nabu/app/rotate.py +0 -162
  1337. build/lib/build/lib/build/lib/nabu/app/shrink_dataset.py +0 -98
  1338. build/lib/build/lib/build/lib/nabu/app/stitching.py +0 -85
  1339. build/lib/build/lib/build/lib/nabu/app/tests/test_reduce_dark_flat.py +0 -78
  1340. build/lib/build/lib/build/lib/nabu/app/utils.py +0 -33
  1341. build/lib/build/lib/build/lib/nabu/app/validator.py +0 -110
  1342. build/lib/build/lib/build/lib/nabu/cuda/__init__.py +0 -0
  1343. build/lib/build/lib/build/lib/nabu/cuda/convolution.py +0 -8
  1344. build/lib/build/lib/build/lib/nabu/cuda/fft.py +0 -4
  1345. build/lib/build/lib/build/lib/nabu/cuda/kernel.py +0 -97
  1346. build/lib/build/lib/build/lib/nabu/cuda/medfilt.py +0 -6
  1347. build/lib/build/lib/build/lib/nabu/cuda/padding.py +0 -6
  1348. build/lib/build/lib/build/lib/nabu/cuda/processing.py +0 -75
  1349. build/lib/build/lib/build/lib/nabu/cuda/tests/__init__.py +0 -1
  1350. build/lib/build/lib/build/lib/nabu/cuda/utils.py +0 -331
  1351. build/lib/build/lib/build/lib/nabu/estimation/__init__.py +0 -12
  1352. build/lib/build/lib/build/lib/nabu/estimation/alignment.py +0 -578
  1353. build/lib/build/lib/build/lib/nabu/estimation/cor.py +0 -1621
  1354. build/lib/build/lib/build/lib/nabu/estimation/cor_sino.py +0 -183
  1355. build/lib/build/lib/build/lib/nabu/estimation/distortion.py +0 -112
  1356. build/lib/build/lib/build/lib/nabu/estimation/focus.py +0 -362
  1357. build/lib/build/lib/build/lib/nabu/estimation/tests/__init__.py +0 -0
  1358. build/lib/build/lib/build/lib/nabu/estimation/tests/test_alignment.py +0 -70
  1359. build/lib/build/lib/build/lib/nabu/estimation/tests/test_cor.py +0 -472
  1360. build/lib/build/lib/build/lib/nabu/estimation/tests/test_focus.py +0 -105
  1361. build/lib/build/lib/build/lib/nabu/estimation/tests/test_tilt.py +0 -41
  1362. build/lib/build/lib/build/lib/nabu/estimation/tests/test_translation.py +0 -78
  1363. build/lib/build/lib/build/lib/nabu/estimation/tilt.py +0 -214
  1364. build/lib/build/lib/build/lib/nabu/estimation/translation.py +0 -193
  1365. build/lib/build/lib/build/lib/nabu/estimation/utils.py +0 -39
  1366. build/lib/build/lib/build/lib/nabu/io/__init__.py +0 -2
  1367. build/lib/build/lib/build/lib/nabu/io/cast_volume.py +0 -371
  1368. build/lib/build/lib/build/lib/nabu/io/detector_distortion.py +0 -305
  1369. build/lib/build/lib/build/lib/nabu/io/reader.py +0 -628
  1370. build/lib/build/lib/build/lib/nabu/io/reader_helical.py +0 -114
  1371. build/lib/build/lib/build/lib/nabu/io/tests/__init__.py +0 -0
  1372. build/lib/build/lib/build/lib/nabu/io/tests/test_cast_volume.py +0 -339
  1373. build/lib/build/lib/build/lib/nabu/io/tests/test_detector_distortion.py +0 -178
  1374. build/lib/build/lib/build/lib/nabu/io/tests/test_writers.py +0 -187
  1375. build/lib/build/lib/build/lib/nabu/io/tiffwriter_zmm.py +0 -99
  1376. build/lib/build/lib/build/lib/nabu/io/utils.py +0 -263
  1377. build/lib/build/lib/build/lib/nabu/io/writer.py +0 -892
  1378. build/lib/build/lib/build/lib/nabu/misc/__init__.py +0 -0
  1379. build/lib/build/lib/build/lib/nabu/misc/binning.py +0 -98
  1380. build/lib/build/lib/build/lib/nabu/misc/fftshift.py +0 -6
  1381. build/lib/build/lib/build/lib/nabu/misc/filters.py +0 -24
  1382. build/lib/build/lib/build/lib/nabu/misc/fourier_filters.py +0 -152
  1383. build/lib/build/lib/build/lib/nabu/misc/histogram.py +0 -6
  1384. build/lib/build/lib/build/lib/nabu/misc/histogram_cuda.py +0 -8
  1385. build/lib/build/lib/build/lib/nabu/misc/kernel_base.py +0 -4
  1386. build/lib/build/lib/build/lib/nabu/misc/padding.py +0 -83
  1387. build/lib/build/lib/build/lib/nabu/misc/padding_base.py +0 -6
  1388. build/lib/build/lib/build/lib/nabu/misc/processing_base.py +0 -4
  1389. build/lib/build/lib/build/lib/nabu/misc/rotation.py +0 -6
  1390. build/lib/build/lib/build/lib/nabu/misc/rotation_cuda.py +0 -6
  1391. build/lib/build/lib/build/lib/nabu/misc/tests/__init__.py +0 -1
  1392. build/lib/build/lib/build/lib/nabu/misc/tests/test_binning.py +0 -48
  1393. build/lib/build/lib/build/lib/nabu/misc/tests/test_interpolation.py +0 -70
  1394. build/lib/build/lib/build/lib/nabu/misc/transpose.py +0 -6
  1395. build/lib/build/lib/build/lib/nabu/misc/unsharp.py +0 -4
  1396. build/lib/build/lib/build/lib/nabu/misc/unsharp_cuda.py +0 -6
  1397. build/lib/build/lib/build/lib/nabu/misc/unsharp_opencl.py +0 -8
  1398. build/lib/build/lib/build/lib/nabu/misc/utils.py +0 -117
  1399. build/lib/build/lib/build/lib/nabu/opencl/__init__.py +0 -0
  1400. build/lib/build/lib/build/lib/nabu/opencl/fft.py +0 -6
  1401. build/lib/build/lib/build/lib/nabu/opencl/kernel.py +0 -135
  1402. build/lib/build/lib/build/lib/nabu/opencl/memcpy.py +0 -35
  1403. build/lib/build/lib/build/lib/nabu/opencl/padding.py +0 -6
  1404. build/lib/build/lib/build/lib/nabu/opencl/processing.py +0 -62
  1405. build/lib/build/lib/build/lib/nabu/opencl/tests/__init__.py +0 -0
  1406. build/lib/build/lib/build/lib/nabu/opencl/utils.py +0 -292
  1407. build/lib/build/lib/build/lib/nabu/pipeline/__init__.py +0 -0
  1408. build/lib/build/lib/build/lib/nabu/pipeline/config.py +0 -265
  1409. build/lib/build/lib/build/lib/nabu/pipeline/config_validators.py +0 -589
  1410. build/lib/build/lib/build/lib/nabu/pipeline/datadump.py +0 -164
  1411. build/lib/build/lib/build/lib/nabu/pipeline/dataset_validator.py +0 -211
  1412. build/lib/build/lib/build/lib/nabu/pipeline/detector_distortion_provider.py +0 -20
  1413. build/lib/build/lib/build/lib/nabu/pipeline/estimators.py +0 -1012
  1414. build/lib/build/lib/build/lib/nabu/pipeline/fallback_utils.py +0 -149
  1415. build/lib/build/lib/build/lib/nabu/pipeline/fullfield/__init__.py +0 -0
  1416. build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked.py +0 -849
  1417. build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked_cuda.py +0 -152
  1418. build/lib/build/lib/build/lib/nabu/pipeline/fullfield/computations.py +0 -260
  1419. build/lib/build/lib/build/lib/nabu/pipeline/fullfield/dataset_validator.py +0 -63
  1420. build/lib/build/lib/build/lib/nabu/pipeline/fullfield/nabu_config.py +0 -590
  1421. build/lib/build/lib/build/lib/nabu/pipeline/fullfield/processconfig.py +0 -825
  1422. build/lib/build/lib/build/lib/nabu/pipeline/fullfield/reconstruction.py +0 -851
  1423. build/lib/build/lib/build/lib/nabu/pipeline/helical/__init__.py +0 -0
  1424. build/lib/build/lib/build/lib/nabu/pipeline/helical/dataset_validator.py +0 -19
  1425. build/lib/build/lib/build/lib/nabu/pipeline/helical/fbp.py +0 -147
  1426. build/lib/build/lib/build/lib/nabu/pipeline/helical/filtering.py +0 -246
  1427. build/lib/build/lib/build/lib/nabu/pipeline/helical/gridded_accumulator.py +0 -575
  1428. build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded.py +0 -1670
  1429. build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded_cuda.py +0 -119
  1430. build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_reconstruction.py +0 -598
  1431. build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_utils.py +0 -42
  1432. build/lib/build/lib/build/lib/nabu/pipeline/helical/nabu_config.py +0 -175
  1433. build/lib/build/lib/build/lib/nabu/pipeline/helical/processconfig.py +0 -62
  1434. build/lib/build/lib/build/lib/nabu/pipeline/helical/span_strategy.py +0 -483
  1435. build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/__init__.py +0 -0
  1436. build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_accumulator.py +0 -157
  1437. build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_pipeline_elements_full.py +0 -355
  1438. build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_strategy.py +0 -61
  1439. build/lib/build/lib/build/lib/nabu/pipeline/helical/utils.py +0 -51
  1440. build/lib/build/lib/build/lib/nabu/pipeline/helical/weight_balancer.py +0 -101
  1441. build/lib/build/lib/build/lib/nabu/pipeline/params.py +0 -163
  1442. build/lib/build/lib/build/lib/nabu/pipeline/processconfig.py +0 -210
  1443. build/lib/build/lib/build/lib/nabu/pipeline/tests/test_chunk_reader.py +0 -78
  1444. build/lib/build/lib/build/lib/nabu/pipeline/tests/test_estimators.py +0 -149
  1445. build/lib/build/lib/build/lib/nabu/pipeline/utils.py +0 -116
  1446. build/lib/build/lib/build/lib/nabu/pipeline/writer.py +0 -193
  1447. build/lib/build/lib/build/lib/nabu/pipeline/xrdct/__init__.py +0 -0
  1448. build/lib/build/lib/build/lib/nabu/preproc/__init__.py +0 -7
  1449. build/lib/build/lib/build/lib/nabu/preproc/alignment.py +0 -11
  1450. build/lib/build/lib/build/lib/nabu/preproc/ccd.py +0 -161
  1451. build/lib/build/lib/build/lib/nabu/preproc/ccd_cuda.py +0 -169
  1452. build/lib/build/lib/build/lib/nabu/preproc/ctf.py +0 -361
  1453. build/lib/build/lib/build/lib/nabu/preproc/ctf_cuda.py +0 -142
  1454. build/lib/build/lib/build/lib/nabu/preproc/distortion.py +0 -92
  1455. build/lib/build/lib/build/lib/nabu/preproc/double_flatfield.py +0 -212
  1456. build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_cuda.py +0 -174
  1457. build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_variable_region.py +0 -68
  1458. build/lib/build/lib/build/lib/nabu/preproc/flatfield.py +0 -448
  1459. build/lib/build/lib/build/lib/nabu/preproc/flatfield_cuda.py +0 -144
  1460. build/lib/build/lib/build/lib/nabu/preproc/flatfield_variable_region.py +0 -79
  1461. build/lib/build/lib/build/lib/nabu/preproc/phase.py +0 -425
  1462. build/lib/build/lib/build/lib/nabu/preproc/phase_cuda.py +0 -143
  1463. build/lib/build/lib/build/lib/nabu/preproc/shift.py +0 -95
  1464. build/lib/build/lib/build/lib/nabu/preproc/shift_cuda.py +0 -102
  1465. build/lib/build/lib/build/lib/nabu/preproc/tests/__init__.py +0 -1
  1466. build/lib/build/lib/build/lib/nabu/preproc/tests/test_ccd_corr.py +0 -59
  1467. build/lib/build/lib/build/lib/nabu/preproc/tests/test_ctf.py +0 -250
  1468. build/lib/build/lib/build/lib/nabu/preproc/tests/test_double_flatfield.py +0 -86
  1469. build/lib/build/lib/build/lib/nabu/preproc/tests/test_flatfield.py +0 -626
  1470. build/lib/build/lib/build/lib/nabu/preproc/tests/test_paganin.py +0 -67
  1471. build/lib/build/lib/build/lib/nabu/preproc/tests/test_vshift.py +0 -73
  1472. build/lib/build/lib/build/lib/nabu/processing/__init__.py +0 -0
  1473. build/lib/build/lib/build/lib/nabu/processing/convolution_cuda.py +0 -375
  1474. build/lib/build/lib/build/lib/nabu/processing/fft_base.py +0 -163
  1475. build/lib/build/lib/build/lib/nabu/processing/fft_cuda.py +0 -256
  1476. build/lib/build/lib/build/lib/nabu/processing/fft_opencl.py +0 -54
  1477. build/lib/build/lib/build/lib/nabu/processing/fftshift.py +0 -134
  1478. build/lib/build/lib/build/lib/nabu/processing/histogram.py +0 -286
  1479. build/lib/build/lib/build/lib/nabu/processing/histogram_cuda.py +0 -103
  1480. build/lib/build/lib/build/lib/nabu/processing/kernel_base.py +0 -126
  1481. build/lib/build/lib/build/lib/nabu/processing/medfilt_cuda.py +0 -159
  1482. build/lib/build/lib/build/lib/nabu/processing/muladd.py +0 -29
  1483. build/lib/build/lib/build/lib/nabu/processing/muladd_cuda.py +0 -68
  1484. build/lib/build/lib/build/lib/nabu/processing/padding_base.py +0 -71
  1485. build/lib/build/lib/build/lib/nabu/processing/padding_cuda.py +0 -75
  1486. build/lib/build/lib/build/lib/nabu/processing/padding_opencl.py +0 -77
  1487. build/lib/build/lib/build/lib/nabu/processing/processing_base.py +0 -123
  1488. build/lib/build/lib/build/lib/nabu/processing/roll_opencl.py +0 -64
  1489. build/lib/build/lib/build/lib/nabu/processing/rotation.py +0 -63
  1490. build/lib/build/lib/build/lib/nabu/processing/rotation_cuda.py +0 -66
  1491. build/lib/build/lib/build/lib/nabu/processing/tests/__init__.py +0 -0
  1492. build/lib/build/lib/build/lib/nabu/processing/tests/test_fft.py +0 -268
  1493. build/lib/build/lib/build/lib/nabu/processing/tests/test_fftshift.py +0 -71
  1494. build/lib/build/lib/build/lib/nabu/processing/tests/test_histogram.py +0 -55
  1495. build/lib/build/lib/build/lib/nabu/processing/tests/test_medfilt.py +0 -77
  1496. build/lib/build/lib/build/lib/nabu/processing/tests/test_muladd.py +0 -54
  1497. build/lib/build/lib/build/lib/nabu/processing/tests/test_padding.py +0 -247
  1498. build/lib/build/lib/build/lib/nabu/processing/tests/test_roll.py +0 -63
  1499. build/lib/build/lib/build/lib/nabu/processing/tests/test_rotation.py +0 -83
  1500. build/lib/build/lib/build/lib/nabu/processing/tests/test_transpose.py +0 -72
  1501. build/lib/build/lib/build/lib/nabu/processing/tests/test_unsharp.py +0 -106
  1502. build/lib/build/lib/build/lib/nabu/processing/transpose.py +0 -126
  1503. build/lib/build/lib/build/lib/nabu/processing/unsharp.py +0 -79
  1504. build/lib/build/lib/build/lib/nabu/processing/unsharp_cuda.py +0 -53
  1505. build/lib/build/lib/build/lib/nabu/processing/unsharp_opencl.py +0 -75
  1506. build/lib/build/lib/build/lib/nabu/reconstruction/__init__.py +0 -3
  1507. build/lib/build/lib/build/lib/nabu/reconstruction/cone.py +0 -241
  1508. build/lib/build/lib/build/lib/nabu/reconstruction/fbp.py +0 -124
  1509. build/lib/build/lib/build/lib/nabu/reconstruction/fbp_base.py +0 -391
  1510. build/lib/build/lib/build/lib/nabu/reconstruction/fbp_opencl.py +0 -78
  1511. build/lib/build/lib/build/lib/nabu/reconstruction/filtering.py +0 -220
  1512. build/lib/build/lib/build/lib/nabu/reconstruction/filtering_cuda.py +0 -103
  1513. build/lib/build/lib/build/lib/nabu/reconstruction/filtering_opencl.py +0 -111
  1514. build/lib/build/lib/build/lib/nabu/reconstruction/projection.py +0 -240
  1515. build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor.py +0 -174
  1516. build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor_cuda.py +0 -44
  1517. build/lib/build/lib/build/lib/nabu/reconstruction/rings.py +0 -248
  1518. build/lib/build/lib/build/lib/nabu/reconstruction/rings_cuda.py +0 -322
  1519. build/lib/build/lib/build/lib/nabu/reconstruction/sinogram.py +0 -467
  1520. build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_cuda.py +0 -250
  1521. build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_opencl.py +0 -40
  1522. build/lib/build/lib/build/lib/nabu/reconstruction/tests/__init__.py +0 -1
  1523. build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_cone.py +0 -308
  1524. build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_deringer.py +0 -220
  1525. build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_fbp.py +0 -252
  1526. build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_filtering.py +0 -133
  1527. build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_halftomo.py +0 -100
  1528. build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_projector.py +0 -164
  1529. build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_reconstructor.py +0 -93
  1530. build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_sino_normalization.py +0 -85
  1531. build/lib/build/lib/build/lib/nabu/resources/__init__.py +0 -0
  1532. build/lib/build/lib/build/lib/nabu/resources/cli/__init__.py +0 -0
  1533. build/lib/build/lib/build/lib/nabu/resources/cor.py +0 -5
  1534. build/lib/build/lib/build/lib/nabu/resources/dataset_analyzer.py +0 -469
  1535. build/lib/build/lib/build/lib/nabu/resources/gpu.py +0 -169
  1536. build/lib/build/lib/build/lib/nabu/resources/logger.py +0 -130
  1537. build/lib/build/lib/build/lib/nabu/resources/nxflatfield.py +0 -217
  1538. build/lib/build/lib/build/lib/nabu/resources/templates/__init__.py +0 -0
  1539. build/lib/build/lib/build/lib/nabu/resources/tests/__init__.py +0 -0
  1540. build/lib/build/lib/build/lib/nabu/resources/tests/test_nxflatfield.py +0 -104
  1541. build/lib/build/lib/build/lib/nabu/resources/tests/test_units.py +0 -47
  1542. build/lib/build/lib/build/lib/nabu/resources/utils.py +0 -174
  1543. build/lib/build/lib/build/lib/nabu/stitching/__init__.py +0 -0
  1544. build/lib/build/lib/build/lib/nabu/stitching/alignment.py +0 -184
  1545. build/lib/build/lib/build/lib/nabu/stitching/config.py +0 -1286
  1546. build/lib/build/lib/build/lib/nabu/stitching/definitions.py +0 -6
  1547. build/lib/build/lib/build/lib/nabu/stitching/frame_composition.py +0 -155
  1548. build/lib/build/lib/build/lib/nabu/stitching/overlap.py +0 -373
  1549. build/lib/build/lib/build/lib/nabu/stitching/sample_normalization.py +0 -60
  1550. build/lib/build/lib/build/lib/nabu/stitching/slurm_utils.py +0 -204
  1551. build/lib/build/lib/build/lib/nabu/stitching/tests/__init__.py +0 -0
  1552. build/lib/build/lib/build/lib/nabu/stitching/tests/test_alignment.py +0 -99
  1553. build/lib/build/lib/build/lib/nabu/stitching/tests/test_config.py +0 -226
  1554. build/lib/build/lib/build/lib/nabu/stitching/tests/test_frame_composition.py +0 -180
  1555. build/lib/build/lib/build/lib/nabu/stitching/tests/test_overlap.py +0 -98
  1556. build/lib/build/lib/build/lib/nabu/stitching/tests/test_sample_normalization.py +0 -49
  1557. build/lib/build/lib/build/lib/nabu/stitching/tests/test_slurm_utils.py +0 -146
  1558. build/lib/build/lib/build/lib/nabu/stitching/tests/test_utils.py +0 -21
  1559. build/lib/build/lib/build/lib/nabu/stitching/tests/test_z_stitching.py +0 -1183
  1560. build/lib/build/lib/build/lib/nabu/stitching/utils.py +0 -563
  1561. build/lib/build/lib/build/lib/nabu/stitching/z_stitching.py +0 -2279
  1562. build/lib/build/lib/build/lib/nabu/tests.py +0 -51
  1563. build/lib/build/lib/build/lib/nabu/testutils.py +0 -375
  1564. build/lib/build/lib/build/lib/nabu/thirdparty/__init__.py +0 -0
  1565. build/lib/build/lib/build/lib/nabu/thirdparty/algotom_convert_sino.py +0 -276
  1566. build/lib/build/lib/build/lib/nabu/thirdparty/pore3d_deringer_munch.py +0 -108
  1567. build/lib/build/lib/build/lib/nabu/thirdparty/tomocupy_remove_stripe.py +0 -586
  1568. build/lib/build/lib/build/lib/nabu/thirdparty/tomopy_phase.py +0 -239
  1569. build/lib/build/lib/build/lib/nabu/thirdparty/tomwer_load_flats_darks.py +0 -162
  1570. build/lib/build/lib/build/lib/nabu/utils.py +0 -836
  1571. build/lib/build/lib/doc/conf.py +0 -137
  1572. build/lib/build/lib/doc/create_conf_doc.py +0 -38
  1573. build/lib/build/lib/doc/get_mathjax.py +0 -34
  1574. build/lib/build/lib/nabu/__init__.py +0 -17
  1575. build/lib/build/lib/nabu/app/__init__.py +0 -0
  1576. build/lib/build/lib/nabu/app/bootstrap.py +0 -88
  1577. build/lib/build/lib/nabu/app/bootstrap_stitching.py +0 -69
  1578. build/lib/build/lib/nabu/app/cast_volume.py +0 -272
  1579. build/lib/build/lib/nabu/app/cli_configs.py +0 -626
  1580. build/lib/build/lib/nabu/app/compare_volumes.py +0 -94
  1581. build/lib/build/lib/nabu/app/composite_cor.py +0 -144
  1582. build/lib/build/lib/nabu/app/correct_rot.py +0 -70
  1583. build/lib/build/lib/nabu/app/create_distortion_map_from_poly.py +0 -153
  1584. build/lib/build/lib/nabu/app/diag_to_pix.py +0 -358
  1585. build/lib/build/lib/nabu/app/diag_to_rot.py +0 -449
  1586. build/lib/build/lib/nabu/app/double_flatfield.py +0 -143
  1587. build/lib/build/lib/nabu/app/generate_header.py +0 -261
  1588. build/lib/build/lib/nabu/app/histogram.py +0 -197
  1589. build/lib/build/lib/nabu/app/multicor.py +0 -90
  1590. build/lib/build/lib/nabu/app/nx_z_splitter.py +0 -125
  1591. build/lib/build/lib/nabu/app/parse_reconstruction_log.py +0 -151
  1592. build/lib/build/lib/nabu/app/prepare_weights_double.py +0 -163
  1593. build/lib/build/lib/nabu/app/reconstruct.py +0 -120
  1594. build/lib/build/lib/nabu/app/reconstruct_helical.py +0 -116
  1595. build/lib/build/lib/nabu/app/reduce_dark_flat.py +0 -181
  1596. build/lib/build/lib/nabu/app/rotate.py +0 -162
  1597. build/lib/build/lib/nabu/app/shrink_dataset.py +0 -98
  1598. build/lib/build/lib/nabu/app/stitching.py +0 -85
  1599. build/lib/build/lib/nabu/app/tests/test_reduce_dark_flat.py +0 -78
  1600. build/lib/build/lib/nabu/app/utils.py +0 -33
  1601. build/lib/build/lib/nabu/app/validator.py +0 -110
  1602. build/lib/build/lib/nabu/cuda/__init__.py +0 -0
  1603. build/lib/build/lib/nabu/cuda/convolution.py +0 -8
  1604. build/lib/build/lib/nabu/cuda/fft.py +0 -4
  1605. build/lib/build/lib/nabu/cuda/kernel.py +0 -97
  1606. build/lib/build/lib/nabu/cuda/medfilt.py +0 -6
  1607. build/lib/build/lib/nabu/cuda/padding.py +0 -6
  1608. build/lib/build/lib/nabu/cuda/processing.py +0 -75
  1609. build/lib/build/lib/nabu/cuda/tests/__init__.py +0 -1
  1610. build/lib/build/lib/nabu/cuda/utils.py +0 -331
  1611. build/lib/build/lib/nabu/estimation/__init__.py +0 -12
  1612. build/lib/build/lib/nabu/estimation/alignment.py +0 -578
  1613. build/lib/build/lib/nabu/estimation/cor.py +0 -1621
  1614. build/lib/build/lib/nabu/estimation/cor_sino.py +0 -183
  1615. build/lib/build/lib/nabu/estimation/distortion.py +0 -112
  1616. build/lib/build/lib/nabu/estimation/focus.py +0 -362
  1617. build/lib/build/lib/nabu/estimation/tests/__init__.py +0 -0
  1618. build/lib/build/lib/nabu/estimation/tests/test_alignment.py +0 -70
  1619. build/lib/build/lib/nabu/estimation/tests/test_cor.py +0 -472
  1620. build/lib/build/lib/nabu/estimation/tests/test_focus.py +0 -105
  1621. build/lib/build/lib/nabu/estimation/tests/test_tilt.py +0 -41
  1622. build/lib/build/lib/nabu/estimation/tests/test_translation.py +0 -78
  1623. build/lib/build/lib/nabu/estimation/tilt.py +0 -214
  1624. build/lib/build/lib/nabu/estimation/translation.py +0 -193
  1625. build/lib/build/lib/nabu/estimation/utils.py +0 -39
  1626. build/lib/build/lib/nabu/io/__init__.py +0 -2
  1627. build/lib/build/lib/nabu/io/cast_volume.py +0 -371
  1628. build/lib/build/lib/nabu/io/detector_distortion.py +0 -305
  1629. build/lib/build/lib/nabu/io/reader.py +0 -628
  1630. build/lib/build/lib/nabu/io/reader_helical.py +0 -114
  1631. build/lib/build/lib/nabu/io/tests/__init__.py +0 -0
  1632. build/lib/build/lib/nabu/io/tests/test_cast_volume.py +0 -339
  1633. build/lib/build/lib/nabu/io/tests/test_detector_distortion.py +0 -178
  1634. build/lib/build/lib/nabu/io/tests/test_writers.py +0 -187
  1635. build/lib/build/lib/nabu/io/tiffwriter_zmm.py +0 -99
  1636. build/lib/build/lib/nabu/io/utils.py +0 -263
  1637. build/lib/build/lib/nabu/io/writer.py +0 -892
  1638. build/lib/build/lib/nabu/misc/__init__.py +0 -0
  1639. build/lib/build/lib/nabu/misc/binning.py +0 -98
  1640. build/lib/build/lib/nabu/misc/fftshift.py +0 -6
  1641. build/lib/build/lib/nabu/misc/filters.py +0 -24
  1642. build/lib/build/lib/nabu/misc/fourier_filters.py +0 -152
  1643. build/lib/build/lib/nabu/misc/histogram.py +0 -6
  1644. build/lib/build/lib/nabu/misc/histogram_cuda.py +0 -8
  1645. build/lib/build/lib/nabu/misc/kernel_base.py +0 -4
  1646. build/lib/build/lib/nabu/misc/padding.py +0 -83
  1647. build/lib/build/lib/nabu/misc/padding_base.py +0 -6
  1648. build/lib/build/lib/nabu/misc/processing_base.py +0 -4
  1649. build/lib/build/lib/nabu/misc/rotation.py +0 -6
  1650. build/lib/build/lib/nabu/misc/rotation_cuda.py +0 -6
  1651. build/lib/build/lib/nabu/misc/tests/__init__.py +0 -1
  1652. build/lib/build/lib/nabu/misc/tests/test_binning.py +0 -48
  1653. build/lib/build/lib/nabu/misc/tests/test_interpolation.py +0 -70
  1654. build/lib/build/lib/nabu/misc/transpose.py +0 -6
  1655. build/lib/build/lib/nabu/misc/unsharp.py +0 -4
  1656. build/lib/build/lib/nabu/misc/unsharp_cuda.py +0 -6
  1657. build/lib/build/lib/nabu/misc/unsharp_opencl.py +0 -8
  1658. build/lib/build/lib/nabu/misc/utils.py +0 -117
  1659. build/lib/build/lib/nabu/opencl/__init__.py +0 -0
  1660. build/lib/build/lib/nabu/opencl/fft.py +0 -6
  1661. build/lib/build/lib/nabu/opencl/kernel.py +0 -135
  1662. build/lib/build/lib/nabu/opencl/memcpy.py +0 -35
  1663. build/lib/build/lib/nabu/opencl/padding.py +0 -6
  1664. build/lib/build/lib/nabu/opencl/processing.py +0 -62
  1665. build/lib/build/lib/nabu/opencl/tests/__init__.py +0 -0
  1666. build/lib/build/lib/nabu/opencl/utils.py +0 -292
  1667. build/lib/build/lib/nabu/pipeline/__init__.py +0 -0
  1668. build/lib/build/lib/nabu/pipeline/config.py +0 -265
  1669. build/lib/build/lib/nabu/pipeline/config_validators.py +0 -589
  1670. build/lib/build/lib/nabu/pipeline/datadump.py +0 -164
  1671. build/lib/build/lib/nabu/pipeline/dataset_validator.py +0 -211
  1672. build/lib/build/lib/nabu/pipeline/detector_distortion_provider.py +0 -20
  1673. build/lib/build/lib/nabu/pipeline/estimators.py +0 -1012
  1674. build/lib/build/lib/nabu/pipeline/fallback_utils.py +0 -149
  1675. build/lib/build/lib/nabu/pipeline/fullfield/__init__.py +0 -0
  1676. build/lib/build/lib/nabu/pipeline/fullfield/chunked.py +0 -849
  1677. build/lib/build/lib/nabu/pipeline/fullfield/chunked_cuda.py +0 -152
  1678. build/lib/build/lib/nabu/pipeline/fullfield/computations.py +0 -260
  1679. build/lib/build/lib/nabu/pipeline/fullfield/dataset_validator.py +0 -63
  1680. build/lib/build/lib/nabu/pipeline/fullfield/nabu_config.py +0 -590
  1681. build/lib/build/lib/nabu/pipeline/fullfield/processconfig.py +0 -825
  1682. build/lib/build/lib/nabu/pipeline/fullfield/reconstruction.py +0 -851
  1683. build/lib/build/lib/nabu/pipeline/helical/__init__.py +0 -0
  1684. build/lib/build/lib/nabu/pipeline/helical/dataset_validator.py +0 -19
  1685. build/lib/build/lib/nabu/pipeline/helical/fbp.py +0 -147
  1686. build/lib/build/lib/nabu/pipeline/helical/filtering.py +0 -246
  1687. build/lib/build/lib/nabu/pipeline/helical/gridded_accumulator.py +0 -575
  1688. build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded.py +0 -1670
  1689. build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded_cuda.py +0 -119
  1690. build/lib/build/lib/nabu/pipeline/helical/helical_reconstruction.py +0 -598
  1691. build/lib/build/lib/nabu/pipeline/helical/helical_utils.py +0 -42
  1692. build/lib/build/lib/nabu/pipeline/helical/nabu_config.py +0 -175
  1693. build/lib/build/lib/nabu/pipeline/helical/processconfig.py +0 -62
  1694. build/lib/build/lib/nabu/pipeline/helical/span_strategy.py +0 -483
  1695. build/lib/build/lib/nabu/pipeline/helical/tests/__init__.py +0 -0
  1696. build/lib/build/lib/nabu/pipeline/helical/tests/test_accumulator.py +0 -157
  1697. build/lib/build/lib/nabu/pipeline/helical/tests/test_pipeline_elements_full.py +0 -355
  1698. build/lib/build/lib/nabu/pipeline/helical/tests/test_strategy.py +0 -61
  1699. build/lib/build/lib/nabu/pipeline/helical/utils.py +0 -51
  1700. build/lib/build/lib/nabu/pipeline/helical/weight_balancer.py +0 -101
  1701. build/lib/build/lib/nabu/pipeline/params.py +0 -163
  1702. build/lib/build/lib/nabu/pipeline/processconfig.py +0 -210
  1703. build/lib/build/lib/nabu/pipeline/tests/test_chunk_reader.py +0 -78
  1704. build/lib/build/lib/nabu/pipeline/tests/test_estimators.py +0 -149
  1705. build/lib/build/lib/nabu/pipeline/utils.py +0 -116
  1706. build/lib/build/lib/nabu/pipeline/writer.py +0 -193
  1707. build/lib/build/lib/nabu/pipeline/xrdct/__init__.py +0 -0
  1708. build/lib/build/lib/nabu/preproc/__init__.py +0 -7
  1709. build/lib/build/lib/nabu/preproc/alignment.py +0 -11
  1710. build/lib/build/lib/nabu/preproc/ccd.py +0 -161
  1711. build/lib/build/lib/nabu/preproc/ccd_cuda.py +0 -169
  1712. build/lib/build/lib/nabu/preproc/ctf.py +0 -361
  1713. build/lib/build/lib/nabu/preproc/ctf_cuda.py +0 -142
  1714. build/lib/build/lib/nabu/preproc/distortion.py +0 -92
  1715. build/lib/build/lib/nabu/preproc/double_flatfield.py +0 -212
  1716. build/lib/build/lib/nabu/preproc/double_flatfield_cuda.py +0 -174
  1717. build/lib/build/lib/nabu/preproc/double_flatfield_variable_region.py +0 -68
  1718. build/lib/build/lib/nabu/preproc/flatfield.py +0 -448
  1719. build/lib/build/lib/nabu/preproc/flatfield_cuda.py +0 -144
  1720. build/lib/build/lib/nabu/preproc/flatfield_variable_region.py +0 -79
  1721. build/lib/build/lib/nabu/preproc/phase.py +0 -425
  1722. build/lib/build/lib/nabu/preproc/phase_cuda.py +0 -143
  1723. build/lib/build/lib/nabu/preproc/shift.py +0 -95
  1724. build/lib/build/lib/nabu/preproc/shift_cuda.py +0 -102
  1725. build/lib/build/lib/nabu/preproc/tests/__init__.py +0 -1
  1726. build/lib/build/lib/nabu/preproc/tests/test_ccd_corr.py +0 -59
  1727. build/lib/build/lib/nabu/preproc/tests/test_ctf.py +0 -250
  1728. build/lib/build/lib/nabu/preproc/tests/test_double_flatfield.py +0 -86
  1729. build/lib/build/lib/nabu/preproc/tests/test_flatfield.py +0 -626
  1730. build/lib/build/lib/nabu/preproc/tests/test_paganin.py +0 -67
  1731. build/lib/build/lib/nabu/preproc/tests/test_vshift.py +0 -73
  1732. build/lib/build/lib/nabu/processing/__init__.py +0 -0
  1733. build/lib/build/lib/nabu/processing/convolution_cuda.py +0 -375
  1734. build/lib/build/lib/nabu/processing/fft_base.py +0 -163
  1735. build/lib/build/lib/nabu/processing/fft_cuda.py +0 -256
  1736. build/lib/build/lib/nabu/processing/fft_opencl.py +0 -54
  1737. build/lib/build/lib/nabu/processing/fftshift.py +0 -134
  1738. build/lib/build/lib/nabu/processing/histogram.py +0 -286
  1739. build/lib/build/lib/nabu/processing/histogram_cuda.py +0 -103
  1740. build/lib/build/lib/nabu/processing/kernel_base.py +0 -126
  1741. build/lib/build/lib/nabu/processing/medfilt_cuda.py +0 -159
  1742. build/lib/build/lib/nabu/processing/muladd.py +0 -29
  1743. build/lib/build/lib/nabu/processing/muladd_cuda.py +0 -68
  1744. build/lib/build/lib/nabu/processing/padding_base.py +0 -71
  1745. build/lib/build/lib/nabu/processing/padding_cuda.py +0 -75
  1746. build/lib/build/lib/nabu/processing/padding_opencl.py +0 -77
  1747. build/lib/build/lib/nabu/processing/processing_base.py +0 -123
  1748. build/lib/build/lib/nabu/processing/roll_opencl.py +0 -64
  1749. build/lib/build/lib/nabu/processing/rotation.py +0 -63
  1750. build/lib/build/lib/nabu/processing/rotation_cuda.py +0 -66
  1751. build/lib/build/lib/nabu/processing/tests/__init__.py +0 -0
  1752. build/lib/build/lib/nabu/processing/tests/test_fft.py +0 -268
  1753. build/lib/build/lib/nabu/processing/tests/test_fftshift.py +0 -71
  1754. build/lib/build/lib/nabu/processing/tests/test_histogram.py +0 -55
  1755. build/lib/build/lib/nabu/processing/tests/test_medfilt.py +0 -77
  1756. build/lib/build/lib/nabu/processing/tests/test_muladd.py +0 -54
  1757. build/lib/build/lib/nabu/processing/tests/test_padding.py +0 -247
  1758. build/lib/build/lib/nabu/processing/tests/test_roll.py +0 -63
  1759. build/lib/build/lib/nabu/processing/tests/test_rotation.py +0 -83
  1760. build/lib/build/lib/nabu/processing/tests/test_transpose.py +0 -72
  1761. build/lib/build/lib/nabu/processing/tests/test_unsharp.py +0 -106
  1762. build/lib/build/lib/nabu/processing/transpose.py +0 -126
  1763. build/lib/build/lib/nabu/processing/unsharp.py +0 -79
  1764. build/lib/build/lib/nabu/processing/unsharp_cuda.py +0 -53
  1765. build/lib/build/lib/nabu/processing/unsharp_opencl.py +0 -75
  1766. build/lib/build/lib/nabu/reconstruction/__init__.py +0 -3
  1767. build/lib/build/lib/nabu/reconstruction/cone.py +0 -241
  1768. build/lib/build/lib/nabu/reconstruction/fbp.py +0 -124
  1769. build/lib/build/lib/nabu/reconstruction/fbp_base.py +0 -391
  1770. build/lib/build/lib/nabu/reconstruction/fbp_opencl.py +0 -78
  1771. build/lib/build/lib/nabu/reconstruction/filtering.py +0 -220
  1772. build/lib/build/lib/nabu/reconstruction/filtering_cuda.py +0 -103
  1773. build/lib/build/lib/nabu/reconstruction/filtering_opencl.py +0 -111
  1774. build/lib/build/lib/nabu/reconstruction/projection.py +0 -240
  1775. build/lib/build/lib/nabu/reconstruction/reconstructor.py +0 -174
  1776. build/lib/build/lib/nabu/reconstruction/reconstructor_cuda.py +0 -44
  1777. build/lib/build/lib/nabu/reconstruction/rings.py +0 -248
  1778. build/lib/build/lib/nabu/reconstruction/rings_cuda.py +0 -322
  1779. build/lib/build/lib/nabu/reconstruction/sinogram.py +0 -467
  1780. build/lib/build/lib/nabu/reconstruction/sinogram_cuda.py +0 -250
  1781. build/lib/build/lib/nabu/reconstruction/sinogram_opencl.py +0 -40
  1782. build/lib/build/lib/nabu/reconstruction/tests/__init__.py +0 -1
  1783. build/lib/build/lib/nabu/reconstruction/tests/test_cone.py +0 -308
  1784. build/lib/build/lib/nabu/reconstruction/tests/test_deringer.py +0 -220
  1785. build/lib/build/lib/nabu/reconstruction/tests/test_fbp.py +0 -252
  1786. build/lib/build/lib/nabu/reconstruction/tests/test_filtering.py +0 -133
  1787. build/lib/build/lib/nabu/reconstruction/tests/test_halftomo.py +0 -100
  1788. build/lib/build/lib/nabu/reconstruction/tests/test_projector.py +0 -164
  1789. build/lib/build/lib/nabu/reconstruction/tests/test_reconstructor.py +0 -93
  1790. build/lib/build/lib/nabu/reconstruction/tests/test_sino_normalization.py +0 -85
  1791. build/lib/build/lib/nabu/resources/__init__.py +0 -0
  1792. build/lib/build/lib/nabu/resources/cli/__init__.py +0 -0
  1793. build/lib/build/lib/nabu/resources/cor.py +0 -5
  1794. build/lib/build/lib/nabu/resources/dataset_analyzer.py +0 -469
  1795. build/lib/build/lib/nabu/resources/gpu.py +0 -169
  1796. build/lib/build/lib/nabu/resources/logger.py +0 -130
  1797. build/lib/build/lib/nabu/resources/nxflatfield.py +0 -217
  1798. build/lib/build/lib/nabu/resources/templates/__init__.py +0 -0
  1799. build/lib/build/lib/nabu/resources/tests/__init__.py +0 -0
  1800. build/lib/build/lib/nabu/resources/tests/test_nxflatfield.py +0 -104
  1801. build/lib/build/lib/nabu/resources/tests/test_units.py +0 -47
  1802. build/lib/build/lib/nabu/resources/utils.py +0 -174
  1803. build/lib/build/lib/nabu/stitching/__init__.py +0 -0
  1804. build/lib/build/lib/nabu/stitching/alignment.py +0 -184
  1805. build/lib/build/lib/nabu/stitching/config.py +0 -1286
  1806. build/lib/build/lib/nabu/stitching/definitions.py +0 -6
  1807. build/lib/build/lib/nabu/stitching/frame_composition.py +0 -155
  1808. build/lib/build/lib/nabu/stitching/overlap.py +0 -373
  1809. build/lib/build/lib/nabu/stitching/sample_normalization.py +0 -60
  1810. build/lib/build/lib/nabu/stitching/slurm_utils.py +0 -204
  1811. build/lib/build/lib/nabu/stitching/tests/__init__.py +0 -0
  1812. build/lib/build/lib/nabu/stitching/tests/test_alignment.py +0 -99
  1813. build/lib/build/lib/nabu/stitching/tests/test_config.py +0 -226
  1814. build/lib/build/lib/nabu/stitching/tests/test_frame_composition.py +0 -180
  1815. build/lib/build/lib/nabu/stitching/tests/test_overlap.py +0 -98
  1816. build/lib/build/lib/nabu/stitching/tests/test_sample_normalization.py +0 -49
  1817. build/lib/build/lib/nabu/stitching/tests/test_slurm_utils.py +0 -146
  1818. build/lib/build/lib/nabu/stitching/tests/test_utils.py +0 -21
  1819. build/lib/build/lib/nabu/stitching/tests/test_z_stitching.py +0 -1183
  1820. build/lib/build/lib/nabu/stitching/utils.py +0 -563
  1821. build/lib/build/lib/nabu/stitching/z_stitching.py +0 -2279
  1822. build/lib/build/lib/nabu/tests.py +0 -51
  1823. build/lib/build/lib/nabu/testutils.py +0 -375
  1824. build/lib/build/lib/nabu/thirdparty/__init__.py +0 -0
  1825. build/lib/build/lib/nabu/thirdparty/algotom_convert_sino.py +0 -276
  1826. build/lib/build/lib/nabu/thirdparty/pore3d_deringer_munch.py +0 -108
  1827. build/lib/build/lib/nabu/thirdparty/tomocupy_remove_stripe.py +0 -586
  1828. build/lib/build/lib/nabu/thirdparty/tomopy_phase.py +0 -239
  1829. build/lib/build/lib/nabu/thirdparty/tomwer_load_flats_darks.py +0 -162
  1830. build/lib/build/lib/nabu/utils.py +0 -836
  1831. build/lib/doc/conf.py +0 -137
  1832. build/lib/doc/create_conf_doc.py +0 -38
  1833. build/lib/doc/get_mathjax.py +0 -34
  1834. build/lib/nabu/__init__.py +0 -17
  1835. build/lib/nabu/app/__init__.py +0 -0
  1836. build/lib/nabu/app/bootstrap.py +0 -88
  1837. build/lib/nabu/app/bootstrap_stitching.py +0 -69
  1838. build/lib/nabu/app/cast_volume.py +0 -272
  1839. build/lib/nabu/app/cli_configs.py +0 -626
  1840. build/lib/nabu/app/compare_volumes.py +0 -94
  1841. build/lib/nabu/app/composite_cor.py +0 -144
  1842. build/lib/nabu/app/correct_rot.py +0 -70
  1843. build/lib/nabu/app/create_distortion_map_from_poly.py +0 -153
  1844. build/lib/nabu/app/diag_to_pix.py +0 -358
  1845. build/lib/nabu/app/diag_to_rot.py +0 -449
  1846. build/lib/nabu/app/double_flatfield.py +0 -143
  1847. build/lib/nabu/app/generate_header.py +0 -261
  1848. build/lib/nabu/app/histogram.py +0 -197
  1849. build/lib/nabu/app/multicor.py +0 -90
  1850. build/lib/nabu/app/nx_z_splitter.py +0 -125
  1851. build/lib/nabu/app/parse_reconstruction_log.py +0 -151
  1852. build/lib/nabu/app/prepare_weights_double.py +0 -163
  1853. build/lib/nabu/app/reconstruct.py +0 -120
  1854. build/lib/nabu/app/reconstruct_helical.py +0 -116
  1855. build/lib/nabu/app/reduce_dark_flat.py +0 -181
  1856. build/lib/nabu/app/rotate.py +0 -162
  1857. build/lib/nabu/app/shrink_dataset.py +0 -98
  1858. build/lib/nabu/app/stitching.py +0 -85
  1859. build/lib/nabu/app/tests/test_reduce_dark_flat.py +0 -78
  1860. build/lib/nabu/app/utils.py +0 -33
  1861. build/lib/nabu/app/validator.py +0 -110
  1862. build/lib/nabu/cuda/__init__.py +0 -0
  1863. build/lib/nabu/cuda/convolution.py +0 -8
  1864. build/lib/nabu/cuda/fft.py +0 -4
  1865. build/lib/nabu/cuda/kernel.py +0 -97
  1866. build/lib/nabu/cuda/medfilt.py +0 -6
  1867. build/lib/nabu/cuda/padding.py +0 -6
  1868. build/lib/nabu/cuda/processing.py +0 -75
  1869. build/lib/nabu/cuda/tests/__init__.py +0 -1
  1870. build/lib/nabu/cuda/utils.py +0 -331
  1871. build/lib/nabu/estimation/__init__.py +0 -12
  1872. build/lib/nabu/estimation/alignment.py +0 -578
  1873. build/lib/nabu/estimation/cor.py +0 -1621
  1874. build/lib/nabu/estimation/cor_sino.py +0 -183
  1875. build/lib/nabu/estimation/distortion.py +0 -112
  1876. build/lib/nabu/estimation/focus.py +0 -362
  1877. build/lib/nabu/estimation/tests/__init__.py +0 -0
  1878. build/lib/nabu/estimation/tests/test_alignment.py +0 -70
  1879. build/lib/nabu/estimation/tests/test_cor.py +0 -472
  1880. build/lib/nabu/estimation/tests/test_focus.py +0 -105
  1881. build/lib/nabu/estimation/tests/test_tilt.py +0 -41
  1882. build/lib/nabu/estimation/tests/test_translation.py +0 -78
  1883. build/lib/nabu/estimation/tilt.py +0 -214
  1884. build/lib/nabu/estimation/translation.py +0 -193
  1885. build/lib/nabu/estimation/utils.py +0 -39
  1886. build/lib/nabu/io/__init__.py +0 -2
  1887. build/lib/nabu/io/cast_volume.py +0 -371
  1888. build/lib/nabu/io/detector_distortion.py +0 -305
  1889. build/lib/nabu/io/reader.py +0 -628
  1890. build/lib/nabu/io/reader_helical.py +0 -114
  1891. build/lib/nabu/io/tests/__init__.py +0 -0
  1892. build/lib/nabu/io/tests/test_cast_volume.py +0 -339
  1893. build/lib/nabu/io/tests/test_detector_distortion.py +0 -178
  1894. build/lib/nabu/io/tests/test_writers.py +0 -187
  1895. build/lib/nabu/io/tiffwriter_zmm.py +0 -99
  1896. build/lib/nabu/io/utils.py +0 -263
  1897. build/lib/nabu/io/writer.py +0 -892
  1898. build/lib/nabu/misc/__init__.py +0 -0
  1899. build/lib/nabu/misc/binning.py +0 -98
  1900. build/lib/nabu/misc/fftshift.py +0 -6
  1901. build/lib/nabu/misc/filters.py +0 -24
  1902. build/lib/nabu/misc/fourier_filters.py +0 -152
  1903. build/lib/nabu/misc/histogram.py +0 -6
  1904. build/lib/nabu/misc/histogram_cuda.py +0 -8
  1905. build/lib/nabu/misc/kernel_base.py +0 -4
  1906. build/lib/nabu/misc/padding.py +0 -83
  1907. build/lib/nabu/misc/padding_base.py +0 -6
  1908. build/lib/nabu/misc/processing_base.py +0 -4
  1909. build/lib/nabu/misc/rotation.py +0 -6
  1910. build/lib/nabu/misc/rotation_cuda.py +0 -6
  1911. build/lib/nabu/misc/tests/__init__.py +0 -1
  1912. build/lib/nabu/misc/tests/test_binning.py +0 -48
  1913. build/lib/nabu/misc/tests/test_interpolation.py +0 -70
  1914. build/lib/nabu/misc/transpose.py +0 -6
  1915. build/lib/nabu/misc/unsharp.py +0 -4
  1916. build/lib/nabu/misc/unsharp_cuda.py +0 -6
  1917. build/lib/nabu/misc/unsharp_opencl.py +0 -8
  1918. build/lib/nabu/misc/utils.py +0 -117
  1919. build/lib/nabu/opencl/__init__.py +0 -0
  1920. build/lib/nabu/opencl/fft.py +0 -6
  1921. build/lib/nabu/opencl/kernel.py +0 -135
  1922. build/lib/nabu/opencl/memcpy.py +0 -35
  1923. build/lib/nabu/opencl/padding.py +0 -6
  1924. build/lib/nabu/opencl/processing.py +0 -62
  1925. build/lib/nabu/opencl/tests/__init__.py +0 -0
  1926. build/lib/nabu/opencl/utils.py +0 -292
  1927. build/lib/nabu/pipeline/__init__.py +0 -0
  1928. build/lib/nabu/pipeline/config.py +0 -265
  1929. build/lib/nabu/pipeline/config_validators.py +0 -589
  1930. build/lib/nabu/pipeline/datadump.py +0 -164
  1931. build/lib/nabu/pipeline/dataset_validator.py +0 -211
  1932. build/lib/nabu/pipeline/detector_distortion_provider.py +0 -20
  1933. build/lib/nabu/pipeline/estimators.py +0 -1012
  1934. build/lib/nabu/pipeline/fallback_utils.py +0 -149
  1935. build/lib/nabu/pipeline/fullfield/__init__.py +0 -0
  1936. build/lib/nabu/pipeline/fullfield/chunked.py +0 -849
  1937. build/lib/nabu/pipeline/fullfield/chunked_cuda.py +0 -152
  1938. build/lib/nabu/pipeline/fullfield/computations.py +0 -260
  1939. build/lib/nabu/pipeline/fullfield/dataset_validator.py +0 -63
  1940. build/lib/nabu/pipeline/fullfield/nabu_config.py +0 -590
  1941. build/lib/nabu/pipeline/fullfield/processconfig.py +0 -825
  1942. build/lib/nabu/pipeline/fullfield/reconstruction.py +0 -851
  1943. build/lib/nabu/pipeline/helical/__init__.py +0 -0
  1944. build/lib/nabu/pipeline/helical/dataset_validator.py +0 -19
  1945. build/lib/nabu/pipeline/helical/fbp.py +0 -147
  1946. build/lib/nabu/pipeline/helical/filtering.py +0 -246
  1947. build/lib/nabu/pipeline/helical/gridded_accumulator.py +0 -575
  1948. build/lib/nabu/pipeline/helical/helical_chunked_regridded.py +0 -1670
  1949. build/lib/nabu/pipeline/helical/helical_chunked_regridded_cuda.py +0 -119
  1950. build/lib/nabu/pipeline/helical/helical_reconstruction.py +0 -598
  1951. build/lib/nabu/pipeline/helical/helical_utils.py +0 -42
  1952. build/lib/nabu/pipeline/helical/nabu_config.py +0 -175
  1953. build/lib/nabu/pipeline/helical/processconfig.py +0 -62
  1954. build/lib/nabu/pipeline/helical/span_strategy.py +0 -483
  1955. build/lib/nabu/pipeline/helical/tests/__init__.py +0 -0
  1956. build/lib/nabu/pipeline/helical/tests/test_accumulator.py +0 -157
  1957. build/lib/nabu/pipeline/helical/tests/test_pipeline_elements_full.py +0 -355
  1958. build/lib/nabu/pipeline/helical/tests/test_strategy.py +0 -61
  1959. build/lib/nabu/pipeline/helical/utils.py +0 -51
  1960. build/lib/nabu/pipeline/helical/weight_balancer.py +0 -101
  1961. build/lib/nabu/pipeline/params.py +0 -163
  1962. build/lib/nabu/pipeline/processconfig.py +0 -210
  1963. build/lib/nabu/pipeline/tests/test_chunk_reader.py +0 -78
  1964. build/lib/nabu/pipeline/tests/test_estimators.py +0 -149
  1965. build/lib/nabu/pipeline/utils.py +0 -116
  1966. build/lib/nabu/pipeline/writer.py +0 -193
  1967. build/lib/nabu/pipeline/xrdct/__init__.py +0 -0
  1968. build/lib/nabu/preproc/__init__.py +0 -7
  1969. build/lib/nabu/preproc/alignment.py +0 -11
  1970. build/lib/nabu/preproc/ccd.py +0 -161
  1971. build/lib/nabu/preproc/ccd_cuda.py +0 -169
  1972. build/lib/nabu/preproc/ctf.py +0 -361
  1973. build/lib/nabu/preproc/ctf_cuda.py +0 -142
  1974. build/lib/nabu/preproc/distortion.py +0 -92
  1975. build/lib/nabu/preproc/double_flatfield.py +0 -212
  1976. build/lib/nabu/preproc/double_flatfield_cuda.py +0 -174
  1977. build/lib/nabu/preproc/double_flatfield_variable_region.py +0 -68
  1978. build/lib/nabu/preproc/flatfield.py +0 -448
  1979. build/lib/nabu/preproc/flatfield_cuda.py +0 -144
  1980. build/lib/nabu/preproc/flatfield_variable_region.py +0 -79
  1981. build/lib/nabu/preproc/phase.py +0 -425
  1982. build/lib/nabu/preproc/phase_cuda.py +0 -143
  1983. build/lib/nabu/preproc/shift.py +0 -95
  1984. build/lib/nabu/preproc/shift_cuda.py +0 -102
  1985. build/lib/nabu/preproc/tests/__init__.py +0 -1
  1986. build/lib/nabu/preproc/tests/test_ccd_corr.py +0 -59
  1987. build/lib/nabu/preproc/tests/test_ctf.py +0 -250
  1988. build/lib/nabu/preproc/tests/test_double_flatfield.py +0 -86
  1989. build/lib/nabu/preproc/tests/test_flatfield.py +0 -626
  1990. build/lib/nabu/preproc/tests/test_paganin.py +0 -67
  1991. build/lib/nabu/preproc/tests/test_vshift.py +0 -73
  1992. build/lib/nabu/processing/__init__.py +0 -0
  1993. build/lib/nabu/processing/convolution_cuda.py +0 -375
  1994. build/lib/nabu/processing/fft_base.py +0 -163
  1995. build/lib/nabu/processing/fft_cuda.py +0 -256
  1996. build/lib/nabu/processing/fft_opencl.py +0 -54
  1997. build/lib/nabu/processing/fftshift.py +0 -134
  1998. build/lib/nabu/processing/histogram.py +0 -286
  1999. build/lib/nabu/processing/histogram_cuda.py +0 -103
  2000. build/lib/nabu/processing/kernel_base.py +0 -126
  2001. build/lib/nabu/processing/medfilt_cuda.py +0 -159
  2002. build/lib/nabu/processing/muladd.py +0 -29
  2003. build/lib/nabu/processing/muladd_cuda.py +0 -68
  2004. build/lib/nabu/processing/padding_base.py +0 -71
  2005. build/lib/nabu/processing/padding_cuda.py +0 -75
  2006. build/lib/nabu/processing/padding_opencl.py +0 -77
  2007. build/lib/nabu/processing/processing_base.py +0 -123
  2008. build/lib/nabu/processing/roll_opencl.py +0 -64
  2009. build/lib/nabu/processing/rotation.py +0 -63
  2010. build/lib/nabu/processing/rotation_cuda.py +0 -66
  2011. build/lib/nabu/processing/tests/__init__.py +0 -0
  2012. build/lib/nabu/processing/tests/test_fft.py +0 -268
  2013. build/lib/nabu/processing/tests/test_fftshift.py +0 -71
  2014. build/lib/nabu/processing/tests/test_histogram.py +0 -55
  2015. build/lib/nabu/processing/tests/test_medfilt.py +0 -77
  2016. build/lib/nabu/processing/tests/test_muladd.py +0 -54
  2017. build/lib/nabu/processing/tests/test_padding.py +0 -247
  2018. build/lib/nabu/processing/tests/test_roll.py +0 -63
  2019. build/lib/nabu/processing/tests/test_rotation.py +0 -83
  2020. build/lib/nabu/processing/tests/test_transpose.py +0 -72
  2021. build/lib/nabu/processing/tests/test_unsharp.py +0 -106
  2022. build/lib/nabu/processing/transpose.py +0 -126
  2023. build/lib/nabu/processing/unsharp.py +0 -79
  2024. build/lib/nabu/processing/unsharp_cuda.py +0 -53
  2025. build/lib/nabu/processing/unsharp_opencl.py +0 -75
  2026. build/lib/nabu/reconstruction/__init__.py +0 -3
  2027. build/lib/nabu/reconstruction/cone.py +0 -241
  2028. build/lib/nabu/reconstruction/fbp.py +0 -124
  2029. build/lib/nabu/reconstruction/fbp_base.py +0 -391
  2030. build/lib/nabu/reconstruction/fbp_opencl.py +0 -78
  2031. build/lib/nabu/reconstruction/filtering.py +0 -220
  2032. build/lib/nabu/reconstruction/filtering_cuda.py +0 -103
  2033. build/lib/nabu/reconstruction/filtering_opencl.py +0 -111
  2034. build/lib/nabu/reconstruction/projection.py +0 -240
  2035. build/lib/nabu/reconstruction/reconstructor.py +0 -174
  2036. build/lib/nabu/reconstruction/reconstructor_cuda.py +0 -44
  2037. build/lib/nabu/reconstruction/rings.py +0 -248
  2038. build/lib/nabu/reconstruction/rings_cuda.py +0 -322
  2039. build/lib/nabu/reconstruction/sinogram.py +0 -467
  2040. build/lib/nabu/reconstruction/sinogram_cuda.py +0 -250
  2041. build/lib/nabu/reconstruction/sinogram_opencl.py +0 -40
  2042. build/lib/nabu/reconstruction/tests/__init__.py +0 -1
  2043. build/lib/nabu/reconstruction/tests/test_cone.py +0 -308
  2044. build/lib/nabu/reconstruction/tests/test_deringer.py +0 -220
  2045. build/lib/nabu/reconstruction/tests/test_fbp.py +0 -252
  2046. build/lib/nabu/reconstruction/tests/test_filtering.py +0 -133
  2047. build/lib/nabu/reconstruction/tests/test_halftomo.py +0 -100
  2048. build/lib/nabu/reconstruction/tests/test_projector.py +0 -164
  2049. build/lib/nabu/reconstruction/tests/test_reconstructor.py +0 -93
  2050. build/lib/nabu/reconstruction/tests/test_sino_normalization.py +0 -85
  2051. build/lib/nabu/resources/__init__.py +0 -0
  2052. build/lib/nabu/resources/cli/__init__.py +0 -0
  2053. build/lib/nabu/resources/cor.py +0 -5
  2054. build/lib/nabu/resources/dataset_analyzer.py +0 -469
  2055. build/lib/nabu/resources/gpu.py +0 -169
  2056. build/lib/nabu/resources/logger.py +0 -130
  2057. build/lib/nabu/resources/nxflatfield.py +0 -217
  2058. build/lib/nabu/resources/templates/__init__.py +0 -0
  2059. build/lib/nabu/resources/tests/__init__.py +0 -0
  2060. build/lib/nabu/resources/tests/test_nxflatfield.py +0 -104
  2061. build/lib/nabu/resources/tests/test_units.py +0 -47
  2062. build/lib/nabu/resources/utils.py +0 -174
  2063. build/lib/nabu/stitching/__init__.py +0 -0
  2064. build/lib/nabu/stitching/alignment.py +0 -184
  2065. build/lib/nabu/stitching/config.py +0 -1286
  2066. build/lib/nabu/stitching/definitions.py +0 -6
  2067. build/lib/nabu/stitching/frame_composition.py +0 -155
  2068. build/lib/nabu/stitching/overlap.py +0 -373
  2069. build/lib/nabu/stitching/sample_normalization.py +0 -60
  2070. build/lib/nabu/stitching/slurm_utils.py +0 -204
  2071. build/lib/nabu/stitching/tests/__init__.py +0 -0
  2072. build/lib/nabu/stitching/tests/test_alignment.py +0 -99
  2073. build/lib/nabu/stitching/tests/test_config.py +0 -226
  2074. build/lib/nabu/stitching/tests/test_frame_composition.py +0 -180
  2075. build/lib/nabu/stitching/tests/test_overlap.py +0 -98
  2076. build/lib/nabu/stitching/tests/test_sample_normalization.py +0 -49
  2077. build/lib/nabu/stitching/tests/test_slurm_utils.py +0 -146
  2078. build/lib/nabu/stitching/tests/test_utils.py +0 -21
  2079. build/lib/nabu/stitching/tests/test_z_stitching.py +0 -1183
  2080. build/lib/nabu/stitching/utils.py +0 -563
  2081. build/lib/nabu/stitching/z_stitching.py +0 -2279
  2082. build/lib/nabu/tests.py +0 -51
  2083. build/lib/nabu/testutils.py +0 -375
  2084. build/lib/nabu/thirdparty/__init__.py +0 -0
  2085. build/lib/nabu/thirdparty/algotom_convert_sino.py +0 -276
  2086. build/lib/nabu/thirdparty/pore3d_deringer_munch.py +0 -108
  2087. build/lib/nabu/thirdparty/tomocupy_remove_stripe.py +0 -586
  2088. build/lib/nabu/thirdparty/tomopy_phase.py +0 -239
  2089. build/lib/nabu/thirdparty/tomwer_load_flats_darks.py +0 -162
  2090. build/lib/nabu/utils.py +0 -836
  2091. nabu-2024.1.1.dist-info/RECORD +0 -2375
  2092. nabu-2024.1.1.dist-info/top_level.txt +0 -4
  2093. {build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app → nabu/app/tests}/__init__.py +0 -0
  2094. {nabu-2024.1.1.dist-info → nabu-2024.1.2.dist-info}/LICENSE +0 -0
  2095. {nabu-2024.1.1.dist-info → nabu-2024.1.2.dist-info}/entry_points.txt +0 -0
@@ -1,1670 +0,0 @@
1
- # pylint: skip-file
2
-
3
- from os import path
4
- import numpy as np
5
- import math
6
- from silx.image.tomography import get_next_power
7
- from scipy import ndimage as nd
8
- import h5py
9
- import silx.io
10
- import copy
11
- from silx.io.url import DataUrl
12
- from ...resources.logger import LoggerOrPrint
13
- from ...resources.utils import is_hdf5_extension
14
- from ...io.reader_helical import ChunkReaderHelical, get_hdf5_dataset_shape
15
- from ...preproc.flatfield_variable_region import FlatFieldDataVariableRegionUrls as FlatFieldDataHelicalUrls
16
- from ...preproc.distortion import DistortionCorrection
17
- from ...preproc.shift import VerticalShift
18
- from ...preproc.double_flatfield_variable_region import DoubleFlatFieldVariableRegion as DoubleFlatFieldHelical
19
- from ...preproc.phase import PaganinPhaseRetrieval
20
- from ...reconstruction.sinogram import SinoBuilder
21
- from ...processing.unsharp import UnsharpMask
22
- from ...processing.histogram import PartialHistogram, hist_as_2Darray
23
- from ..utils import use_options, pipeline_step
24
-
25
- from ..detector_distortion_provider import DetectorDistortionProvider
26
-
27
- from .utils import (
28
- WriterConfiguratorHelical as WriterConfigurator,
29
- ) # .utils is the same as ..utils but internally we retouch the key associated to "tiffwriter" of Writers to
30
-
31
- # point to our class which can write tiff with names indexed by the z height above the sample stage in millimiters
32
-
33
- from numpy.lib.stride_tricks import sliding_window_view
34
- from ...misc.binning import get_binning_function
35
- from .helical_utils import find_mirror_indexes
36
-
37
-
38
- try:
39
- import nabuxx
40
-
41
- GriddedAccumulator = nabuxx.gridded_accumulator.GriddedAccumulator
42
- CCDFilter = nabuxx.ccd.CCDFilter
43
- Log = nabuxx.ccd.LogFilter
44
- cxx_paganin = nabuxx.paganin
45
- except:
46
- logger_tmp = LoggerOrPrint(None)
47
- logger_tmp.info(
48
- "Nabuxx not available. Loading python implementation for gridded_accumulator, Log, CCDFilter, paganin"
49
- )
50
- from . import gridded_accumulator
51
-
52
- GriddedAccumulator = gridded_accumulator.GriddedAccumulator
53
- from ...preproc.ccd import Log, CCDFilter
54
-
55
- cxx_paganin = None
56
-
57
-
58
- # For now we don't have a plain python/numpy backend for reconstruction
59
- Backprojector = None
60
-
61
-
62
- class HelicalChunkedRegriddedPipeline:
63
- """
64
- Pipeline for "helical" full or half field tomography.
65
- Data is processed by chunks. A chunk consists in K+-1 contiguous lines of all the radios
66
- which are read at variable height following the translations
67
- """
68
-
69
- extra_marge_granularity = 4
70
- """ This offers extra reading space to be able to read the redundant part
71
- which might be sligtly larger and or require extra border for interpolation
72
- """
73
-
74
- FlatFieldClass = FlatFieldDataHelicalUrls
75
- DoubleFlatFieldClass = DoubleFlatFieldHelical
76
-
77
- CCDFilterClass = CCDFilter
78
- MLogClass = Log
79
-
80
- PaganinPhaseRetrievalClass = PaganinPhaseRetrieval
81
- UnsharpMaskClass = UnsharpMask
82
- VerticalShiftClass = VerticalShift
83
- SinoBuilderClass = SinoBuilder
84
-
85
- FBPClass = Backprojector
86
- HBPClass = None
87
- HistogramClass = PartialHistogram
88
- regular_accumulator = None
89
-
90
- def __init__(
91
- self,
92
- process_config,
93
- sub_region,
94
- logger=None,
95
- extra_options=None,
96
- phase_margin=None,
97
- reading_granularity=10,
98
- span_info=None,
99
- diag_zpro_run=0,
100
- ):
101
- """
102
- Initialize a "HelicalChunked" pipeline.
103
-
104
- Parameters
105
- ----------
106
- process_config: `nabu.resources.processcinfig.ProcessConfig`
107
- Process configuration.
108
- sub_region: tuple
109
- Sub-region to process in the volume for this worker, in the format
110
- `(start_x, end_x, start_z, end_z)`.
111
- logger: `nabu.app.logger.Logger`, optional
112
- Logger class
113
- extra_options: dict, optional
114
- Advanced extra options.
115
- phase_margin: tuple, optional
116
- Margin to use when performing phase retrieval, in the form ((up, down), (left, right)).
117
- See also the documentation of PaganinPhaseRetrieval.
118
- If not provided, no margin is applied.
119
- reading_granularity: int
120
- The data angular span which needs to be read for a reconstruction is read step by step,
121
- reading each time a maximum of reading_granularity radios, and doing the preprocessing
122
- till phase retrieval for each of these angular groups
123
-
124
- Notes
125
- ------
126
- Using a `phase_margin` results in a lesser number of reconstructed slices.
127
- More specifically, if `phase_margin = (V, H)`, then there will be `chunk_size - 2*V`
128
- reconstructed slices (if the sub-region is in the middle of the volume)
129
- or `chunk_size - V` reconstructed slices (if the sub-region is on top or bottom
130
- of the volume).
131
- """
132
-
133
- self.span_info = span_info
134
- self.reading_granularity = reading_granularity
135
-
136
- self.logger = LoggerOrPrint(logger)
137
-
138
- self._set_params(process_config, sub_region, extra_options, phase_margin, diag_zpro_run)
139
-
140
- self._init_pipeline()
141
-
142
- def _set_params(self, process_config, sub_region, extra_options, phase_margin, diag_zpro_run):
143
- self.diag_zpro_run = diag_zpro_run
144
- self.process_config = process_config
145
- self.dataset_info = self.process_config.dataset_info
146
-
147
- self.processing_steps = self.process_config.processing_steps.copy()
148
- self.processing_options = self.process_config.processing_options
149
-
150
- sub_region = self._check_subregion(sub_region)
151
-
152
- self.chunk_size = sub_region[-1] - sub_region[-2]
153
- self.radios_buffer = None
154
-
155
- self._set_detector_distortion_correction()
156
-
157
- self.set_subregion(sub_region)
158
-
159
- self._set_phase_margin(phase_margin)
160
- self._set_extra_options(extra_options)
161
- self._callbacks = {}
162
- self._steps_name2component = {}
163
- self._steps_component2name = {}
164
- self._data_dump = {}
165
- self._resume_from_step = None
166
-
167
- @staticmethod
168
- def _check_subregion(sub_region):
169
- if len(sub_region) < 4:
170
- assert len(sub_region) == 2, " at least start_z and end_z are required in subregion"
171
- sub_region = (None, None) + sub_region
172
- if None in sub_region[-2:]:
173
- raise ValueError("Cannot set z_min or z_max to None")
174
- return sub_region
175
-
176
- def _set_extra_options(self, extra_options):
177
- if extra_options is None:
178
- extra_options = {}
179
- advanced_options = {}
180
- advanced_options.update(extra_options)
181
- self.extra_options = advanced_options
182
-
183
- def _set_phase_margin(self, phase_margin):
184
- if phase_margin is None:
185
- phase_margin = ((0, 0), (0, 0))
186
- self._phase_margin_up = phase_margin[0][0]
187
- self._phase_margin_down = phase_margin[0][1]
188
- self._phase_margin_left = phase_margin[1][0]
189
- self._phase_margin_right = phase_margin[1][1]
190
-
191
- def set_subregion(self, sub_region):
192
- """
193
- Set a sub-region to process.
194
-
195
- Parameters
196
- ----------
197
- sub_region: tuple
198
- Sub-region to process in the volume, in the format
199
- `(start_x, end_x, start_z, end_z)` or `(start_z, end_z)`.
200
- """
201
- sub_region = self._check_subregion(sub_region)
202
- dz = sub_region[-1] - sub_region[-2]
203
- if dz != self.chunk_size:
204
- raise ValueError(
205
- "Class was initialized for chunk_size = %d but provided sub_region has chunk_size = %d"
206
- % (self.chunk_size, dz)
207
- )
208
- self.sub_region = sub_region
209
- self.z_min = sub_region[-2]
210
- self.z_max = sub_region[-1]
211
-
212
- def _compute_phase_kernel_margin(self):
213
- """
214
- Get the "margin" to pass to classes like PaganinPhaseRetrieval.
215
- In order to have a good accuracy for filter-based phase retrieval methods,
216
- we need to load extra data around the edges of each image. Otherwise,
217
- a default padding type is applied.
218
- """
219
- if not (self.use_radio_processing_margin):
220
- self._phase_margin = None
221
- return
222
- up_margin = self._phase_margin_up
223
- down_margin = self._phase_margin_down
224
- # Horizontal margin is not implemented
225
- left_margin, right_margin = (0, 0)
226
- self._phase_margin = ((up_margin, down_margin), (left_margin, right_margin))
227
-
228
- @property
229
- def use_radio_processing_margin(self):
230
- return ("phase" in self.processing_steps) or ("unsharp_mask" in self.processing_steps)
231
-
232
- def _get_phase_margin(self):
233
- if not (self.use_radio_processing_margin):
234
- return ((0, 0), (0, 0))
235
- return self._phase_margin
236
-
237
- @property
238
- def phase_margin(self):
239
- """
240
- Return the margin for phase retrieval in the form ((up, down), (left, right))
241
- """
242
- return self._get_phase_margin()
243
-
244
- def _get_process_name(self, kind="reconstruction"):
245
- # In the future, might be something like "reconstruction-<ID>"
246
- if kind == "reconstruction":
247
- return "reconstruction"
248
- elif kind == "histogram":
249
- return "histogram"
250
- return kind
251
-
252
- def _configure_dump(self, step_name):
253
- if step_name not in self.processing_steps:
254
- if step_name == "sinogram" and self.process_config._dump_sinogram:
255
- fname_full = self.process_config._dump_sinogram_file
256
- else:
257
- return
258
- else:
259
- if not self.processing_options[step_name].get("save", False):
260
- return
261
- fname_full = self.processing_options[step_name]["save_steps_file"]
262
-
263
- fname, ext = path.splitext(fname_full)
264
- dirname, file_prefix = path.split(fname)
265
- output_dir = path.join(dirname, file_prefix)
266
- file_prefix += str("_%06d" % self._get_image_start_index())
267
-
268
- self.logger.info("omitting config in data_dump because of too slow nexus writer ")
269
-
270
- self._data_dump[step_name] = WriterConfigurator(
271
- output_dir,
272
- file_prefix,
273
- file_format="hdf5",
274
- overwrite=True,
275
- logger=self.logger,
276
- nx_info={
277
- "process_name": step_name,
278
- "processing_index": 0, # TODO
279
- # "config": {"processing_options": self.processing_options, "nabu_config": self.process_config.nabu_config},
280
- "config": None,
281
- "entry": getattr(self.dataset_info.dataset_scanner, "entry", None),
282
- },
283
- )
284
-
285
- def _configure_data_dumps(self):
286
- self.process_config._configure_save_steps()
287
- for step_name in self.processing_steps:
288
- self._configure_dump(step_name)
289
- # sinogram is a special keyword: not in processing_steps, but guaranteed to be before sinogram generation
290
-
291
- if self.process_config._dump_sinogram:
292
- self._configure_dump("sinogram")
293
-
294
- #
295
- # Callbacks
296
- #
297
-
298
- def register_callback(self, step_name, callback):
299
- """
300
- Register a callback for a pipeline processing step.
301
-
302
- Parameters
303
- ----------
304
- step_name: str
305
- processing step name
306
- callback: callable
307
- A function. It will be executed once the processing step `step_name`
308
- is finished. The function takes only one argument: the class instance.
309
- """
310
- if step_name not in self.processing_steps:
311
- raise ValueError("'%s' is not in processing steps %s" % (step_name, self.processing_steps))
312
- if step_name in self._callbacks:
313
- self._callbacks[step_name].append(callback)
314
- else:
315
- self._callbacks[step_name] = [callback]
316
-
317
- #
318
- # Overwritten in inheriting classes
319
- #
320
-
321
- def _get_shape(self, step_name):
322
- """
323
- Get the shape to provide to the class corresponding to step_name.
324
- """
325
- if step_name == "flatfield":
326
- shape = self.radios_subset.shape
327
- elif step_name == "double_flatfield":
328
- shape = self.radios_subset.shape
329
- elif step_name == "phase":
330
- shape = self.radios_subset.shape[1:]
331
- elif step_name == "ccd_correction":
332
- shape = self.gridded_radios.shape[1:]
333
- elif step_name == "unsharp_mask":
334
- shape = self.radios_subset.shape[1:]
335
- elif step_name == "take_log":
336
- shape = self.radios.shape
337
- elif step_name == "radios_movements":
338
- shape = self.radios.shape
339
- elif step_name == "sino_normalization":
340
- shape = self.radios.shape
341
- elif step_name == "sino_normalization_slim":
342
- shape = self.radios.shape[:1] + (1,) + self.radios.shape[2:]
343
- elif step_name == "one_sino_slim":
344
- shape = self.radios.shape[:1] + self.radios.shape[2:]
345
- elif step_name == "build_sino":
346
- shape = self.radios.shape[:1] + (1,) + self.radios.shape[2:]
347
- elif step_name == "reconstruction":
348
- shape = self.sino_builder.output_shape[1:]
349
- else:
350
- raise ValueError("Unknown processing step %s" % step_name)
351
- self.logger.debug("Data shape for %s is %s" % (step_name, str(shape)))
352
- return shape
353
-
354
- def _allocate_array(self, shape, dtype, name=None):
355
- """this function can be redefined in the derived class which is dedicated to gpu
356
- and will return gpu garrays
357
- """
358
- return _cpu_allocate_array(shape, dtype, name=name)
359
-
360
- def _cpu_allocate_array(self, shape, dtype, name=None):
361
- """For objects used in the pre-gpu part. They will be always on CPU even in the derived class"""
362
- result = np.zeros(shape, dtype=dtype)
363
- return result
364
-
365
- def _allocate_sinobuilder_output(self):
366
- return self._cpu_allocate_array(self.sino_builder.output_shape, "f", name="sinos")
367
-
368
- def _allocate_recs(self, ny, nx):
369
- self.n_slices = self.gridded_radios.shape[1]
370
- if self.use_radio_processing_margin:
371
- self.n_slices -= sum(self.phase_margin[0])
372
- self.recs = self._allocate_array((1, ny, nx), "f", name="recs")
373
- self.recs_stack = self._cpu_allocate_array((self.n_slices, ny, nx), "f", name="recs_stack")
374
-
375
- def _reset_memory(self):
376
- pass
377
-
378
- def _get_read_dump_subregion(self):
379
- read_opts = self.processing_options["read_chunk"]
380
- if read_opts.get("process_file", None) is None:
381
- return None
382
- dump_start_z, dump_end_z = read_opts["dump_start_z"], read_opts["dump_end_z"]
383
- relative_start_z = self.z_min - dump_start_z
384
- relative_end_z = relative_start_z + self.chunk_size
385
- # (n_angles, n_z, n_x)
386
- subregion = (None, None, relative_start_z, relative_end_z, None, None)
387
- return subregion
388
-
389
- def _check_resume_from_step(self):
390
- if self._resume_from_step is None:
391
- return
392
- read_opts = self.processing_options["read_chunk"]
393
- expected_radios_shape = get_hdf5_dataset_shape(
394
- read_opts["process_file"],
395
- read_opts["process_h5_path"],
396
- sub_region=self._get_read_dump_subregion(),
397
- )
398
- # TODO check
399
-
400
- def _init_reader_finalize(self):
401
- """
402
- Method called after _init_reader
403
- """
404
- self._check_resume_from_step()
405
-
406
- self._compute_phase_kernel_margin()
407
-
408
- self._allocate_reduced_gridded_and_subset_radios()
409
-
410
- def _allocate_reduced_gridded_and_subset_radios(self):
411
- shp_h = self.chunk_reader.data.shape[-1]
412
-
413
- sliding_window_size = self.chunk_size
414
- if sliding_window_size % 2 == 0:
415
- sliding_window_size += 1
416
- sliding_window_radius = (sliding_window_size - 1) // 2
417
-
418
- if sliding_window_radius == 0:
419
- n_projs_max = (self.span_info.sunshine_ends - self.span_info.sunshine_starts).max()
420
- else:
421
- padded_starts = self.span_info.sunshine_starts
422
- padded_ends = self.span_info.sunshine_ends
423
-
424
- padded_starts = np.concatenate(
425
- [[padded_starts[0]] * sliding_window_radius, padded_starts, [padded_starts[-1]] * sliding_window_radius]
426
- )
427
- starts = sliding_window_view(padded_starts, sliding_window_size).min(axis=-1)
428
-
429
- padded_ends = np.concatenate(
430
- [[padded_ends[0]] * sliding_window_radius, padded_ends, [padded_ends[-1]] * sliding_window_radius]
431
- )
432
-
433
- ends = sliding_window_view(padded_ends, sliding_window_size).max(axis=-1)
434
-
435
- n_projs_max = (ends - starts).max()
436
-
437
- ((up_margin, down_margin), (left_margin, right_margin)) = self.phase_margin
438
-
439
- (start_x, end_x, start_z, end_z) = self.sub_region
440
-
441
- ## and now the gridded ones
442
-
443
- my_angle_step = abs(np.diff(self.span_info.projection_angles_deg).mean())
444
- self.n_gridded_angles = int(round(360.0 / my_angle_step))
445
-
446
- self.my_angles_rad = np.arange(self.n_gridded_angles) * 2 * np.pi / self.n_gridded_angles
447
-
448
- my_angles_deg = np.rad2deg(self.my_angles_rad)
449
-
450
- self.mirror_angle_relative_indexes = find_mirror_indexes(my_angles_deg)
451
-
452
- if "read_chunk" not in self.processing_steps:
453
- raise ValueError("Cannot proceed without reading data")
454
-
455
- r_shp_v, r_shp_h = self.whole_radio_shape
456
-
457
- (subr_start_x, subr_end_x, subr_start_z, subr_end_z) = self.sub_region
458
-
459
- subradio_shape = subr_end_z - subr_start_z, r_shp_h
460
-
461
- ### these radios are for diagnostic of the translations ( they will be optionally written, for being further used
462
- ## by correlation techniques ). Two radios for the first two pass over the first gridded angles
463
- if self.diag_zpro_run:
464
- # 2 for the redundancy, 2 for +180 mirror
465
- ndiag = 2 * 2 * self.diag_zpro_run
466
- else:
467
- ndiag = 2 * 2
468
-
469
- self.diagnostic_searched_angles_rad_clipped = (
470
- (0.5 + np.arange(ndiag // 2)) * (2 * np.pi / (ndiag // 2))
471
- ).astype("f")
472
-
473
- self.diagnostic_radios = np.zeros((ndiag,) + subradio_shape, np.float32)
474
- self.diagnostic_weights = np.zeros((ndiag,) + subradio_shape, np.float32)
475
- self.diagnostic_proj_angle = np.zeros([ndiag], "f")
476
- self.diagnostic_zpix_transl = np.zeros([ndiag], "f")
477
- self.diagnostic_zmm_transl = np.zeros([ndiag], "f")
478
-
479
- self.diagnostic = {
480
- "radios": self.diagnostic_radios,
481
- "weights": self.diagnostic_weights,
482
- "angles": self.diagnostic_proj_angle,
483
- "zpix_transl": self.diagnostic_zpix_transl,
484
- "zmm_trans": self.diagnostic_zmm_transl,
485
- "pixel_size_mm": self.span_info.pix_size_mm,
486
- "searched_rad": self.diagnostic_searched_angles_rad_clipped,
487
- }
488
- ## -------
489
- if self.diag_zpro_run == 0:
490
- self.gridded_radios = np.zeros((self.n_gridded_angles,) + subradio_shape, np.float32)
491
- self.gridded_cumulated_weights = np.zeros((self.n_gridded_angles,) + subradio_shape, np.float32)
492
- else:
493
- # only diagnostic will be cumulated. No need to keep the full size for diagnostic runs.
494
- # The gridder is initialised passing also the two buffer below,
495
- # and the two first dimensions are used to allocate auxiliaries,
496
- # so we shorten only the last dimension, but this is already a good cut
497
- self.gridded_radios = np.zeros((self.n_gridded_angles,) + (subradio_shape[0], 2), np.float32)
498
- self.gridded_cumulated_weights = np.zeros((self.n_gridded_angles,) + (subradio_shape[0], 2), np.float32)
499
-
500
- self.radios_subset = np.zeros((self.reading_granularity,) + subradio_shape, np.float32)
501
- self.radios_weights_subset = np.zeros((self.reading_granularity,) + subradio_shape, np.float32)
502
-
503
- if not self.diag_zpro_run:
504
- self.radios = np.zeros(
505
- (self.n_gridded_angles,) + ((end_z - down_margin) - (start_z + up_margin), shp_h), np.float32
506
- )
507
- else:
508
- # place holder
509
- self.radios = np.zeros((self.n_gridded_angles,) + (1, 1), np.float32)
510
-
511
- self.radios_weights = np.zeros_like(self.radios)
512
-
513
- self.radios_slim = self._allocate_array(self._get_shape("one_sino_slim"), "f", name="radios_slim")
514
-
515
- def _process_finalize(self):
516
- """
517
- Method called once the pipeline has been executed
518
- """
519
- pass
520
-
521
- def _get_slice_start_index(self):
522
- return self.z_min + self._phase_margin_up
523
-
524
- _get_image_start_index = _get_slice_start_index
525
-
526
- #
527
- # Pipeline initialization
528
- #
529
-
530
- def _reset_diagnostics(self):
531
- self.diagnostic_radios[:] = 0
532
- self.diagnostic_weights[:] = 0
533
- self.diagnostic_zpix_transl[:] = 0
534
- self.diagnostic_zmm_transl[:] = 0
535
- self.diagnostic_proj_angle[:] = np.nan
536
-
537
- def _init_pipeline(self):
538
- self._get_size_of_a_raw_radio()
539
-
540
- self._init_reader()
541
-
542
- self._init_flatfield()
543
-
544
- self._init_double_flatfield()
545
- self._init_weights_field()
546
-
547
- self._init_ccd_corrections()
548
- self._init_phase()
549
- self._init_unsharp()
550
- self._init_mlog()
551
- self._init_sino_normalization()
552
- self._init_sino_builder()
553
- self._prepare_reconstruction()
554
- self._init_reconstruction()
555
- self._init_histogram()
556
- self._init_writer()
557
- self._configure_data_dumps()
558
-
559
- self._configure_regular_accumulator()
560
-
561
- def _set_detector_distortion_correction(self):
562
- if self.process_config.nabu_config["preproc"]["detector_distortion_correction"] is None:
563
- self.detector_corrector = None
564
- else:
565
- self.detector_corrector = DetectorDistortionProvider(
566
- detector_full_shape_vh=self.process_config.dataset_info.radio_dims[::-1],
567
- correction_type=self.process_config.nabu_config["preproc"]["detector_distortion_correction"],
568
- options=self.process_config.nabu_config["preproc"]["detector_distortion_correction_options"],
569
- )
570
-
571
- def _configure_regular_accumulator(self):
572
- ##
573
- # keeping these freshly numpyed objects referenced by self
574
- # ensures that their buffer info, conserved by c++ implementation of GriddedAccumulator
575
- # will always point to existing data, which could otherwise be garbage collected by python
576
- #
577
-
578
- if self.process_config.nabu_config["preproc"]["normalize_srcurrent"]:
579
- self.radios_srcurrent = np.array(self.dataset_info.projections_srcurrent, "f")
580
- self.flats_srcurrent = np.array(self.dataset_info.flats_srcurrent, "f")
581
- else:
582
- self.radios_srcurrent = None
583
- self.flats_srcurrent = None
584
-
585
- self.regular_accumulator = GriddedAccumulator(
586
- gridded_radios=self.gridded_radios,
587
- gridded_weights=self.gridded_cumulated_weights,
588
- diagnostic_radios=self.diagnostic_radios,
589
- diagnostic_weights=self.diagnostic_weights,
590
- diagnostic_angles=self.diagnostic_proj_angle,
591
- diagnostic_zpix_transl=self.diagnostic_zpix_transl,
592
- diagnostic_searched_angles_rad_clipped=self.diagnostic_searched_angles_rad_clipped,
593
- dark=self.flatfield.get_dark(),
594
- flat_indexes=self.flatfield._sorted_flat_indices,
595
- flats=self.flatfield.flats_stack,
596
- weights=self.weights_field.data,
597
- double_flat=self.double_flatfield.data,
598
- diag_zpro_run=self.diag_zpro_run,
599
- radios_srcurrent=self.radios_srcurrent,
600
- flats_srcurrent=self.flats_srcurrent,
601
- )
602
-
603
- return
604
-
605
- def _get_size_of_a_raw_radio(self):
606
- """Once for all we find the shape of a radio.
607
- This information will be used in other parts of the code when allocating
608
- bunch of data holders
609
- """
610
- if "read_chunk" not in self.processing_steps:
611
- raise ValueError("Cannot proceed without reading data")
612
-
613
- options = self.processing_options["read_chunk"]
614
-
615
- here_a_file = next(iter(options["files"].values()))
616
- here_a_radio = silx.io.get_data(here_a_file)
617
-
618
- binning_x, binning_z = self._get_binning()
619
- if (binning_z, binning_x) != (1, 1):
620
- binning_function = get_binning_function((binning_z, binning_x))
621
- here_a_radio = binning_function(here_a_radio)
622
-
623
- self.whole_radio_shape = here_a_radio.shape
624
- return self.whole_radio_shape
625
-
626
- @use_options("read_chunk", "chunk_reader")
627
- def _init_reader(self):
628
- if "read_chunk" not in self.processing_steps:
629
- raise ValueError("Cannot proceed without reading data")
630
- options = self.processing_options["read_chunk"]
631
-
632
- assert options.get("process_file", None) is None, "Resume not yet implemented in helical pipeline"
633
-
634
- # dummy initialisation, it will be _set_subregion'ed and set_data_buffer'ed in the loops
635
- self.chunk_reader = ChunkReaderHelical(
636
- options["files"],
637
- sub_region=None, # setting of subregion will be already done by calls to set_subregion
638
- detector_corrector=self.detector_corrector,
639
- convert_float=True,
640
- binning=options["binning"],
641
- dataset_subsampling=options["dataset_subsampling"],
642
- data_buffer=None,
643
- pre_allocate=True,
644
- )
645
-
646
- self._init_reader_finalize()
647
-
648
- @use_options("flatfield", "flatfield")
649
- def _init_flatfield(self, shape=None):
650
- if shape is None:
651
- shape = self._get_shape("flatfield")
652
- options = self.processing_options["flatfield"]
653
-
654
- distortion_correction = None
655
- if options["do_flat_distortion"]:
656
- self.logger.info("Flats distortion correction will be applied")
657
- estimation_kwargs = {}
658
- estimation_kwargs.update(options["flat_distortion_params"])
659
- estimation_kwargs["logger"] = self.logger
660
- distortion_correction = DistortionCorrection(
661
- estimation_method="fft-correlation", estimation_kwargs=estimation_kwargs, correction_method="interpn"
662
- )
663
-
664
- self.flatfield = self.FlatFieldClass(
665
- shape,
666
- flats=self.dataset_info.flats,
667
- darks=self.dataset_info.darks,
668
- radios_indices=options["projs_indices"],
669
- interpolation="linear",
670
- distortion_correction=distortion_correction,
671
- radios_srcurrent=options["radios_srcurrent"],
672
- flats_srcurrent=options["flats_srcurrent"],
673
- detector_corrector=self.detector_corrector,
674
- ## every flat will be read at a different heigth
675
- ### sub_region=self.sub_region,
676
- binning=options["binning"],
677
- convert_float=True,
678
- )
679
-
680
- def _get_binning(self):
681
- options = self.processing_options["read_chunk"]
682
- binning = options["binning"]
683
- if binning is None:
684
- return 1, 1
685
- else:
686
- return binning
687
-
688
- def _init_double_flatfield(self):
689
- options = self.processing_options["double_flatfield"]
690
-
691
- binning_x, binning_z = self._get_binning()
692
-
693
- result_url = None
694
-
695
- self.double_flatfield = None
696
-
697
- if options["processes_file"] not in (None, ""):
698
- file_path = options["processes_file"]
699
- data_path = (self.dataset_info.hdf5_entry or "entry") + "/double_flatfield/results/data"
700
-
701
- if path.exists(file_path) and (data_path in h5py.File(file_path, "r")):
702
- result_url = DataUrl(file_path=file_path, data_path=data_path)
703
- self.logger.info("Loading double flatfield from %s" % result_url.file_path())
704
-
705
- self.double_flatfield = self.DoubleFlatFieldClass(
706
- self._get_shape("double_flatfield"),
707
- result_url=result_url,
708
- binning_x=binning_x,
709
- binning_z=binning_z,
710
- detector_corrector=self.detector_corrector,
711
- )
712
-
713
- def _init_weights_field(self):
714
- options = self.processing_options["double_flatfield"]
715
- result_url = None
716
-
717
- binning_x, binning_z = self.chunk_reader.get_binning()
718
-
719
- self.weights_field = None
720
-
721
- if options["processes_file"] not in (None, ""):
722
- file_path = options["processes_file"]
723
- data_path = (self.dataset_info.hdf5_entry or "entry") + "/weights_field/results/data"
724
-
725
- if path.exists(file_path) and (data_path in h5py.File(file_path, "r")):
726
- result_url = DataUrl(file_path=file_path, data_path=data_path)
727
- self.logger.info("Loading weights_field from %s" % result_url.file_path())
728
-
729
- self.weights_field = self.DoubleFlatFieldClass(
730
- self._get_shape("double_flatfield"), result_url=result_url, binning_x=binning_x, binning_z=binning_z
731
- )
732
-
733
- def _init_ccd_corrections(self):
734
- if "ccd_correction" not in self.processing_steps:
735
- return
736
-
737
- options = self.processing_options["ccd_correction"]
738
-
739
- median_clip_thresh = options["median_clip_thresh"]
740
-
741
- self.ccd_correction = self.CCDFilterClass(
742
- self._get_shape("ccd_correction"), median_clip_thresh=median_clip_thresh
743
- )
744
-
745
- @use_options("phase", "phase_retrieval")
746
- def _init_phase(self):
747
- options = self.processing_options["phase"]
748
- # If unsharp mask follows phase retrieval, then it should be done
749
- # before cropping to the "inner part".
750
- # Otherwise, crop the data just after phase retrieval.
751
- if "unsharp_mask" in self.processing_steps:
752
- margin = None
753
- else:
754
- margin = self._phase_margin
755
- self.phase_retrieval = self.PaganinPhaseRetrievalClass(
756
- self._get_shape("phase"),
757
- distance=options["distance_m"],
758
- energy=options["energy_kev"],
759
- delta_beta=options["delta_beta"],
760
- pixel_size=options["pixel_size_m"],
761
- padding=options["padding_type"],
762
- margin=margin,
763
- fft_num_threads=True, # TODO tune in advanced params of nabu config file
764
- )
765
- if self.phase_retrieval.use_fftw:
766
- self.logger.debug(
767
- "PaganinPhaseRetrieval using FFTW with %d threads" % self.phase_retrieval.fftw.num_threads
768
- )
769
-
770
- ##@use_options("unsharp_mask", "unsharp_mask")
771
-
772
- def _init_unsharp(self):
773
- if "unsharp_mask" not in self.processing_steps:
774
- self.unsharp_mask = None
775
- self.unsharp_sigma = 0.0
776
- self.unsharp_coeff = 0.0
777
- self.unsharp_method = "log"
778
- else:
779
- options = self.processing_options["unsharp_mask"]
780
- self.unsharp_sigma = options["unsharp_sigma"]
781
- self.unsharp_coeff = options["unsharp_coeff"]
782
- self.unsharp_method = options["unsharp_method"]
783
-
784
- self.unsharp_mask = self.UnsharpMaskClass(
785
- self._get_shape("unsharp_mask"),
786
- options["unsharp_sigma"],
787
- options["unsharp_coeff"],
788
- mode="reflect",
789
- method=options["unsharp_method"],
790
- )
791
-
792
- def _init_mlog(self):
793
- options = self.processing_options["take_log"]
794
-
795
- self.mlog = self.MLogClass(
796
- self._get_shape("take_log"), clip_min=options["log_min_clip"], clip_max=options["log_max_clip"]
797
- )
798
-
799
- @use_options("sino_normalization", "sino_normalization")
800
- def _init_sino_normalization(self):
801
- options = self.processing_options["sino_normalization"]
802
- self.sino_normalization = self.SinoNormalizationClass(
803
- kind=options["method"],
804
- radios_shape=self._get_shape("sino_normalization_slim"),
805
- )
806
-
807
- def _init_sino_builder(self):
808
- options = self.processing_options["reconstruction"] ## build_sino class disappeared disappeared
809
-
810
- self.sino_builder = self.SinoBuilderClass(
811
- radios_shape=self._get_shape("build_sino"),
812
- rot_center=options["rotation_axis_position"],
813
- halftomo=False,
814
- )
815
- self._sinobuilder_copy = False
816
- self._sinobuilder_output = None
817
- self.sinos = None
818
-
819
- # this should be renamed, as it could be confused with _init_reconstruction. What about _get_reconstruction_array ?
820
- @use_options("reconstruction", "reconstruction")
821
- def _prepare_reconstruction(self):
822
- options = self.processing_options["reconstruction"]
823
- x_s, x_e = options["start_x"], options["end_x"]
824
- y_s, y_e = options["start_y"], options["end_y"]
825
-
826
- if not self.diag_zpro_run:
827
- self._rec_roi = (x_s, x_e + 1, y_s, y_e + 1)
828
- self._allocate_recs(y_e - y_s + 1, x_e - x_s + 1)
829
- else:
830
- ## Dummy 1x1 place holder
831
- self._rec_roi = (x_s, x_s + 1, y_s, y_s + 1)
832
- self._allocate_recs(y_s - y_s + 1, x_s - x_s + 1)
833
-
834
- @use_options("reconstruction", "reconstruction")
835
- def _init_reconstruction(self):
836
- options = self.processing_options["reconstruction"]
837
-
838
- if self.sino_builder is None:
839
- raise ValueError("Reconstruction cannot be done without build_sino")
840
-
841
- if self.FBPClass is None:
842
- raise ValueError("No usable FBP module was found")
843
-
844
- rot_center = options["rotation_axis_position"]
845
-
846
- start_y, end_y, start_x, end_x = self._rec_roi
847
-
848
- if self.HBPClass is not None and self.process_config.nabu_config["reconstruction"]["use_hbp"]:
849
- fan_source_distance_meters = self.process_config.nabu_config["reconstruction"]["fan_source_distance_meters"]
850
-
851
- self.reconstruction_hbp = self.HBPClass(
852
- self._get_shape("one_sino_slim"),
853
- slice_shape=(end_y - start_y, end_x - start_x),
854
- angles=self.my_angles_rad,
855
- rot_center=rot_center,
856
- extra_options={"axis_correction": np.zeros(self.radios.shape[0], "f")},
857
- axis_source_meters=fan_source_distance_meters,
858
- voxel_size_microns=options["voxel_size_cm"][0] * 1.0e4,
859
- scale_factor=2.0 / options["voxel_size_cm"][0],
860
- clip_outer_circle=options["clip_outer_circle"],
861
- )
862
-
863
- else:
864
- self.reconstruction_hbp = None
865
-
866
- self.reconstruction = self.FBPClass(
867
- self._get_shape("reconstruction"),
868
- angles=np.zeros(self.radios.shape[0], "f"),
869
- rot_center=rot_center,
870
- filter_name=options["fbp_filter_type"],
871
- slice_roi=self._rec_roi,
872
- # slice_shape = ( end_y-start_y, end_x- start_x ),
873
- scale_factor=2.0 / options["voxel_size_cm"][0],
874
- padding_mode=options["padding_type"],
875
- extra_options={
876
- "scale_factor": 2.0 / options["voxel_size_cm"][0],
877
- "axis_correction": np.zeros(self.radios.shape[0], "f"),
878
- "clip_outer_circle": options["clip_outer_circle"],
879
- }, # "padding_mode": options["padding_type"], },
880
- )
881
-
882
- my_options = self.process_config.nabu_config["reconstruction"]
883
- if my_options["axis_to_the_center"]:
884
- x_s, x_ep1, y_s, y_ep1 = self._rec_roi
885
- off_x = -int(round((x_s + x_ep1 - 1) / 2.0 - rot_center))
886
- off_y = -int(round((y_s + y_ep1 - 1) / 2.0 - rot_center))
887
- self.reconstruction.offsets = {"x": off_x, "y": off_y}
888
-
889
- if options["fbp_filter_type"] is None:
890
- self.reconstruction.fbp = self.reconstruction.backproj
891
-
892
- @use_options("histogram", "histogram")
893
- def _init_histogram(self):
894
- options = self.processing_options["histogram"]
895
- self.histogram = self.HistogramClass(method="fixed_bins_number", num_bins=options["histogram_bins"])
896
- self.histo_stack = []
897
-
898
- @use_options("save", "writer")
899
- def _init_writer(self, chunk_info=None):
900
- options = self.processing_options["save"]
901
- file_prefix = options["file_prefix"]
902
- output_dir = path.join(options["location"], file_prefix)
903
- nx_info = None
904
- self._hdf5_output = is_hdf5_extension(options["file_format"])
905
-
906
- if chunk_info is not None:
907
- d_v, d_h = self.process_config.dataset_info.radio_dims[::-1]
908
- h_rels = self._get_slice_start_index() + np.arange(chunk_info.span_v[1] - chunk_info.span_v[0])
909
- fact_mm = self.process_config.dataset_info.pixel_size * 1.0e-3
910
- heights_mm = (
911
- fact_mm * (-self.span_info.z_pix_per_proj[0] + (d_v - 1) / 2 - h_rels) - self.span_info.z_offset_mm
912
- )
913
- else:
914
- heights_mm = None
915
-
916
- if self._hdf5_output:
917
- fname_start_index = None
918
- file_prefix += str("_%06d" % self._get_slice_start_index())
919
- entry = getattr(self.dataset_info.dataset_scanner, "entry", None)
920
- nx_info = {
921
- "process_name": self._get_process_name(),
922
- "processing_index": 0,
923
- "config": {
924
- "processing_options": self.processing_options,
925
- "nabu_config": self.process_config.nabu_config,
926
- },
927
- "entry": entry,
928
- }
929
- self._histogram_processing_index = nx_info["processing_index"] + 1
930
- elif options["file_format"] in ["tif", "tiff", "edf"]:
931
- fname_start_index = self._get_slice_start_index()
932
- self._histogram_processing_index = 1
933
-
934
- self._writer_configurator = WriterConfigurator(
935
- output_dir,
936
- file_prefix,
937
- file_format=options["file_format"],
938
- overwrite=options["overwrite"],
939
- start_index=fname_start_index,
940
- heights_above_stage_mm=heights_mm,
941
- logger=self.logger,
942
- nx_info=nx_info,
943
- write_histogram=("histogram" in self.processing_steps),
944
- histogram_entry=getattr(self.dataset_info.dataset_scanner, "entry", "entry"),
945
- )
946
- self.writer = self._writer_configurator.writer
947
- self._writer_exec_args = self._writer_configurator._writer_exec_args
948
- self._writer_exec_kwargs = self._writer_configurator._writer_exec_kwargs
949
- self.histogram_writer = self._writer_configurator.get_histogram_writer()
950
-
951
- def _apply_expand_fact(self, t):
952
- if t is not None:
953
- t = t * self.chunk_reader.dataset_subsampling
954
- return t
955
-
956
- def _expand_slice(self, subchunk_slice):
957
- start, stop, step = subchunk_slice.start, subchunk_slice.stop, subchunk_slice.step
958
- if step is None:
959
- step = 1
960
-
961
- start, stop, step = list(map(self._apply_expand_fact, [start, stop, step]))
962
- result_slice = slice(start, stop, step)
963
- return result_slice
964
-
965
- def _read_data_and_apply_flats(self, sub_total_prange_slice, subchunk_slice, chunk_info):
966
- my_integer_shifts_v = chunk_info.integer_shift_v[subchunk_slice]
967
- fract_complement_shifts_v = chunk_info.fract_complement_to_integer_shift_v[subchunk_slice]
968
- x_shifts_list = chunk_info.x_pix_per_proj[subchunk_slice]
969
- (subr_start_x, subr_end_x, subr_start_z, subr_end_z) = self.sub_region
970
- subr_start_z_list = subr_start_z - my_integer_shifts_v
971
- subr_end_z_list = subr_end_z - my_integer_shifts_v + 1
972
-
973
- self._reset_reader_subregion((None, None, subr_start_z_list.min(), subr_end_z_list.max()))
974
-
975
- dtasrc_start_x, dtasrc_end_x, dtasrc_start_z, dtasrc_end_z = self.trimmed_floating_subregion
976
-
977
- if self.diag_zpro_run:
978
- searched_angles = self.diagnostic_searched_angles_rad_clipped
979
-
980
- these_angles = chunk_info.angles_rad[subchunk_slice]
981
- if len(these_angles) > 1:
982
- # these_angles are the projection angles
983
- # if no diagnostic angle falls close to them we skip to the next angular subchunk
984
- # (here slice refers to angular slicing)
985
- # We like hdf5 but we that is not a reason to read them all the time, so we spare time
986
-
987
- a_step = abs(these_angles[1:] - these_angles[:-1]).mean()
988
- distance = abs(np.mod(these_angles, np.pi * 2) - searched_angles[:, None]).min()
989
- distance_l = abs(np.mod(these_angles, np.pi * 2) - searched_angles[:, None] - a_step).min()
990
- distance_h = abs(np.mod(these_angles, np.pi * 2) - searched_angles[:, None] + a_step).min()
991
- distance = np.array([distance, distance_h, distance_l]).min()
992
-
993
- if distance > 2 * a_step:
994
- return
995
-
996
- self.chunk_reader.load_data(overwrite=True, sub_total_prange_slice=sub_total_prange_slice)
997
- if self.chunk_reader.dataset_subsampling > 1:
998
- radios_angular_range_slicing = self._expand_slice(sub_total_prange_slice)
999
- else:
1000
- radios_angular_range_slicing = sub_total_prange_slice
1001
- my_subsampled_indexes = self.chunk_reader._sorted_files_indices[radios_angular_range_slicing]
1002
- data_raw = self.chunk_reader.data[: len(my_subsampled_indexes)]
1003
-
1004
- self.regular_accumulator.extract_preprocess_with_flats(
1005
- subchunk_slice,
1006
- my_subsampled_indexes, # these are indexes pointing within the global domain sequence which is composed of darks flats radios
1007
- chunk_info,
1008
- np.array((subr_start_z, subr_end_z), "i"),
1009
- np.array((dtasrc_start_z, dtasrc_end_z), "i"),
1010
- data_raw,
1011
- radios_angular_range_slicing # my_subsampled_indexes is important in order to compare the
1012
- # radios positions with respect to the flat position, and these position
1013
- # are given as the sequential acquisition number which counts everything ( flats, darks, radios )
1014
- # Insteqd, in order to access array which spans only the radios, we need to have an idea of where we are.
1015
- # this is provided by radios_angular_range_slicing which addresses the radios domain
1016
- )
1017
-
1018
- def binning_expanded(self, region):
1019
- binning_x, binning_z = self.chunk_reader.get_binning()
1020
- binnings = [binning_x] * 2 + [binning_z] * 2
1021
- res = [None if tok is None else tok * fact for tok, fact in zip(region, binnings)]
1022
- return res
1023
-
1024
- def _reset_reader_subregion(self, floating_subregion):
1025
- if self._resume_from_step is None:
1026
- binning_x, binning_z = self.chunk_reader.get_binning()
1027
-
1028
- start_x, end_x, start_z, end_z = floating_subregion
1029
- trimmed_start_z = max(0, start_z)
1030
- trimmed_end_z = min(self.whole_radio_shape[0], end_z)
1031
-
1032
- my_buffer_height = trimmed_end_z - trimmed_start_z
1033
-
1034
- if self.radios_buffer is None or my_buffer_height > self.safe_buffer_height:
1035
- self.safe_buffer_height = end_z - start_z
1036
- assert (
1037
- self.safe_buffer_height >= my_buffer_height
1038
- ), "This should always be true, if not contact the developer"
1039
- self.radios_buffer = None
1040
- self.radios_buffer = np.zeros(
1041
- (self.reading_granularity + self.extra_marge_granularity,)
1042
- + (self.safe_buffer_height, self.whole_radio_shape[1]),
1043
- np.float32,
1044
- )
1045
-
1046
- self.trimmed_floating_subregion = start_x, end_x, trimmed_start_z, trimmed_end_z
1047
-
1048
- self.chunk_reader._set_subregion(self.binning_expanded(self.trimmed_floating_subregion))
1049
- self.chunk_reader._init_reader()
1050
- self.chunk_reader._loaded = False
1051
-
1052
- self.chunk_reader.set_data_buffer(self.radios_buffer[:, :my_buffer_height, :], pre_allocate=False)
1053
-
1054
- else:
1055
- message = "Resume not yet implemented in helical pipeline"
1056
- raise RuntimeError(message)
1057
-
1058
- def _ccd_corrections(self, radios=None):
1059
- if radios is None:
1060
- radios = self.gridded_radios
1061
- if hasattr(self.ccd_correction, "median_clip_correction_multiple_images"):
1062
- self.ccd_correction.median_clip_correction_multiple_images(radios)
1063
- else:
1064
- _tmp_radio = self._cpu_allocate_array(radios.shape[1:], "f", name="tmp_ccdcorr_radio")
1065
- for i in range(radios.shape[0]):
1066
- self.ccd_correction.median_clip_correction(radios[i], output=_tmp_radio)
1067
- radios[i][:] = _tmp_radio[:]
1068
-
1069
- def _retrieve_phase(self):
1070
- if "unsharp_mask" in self.processing_steps:
1071
- for i in range(self.gridded_radios.shape[0]):
1072
- self.gridded_radios[i] = self.phase_retrieval.apply_filter(self.gridded_radios[i])
1073
- else:
1074
- for i in range(self.gridded_radios.shape[0]):
1075
- self.radios[i] = self.phase_retrieval.apply_filter(self.gridded_radios[i])
1076
-
1077
- def _nophase_put_to_radios(self, target, source):
1078
- ((up_margin, down_margin), (left_margin, right_margin)) = self.phase_margin
1079
-
1080
- zslice = slice(up_margin or None, -down_margin or None)
1081
- xslice = slice(left_margin or None, -right_margin or None)
1082
-
1083
- for i in range(target.shape[0]):
1084
- target[i] = source[i][zslice, xslice]
1085
-
1086
- def _apply_unsharp():
1087
- ((up_margin, down_margin), (left_margin, right_margin)) = self._phase_margin
1088
-
1089
- zslice = slice(up_margin or None, -down_margin or None)
1090
- xslice = slice(left_margin or None, -right_margin or None)
1091
-
1092
- for i in range(self.radios.shape[0]):
1093
- self.radios[i] = self.unsharp_mask.unsharp(self.gridded_radios[i])[zslice, xslice]
1094
-
1095
- def _take_log(self):
1096
- self.mlog.take_logarithm(self.radios)
1097
-
1098
- @pipeline_step("sino_normalization", "Normalizing sinograms")
1099
- def _normalize_sinos(self, radios=None):
1100
- if radios is None:
1101
- radios = self.radios
1102
- sinos = radios.transpose((1, 0, 2))
1103
- self.sino_normalization.normalize(sinos)
1104
-
1105
- def _dump_sinogram(self, radios=None):
1106
- if radios is None:
1107
- radios = self.radios
1108
- self._dump_data_to_file("sinogram", data=radios)
1109
-
1110
- @pipeline_step("sino_builder", "Building sinograms")
1111
- def _build_sino(self):
1112
- self.sinos = self.radios_slim
1113
-
1114
- def _filter(self):
1115
- rot_center = self.processing_options["reconstruction"]["rotation_axis_position"]
1116
- self.reconstruction.sino_filter.filter_sino(
1117
- self.radios_slim,
1118
- mirror_indexes=self.mirror_angle_relative_indexes,
1119
- rot_center=rot_center,
1120
- output=self.radios_slim,
1121
- )
1122
-
1123
- def _build_sino(self):
1124
- self.sinos = self.radios_slim
1125
-
1126
- def _reconstruct(self, sinos=None, chunk_info=None, i_slice=0):
1127
- if sinos is None:
1128
- sinos = self.sinos
1129
-
1130
- use_hbp = self.process_config.nabu_config["reconstruction"]["use_hbp"]
1131
-
1132
- if not use_hbp:
1133
- if i_slice == 0:
1134
- self.reconstruction.set_custom_angles_and_axis_corrections(
1135
- self.my_angles_rad, np.zeros_like(self.my_angles_rad)
1136
- )
1137
-
1138
- self.reconstruction.backprojection(sinos, output=self.recs[0])
1139
-
1140
- self.recs[0].get(self.recs_stack[i_slice])
1141
- else:
1142
- if self.reconstruction_hbp is None:
1143
- raise ValueError("You requested the hierchical backprojector but the module could not be imported")
1144
- self.reconstruction_hbp.backprojection(sinos, output=self.recs_stack[i_slice])
1145
-
1146
- def _compute_histogram(self, data=None, i_slice=None, num_slices=None):
1147
- if self.histogram is None:
1148
- return
1149
-
1150
- if data is None:
1151
- data = self.recs
1152
-
1153
- my_histo = self.histogram.compute_histogram(data.ravel())
1154
- self.histo_stack.append(my_histo)
1155
-
1156
- if i_slice == num_slices - 1:
1157
- self.recs_histogram = self.histogram.merge_histograms(self.histo_stack)
1158
- self.histo_stack.clear()
1159
-
1160
- def _write_data(self, data=None):
1161
- if data is None:
1162
- data = self.recs_stack
1163
- my_kw_args = copy.copy(self._writer_exec_kwargs)
1164
- if "config" in my_kw_args:
1165
- self.logger.info(
1166
- "omitting config in writer because of too slow nexus writer. Just writing the diagnostics, if any "
1167
- )
1168
-
1169
- # diagnostic are saved here, with the Nabu mechanism for config
1170
- self.diagnostic_zpix_transl[:] = np.interp(
1171
- self.diagnostic_proj_angle,
1172
- np.deg2rad(self.span_info.projection_angles_deg_internally),
1173
- self.span_info.z_pix_per_proj,
1174
- )
1175
- self.diagnostic_zmm_transl[:] = self.diagnostic_zpix_transl * self.span_info.pix_size_mm
1176
-
1177
- my_kw_args["config"] = self.diagnostic
1178
-
1179
- self.writer.write(data, *self._writer_exec_args, **my_kw_args)
1180
- self.logger.info("Wrote %s" % self.writer.get_filename())
1181
- self._write_histogram()
1182
-
1183
- def _write_histogram(self):
1184
- if "histogram" not in self.processing_steps:
1185
- return
1186
- self.logger.info("Saving histogram")
1187
- self.histogram_writer.write(
1188
- hist_as_2Darray(self.recs_histogram),
1189
- self._get_process_name(kind="histogram"),
1190
- processing_index=self._histogram_processing_index,
1191
- config={
1192
- "file": path.basename(self.writer.get_filename()),
1193
- "bins": self.processing_options["histogram"]["histogram_bins"],
1194
- },
1195
- )
1196
-
1197
- def _dump_data_to_file(self, step_name, data=None):
1198
- if step_name not in self._data_dump:
1199
- return
1200
- self.logger.info(f"DUMP step_name={step_name}")
1201
- if data is None:
1202
- data = self.radios
1203
- writer = self._data_dump[step_name]
1204
- self.logger.info("Dumping data to %s" % writer.fname)
1205
- writer.write_data(data)
1206
-
1207
- def balance_weights(self):
1208
- options = self.processing_options["reconstruction"]
1209
-
1210
- rot_center = options["rotation_axis_position"]
1211
-
1212
- self.radios_weights[:] = rebalance(self.radios_weights, self.my_angles_rad, rot_center)
1213
-
1214
- # When standard scans are incomplete, due to motors errors, some angular range
1215
- # is missing short of 360 degrees.
1216
- # The weight accounting correctly deal with it, but still the padding
1217
- # procedure with theta+180 data may fall on empty data
1218
- # and this may cause problems, coming from the ramp filter,
1219
- # in half tomo.
1220
- # To correct this we complete with what we have at hand from the nearest
1221
- # non empty data
1222
- #
1223
- to_be_filled = []
1224
- for i in range(len(self.radios_weights) - 1, 0, -1):
1225
- if self.radios_weights[i].sum():
1226
- break
1227
- to_be_filled.append(i)
1228
- for i in to_be_filled:
1229
- self.radios[i] = self.radios[to_be_filled[-1] - 1]
1230
-
1231
- def _post_primary_data_reduction(self, i_slice):
1232
- """This will be used in the derived class to transfer data to gpu"""
1233
- self.radios_slim[:] = self.radios[:, i_slice, :]
1234
-
1235
- def process_chunk(self, sub_region=None):
1236
- self._private_process_chunk(sub_region=sub_region)
1237
- self._process_finalize()
1238
-
1239
- def _private_process_chunk(self, sub_region=None):
1240
- assert sub_region is not None, "sub_region argument is mandatory in helical pipeline"
1241
-
1242
- # Every chunk has its diagnostic, that is good to follow the trends in helical scans
1243
- # or zstages
1244
- self._reset_diagnostics()
1245
-
1246
- self.set_subregion(sub_region)
1247
-
1248
- (subr_start_x, subr_end_x, subr_start_z, subr_end_z) = self.sub_region
1249
-
1250
- span_v = subr_start_z + self._phase_margin_up, subr_end_z - self._phase_margin_down
1251
-
1252
- chunk_info = self.span_info.get_chunk_info(span_v)
1253
-
1254
- self._reset_memory()
1255
- self._init_writer(chunk_info)
1256
-
1257
- self._configure_data_dumps()
1258
- proj_num_start, proj_num_end = chunk_info.angle_index_span
1259
-
1260
- n_granularity = self.reading_granularity
1261
- pnum_start_list = list(np.arange(proj_num_start, proj_num_end, n_granularity))
1262
- pnum_end_list = pnum_start_list[1:] + [proj_num_end]
1263
-
1264
- my_first_pnum = proj_num_start
1265
-
1266
- if self.diag_zpro_run == 0:
1267
- # It may seem anodine, but setting a huge vector to zero
1268
- # takes time.
1269
- # In diagnostic collection mode we can spare it. On the other hand nothing has would be allocated for the data
1270
- # in such case
1271
- self.gridded_cumulated_weights[:] = 0
1272
- self.gridded_radios[:] = 0
1273
-
1274
- for pnum_start, pnum_end in zip(pnum_start_list, pnum_end_list):
1275
- start_in_chunk = pnum_start - my_first_pnum
1276
- end_in_chunk = pnum_end - my_first_pnum
1277
-
1278
- self._read_data_and_apply_flats(
1279
- slice(pnum_start, pnum_end), slice(start_in_chunk, end_in_chunk), chunk_info
1280
- )
1281
-
1282
- if not self.diag_zpro_run:
1283
- # when we collect diagnostics we dont collect all the data
1284
- # so there would be nothing to process here
1285
-
1286
- self.gridded_radios[:] /= self.gridded_cumulated_weights
1287
-
1288
- self.correct_for_missing_angles()
1289
-
1290
- linea = self.gridded_cumulated_weights.sum(axis=(1, 2))
1291
- i_zero_list = np.where(linea == 0)[0]
1292
- for i_zero in i_zero_list:
1293
- if i_zero > linea.shape[0] // 2:
1294
- direction = -1
1295
- else:
1296
- direction = 1
1297
- i = i_zero
1298
- while ((i >= 0 and direction == -1) or ((i < linea.shape[0] - 1) and direction == 1)) and linea[i] == 0:
1299
- i += direction
1300
- if linea[i]:
1301
- self.gridded_radios[i_zero] = self.gridded_radios[i]
1302
- self.gridded_cumulated_weights[i_zero] = self.gridded_cumulated_weights[i]
1303
-
1304
- if "flatfield" in self._data_dump:
1305
- paganin_margin = self._phase_margin_up
1306
- if paganin_margin:
1307
- data_to_dump = self.gridded_radios[:, paganin_margin:-paganin_margin, :]
1308
- else:
1309
- data_to_dump = self.gridded_radios
1310
- self._dump_data_to_file("flatfield", data_to_dump)
1311
- if self.process_config.nabu_config["pipeline"]["skip_after_flatfield_dump"]:
1312
- return
1313
-
1314
- if "ccd_correction" in self.processing_steps:
1315
- self._ccd_corrections()
1316
-
1317
- if cxx_paganin is None:
1318
- if ("phase" in self.processing_steps) or ("unsharp_mask" in self.processing_steps):
1319
- self._retrieve_phase()
1320
- if "unsharp_mask" in self.processing_steps:
1321
- self._apply_unsharp()
1322
- else:
1323
- self._nophase_put_to_radios(self.radios, self.gridded_radios)
1324
- else:
1325
- if "phase" in self.processing_steps:
1326
- pr = self.phase_retrieval
1327
- paganin_l_micron = math.sqrt(pr.wavelength_micron * pr.distance_micron * pr.delta_beta * math.pi)
1328
- cxx_paganin.paganin_pyhst(
1329
- data_raw=self.gridded_radios,
1330
- output=self.radios,
1331
- num_of_threads=-1,
1332
- paganin_marge=self._phase_margin_up,
1333
- paganin_l_micron=paganin_l_micron / pr.pixel_size_micron,
1334
- image_pixel_size_y=1.0,
1335
- image_pixel_size_x=1.0,
1336
- unsharp_sigma=self.unsharp_sigma,
1337
- unsharp_coeff=self.unsharp_coeff,
1338
- unsharp_LoG=int((self.unsharp_method == "log")),
1339
- )
1340
- else:
1341
- self._nophase_put_to_radios(self.radios, self.gridded_radios)
1342
-
1343
- self.logger.info(" LOG ")
1344
- self._nophase_put_to_radios(self.radios_weights, self.gridded_cumulated_weights)
1345
-
1346
- # print( " processing steps ", self.processing_steps )
1347
- # ['read_chunk', 'flatfield', 'double_flatfield', 'take_log', 'reconstruction', 'save']
1348
-
1349
- if "take_log" in self.processing_steps:
1350
- self._take_log()
1351
-
1352
- self.logger.info(" BALANCE ")
1353
-
1354
- self.balance_weights()
1355
-
1356
- num_slices = self.radios.shape[1]
1357
-
1358
- self.logger.info(" NORMALIZE")
1359
- self._normalize_sinos()
1360
- self._dump_sinogram()
1361
-
1362
- if "reconstruction" in self.processing_steps:
1363
- if not self.diag_zpro_run:
1364
- # otherwise, when collecting diagnostic, we are not interested in the remaining steps
1365
- # on the other hand there would be nothing to process because only diagnostics have been collected
1366
- for i_slice in range(num_slices):
1367
- self._post_primary_data_reduction(i_slice) # charge on self.radios_slim
1368
-
1369
- self._filter()
1370
-
1371
- self.apply_weights(i_slice)
1372
-
1373
- self._build_sino()
1374
-
1375
- self._reconstruct(chunk_info=chunk_info, i_slice=i_slice)
1376
-
1377
- self._compute_histogram(i_slice=i_slice, num_slices=num_slices)
1378
-
1379
- self._write_data()
1380
-
1381
- def apply_weights(self, i_slice):
1382
- """radios_slim is on gpu"""
1383
- n_provided_angles = self.radios_slim.shape[0]
1384
-
1385
- for first_angle_index in range(0, n_provided_angles, self.num_weight_radios_per_app):
1386
- end_angle_index = min(n_provided_angles, first_angle_index + self.num_weight_radios_per_app)
1387
- self._d_radios_weights[: end_angle_index - first_angle_index].set(
1388
- self.radios_weights[first_angle_index:end_angle_index, i_slice]
1389
- )
1390
- self.radios_slim[first_angle_index:end_angle_index] *= self._d_radios_weights[
1391
- : end_angle_index - first_angle_index
1392
- ]
1393
-
1394
- def correct_for_missing_angles(self):
1395
- """For non helical scan, the rotation is often incomplete ( < 360)
1396
- here we complement the missing angles
1397
- """
1398
- linea = self.gridded_cumulated_weights.sum(axis=(1, 2))
1399
- i_zero_list = np.where(linea == 0)[0]
1400
- for i_zero in i_zero_list:
1401
- if i_zero > linea.shape[0] // 2:
1402
- direction = -1
1403
- else:
1404
- direction = 1
1405
- i = i_zero
1406
- while ((i >= 0 and direction == -1) or ((i < linea.shape[0] - 1) and direction == 1)) and linea[i] == 0:
1407
- i += direction
1408
- if linea[i]:
1409
- self.gridded_radios[i_zero] = self.gridded_radios[i]
1410
- self.gridded_cumulated_weights[i_zero] = self.gridded_cumulated_weights[i]
1411
-
1412
- @classmethod
1413
- def estimate_required_memory(
1414
- cls, process_config, reading_granularity=None, chunk_size=None, margin_v=0, span_info=None, diag_zpro_run=0
1415
- ):
1416
- """
1417
- Estimate the memory (RAM) needed for a reconstruction.
1418
-
1419
- Parameters
1420
- -----------
1421
- process_config: `ProcessConfig` object
1422
- Data structure with the processing configuration
1423
- chunk_size: int, optional
1424
- Size of a "radios chunk", i.e "delta z". A radios chunk is a 3D array of shape (n_angles, chunk_size, n_x)
1425
- If set to None, then chunk_size = n_z
1426
-
1427
- Notes
1428
- -----
1429
- It seems that Cuda does not allow allocating and/or transferring more than 16384 MiB (17.18 GB).
1430
- If warn_from_GB is not None, then the result is in the form (estimated_memory_GB, warning)
1431
- where warning is a boolean indicating wheher memory allocation/transfer might be problematic.
1432
- """
1433
- dataset = process_config.dataset_info
1434
- nabu_config = process_config.nabu_config
1435
- processing_steps = process_config.processing_steps
1436
- Nx, Ny = dataset.radio_dims
1437
-
1438
- total_memory_needed = 0
1439
-
1440
- # Read data
1441
- # ----------
1442
-
1443
- # gridded part
1444
- tmp_angles_deg = np.rad2deg(process_config.processing_options["reconstruction"]["angles"])
1445
- tmp_my_angle_step = abs(np.diff(tmp_angles_deg).mean())
1446
-
1447
- my_angle_step = abs(np.diff(span_info.projection_angles_deg).mean())
1448
- n_gridded_angles = int(round(360.0 / my_angle_step))
1449
-
1450
- binning_z = nabu_config["dataset"]["binning_z"]
1451
- projections_subsampling = nabu_config["dataset"]["projections_subsampling"]
1452
-
1453
- if not diag_zpro_run:
1454
- # the gridded target
1455
- total_memory_needed += Nx * (2 * margin_v + chunk_size) * n_gridded_angles * 4
1456
-
1457
- # the gridded weights
1458
- total_memory_needed += Nx * (2 * margin_v + chunk_size) * n_gridded_angles * 4
1459
-
1460
- # the read grain
1461
- total_memory_needed += (
1462
- (reading_granularity + cls.extra_marge_granularity) * (2 * margin_v + chunk_size + 2) * Nx * 4
1463
- )
1464
-
1465
- total_memory_needed += (
1466
- (reading_granularity + cls.extra_marge_granularity) * (2 * margin_v + chunk_size + 2) * Nx * 4
1467
- )
1468
-
1469
- # the preprocessed radios, their weigth and the buffer used for balancing ( total of three buffer of the same size plus mask plus temporary)
1470
- total_memory_needed += 5 * (Nx * (chunk_size) * n_gridded_angles) * 4
1471
-
1472
- if "flatfield" in processing_steps:
1473
- # Flat-field is done in-place, but still need to load darks/flats
1474
- n_darks = len(dataset.darks)
1475
- n_flats = len(dataset.flats)
1476
- darks_size = n_darks * Nx * (2 * margin_v + chunk_size) * 2 # uint16
1477
- flats_size = n_flats * Nx * (2 * margin_v + chunk_size) * 4 # f32
1478
- total_memory_needed += darks_size + flats_size
1479
-
1480
- if "ccd_correction" in processing_steps:
1481
- total_memory_needed += Nx * (2 * margin_v + chunk_size) * 4
1482
-
1483
- # Phase retrieval
1484
- # ---------------
1485
- if "phase" in processing_steps:
1486
- # Phase retrieval is done image-wise, so near in-place, but needs to
1487
- # allocate some images, fft plans, and so on
1488
- Nx_p = get_next_power(2 * Nx)
1489
- Ny_p = get_next_power(2 * (2 * margin_v + chunk_size))
1490
- img_size_real = 2 * 4 * Nx_p * Ny_p
1491
- img_size_cplx = 2 * 8 * ((Nx_p * Ny_p) // 2 + 1)
1492
- total_memory_needed += 2 * img_size_real + 3 * img_size_cplx
1493
-
1494
- # Reconstruction
1495
- # ---------------
1496
- reconstructed_volume_size = 0
1497
- if "reconstruction" in processing_steps and not diag_zpro_run:
1498
- ## radios_slim is used to process one slice at once, It will be on the gpu
1499
- ## and cannot be reduced further, therefore no need to estimate it.
1500
- ## Either it passes or it does not.
1501
- #### if radios_and_sinos:
1502
- #### togtal_memory_needed += data_volume_size # radios + sinos
1503
-
1504
- rec_config = process_config.processing_options["reconstruction"]
1505
-
1506
- Nx_rec = rec_config["end_x"] - rec_config["start_x"] + 1
1507
- Ny_rec = rec_config["end_y"] - rec_config["start_y"] + 1
1508
-
1509
- Nz_rec = chunk_size // binning_z
1510
-
1511
- ## the volume is used to reconstruct for each chunk
1512
- reconstructed_volume_size = Nx_rec * Ny_rec * Nz_rec * 4 # float32
1513
- total_memory_needed += reconstructed_volume_size
1514
-
1515
- return total_memory_needed
1516
-
1517
-
1518
- # target_central_slicer, source_central_slicer = overlap_logic( subr_start_z, subr_end_z, dtasrc_start_z, dtasrcs_end_z )
1519
- def overlap_logic(subr_start_z, subr_end_z, dtasrc_start_z, dtasrc_end_z):
1520
- """determines the useful lines which can be transferred from the dtasrc_start_z:dtasrc_end_z
1521
- range targeting the range subr_start_z: subr_end_z ..................
1522
-
1523
- """
1524
-
1525
- t_h = subr_end_z - subr_start_z
1526
- s_h = dtasrc_end_z - dtasrc_start_z
1527
-
1528
- my_start = max(0, dtasrc_start_z - subr_start_z)
1529
- my_end = min(t_h, dtasrc_end_z - subr_start_z)
1530
-
1531
- if my_start >= my_end:
1532
- return None, None
1533
-
1534
- target_central_slicer = slice(my_start, my_end)
1535
-
1536
- my_start = max(0, subr_start_z - dtasrc_start_z)
1537
- my_end = min(s_h, subr_end_z - dtasrc_start_z)
1538
-
1539
- assert my_start < my_end, "Overlap_logic logic error"
1540
-
1541
- dtasrc_central_slicer = slice(my_start, my_end)
1542
-
1543
- return target_central_slicer, dtasrc_central_slicer
1544
-
1545
-
1546
- def padding_logic(subr_start_z, subr_end_z, dtasrc_start_z, dtasrc_end_z):
1547
- """.......... and the missing ranges which possibly could be obtained by extension padding"""
1548
- t_h = subr_end_z - subr_start_z
1549
- s_h = dtasrc_end_z - dtasrc_start_z
1550
-
1551
- if dtasrc_start_z <= subr_start_z:
1552
- target_lower_padding = None
1553
- else:
1554
- target_lower_padding = slice(0, dtasrc_start_z - subr_start_z)
1555
-
1556
- if dtasrc_end_z >= subr_end_z:
1557
- target_upper_padding = None
1558
- else:
1559
- target_upper_padding = slice(dtasrc_end_z - subr_end_z, None)
1560
-
1561
- return target_lower_padding, target_upper_padding
1562
-
1563
-
1564
- def _fill_in_chunk_by_shift_crop_data(
1565
- data_target,
1566
- data_read,
1567
- fract_shit,
1568
- my_subr_start_z,
1569
- my_subr_end_z,
1570
- dtasrc_start_z,
1571
- dtasrc_end_z,
1572
- x_shift=0.0,
1573
- extension_padding=True,
1574
- ):
1575
- """given a freshly read cube of data, it dispatches every slice to its proper vertical position and proper radio by shifting, cropping, and extending if necessary"""
1576
- data_read_precisely_shifted = nd.interpolation.shift(data_read, (-fract_shit, x_shift), order=1, mode="nearest")[
1577
- :-1
1578
- ]
1579
-
1580
- target_central_slicer, dtasrc_central_slicer = overlap_logic(
1581
- my_subr_start_z, my_subr_end_z - 1, dtasrc_start_z, dtasrc_end_z - 1
1582
- )
1583
-
1584
- if None not in [target_central_slicer, dtasrc_central_slicer]:
1585
- data_target[target_central_slicer] = data_read_precisely_shifted[dtasrc_central_slicer]
1586
-
1587
- target_lower_slicer, target_upper_slicer = padding_logic(
1588
- my_subr_start_z, my_subr_end_z - 1, dtasrc_start_z, dtasrc_end_z - 1
1589
- )
1590
-
1591
- if extension_padding:
1592
- if target_lower_slicer is not None:
1593
- data_target[target_lower_slicer] = data_read_precisely_shifted[0]
1594
- if target_upper_slicer is not None:
1595
- data_target[target_upper_slicer] = data_read_precisely_shifted[-1]
1596
- else:
1597
- if target_lower_slicer is not None:
1598
- data_target[target_lower_slicer] = 1.0e-6
1599
- if target_upper_slicer is not None:
1600
- data_target[target_upper_slicer] = 1.0e-6
1601
-
1602
-
1603
- def shift(arr, shift, fill_value=0.0):
1604
- """trivial horizontal shift.
1605
- Contrarily to scipy.ndimage.interpolation.shift, this shift does not cut the tails abruptly, but by interpolation
1606
- """
1607
- result = np.zeros_like(arr)
1608
-
1609
- num1 = int(math.floor(shift))
1610
- num2 = num1 + 1
1611
- partition = shift - num1
1612
-
1613
- for num, factor in zip([num1, num2], [(1 - partition), partition]):
1614
- if num > 0:
1615
- result[:, :num] += fill_value * factor
1616
- result[:, num:] += arr[:, :-num] * factor
1617
- elif num < 0:
1618
- result[:, num:] += fill_value * factor
1619
- result[:, :num] += arr[:, -num:] * factor
1620
- else:
1621
- result[:] += arr * factor
1622
-
1623
- return result
1624
-
1625
-
1626
- def rebalance(radios_weights, angles, ax_pos):
1627
- """rebalance the weights, within groups of equivalent (up to multiple of 180), data pixels"""
1628
- balanced = np.zeros_like(radios_weights)
1629
- n_span = int(math.ceil(angles[-1] - angles[0]) / np.pi)
1630
- center = (radios_weights.shape[-1] - 1) / 2
1631
- nloop = balanced.shape[0]
1632
-
1633
- for i in range(nloop):
1634
- w_res = balanced[i]
1635
- angle = angles[i]
1636
-
1637
- for i_half_turn in range(-n_span - 1, n_span + 2):
1638
- if i_half_turn == 0:
1639
- w_res[:] += radios_weights[i]
1640
- continue
1641
-
1642
- shifted_angle = angle + i_half_turn * np.pi
1643
-
1644
- insertion_index = np.searchsorted(angles, shifted_angle)
1645
-
1646
- if insertion_index in [0, angles.shape[0]]:
1647
- if insertion_index == 0:
1648
- continue
1649
- else:
1650
- if shifted_angle > 2 * np.pi:
1651
- continue
1652
- myimage = radios_weights[-1]
1653
- else:
1654
- partition = (shifted_angle - angles[insertion_index - 1]) / (
1655
- angles[insertion_index] - angles[insertion_index - 1]
1656
- )
1657
- myimage = (1.0 - partition) * radios_weights[insertion_index - 1] + partition * radios_weights[
1658
- insertion_index
1659
- ]
1660
-
1661
- if i_half_turn % 2 == 0:
1662
- w_res[:] += myimage
1663
- else:
1664
- myimage = np.fliplr(myimage)
1665
- w_res[:] += shift(myimage, (2 * ax_pos - 2 * center))
1666
-
1667
- mask = np.equal(0, radios_weights)
1668
- balanced[:] = radios_weights / balanced
1669
- balanced[mask] = 0
1670
- return balanced