nabu 2024.1.1__py3-none-any.whl → 2024.1.3__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 (2097) hide show
  1. doc/doc_config.py +32 -0
  2. nabu/__init__.py +1 -1
  3. nabu/app/cast_volume.py +11 -2
  4. nabu/app/multicor.py +24 -2
  5. nabu/io/cast_volume.py +3 -3
  6. nabu/io/utils.py +2 -2
  7. nabu/reconstruction/rings_cuda.py +25 -10
  8. nabu/stitching/tests/test_z_stitching.py +0 -1
  9. nabu/stitching/z_stitching.py +3 -3
  10. {nabu-2024.1.1.dist-info → nabu-2024.1.3.dist-info}/METADATA +2 -2
  11. nabu-2024.1.3.dist-info/RECORD +296 -0
  12. nabu-2024.1.3.dist-info/top_level.txt +2 -0
  13. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/doc/conf.py +0 -137
  14. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/doc/create_conf_doc.py +0 -38
  15. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/doc/get_mathjax.py +0 -34
  16. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/__init__.py +0 -17
  17. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/__init__.py +0 -0
  18. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap.py +0 -88
  19. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap_stitching.py +0 -69
  20. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/cast_volume.py +0 -272
  21. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/cli_configs.py +0 -626
  22. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/compare_volumes.py +0 -94
  23. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/composite_cor.py +0 -144
  24. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/correct_rot.py +0 -70
  25. 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
  26. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_pix.py +0 -358
  27. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_rot.py +0 -449
  28. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/double_flatfield.py +0 -143
  29. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/generate_header.py +0 -261
  30. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/histogram.py +0 -197
  31. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/multicor.py +0 -90
  32. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/nx_z_splitter.py +0 -125
  33. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/parse_reconstruction_log.py +0 -151
  34. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/prepare_weights_double.py +0 -163
  35. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct.py +0 -120
  36. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct_helical.py +0 -116
  37. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reduce_dark_flat.py +0 -181
  38. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/rotate.py +0 -162
  39. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/shrink_dataset.py +0 -98
  40. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/stitching.py +0 -85
  41. 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
  42. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/utils.py +0 -33
  43. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/validator.py +0 -110
  44. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/__init__.py +0 -0
  45. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/convolution.py +0 -8
  46. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/fft.py +0 -4
  47. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/kernel.py +0 -97
  48. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/medfilt.py +0 -6
  49. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/padding.py +0 -6
  50. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/processing.py +0 -75
  51. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/tests/__init__.py +0 -1
  52. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/utils.py +0 -331
  53. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/__init__.py +0 -12
  54. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/alignment.py +0 -578
  55. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor.py +0 -1621
  56. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor_sino.py +0 -183
  57. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/distortion.py +0 -112
  58. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/focus.py +0 -362
  59. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/__init__.py +0 -0
  60. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_alignment.py +0 -70
  61. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_cor.py +0 -472
  62. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_focus.py +0 -105
  63. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_tilt.py +0 -41
  64. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_translation.py +0 -78
  65. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tilt.py +0 -214
  66. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/translation.py +0 -193
  67. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/utils.py +0 -39
  68. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/__init__.py +0 -2
  69. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/cast_volume.py +0 -371
  70. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/detector_distortion.py +0 -305
  71. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/reader.py +0 -628
  72. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/reader_helical.py +0 -114
  73. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/__init__.py +0 -0
  74. 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
  75. 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
  76. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_writers.py +0 -187
  77. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tiffwriter_zmm.py +0 -99
  78. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/utils.py +0 -263
  79. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/writer.py +0 -892
  80. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/__init__.py +0 -0
  81. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/binning.py +0 -98
  82. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/fftshift.py +0 -6
  83. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/filters.py +0 -24
  84. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/fourier_filters.py +0 -152
  85. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram.py +0 -6
  86. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram_cuda.py +0 -8
  87. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/kernel_base.py +0 -4
  88. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/padding.py +0 -83
  89. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/padding_base.py +0 -6
  90. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/processing_base.py +0 -4
  91. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation.py +0 -6
  92. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation_cuda.py +0 -6
  93. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/__init__.py +0 -1
  94. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_binning.py +0 -48
  95. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_interpolation.py +0 -70
  96. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/transpose.py +0 -6
  97. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp.py +0 -4
  98. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_cuda.py +0 -6
  99. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_opencl.py +0 -8
  100. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/utils.py +0 -117
  101. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/__init__.py +0 -0
  102. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/fft.py +0 -6
  103. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/kernel.py +0 -135
  104. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/memcpy.py +0 -35
  105. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/padding.py +0 -6
  106. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/processing.py +0 -62
  107. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/tests/__init__.py +0 -0
  108. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/utils.py +0 -292
  109. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/__init__.py +0 -0
  110. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config.py +0 -265
  111. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config_validators.py +0 -589
  112. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/datadump.py +0 -164
  113. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/dataset_validator.py +0 -211
  114. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/detector_distortion_provider.py +0 -20
  115. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/estimators.py +0 -1012
  116. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fallback_utils.py +0 -149
  117. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/__init__.py +0 -0
  118. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked.py +0 -849
  119. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked_cuda.py +0 -152
  120. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/computations.py +0 -260
  121. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/dataset_validator.py +0 -63
  122. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/nabu_config.py +0 -590
  123. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/processconfig.py +0 -825
  124. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/reconstruction.py +0 -851
  125. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/__init__.py +0 -0
  126. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/dataset_validator.py +0 -19
  127. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/fbp.py +0 -147
  128. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/filtering.py +0 -246
  129. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/gridded_accumulator.py +0 -575
  130. 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
  131. 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
  132. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_reconstruction.py +0 -598
  133. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_utils.py +0 -42
  134. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/nabu_config.py +0 -175
  135. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/processconfig.py +0 -62
  136. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/span_strategy.py +0 -483
  137. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/__init__.py +0 -0
  138. 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
  139. 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
  140. 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
  141. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/utils.py +0 -51
  142. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/weight_balancer.py +0 -101
  143. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/params.py +0 -163
  144. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/processconfig.py +0 -210
  145. 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
  146. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/tests/test_estimators.py +0 -149
  147. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/utils.py +0 -116
  148. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/writer.py +0 -193
  149. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/xrdct/__init__.py +0 -0
  150. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/__init__.py +0 -7
  151. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/alignment.py +0 -11
  152. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd.py +0 -161
  153. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd_cuda.py +0 -169
  154. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf.py +0 -361
  155. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf_cuda.py +0 -142
  156. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/distortion.py +0 -92
  157. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield.py +0 -212
  158. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_cuda.py +0 -174
  159. 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
  160. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield.py +0 -448
  161. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_cuda.py +0 -144
  162. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_variable_region.py +0 -79
  163. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase.py +0 -425
  164. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase_cuda.py +0 -143
  165. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift.py +0 -95
  166. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift_cuda.py +0 -102
  167. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/__init__.py +0 -1
  168. 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
  169. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_ctf.py +0 -250
  170. 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
  171. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_flatfield.py +0 -626
  172. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_paganin.py +0 -67
  173. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_vshift.py +0 -73
  174. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/__init__.py +0 -0
  175. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/convolution_cuda.py +0 -375
  176. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_base.py +0 -163
  177. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_cuda.py +0 -256
  178. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_opencl.py +0 -54
  179. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fftshift.py +0 -134
  180. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram.py +0 -286
  181. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram_cuda.py +0 -103
  182. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/kernel_base.py +0 -126
  183. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/medfilt_cuda.py +0 -159
  184. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd.py +0 -29
  185. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd_cuda.py +0 -68
  186. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_base.py +0 -71
  187. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_cuda.py +0 -75
  188. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_opencl.py +0 -77
  189. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/processing_base.py +0 -123
  190. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/roll_opencl.py +0 -64
  191. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation.py +0 -63
  192. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation_cuda.py +0 -66
  193. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/__init__.py +0 -0
  194. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fft.py +0 -268
  195. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fftshift.py +0 -71
  196. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_histogram.py +0 -55
  197. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_medfilt.py +0 -77
  198. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_muladd.py +0 -54
  199. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_padding.py +0 -247
  200. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_roll.py +0 -63
  201. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_rotation.py +0 -83
  202. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_transpose.py +0 -72
  203. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_unsharp.py +0 -106
  204. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/transpose.py +0 -126
  205. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp.py +0 -79
  206. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_cuda.py +0 -53
  207. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_opencl.py +0 -75
  208. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/__init__.py +0 -3
  209. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/cone.py +0 -241
  210. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp.py +0 -124
  211. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_base.py +0 -391
  212. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_opencl.py +0 -78
  213. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering.py +0 -220
  214. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_cuda.py +0 -103
  215. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_opencl.py +0 -111
  216. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/projection.py +0 -240
  217. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor.py +0 -174
  218. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor_cuda.py +0 -44
  219. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings.py +0 -248
  220. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings_cuda.py +0 -322
  221. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram.py +0 -467
  222. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_cuda.py +0 -250
  223. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_opencl.py +0 -40
  224. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/__init__.py +0 -1
  225. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_cone.py +0 -308
  226. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_deringer.py +0 -220
  227. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_fbp.py +0 -252
  228. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_filtering.py +0 -133
  229. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_halftomo.py +0 -100
  230. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_projector.py +0 -164
  231. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_reconstructor.py +0 -93
  232. 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
  233. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/__init__.py +0 -0
  234. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/cli/__init__.py +0 -0
  235. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/cor.py +0 -5
  236. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/dataset_analyzer.py +0 -469
  237. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/gpu.py +0 -169
  238. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/logger.py +0 -130
  239. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/nxflatfield.py +0 -217
  240. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/templates/__init__.py +0 -0
  241. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/__init__.py +0 -0
  242. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_nxflatfield.py +0 -104
  243. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_units.py +0 -47
  244. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/utils.py +0 -174
  245. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/__init__.py +0 -0
  246. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/alignment.py +0 -184
  247. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/config.py +0 -1286
  248. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/definitions.py +0 -6
  249. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/frame_composition.py +0 -155
  250. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/overlap.py +0 -373
  251. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/sample_normalization.py +0 -60
  252. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/slurm_utils.py +0 -204
  253. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/__init__.py +0 -0
  254. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_alignment.py +0 -99
  255. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_config.py +0 -226
  256. 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
  257. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_overlap.py +0 -98
  258. 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
  259. 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
  260. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_utils.py +0 -21
  261. 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
  262. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/utils.py +0 -563
  263. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/z_stitching.py +0 -2279
  264. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/tests.py +0 -51
  265. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/testutils.py +0 -375
  266. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/__init__.py +0 -0
  267. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/algotom_convert_sino.py +0 -276
  268. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/pore3d_deringer_munch.py +0 -108
  269. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomocupy_remove_stripe.py +0 -586
  270. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomopy_phase.py +0 -239
  271. 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
  272. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/utils.py +0 -836
  273. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/doc/conf.py +0 -137
  274. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/doc/create_conf_doc.py +0 -38
  275. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/doc/get_mathjax.py +0 -34
  276. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/__init__.py +0 -17
  277. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/__init__.py +0 -0
  278. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap.py +0 -88
  279. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap_stitching.py +0 -69
  280. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/cast_volume.py +0 -272
  281. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/cli_configs.py +0 -626
  282. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/compare_volumes.py +0 -94
  283. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/composite_cor.py +0 -144
  284. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/correct_rot.py +0 -70
  285. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/create_distortion_map_from_poly.py +0 -153
  286. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_pix.py +0 -358
  287. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_rot.py +0 -449
  288. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/double_flatfield.py +0 -143
  289. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/generate_header.py +0 -261
  290. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/histogram.py +0 -197
  291. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/multicor.py +0 -90
  292. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/nx_z_splitter.py +0 -125
  293. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/parse_reconstruction_log.py +0 -151
  294. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/prepare_weights_double.py +0 -163
  295. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct.py +0 -120
  296. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct_helical.py +0 -116
  297. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reduce_dark_flat.py +0 -181
  298. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/rotate.py +0 -162
  299. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/shrink_dataset.py +0 -98
  300. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/stitching.py +0 -85
  301. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/tests/test_reduce_dark_flat.py +0 -78
  302. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/utils.py +0 -33
  303. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/validator.py +0 -110
  304. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/__init__.py +0 -0
  305. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/convolution.py +0 -8
  306. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/fft.py +0 -4
  307. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/kernel.py +0 -97
  308. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/medfilt.py +0 -6
  309. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/padding.py +0 -6
  310. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/processing.py +0 -75
  311. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/tests/__init__.py +0 -1
  312. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/utils.py +0 -331
  313. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/__init__.py +0 -12
  314. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/alignment.py +0 -578
  315. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor.py +0 -1621
  316. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor_sino.py +0 -183
  317. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/distortion.py +0 -112
  318. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/focus.py +0 -362
  319. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/__init__.py +0 -0
  320. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_alignment.py +0 -70
  321. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_cor.py +0 -472
  322. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_focus.py +0 -105
  323. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_tilt.py +0 -41
  324. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_translation.py +0 -78
  325. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tilt.py +0 -214
  326. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/translation.py +0 -193
  327. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/utils.py +0 -39
  328. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/__init__.py +0 -2
  329. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/cast_volume.py +0 -371
  330. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/detector_distortion.py +0 -305
  331. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/reader.py +0 -628
  332. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/reader_helical.py +0 -114
  333. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/__init__.py +0 -0
  334. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_cast_volume.py +0 -339
  335. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_detector_distortion.py +0 -178
  336. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_writers.py +0 -187
  337. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tiffwriter_zmm.py +0 -99
  338. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/utils.py +0 -263
  339. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/writer.py +0 -892
  340. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/__init__.py +0 -0
  341. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/binning.py +0 -98
  342. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/fftshift.py +0 -6
  343. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/filters.py +0 -24
  344. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/fourier_filters.py +0 -152
  345. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram.py +0 -6
  346. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram_cuda.py +0 -8
  347. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/kernel_base.py +0 -4
  348. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/padding.py +0 -83
  349. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/padding_base.py +0 -6
  350. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/processing_base.py +0 -4
  351. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation.py +0 -6
  352. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation_cuda.py +0 -6
  353. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/__init__.py +0 -1
  354. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_binning.py +0 -48
  355. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_interpolation.py +0 -70
  356. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/transpose.py +0 -6
  357. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp.py +0 -4
  358. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_cuda.py +0 -6
  359. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_opencl.py +0 -8
  360. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/utils.py +0 -117
  361. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/__init__.py +0 -0
  362. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/fft.py +0 -6
  363. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/kernel.py +0 -135
  364. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/memcpy.py +0 -35
  365. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/padding.py +0 -6
  366. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/processing.py +0 -62
  367. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/tests/__init__.py +0 -0
  368. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/utils.py +0 -292
  369. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/__init__.py +0 -0
  370. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config.py +0 -265
  371. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config_validators.py +0 -589
  372. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/datadump.py +0 -164
  373. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/dataset_validator.py +0 -211
  374. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/detector_distortion_provider.py +0 -20
  375. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/estimators.py +0 -1012
  376. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fallback_utils.py +0 -149
  377. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/__init__.py +0 -0
  378. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked.py +0 -849
  379. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked_cuda.py +0 -152
  380. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/computations.py +0 -260
  381. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/dataset_validator.py +0 -63
  382. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/nabu_config.py +0 -590
  383. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/processconfig.py +0 -825
  384. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/reconstruction.py +0 -851
  385. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/__init__.py +0 -0
  386. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/dataset_validator.py +0 -19
  387. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/fbp.py +0 -147
  388. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/filtering.py +0 -246
  389. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/gridded_accumulator.py +0 -575
  390. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded.py +0 -1670
  391. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded_cuda.py +0 -119
  392. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_reconstruction.py +0 -598
  393. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_utils.py +0 -42
  394. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/nabu_config.py +0 -175
  395. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/processconfig.py +0 -62
  396. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/span_strategy.py +0 -483
  397. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/__init__.py +0 -0
  398. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_accumulator.py +0 -157
  399. 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
  400. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_strategy.py +0 -61
  401. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/utils.py +0 -51
  402. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/weight_balancer.py +0 -101
  403. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/params.py +0 -163
  404. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/processconfig.py +0 -210
  405. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/tests/test_chunk_reader.py +0 -78
  406. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/tests/test_estimators.py +0 -149
  407. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/utils.py +0 -116
  408. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/writer.py +0 -193
  409. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/xrdct/__init__.py +0 -0
  410. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/__init__.py +0 -7
  411. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/alignment.py +0 -11
  412. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd.py +0 -161
  413. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd_cuda.py +0 -169
  414. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf.py +0 -361
  415. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf_cuda.py +0 -142
  416. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/distortion.py +0 -92
  417. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield.py +0 -212
  418. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_cuda.py +0 -174
  419. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_variable_region.py +0 -68
  420. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield.py +0 -448
  421. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_cuda.py +0 -144
  422. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_variable_region.py +0 -79
  423. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase.py +0 -425
  424. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase_cuda.py +0 -143
  425. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift.py +0 -95
  426. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift_cuda.py +0 -102
  427. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/__init__.py +0 -1
  428. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_ccd_corr.py +0 -59
  429. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_ctf.py +0 -250
  430. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_double_flatfield.py +0 -86
  431. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_flatfield.py +0 -626
  432. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_paganin.py +0 -67
  433. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_vshift.py +0 -73
  434. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/__init__.py +0 -0
  435. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/convolution_cuda.py +0 -375
  436. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_base.py +0 -163
  437. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_cuda.py +0 -256
  438. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_opencl.py +0 -54
  439. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fftshift.py +0 -134
  440. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram.py +0 -286
  441. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram_cuda.py +0 -103
  442. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/kernel_base.py +0 -126
  443. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/medfilt_cuda.py +0 -159
  444. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd.py +0 -29
  445. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd_cuda.py +0 -68
  446. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_base.py +0 -71
  447. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_cuda.py +0 -75
  448. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_opencl.py +0 -77
  449. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/processing_base.py +0 -123
  450. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/roll_opencl.py +0 -64
  451. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation.py +0 -63
  452. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation_cuda.py +0 -66
  453. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/__init__.py +0 -0
  454. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fft.py +0 -268
  455. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fftshift.py +0 -71
  456. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_histogram.py +0 -55
  457. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_medfilt.py +0 -77
  458. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_muladd.py +0 -54
  459. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_padding.py +0 -247
  460. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_roll.py +0 -63
  461. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_rotation.py +0 -83
  462. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_transpose.py +0 -72
  463. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_unsharp.py +0 -106
  464. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/transpose.py +0 -126
  465. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp.py +0 -79
  466. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_cuda.py +0 -53
  467. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_opencl.py +0 -75
  468. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/__init__.py +0 -3
  469. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/cone.py +0 -241
  470. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp.py +0 -124
  471. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_base.py +0 -391
  472. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_opencl.py +0 -78
  473. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering.py +0 -220
  474. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_cuda.py +0 -103
  475. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_opencl.py +0 -111
  476. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/projection.py +0 -240
  477. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor.py +0 -174
  478. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor_cuda.py +0 -44
  479. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings.py +0 -248
  480. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings_cuda.py +0 -322
  481. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram.py +0 -467
  482. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_cuda.py +0 -250
  483. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_opencl.py +0 -40
  484. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/__init__.py +0 -1
  485. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_cone.py +0 -308
  486. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_deringer.py +0 -220
  487. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_fbp.py +0 -252
  488. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_filtering.py +0 -133
  489. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_halftomo.py +0 -100
  490. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_projector.py +0 -164
  491. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_reconstructor.py +0 -93
  492. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_sino_normalization.py +0 -85
  493. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/__init__.py +0 -0
  494. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/cli/__init__.py +0 -0
  495. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/cor.py +0 -5
  496. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/dataset_analyzer.py +0 -469
  497. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/gpu.py +0 -169
  498. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/logger.py +0 -130
  499. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/nxflatfield.py +0 -217
  500. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/templates/__init__.py +0 -0
  501. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/__init__.py +0 -0
  502. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_nxflatfield.py +0 -104
  503. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_units.py +0 -47
  504. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/utils.py +0 -174
  505. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/__init__.py +0 -0
  506. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/alignment.py +0 -184
  507. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/config.py +0 -1286
  508. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/definitions.py +0 -6
  509. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/frame_composition.py +0 -155
  510. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/overlap.py +0 -373
  511. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/sample_normalization.py +0 -60
  512. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/slurm_utils.py +0 -204
  513. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/__init__.py +0 -0
  514. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_alignment.py +0 -99
  515. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_config.py +0 -226
  516. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_frame_composition.py +0 -180
  517. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_overlap.py +0 -98
  518. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_sample_normalization.py +0 -49
  519. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_slurm_utils.py +0 -146
  520. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_utils.py +0 -21
  521. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_z_stitching.py +0 -1183
  522. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/utils.py +0 -563
  523. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/z_stitching.py +0 -2279
  524. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/tests.py +0 -51
  525. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/testutils.py +0 -375
  526. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/__init__.py +0 -0
  527. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/algotom_convert_sino.py +0 -276
  528. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/pore3d_deringer_munch.py +0 -108
  529. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomocupy_remove_stripe.py +0 -586
  530. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomopy_phase.py +0 -239
  531. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomwer_load_flats_darks.py +0 -162
  532. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/utils.py +0 -836
  533. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/doc/conf.py +0 -137
  534. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/doc/create_conf_doc.py +0 -38
  535. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/doc/get_mathjax.py +0 -34
  536. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/__init__.py +0 -17
  537. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/__init__.py +0 -0
  538. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap.py +0 -88
  539. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap_stitching.py +0 -69
  540. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/cast_volume.py +0 -272
  541. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/cli_configs.py +0 -626
  542. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/compare_volumes.py +0 -94
  543. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/composite_cor.py +0 -144
  544. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/correct_rot.py +0 -70
  545. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/create_distortion_map_from_poly.py +0 -153
  546. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_pix.py +0 -358
  547. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_rot.py +0 -449
  548. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/double_flatfield.py +0 -143
  549. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/generate_header.py +0 -261
  550. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/histogram.py +0 -197
  551. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/multicor.py +0 -90
  552. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/nx_z_splitter.py +0 -125
  553. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/parse_reconstruction_log.py +0 -151
  554. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/prepare_weights_double.py +0 -163
  555. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct.py +0 -120
  556. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct_helical.py +0 -116
  557. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reduce_dark_flat.py +0 -181
  558. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/rotate.py +0 -162
  559. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/shrink_dataset.py +0 -98
  560. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/stitching.py +0 -85
  561. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/tests/test_reduce_dark_flat.py +0 -78
  562. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/utils.py +0 -33
  563. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/validator.py +0 -110
  564. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/__init__.py +0 -0
  565. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/convolution.py +0 -8
  566. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/fft.py +0 -4
  567. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/kernel.py +0 -97
  568. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/medfilt.py +0 -6
  569. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/padding.py +0 -6
  570. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/processing.py +0 -75
  571. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/tests/__init__.py +0 -1
  572. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/utils.py +0 -331
  573. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/__init__.py +0 -12
  574. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/alignment.py +0 -578
  575. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor.py +0 -1621
  576. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor_sino.py +0 -183
  577. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/distortion.py +0 -112
  578. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/focus.py +0 -362
  579. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/__init__.py +0 -0
  580. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_alignment.py +0 -70
  581. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_cor.py +0 -472
  582. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_focus.py +0 -105
  583. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_tilt.py +0 -41
  584. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_translation.py +0 -78
  585. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tilt.py +0 -214
  586. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/translation.py +0 -193
  587. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/utils.py +0 -39
  588. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/__init__.py +0 -2
  589. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/cast_volume.py +0 -371
  590. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/detector_distortion.py +0 -305
  591. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/reader.py +0 -628
  592. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/reader_helical.py +0 -114
  593. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/__init__.py +0 -0
  594. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_cast_volume.py +0 -339
  595. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_detector_distortion.py +0 -178
  596. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_writers.py +0 -187
  597. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tiffwriter_zmm.py +0 -99
  598. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/utils.py +0 -263
  599. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/writer.py +0 -892
  600. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/__init__.py +0 -0
  601. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/binning.py +0 -98
  602. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/fftshift.py +0 -6
  603. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/filters.py +0 -24
  604. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/fourier_filters.py +0 -152
  605. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram.py +0 -6
  606. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram_cuda.py +0 -8
  607. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/kernel_base.py +0 -4
  608. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/padding.py +0 -83
  609. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/padding_base.py +0 -6
  610. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/processing_base.py +0 -4
  611. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation.py +0 -6
  612. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation_cuda.py +0 -6
  613. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/__init__.py +0 -1
  614. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_binning.py +0 -48
  615. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_interpolation.py +0 -70
  616. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/transpose.py +0 -6
  617. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp.py +0 -4
  618. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_cuda.py +0 -6
  619. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_opencl.py +0 -8
  620. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/utils.py +0 -117
  621. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/__init__.py +0 -0
  622. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/fft.py +0 -6
  623. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/kernel.py +0 -135
  624. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/memcpy.py +0 -35
  625. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/padding.py +0 -6
  626. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/processing.py +0 -62
  627. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/tests/__init__.py +0 -0
  628. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/utils.py +0 -292
  629. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/__init__.py +0 -0
  630. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config.py +0 -265
  631. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config_validators.py +0 -589
  632. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/datadump.py +0 -164
  633. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/dataset_validator.py +0 -211
  634. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/detector_distortion_provider.py +0 -20
  635. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/estimators.py +0 -1012
  636. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fallback_utils.py +0 -149
  637. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/__init__.py +0 -0
  638. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked.py +0 -849
  639. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked_cuda.py +0 -152
  640. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/computations.py +0 -260
  641. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/dataset_validator.py +0 -63
  642. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/nabu_config.py +0 -590
  643. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/processconfig.py +0 -825
  644. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/reconstruction.py +0 -851
  645. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/__init__.py +0 -0
  646. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/dataset_validator.py +0 -19
  647. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/fbp.py +0 -147
  648. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/filtering.py +0 -246
  649. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/gridded_accumulator.py +0 -575
  650. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded.py +0 -1670
  651. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded_cuda.py +0 -119
  652. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_reconstruction.py +0 -598
  653. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_utils.py +0 -42
  654. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/nabu_config.py +0 -175
  655. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/processconfig.py +0 -62
  656. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/span_strategy.py +0 -483
  657. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/__init__.py +0 -0
  658. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_accumulator.py +0 -157
  659. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_pipeline_elements_full.py +0 -355
  660. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_strategy.py +0 -61
  661. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/utils.py +0 -51
  662. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/weight_balancer.py +0 -101
  663. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/params.py +0 -163
  664. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/processconfig.py +0 -210
  665. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/tests/test_chunk_reader.py +0 -78
  666. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/tests/test_estimators.py +0 -149
  667. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/utils.py +0 -116
  668. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/writer.py +0 -193
  669. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/xrdct/__init__.py +0 -0
  670. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/__init__.py +0 -7
  671. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/alignment.py +0 -11
  672. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd.py +0 -161
  673. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd_cuda.py +0 -169
  674. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf.py +0 -361
  675. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf_cuda.py +0 -142
  676. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/distortion.py +0 -92
  677. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield.py +0 -212
  678. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_cuda.py +0 -174
  679. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_variable_region.py +0 -68
  680. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield.py +0 -448
  681. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_cuda.py +0 -144
  682. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_variable_region.py +0 -79
  683. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase.py +0 -425
  684. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase_cuda.py +0 -143
  685. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift.py +0 -95
  686. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift_cuda.py +0 -102
  687. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/__init__.py +0 -1
  688. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_ccd_corr.py +0 -59
  689. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_ctf.py +0 -250
  690. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_double_flatfield.py +0 -86
  691. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_flatfield.py +0 -626
  692. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_paganin.py +0 -67
  693. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_vshift.py +0 -73
  694. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/__init__.py +0 -0
  695. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/convolution_cuda.py +0 -375
  696. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_base.py +0 -163
  697. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_cuda.py +0 -256
  698. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_opencl.py +0 -54
  699. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fftshift.py +0 -134
  700. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram.py +0 -286
  701. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram_cuda.py +0 -103
  702. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/kernel_base.py +0 -126
  703. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/medfilt_cuda.py +0 -159
  704. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd.py +0 -29
  705. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd_cuda.py +0 -68
  706. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_base.py +0 -71
  707. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_cuda.py +0 -75
  708. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_opencl.py +0 -77
  709. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/processing_base.py +0 -123
  710. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/roll_opencl.py +0 -64
  711. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation.py +0 -63
  712. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation_cuda.py +0 -66
  713. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/__init__.py +0 -0
  714. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fft.py +0 -268
  715. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fftshift.py +0 -71
  716. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_histogram.py +0 -55
  717. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_medfilt.py +0 -77
  718. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_muladd.py +0 -54
  719. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_padding.py +0 -247
  720. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_roll.py +0 -63
  721. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_rotation.py +0 -83
  722. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_transpose.py +0 -72
  723. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_unsharp.py +0 -106
  724. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/transpose.py +0 -126
  725. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp.py +0 -79
  726. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_cuda.py +0 -53
  727. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_opencl.py +0 -75
  728. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/__init__.py +0 -3
  729. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/cone.py +0 -241
  730. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp.py +0 -124
  731. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_base.py +0 -391
  732. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_opencl.py +0 -78
  733. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering.py +0 -220
  734. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_cuda.py +0 -103
  735. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_opencl.py +0 -111
  736. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/projection.py +0 -240
  737. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor.py +0 -174
  738. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor_cuda.py +0 -44
  739. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings.py +0 -248
  740. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings_cuda.py +0 -322
  741. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram.py +0 -467
  742. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_cuda.py +0 -250
  743. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_opencl.py +0 -40
  744. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/__init__.py +0 -1
  745. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_cone.py +0 -308
  746. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_deringer.py +0 -220
  747. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_fbp.py +0 -252
  748. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_filtering.py +0 -133
  749. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_halftomo.py +0 -100
  750. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_projector.py +0 -164
  751. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_reconstructor.py +0 -93
  752. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_sino_normalization.py +0 -85
  753. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/__init__.py +0 -0
  754. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/cli/__init__.py +0 -0
  755. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/cor.py +0 -5
  756. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/dataset_analyzer.py +0 -469
  757. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/gpu.py +0 -169
  758. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/logger.py +0 -130
  759. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/nxflatfield.py +0 -217
  760. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/templates/__init__.py +0 -0
  761. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/__init__.py +0 -0
  762. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_nxflatfield.py +0 -104
  763. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_units.py +0 -47
  764. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/utils.py +0 -174
  765. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/__init__.py +0 -0
  766. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/alignment.py +0 -184
  767. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/config.py +0 -1286
  768. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/definitions.py +0 -6
  769. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/frame_composition.py +0 -155
  770. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/overlap.py +0 -373
  771. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/sample_normalization.py +0 -60
  772. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/slurm_utils.py +0 -204
  773. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/__init__.py +0 -0
  774. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_alignment.py +0 -99
  775. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_config.py +0 -226
  776. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_frame_composition.py +0 -180
  777. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_overlap.py +0 -98
  778. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_sample_normalization.py +0 -49
  779. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_slurm_utils.py +0 -146
  780. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_utils.py +0 -21
  781. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_z_stitching.py +0 -1183
  782. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/utils.py +0 -563
  783. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/z_stitching.py +0 -2279
  784. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/tests.py +0 -51
  785. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/testutils.py +0 -375
  786. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/__init__.py +0 -0
  787. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/algotom_convert_sino.py +0 -276
  788. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/pore3d_deringer_munch.py +0 -108
  789. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomocupy_remove_stripe.py +0 -586
  790. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomopy_phase.py +0 -239
  791. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomwer_load_flats_darks.py +0 -162
  792. build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/nabu/utils.py +0 -836
  793. build/lib/build/lib/build/lib/build/lib/build/lib/doc/conf.py +0 -137
  794. build/lib/build/lib/build/lib/build/lib/build/lib/doc/create_conf_doc.py +0 -38
  795. build/lib/build/lib/build/lib/build/lib/build/lib/doc/get_mathjax.py +0 -34
  796. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/__init__.py +0 -17
  797. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/__init__.py +0 -0
  798. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap.py +0 -88
  799. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap_stitching.py +0 -69
  800. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/cast_volume.py +0 -272
  801. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/cli_configs.py +0 -626
  802. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/compare_volumes.py +0 -94
  803. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/composite_cor.py +0 -144
  804. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/correct_rot.py +0 -70
  805. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/create_distortion_map_from_poly.py +0 -153
  806. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_pix.py +0 -358
  807. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_rot.py +0 -449
  808. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/double_flatfield.py +0 -143
  809. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/generate_header.py +0 -261
  810. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/histogram.py +0 -197
  811. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/multicor.py +0 -90
  812. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/nx_z_splitter.py +0 -125
  813. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/parse_reconstruction_log.py +0 -151
  814. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/prepare_weights_double.py +0 -163
  815. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct.py +0 -120
  816. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct_helical.py +0 -116
  817. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/reduce_dark_flat.py +0 -181
  818. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/rotate.py +0 -162
  819. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/shrink_dataset.py +0 -98
  820. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/stitching.py +0 -85
  821. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/tests/test_reduce_dark_flat.py +0 -78
  822. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/utils.py +0 -33
  823. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/app/validator.py +0 -110
  824. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/__init__.py +0 -0
  825. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/convolution.py +0 -8
  826. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/fft.py +0 -4
  827. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/kernel.py +0 -97
  828. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/medfilt.py +0 -6
  829. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/padding.py +0 -6
  830. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/processing.py +0 -75
  831. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/tests/__init__.py +0 -1
  832. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/cuda/utils.py +0 -331
  833. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/__init__.py +0 -12
  834. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/alignment.py +0 -578
  835. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor.py +0 -1621
  836. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor_sino.py +0 -183
  837. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/distortion.py +0 -112
  838. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/focus.py +0 -362
  839. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/__init__.py +0 -0
  840. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_alignment.py +0 -70
  841. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_cor.py +0 -472
  842. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_focus.py +0 -105
  843. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_tilt.py +0 -41
  844. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_translation.py +0 -78
  845. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/tilt.py +0 -214
  846. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/translation.py +0 -193
  847. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/estimation/utils.py +0 -39
  848. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/__init__.py +0 -2
  849. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/cast_volume.py +0 -371
  850. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/detector_distortion.py +0 -305
  851. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/reader.py +0 -628
  852. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/reader_helical.py +0 -114
  853. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/__init__.py +0 -0
  854. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_cast_volume.py +0 -339
  855. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_detector_distortion.py +0 -178
  856. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_writers.py +0 -187
  857. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/tiffwriter_zmm.py +0 -99
  858. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/utils.py +0 -263
  859. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/io/writer.py +0 -892
  860. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/__init__.py +0 -0
  861. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/binning.py +0 -98
  862. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/fftshift.py +0 -6
  863. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/filters.py +0 -24
  864. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/fourier_filters.py +0 -152
  865. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram.py +0 -6
  866. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram_cuda.py +0 -8
  867. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/kernel_base.py +0 -4
  868. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/padding.py +0 -83
  869. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/padding_base.py +0 -6
  870. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/processing_base.py +0 -4
  871. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation.py +0 -6
  872. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation_cuda.py +0 -6
  873. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/__init__.py +0 -1
  874. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_binning.py +0 -48
  875. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_interpolation.py +0 -70
  876. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/transpose.py +0 -6
  877. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp.py +0 -4
  878. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_cuda.py +0 -6
  879. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_opencl.py +0 -8
  880. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/misc/utils.py +0 -117
  881. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/__init__.py +0 -0
  882. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/fft.py +0 -6
  883. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/kernel.py +0 -135
  884. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/memcpy.py +0 -35
  885. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/padding.py +0 -6
  886. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/processing.py +0 -62
  887. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/tests/__init__.py +0 -0
  888. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/opencl/utils.py +0 -292
  889. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/__init__.py +0 -0
  890. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config.py +0 -265
  891. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config_validators.py +0 -589
  892. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/datadump.py +0 -164
  893. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/dataset_validator.py +0 -211
  894. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/detector_distortion_provider.py +0 -20
  895. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/estimators.py +0 -1012
  896. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fallback_utils.py +0 -149
  897. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/__init__.py +0 -0
  898. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked.py +0 -849
  899. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked_cuda.py +0 -152
  900. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/computations.py +0 -260
  901. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/dataset_validator.py +0 -63
  902. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/nabu_config.py +0 -590
  903. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/processconfig.py +0 -825
  904. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/reconstruction.py +0 -851
  905. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/__init__.py +0 -0
  906. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/dataset_validator.py +0 -19
  907. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/fbp.py +0 -147
  908. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/filtering.py +0 -246
  909. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/gridded_accumulator.py +0 -575
  910. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded.py +0 -1670
  911. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded_cuda.py +0 -119
  912. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_reconstruction.py +0 -598
  913. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_utils.py +0 -42
  914. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/nabu_config.py +0 -175
  915. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/processconfig.py +0 -62
  916. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/span_strategy.py +0 -483
  917. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/__init__.py +0 -0
  918. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_accumulator.py +0 -157
  919. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_pipeline_elements_full.py +0 -355
  920. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_strategy.py +0 -61
  921. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/utils.py +0 -51
  922. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/weight_balancer.py +0 -101
  923. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/params.py +0 -163
  924. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/processconfig.py +0 -210
  925. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/tests/test_chunk_reader.py +0 -78
  926. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/tests/test_estimators.py +0 -149
  927. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/utils.py +0 -116
  928. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/writer.py +0 -193
  929. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/pipeline/xrdct/__init__.py +0 -0
  930. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/__init__.py +0 -7
  931. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/alignment.py +0 -11
  932. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd.py +0 -161
  933. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd_cuda.py +0 -169
  934. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf.py +0 -361
  935. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf_cuda.py +0 -142
  936. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/distortion.py +0 -92
  937. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield.py +0 -212
  938. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_cuda.py +0 -174
  939. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_variable_region.py +0 -68
  940. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield.py +0 -448
  941. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_cuda.py +0 -144
  942. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_variable_region.py +0 -79
  943. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase.py +0 -425
  944. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase_cuda.py +0 -143
  945. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift.py +0 -95
  946. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift_cuda.py +0 -102
  947. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/__init__.py +0 -1
  948. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_ccd_corr.py +0 -59
  949. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_ctf.py +0 -250
  950. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_double_flatfield.py +0 -86
  951. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_flatfield.py +0 -626
  952. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_paganin.py +0 -67
  953. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_vshift.py +0 -73
  954. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/__init__.py +0 -0
  955. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/convolution_cuda.py +0 -375
  956. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_base.py +0 -163
  957. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_cuda.py +0 -256
  958. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_opencl.py +0 -54
  959. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/fftshift.py +0 -134
  960. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram.py +0 -286
  961. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram_cuda.py +0 -103
  962. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/kernel_base.py +0 -126
  963. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/medfilt_cuda.py +0 -159
  964. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd.py +0 -29
  965. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd_cuda.py +0 -68
  966. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_base.py +0 -71
  967. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_cuda.py +0 -75
  968. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_opencl.py +0 -77
  969. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/processing_base.py +0 -123
  970. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/roll_opencl.py +0 -64
  971. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation.py +0 -63
  972. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation_cuda.py +0 -66
  973. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/__init__.py +0 -0
  974. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fft.py +0 -268
  975. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fftshift.py +0 -71
  976. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_histogram.py +0 -55
  977. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_medfilt.py +0 -77
  978. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_muladd.py +0 -54
  979. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_padding.py +0 -247
  980. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_roll.py +0 -63
  981. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_rotation.py +0 -83
  982. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_transpose.py +0 -72
  983. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_unsharp.py +0 -106
  984. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/transpose.py +0 -126
  985. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp.py +0 -79
  986. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_cuda.py +0 -53
  987. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_opencl.py +0 -75
  988. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/__init__.py +0 -3
  989. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/cone.py +0 -241
  990. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp.py +0 -124
  991. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_base.py +0 -391
  992. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_opencl.py +0 -78
  993. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering.py +0 -220
  994. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_cuda.py +0 -103
  995. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_opencl.py +0 -111
  996. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/projection.py +0 -240
  997. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor.py +0 -174
  998. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor_cuda.py +0 -44
  999. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings.py +0 -248
  1000. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings_cuda.py +0 -322
  1001. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram.py +0 -467
  1002. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_cuda.py +0 -250
  1003. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_opencl.py +0 -40
  1004. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/__init__.py +0 -1
  1005. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_cone.py +0 -308
  1006. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_deringer.py +0 -220
  1007. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_fbp.py +0 -252
  1008. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_filtering.py +0 -133
  1009. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_halftomo.py +0 -100
  1010. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_projector.py +0 -164
  1011. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_reconstructor.py +0 -93
  1012. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_sino_normalization.py +0 -85
  1013. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/__init__.py +0 -0
  1014. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/cli/__init__.py +0 -0
  1015. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/cor.py +0 -5
  1016. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/dataset_analyzer.py +0 -469
  1017. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/gpu.py +0 -169
  1018. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/logger.py +0 -130
  1019. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/nxflatfield.py +0 -217
  1020. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/templates/__init__.py +0 -0
  1021. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/__init__.py +0 -0
  1022. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_nxflatfield.py +0 -104
  1023. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_units.py +0 -47
  1024. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/resources/utils.py +0 -174
  1025. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/__init__.py +0 -0
  1026. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/alignment.py +0 -184
  1027. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/config.py +0 -1286
  1028. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/definitions.py +0 -6
  1029. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/frame_composition.py +0 -155
  1030. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/overlap.py +0 -373
  1031. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/sample_normalization.py +0 -60
  1032. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/slurm_utils.py +0 -204
  1033. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/__init__.py +0 -0
  1034. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_alignment.py +0 -99
  1035. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_config.py +0 -226
  1036. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_frame_composition.py +0 -180
  1037. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_overlap.py +0 -98
  1038. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_sample_normalization.py +0 -49
  1039. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_slurm_utils.py +0 -146
  1040. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_utils.py +0 -21
  1041. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_z_stitching.py +0 -1183
  1042. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/utils.py +0 -563
  1043. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/stitching/z_stitching.py +0 -2279
  1044. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/tests.py +0 -51
  1045. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/testutils.py +0 -375
  1046. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/__init__.py +0 -0
  1047. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/algotom_convert_sino.py +0 -276
  1048. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/pore3d_deringer_munch.py +0 -108
  1049. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomocupy_remove_stripe.py +0 -586
  1050. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomopy_phase.py +0 -239
  1051. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomwer_load_flats_darks.py +0 -162
  1052. build/lib/build/lib/build/lib/build/lib/build/lib/nabu/utils.py +0 -836
  1053. build/lib/build/lib/build/lib/build/lib/doc/conf.py +0 -137
  1054. build/lib/build/lib/build/lib/build/lib/doc/create_conf_doc.py +0 -38
  1055. build/lib/build/lib/build/lib/build/lib/doc/get_mathjax.py +0 -34
  1056. build/lib/build/lib/build/lib/build/lib/nabu/__init__.py +0 -17
  1057. build/lib/build/lib/build/lib/build/lib/nabu/app/__init__.py +0 -0
  1058. build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap.py +0 -88
  1059. build/lib/build/lib/build/lib/build/lib/nabu/app/bootstrap_stitching.py +0 -69
  1060. build/lib/build/lib/build/lib/build/lib/nabu/app/cast_volume.py +0 -272
  1061. build/lib/build/lib/build/lib/build/lib/nabu/app/cli_configs.py +0 -626
  1062. build/lib/build/lib/build/lib/build/lib/nabu/app/compare_volumes.py +0 -94
  1063. build/lib/build/lib/build/lib/build/lib/nabu/app/composite_cor.py +0 -144
  1064. build/lib/build/lib/build/lib/build/lib/nabu/app/correct_rot.py +0 -70
  1065. build/lib/build/lib/build/lib/build/lib/nabu/app/create_distortion_map_from_poly.py +0 -153
  1066. build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_pix.py +0 -358
  1067. build/lib/build/lib/build/lib/build/lib/nabu/app/diag_to_rot.py +0 -449
  1068. build/lib/build/lib/build/lib/build/lib/nabu/app/double_flatfield.py +0 -143
  1069. build/lib/build/lib/build/lib/build/lib/nabu/app/generate_header.py +0 -261
  1070. build/lib/build/lib/build/lib/build/lib/nabu/app/histogram.py +0 -197
  1071. build/lib/build/lib/build/lib/build/lib/nabu/app/multicor.py +0 -90
  1072. build/lib/build/lib/build/lib/build/lib/nabu/app/nx_z_splitter.py +0 -125
  1073. build/lib/build/lib/build/lib/build/lib/nabu/app/parse_reconstruction_log.py +0 -151
  1074. build/lib/build/lib/build/lib/build/lib/nabu/app/prepare_weights_double.py +0 -163
  1075. build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct.py +0 -120
  1076. build/lib/build/lib/build/lib/build/lib/nabu/app/reconstruct_helical.py +0 -116
  1077. build/lib/build/lib/build/lib/build/lib/nabu/app/reduce_dark_flat.py +0 -181
  1078. build/lib/build/lib/build/lib/build/lib/nabu/app/rotate.py +0 -162
  1079. build/lib/build/lib/build/lib/build/lib/nabu/app/shrink_dataset.py +0 -98
  1080. build/lib/build/lib/build/lib/build/lib/nabu/app/stitching.py +0 -85
  1081. build/lib/build/lib/build/lib/build/lib/nabu/app/tests/test_reduce_dark_flat.py +0 -78
  1082. build/lib/build/lib/build/lib/build/lib/nabu/app/utils.py +0 -33
  1083. build/lib/build/lib/build/lib/build/lib/nabu/app/validator.py +0 -110
  1084. build/lib/build/lib/build/lib/build/lib/nabu/cuda/__init__.py +0 -0
  1085. build/lib/build/lib/build/lib/build/lib/nabu/cuda/convolution.py +0 -8
  1086. build/lib/build/lib/build/lib/build/lib/nabu/cuda/fft.py +0 -4
  1087. build/lib/build/lib/build/lib/build/lib/nabu/cuda/kernel.py +0 -97
  1088. build/lib/build/lib/build/lib/build/lib/nabu/cuda/medfilt.py +0 -6
  1089. build/lib/build/lib/build/lib/build/lib/nabu/cuda/padding.py +0 -6
  1090. build/lib/build/lib/build/lib/build/lib/nabu/cuda/processing.py +0 -75
  1091. build/lib/build/lib/build/lib/build/lib/nabu/cuda/tests/__init__.py +0 -1
  1092. build/lib/build/lib/build/lib/build/lib/nabu/cuda/utils.py +0 -331
  1093. build/lib/build/lib/build/lib/build/lib/nabu/estimation/__init__.py +0 -12
  1094. build/lib/build/lib/build/lib/build/lib/nabu/estimation/alignment.py +0 -578
  1095. build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor.py +0 -1621
  1096. build/lib/build/lib/build/lib/build/lib/nabu/estimation/cor_sino.py +0 -183
  1097. build/lib/build/lib/build/lib/build/lib/nabu/estimation/distortion.py +0 -112
  1098. build/lib/build/lib/build/lib/build/lib/nabu/estimation/focus.py +0 -362
  1099. build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/__init__.py +0 -0
  1100. build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_alignment.py +0 -70
  1101. build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_cor.py +0 -472
  1102. build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_focus.py +0 -105
  1103. build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_tilt.py +0 -41
  1104. build/lib/build/lib/build/lib/build/lib/nabu/estimation/tests/test_translation.py +0 -78
  1105. build/lib/build/lib/build/lib/build/lib/nabu/estimation/tilt.py +0 -214
  1106. build/lib/build/lib/build/lib/build/lib/nabu/estimation/translation.py +0 -193
  1107. build/lib/build/lib/build/lib/build/lib/nabu/estimation/utils.py +0 -39
  1108. build/lib/build/lib/build/lib/build/lib/nabu/io/__init__.py +0 -2
  1109. build/lib/build/lib/build/lib/build/lib/nabu/io/cast_volume.py +0 -371
  1110. build/lib/build/lib/build/lib/build/lib/nabu/io/detector_distortion.py +0 -305
  1111. build/lib/build/lib/build/lib/build/lib/nabu/io/reader.py +0 -628
  1112. build/lib/build/lib/build/lib/build/lib/nabu/io/reader_helical.py +0 -114
  1113. build/lib/build/lib/build/lib/build/lib/nabu/io/tests/__init__.py +0 -0
  1114. build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_cast_volume.py +0 -339
  1115. build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_detector_distortion.py +0 -178
  1116. build/lib/build/lib/build/lib/build/lib/nabu/io/tests/test_writers.py +0 -187
  1117. build/lib/build/lib/build/lib/build/lib/nabu/io/tiffwriter_zmm.py +0 -99
  1118. build/lib/build/lib/build/lib/build/lib/nabu/io/utils.py +0 -263
  1119. build/lib/build/lib/build/lib/build/lib/nabu/io/writer.py +0 -892
  1120. build/lib/build/lib/build/lib/build/lib/nabu/misc/__init__.py +0 -0
  1121. build/lib/build/lib/build/lib/build/lib/nabu/misc/binning.py +0 -98
  1122. build/lib/build/lib/build/lib/build/lib/nabu/misc/fftshift.py +0 -6
  1123. build/lib/build/lib/build/lib/build/lib/nabu/misc/filters.py +0 -24
  1124. build/lib/build/lib/build/lib/build/lib/nabu/misc/fourier_filters.py +0 -152
  1125. build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram.py +0 -6
  1126. build/lib/build/lib/build/lib/build/lib/nabu/misc/histogram_cuda.py +0 -8
  1127. build/lib/build/lib/build/lib/build/lib/nabu/misc/kernel_base.py +0 -4
  1128. build/lib/build/lib/build/lib/build/lib/nabu/misc/padding.py +0 -83
  1129. build/lib/build/lib/build/lib/build/lib/nabu/misc/padding_base.py +0 -6
  1130. build/lib/build/lib/build/lib/build/lib/nabu/misc/processing_base.py +0 -4
  1131. build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation.py +0 -6
  1132. build/lib/build/lib/build/lib/build/lib/nabu/misc/rotation_cuda.py +0 -6
  1133. build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/__init__.py +0 -1
  1134. build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_binning.py +0 -48
  1135. build/lib/build/lib/build/lib/build/lib/nabu/misc/tests/test_interpolation.py +0 -70
  1136. build/lib/build/lib/build/lib/build/lib/nabu/misc/transpose.py +0 -6
  1137. build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp.py +0 -4
  1138. build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_cuda.py +0 -6
  1139. build/lib/build/lib/build/lib/build/lib/nabu/misc/unsharp_opencl.py +0 -8
  1140. build/lib/build/lib/build/lib/build/lib/nabu/misc/utils.py +0 -117
  1141. build/lib/build/lib/build/lib/build/lib/nabu/opencl/__init__.py +0 -0
  1142. build/lib/build/lib/build/lib/build/lib/nabu/opencl/fft.py +0 -6
  1143. build/lib/build/lib/build/lib/build/lib/nabu/opencl/kernel.py +0 -135
  1144. build/lib/build/lib/build/lib/build/lib/nabu/opencl/memcpy.py +0 -35
  1145. build/lib/build/lib/build/lib/build/lib/nabu/opencl/padding.py +0 -6
  1146. build/lib/build/lib/build/lib/build/lib/nabu/opencl/processing.py +0 -62
  1147. build/lib/build/lib/build/lib/build/lib/nabu/opencl/tests/__init__.py +0 -0
  1148. build/lib/build/lib/build/lib/build/lib/nabu/opencl/utils.py +0 -292
  1149. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/__init__.py +0 -0
  1150. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config.py +0 -265
  1151. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/config_validators.py +0 -589
  1152. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/datadump.py +0 -164
  1153. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/dataset_validator.py +0 -211
  1154. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/detector_distortion_provider.py +0 -20
  1155. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/estimators.py +0 -1012
  1156. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fallback_utils.py +0 -149
  1157. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/__init__.py +0 -0
  1158. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked.py +0 -849
  1159. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked_cuda.py +0 -152
  1160. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/computations.py +0 -260
  1161. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/dataset_validator.py +0 -63
  1162. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/nabu_config.py +0 -590
  1163. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/processconfig.py +0 -825
  1164. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/fullfield/reconstruction.py +0 -851
  1165. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/__init__.py +0 -0
  1166. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/dataset_validator.py +0 -19
  1167. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/fbp.py +0 -147
  1168. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/filtering.py +0 -246
  1169. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/gridded_accumulator.py +0 -575
  1170. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded.py +0 -1670
  1171. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded_cuda.py +0 -119
  1172. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_reconstruction.py +0 -598
  1173. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_utils.py +0 -42
  1174. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/nabu_config.py +0 -175
  1175. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/processconfig.py +0 -62
  1176. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/span_strategy.py +0 -483
  1177. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/__init__.py +0 -0
  1178. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_accumulator.py +0 -157
  1179. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_pipeline_elements_full.py +0 -355
  1180. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_strategy.py +0 -61
  1181. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/utils.py +0 -51
  1182. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/helical/weight_balancer.py +0 -101
  1183. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/params.py +0 -163
  1184. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/processconfig.py +0 -210
  1185. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/tests/test_chunk_reader.py +0 -78
  1186. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/tests/test_estimators.py +0 -149
  1187. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/utils.py +0 -116
  1188. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/writer.py +0 -193
  1189. build/lib/build/lib/build/lib/build/lib/nabu/pipeline/xrdct/__init__.py +0 -0
  1190. build/lib/build/lib/build/lib/build/lib/nabu/preproc/__init__.py +0 -7
  1191. build/lib/build/lib/build/lib/build/lib/nabu/preproc/alignment.py +0 -11
  1192. build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd.py +0 -161
  1193. build/lib/build/lib/build/lib/build/lib/nabu/preproc/ccd_cuda.py +0 -169
  1194. build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf.py +0 -361
  1195. build/lib/build/lib/build/lib/build/lib/nabu/preproc/ctf_cuda.py +0 -142
  1196. build/lib/build/lib/build/lib/build/lib/nabu/preproc/distortion.py +0 -92
  1197. build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield.py +0 -212
  1198. build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_cuda.py +0 -174
  1199. build/lib/build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_variable_region.py +0 -68
  1200. build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield.py +0 -448
  1201. build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_cuda.py +0 -144
  1202. build/lib/build/lib/build/lib/build/lib/nabu/preproc/flatfield_variable_region.py +0 -79
  1203. build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase.py +0 -425
  1204. build/lib/build/lib/build/lib/build/lib/nabu/preproc/phase_cuda.py +0 -143
  1205. build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift.py +0 -95
  1206. build/lib/build/lib/build/lib/build/lib/nabu/preproc/shift_cuda.py +0 -102
  1207. build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/__init__.py +0 -1
  1208. build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_ccd_corr.py +0 -59
  1209. build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_ctf.py +0 -250
  1210. build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_double_flatfield.py +0 -86
  1211. build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_flatfield.py +0 -626
  1212. build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_paganin.py +0 -67
  1213. build/lib/build/lib/build/lib/build/lib/nabu/preproc/tests/test_vshift.py +0 -73
  1214. build/lib/build/lib/build/lib/build/lib/nabu/processing/__init__.py +0 -0
  1215. build/lib/build/lib/build/lib/build/lib/nabu/processing/convolution_cuda.py +0 -375
  1216. build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_base.py +0 -163
  1217. build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_cuda.py +0 -256
  1218. build/lib/build/lib/build/lib/build/lib/nabu/processing/fft_opencl.py +0 -54
  1219. build/lib/build/lib/build/lib/build/lib/nabu/processing/fftshift.py +0 -134
  1220. build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram.py +0 -286
  1221. build/lib/build/lib/build/lib/build/lib/nabu/processing/histogram_cuda.py +0 -103
  1222. build/lib/build/lib/build/lib/build/lib/nabu/processing/kernel_base.py +0 -126
  1223. build/lib/build/lib/build/lib/build/lib/nabu/processing/medfilt_cuda.py +0 -159
  1224. build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd.py +0 -29
  1225. build/lib/build/lib/build/lib/build/lib/nabu/processing/muladd_cuda.py +0 -68
  1226. build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_base.py +0 -71
  1227. build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_cuda.py +0 -75
  1228. build/lib/build/lib/build/lib/build/lib/nabu/processing/padding_opencl.py +0 -77
  1229. build/lib/build/lib/build/lib/build/lib/nabu/processing/processing_base.py +0 -123
  1230. build/lib/build/lib/build/lib/build/lib/nabu/processing/roll_opencl.py +0 -64
  1231. build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation.py +0 -63
  1232. build/lib/build/lib/build/lib/build/lib/nabu/processing/rotation_cuda.py +0 -66
  1233. build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/__init__.py +0 -0
  1234. build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fft.py +0 -268
  1235. build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_fftshift.py +0 -71
  1236. build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_histogram.py +0 -55
  1237. build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_medfilt.py +0 -77
  1238. build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_muladd.py +0 -54
  1239. build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_padding.py +0 -247
  1240. build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_roll.py +0 -63
  1241. build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_rotation.py +0 -83
  1242. build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_transpose.py +0 -72
  1243. build/lib/build/lib/build/lib/build/lib/nabu/processing/tests/test_unsharp.py +0 -106
  1244. build/lib/build/lib/build/lib/build/lib/nabu/processing/transpose.py +0 -126
  1245. build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp.py +0 -79
  1246. build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_cuda.py +0 -53
  1247. build/lib/build/lib/build/lib/build/lib/nabu/processing/unsharp_opencl.py +0 -75
  1248. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/__init__.py +0 -3
  1249. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/cone.py +0 -241
  1250. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp.py +0 -124
  1251. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_base.py +0 -391
  1252. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/fbp_opencl.py +0 -78
  1253. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering.py +0 -220
  1254. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_cuda.py +0 -103
  1255. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/filtering_opencl.py +0 -111
  1256. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/projection.py +0 -240
  1257. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor.py +0 -174
  1258. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor_cuda.py +0 -44
  1259. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings.py +0 -248
  1260. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/rings_cuda.py +0 -322
  1261. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram.py +0 -467
  1262. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_cuda.py +0 -250
  1263. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_opencl.py +0 -40
  1264. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/__init__.py +0 -1
  1265. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_cone.py +0 -308
  1266. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_deringer.py +0 -220
  1267. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_fbp.py +0 -252
  1268. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_filtering.py +0 -133
  1269. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_halftomo.py +0 -100
  1270. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_projector.py +0 -164
  1271. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_reconstructor.py +0 -93
  1272. build/lib/build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_sino_normalization.py +0 -85
  1273. build/lib/build/lib/build/lib/build/lib/nabu/resources/__init__.py +0 -0
  1274. build/lib/build/lib/build/lib/build/lib/nabu/resources/cli/__init__.py +0 -0
  1275. build/lib/build/lib/build/lib/build/lib/nabu/resources/cor.py +0 -5
  1276. build/lib/build/lib/build/lib/build/lib/nabu/resources/dataset_analyzer.py +0 -469
  1277. build/lib/build/lib/build/lib/build/lib/nabu/resources/gpu.py +0 -169
  1278. build/lib/build/lib/build/lib/build/lib/nabu/resources/logger.py +0 -130
  1279. build/lib/build/lib/build/lib/build/lib/nabu/resources/nxflatfield.py +0 -217
  1280. build/lib/build/lib/build/lib/build/lib/nabu/resources/templates/__init__.py +0 -0
  1281. build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/__init__.py +0 -0
  1282. build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_nxflatfield.py +0 -104
  1283. build/lib/build/lib/build/lib/build/lib/nabu/resources/tests/test_units.py +0 -47
  1284. build/lib/build/lib/build/lib/build/lib/nabu/resources/utils.py +0 -174
  1285. build/lib/build/lib/build/lib/build/lib/nabu/stitching/__init__.py +0 -0
  1286. build/lib/build/lib/build/lib/build/lib/nabu/stitching/alignment.py +0 -184
  1287. build/lib/build/lib/build/lib/build/lib/nabu/stitching/config.py +0 -1286
  1288. build/lib/build/lib/build/lib/build/lib/nabu/stitching/definitions.py +0 -6
  1289. build/lib/build/lib/build/lib/build/lib/nabu/stitching/frame_composition.py +0 -155
  1290. build/lib/build/lib/build/lib/build/lib/nabu/stitching/overlap.py +0 -373
  1291. build/lib/build/lib/build/lib/build/lib/nabu/stitching/sample_normalization.py +0 -60
  1292. build/lib/build/lib/build/lib/build/lib/nabu/stitching/slurm_utils.py +0 -204
  1293. build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/__init__.py +0 -0
  1294. build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_alignment.py +0 -99
  1295. build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_config.py +0 -226
  1296. build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_frame_composition.py +0 -180
  1297. build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_overlap.py +0 -98
  1298. build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_sample_normalization.py +0 -49
  1299. build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_slurm_utils.py +0 -146
  1300. build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_utils.py +0 -21
  1301. build/lib/build/lib/build/lib/build/lib/nabu/stitching/tests/test_z_stitching.py +0 -1183
  1302. build/lib/build/lib/build/lib/build/lib/nabu/stitching/utils.py +0 -563
  1303. build/lib/build/lib/build/lib/build/lib/nabu/stitching/z_stitching.py +0 -2279
  1304. build/lib/build/lib/build/lib/build/lib/nabu/tests.py +0 -51
  1305. build/lib/build/lib/build/lib/build/lib/nabu/testutils.py +0 -375
  1306. build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/__init__.py +0 -0
  1307. build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/algotom_convert_sino.py +0 -276
  1308. build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/pore3d_deringer_munch.py +0 -108
  1309. build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomocupy_remove_stripe.py +0 -586
  1310. build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomopy_phase.py +0 -239
  1311. build/lib/build/lib/build/lib/build/lib/nabu/thirdparty/tomwer_load_flats_darks.py +0 -162
  1312. build/lib/build/lib/build/lib/build/lib/nabu/utils.py +0 -836
  1313. build/lib/build/lib/build/lib/doc/conf.py +0 -137
  1314. build/lib/build/lib/build/lib/doc/create_conf_doc.py +0 -38
  1315. build/lib/build/lib/build/lib/doc/get_mathjax.py +0 -34
  1316. build/lib/build/lib/build/lib/nabu/__init__.py +0 -17
  1317. build/lib/build/lib/build/lib/nabu/app/__init__.py +0 -0
  1318. build/lib/build/lib/build/lib/nabu/app/bootstrap.py +0 -88
  1319. build/lib/build/lib/build/lib/nabu/app/bootstrap_stitching.py +0 -69
  1320. build/lib/build/lib/build/lib/nabu/app/cast_volume.py +0 -272
  1321. build/lib/build/lib/build/lib/nabu/app/cli_configs.py +0 -626
  1322. build/lib/build/lib/build/lib/nabu/app/compare_volumes.py +0 -94
  1323. build/lib/build/lib/build/lib/nabu/app/composite_cor.py +0 -144
  1324. build/lib/build/lib/build/lib/nabu/app/correct_rot.py +0 -70
  1325. build/lib/build/lib/build/lib/nabu/app/create_distortion_map_from_poly.py +0 -153
  1326. build/lib/build/lib/build/lib/nabu/app/diag_to_pix.py +0 -358
  1327. build/lib/build/lib/build/lib/nabu/app/diag_to_rot.py +0 -449
  1328. build/lib/build/lib/build/lib/nabu/app/double_flatfield.py +0 -143
  1329. build/lib/build/lib/build/lib/nabu/app/generate_header.py +0 -261
  1330. build/lib/build/lib/build/lib/nabu/app/histogram.py +0 -197
  1331. build/lib/build/lib/build/lib/nabu/app/multicor.py +0 -90
  1332. build/lib/build/lib/build/lib/nabu/app/nx_z_splitter.py +0 -125
  1333. build/lib/build/lib/build/lib/nabu/app/parse_reconstruction_log.py +0 -151
  1334. build/lib/build/lib/build/lib/nabu/app/prepare_weights_double.py +0 -163
  1335. build/lib/build/lib/build/lib/nabu/app/reconstruct.py +0 -120
  1336. build/lib/build/lib/build/lib/nabu/app/reconstruct_helical.py +0 -116
  1337. build/lib/build/lib/build/lib/nabu/app/reduce_dark_flat.py +0 -181
  1338. build/lib/build/lib/build/lib/nabu/app/rotate.py +0 -162
  1339. build/lib/build/lib/build/lib/nabu/app/shrink_dataset.py +0 -98
  1340. build/lib/build/lib/build/lib/nabu/app/stitching.py +0 -85
  1341. build/lib/build/lib/build/lib/nabu/app/tests/test_reduce_dark_flat.py +0 -78
  1342. build/lib/build/lib/build/lib/nabu/app/utils.py +0 -33
  1343. build/lib/build/lib/build/lib/nabu/app/validator.py +0 -110
  1344. build/lib/build/lib/build/lib/nabu/cuda/__init__.py +0 -0
  1345. build/lib/build/lib/build/lib/nabu/cuda/convolution.py +0 -8
  1346. build/lib/build/lib/build/lib/nabu/cuda/fft.py +0 -4
  1347. build/lib/build/lib/build/lib/nabu/cuda/kernel.py +0 -97
  1348. build/lib/build/lib/build/lib/nabu/cuda/medfilt.py +0 -6
  1349. build/lib/build/lib/build/lib/nabu/cuda/padding.py +0 -6
  1350. build/lib/build/lib/build/lib/nabu/cuda/processing.py +0 -75
  1351. build/lib/build/lib/build/lib/nabu/cuda/tests/__init__.py +0 -1
  1352. build/lib/build/lib/build/lib/nabu/cuda/utils.py +0 -331
  1353. build/lib/build/lib/build/lib/nabu/estimation/__init__.py +0 -12
  1354. build/lib/build/lib/build/lib/nabu/estimation/alignment.py +0 -578
  1355. build/lib/build/lib/build/lib/nabu/estimation/cor.py +0 -1621
  1356. build/lib/build/lib/build/lib/nabu/estimation/cor_sino.py +0 -183
  1357. build/lib/build/lib/build/lib/nabu/estimation/distortion.py +0 -112
  1358. build/lib/build/lib/build/lib/nabu/estimation/focus.py +0 -362
  1359. build/lib/build/lib/build/lib/nabu/estimation/tests/__init__.py +0 -0
  1360. build/lib/build/lib/build/lib/nabu/estimation/tests/test_alignment.py +0 -70
  1361. build/lib/build/lib/build/lib/nabu/estimation/tests/test_cor.py +0 -472
  1362. build/lib/build/lib/build/lib/nabu/estimation/tests/test_focus.py +0 -105
  1363. build/lib/build/lib/build/lib/nabu/estimation/tests/test_tilt.py +0 -41
  1364. build/lib/build/lib/build/lib/nabu/estimation/tests/test_translation.py +0 -78
  1365. build/lib/build/lib/build/lib/nabu/estimation/tilt.py +0 -214
  1366. build/lib/build/lib/build/lib/nabu/estimation/translation.py +0 -193
  1367. build/lib/build/lib/build/lib/nabu/estimation/utils.py +0 -39
  1368. build/lib/build/lib/build/lib/nabu/io/__init__.py +0 -2
  1369. build/lib/build/lib/build/lib/nabu/io/cast_volume.py +0 -371
  1370. build/lib/build/lib/build/lib/nabu/io/detector_distortion.py +0 -305
  1371. build/lib/build/lib/build/lib/nabu/io/reader.py +0 -628
  1372. build/lib/build/lib/build/lib/nabu/io/reader_helical.py +0 -114
  1373. build/lib/build/lib/build/lib/nabu/io/tests/__init__.py +0 -0
  1374. build/lib/build/lib/build/lib/nabu/io/tests/test_cast_volume.py +0 -339
  1375. build/lib/build/lib/build/lib/nabu/io/tests/test_detector_distortion.py +0 -178
  1376. build/lib/build/lib/build/lib/nabu/io/tests/test_writers.py +0 -187
  1377. build/lib/build/lib/build/lib/nabu/io/tiffwriter_zmm.py +0 -99
  1378. build/lib/build/lib/build/lib/nabu/io/utils.py +0 -263
  1379. build/lib/build/lib/build/lib/nabu/io/writer.py +0 -892
  1380. build/lib/build/lib/build/lib/nabu/misc/__init__.py +0 -0
  1381. build/lib/build/lib/build/lib/nabu/misc/binning.py +0 -98
  1382. build/lib/build/lib/build/lib/nabu/misc/fftshift.py +0 -6
  1383. build/lib/build/lib/build/lib/nabu/misc/filters.py +0 -24
  1384. build/lib/build/lib/build/lib/nabu/misc/fourier_filters.py +0 -152
  1385. build/lib/build/lib/build/lib/nabu/misc/histogram.py +0 -6
  1386. build/lib/build/lib/build/lib/nabu/misc/histogram_cuda.py +0 -8
  1387. build/lib/build/lib/build/lib/nabu/misc/kernel_base.py +0 -4
  1388. build/lib/build/lib/build/lib/nabu/misc/padding.py +0 -83
  1389. build/lib/build/lib/build/lib/nabu/misc/padding_base.py +0 -6
  1390. build/lib/build/lib/build/lib/nabu/misc/processing_base.py +0 -4
  1391. build/lib/build/lib/build/lib/nabu/misc/rotation.py +0 -6
  1392. build/lib/build/lib/build/lib/nabu/misc/rotation_cuda.py +0 -6
  1393. build/lib/build/lib/build/lib/nabu/misc/tests/__init__.py +0 -1
  1394. build/lib/build/lib/build/lib/nabu/misc/tests/test_binning.py +0 -48
  1395. build/lib/build/lib/build/lib/nabu/misc/tests/test_interpolation.py +0 -70
  1396. build/lib/build/lib/build/lib/nabu/misc/transpose.py +0 -6
  1397. build/lib/build/lib/build/lib/nabu/misc/unsharp.py +0 -4
  1398. build/lib/build/lib/build/lib/nabu/misc/unsharp_cuda.py +0 -6
  1399. build/lib/build/lib/build/lib/nabu/misc/unsharp_opencl.py +0 -8
  1400. build/lib/build/lib/build/lib/nabu/misc/utils.py +0 -117
  1401. build/lib/build/lib/build/lib/nabu/opencl/__init__.py +0 -0
  1402. build/lib/build/lib/build/lib/nabu/opencl/fft.py +0 -6
  1403. build/lib/build/lib/build/lib/nabu/opencl/kernel.py +0 -135
  1404. build/lib/build/lib/build/lib/nabu/opencl/memcpy.py +0 -35
  1405. build/lib/build/lib/build/lib/nabu/opencl/padding.py +0 -6
  1406. build/lib/build/lib/build/lib/nabu/opencl/processing.py +0 -62
  1407. build/lib/build/lib/build/lib/nabu/opencl/tests/__init__.py +0 -0
  1408. build/lib/build/lib/build/lib/nabu/opencl/utils.py +0 -292
  1409. build/lib/build/lib/build/lib/nabu/pipeline/__init__.py +0 -0
  1410. build/lib/build/lib/build/lib/nabu/pipeline/config.py +0 -265
  1411. build/lib/build/lib/build/lib/nabu/pipeline/config_validators.py +0 -589
  1412. build/lib/build/lib/build/lib/nabu/pipeline/datadump.py +0 -164
  1413. build/lib/build/lib/build/lib/nabu/pipeline/dataset_validator.py +0 -211
  1414. build/lib/build/lib/build/lib/nabu/pipeline/detector_distortion_provider.py +0 -20
  1415. build/lib/build/lib/build/lib/nabu/pipeline/estimators.py +0 -1012
  1416. build/lib/build/lib/build/lib/nabu/pipeline/fallback_utils.py +0 -149
  1417. build/lib/build/lib/build/lib/nabu/pipeline/fullfield/__init__.py +0 -0
  1418. build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked.py +0 -849
  1419. build/lib/build/lib/build/lib/nabu/pipeline/fullfield/chunked_cuda.py +0 -152
  1420. build/lib/build/lib/build/lib/nabu/pipeline/fullfield/computations.py +0 -260
  1421. build/lib/build/lib/build/lib/nabu/pipeline/fullfield/dataset_validator.py +0 -63
  1422. build/lib/build/lib/build/lib/nabu/pipeline/fullfield/nabu_config.py +0 -590
  1423. build/lib/build/lib/build/lib/nabu/pipeline/fullfield/processconfig.py +0 -825
  1424. build/lib/build/lib/build/lib/nabu/pipeline/fullfield/reconstruction.py +0 -851
  1425. build/lib/build/lib/build/lib/nabu/pipeline/helical/__init__.py +0 -0
  1426. build/lib/build/lib/build/lib/nabu/pipeline/helical/dataset_validator.py +0 -19
  1427. build/lib/build/lib/build/lib/nabu/pipeline/helical/fbp.py +0 -147
  1428. build/lib/build/lib/build/lib/nabu/pipeline/helical/filtering.py +0 -246
  1429. build/lib/build/lib/build/lib/nabu/pipeline/helical/gridded_accumulator.py +0 -575
  1430. build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded.py +0 -1670
  1431. build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded_cuda.py +0 -119
  1432. build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_reconstruction.py +0 -598
  1433. build/lib/build/lib/build/lib/nabu/pipeline/helical/helical_utils.py +0 -42
  1434. build/lib/build/lib/build/lib/nabu/pipeline/helical/nabu_config.py +0 -175
  1435. build/lib/build/lib/build/lib/nabu/pipeline/helical/processconfig.py +0 -62
  1436. build/lib/build/lib/build/lib/nabu/pipeline/helical/span_strategy.py +0 -483
  1437. build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/__init__.py +0 -0
  1438. build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_accumulator.py +0 -157
  1439. build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_pipeline_elements_full.py +0 -355
  1440. build/lib/build/lib/build/lib/nabu/pipeline/helical/tests/test_strategy.py +0 -61
  1441. build/lib/build/lib/build/lib/nabu/pipeline/helical/utils.py +0 -51
  1442. build/lib/build/lib/build/lib/nabu/pipeline/helical/weight_balancer.py +0 -101
  1443. build/lib/build/lib/build/lib/nabu/pipeline/params.py +0 -163
  1444. build/lib/build/lib/build/lib/nabu/pipeline/processconfig.py +0 -210
  1445. build/lib/build/lib/build/lib/nabu/pipeline/tests/test_chunk_reader.py +0 -78
  1446. build/lib/build/lib/build/lib/nabu/pipeline/tests/test_estimators.py +0 -149
  1447. build/lib/build/lib/build/lib/nabu/pipeline/utils.py +0 -116
  1448. build/lib/build/lib/build/lib/nabu/pipeline/writer.py +0 -193
  1449. build/lib/build/lib/build/lib/nabu/pipeline/xrdct/__init__.py +0 -0
  1450. build/lib/build/lib/build/lib/nabu/preproc/__init__.py +0 -7
  1451. build/lib/build/lib/build/lib/nabu/preproc/alignment.py +0 -11
  1452. build/lib/build/lib/build/lib/nabu/preproc/ccd.py +0 -161
  1453. build/lib/build/lib/build/lib/nabu/preproc/ccd_cuda.py +0 -169
  1454. build/lib/build/lib/build/lib/nabu/preproc/ctf.py +0 -361
  1455. build/lib/build/lib/build/lib/nabu/preproc/ctf_cuda.py +0 -142
  1456. build/lib/build/lib/build/lib/nabu/preproc/distortion.py +0 -92
  1457. build/lib/build/lib/build/lib/nabu/preproc/double_flatfield.py +0 -212
  1458. build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_cuda.py +0 -174
  1459. build/lib/build/lib/build/lib/nabu/preproc/double_flatfield_variable_region.py +0 -68
  1460. build/lib/build/lib/build/lib/nabu/preproc/flatfield.py +0 -448
  1461. build/lib/build/lib/build/lib/nabu/preproc/flatfield_cuda.py +0 -144
  1462. build/lib/build/lib/build/lib/nabu/preproc/flatfield_variable_region.py +0 -79
  1463. build/lib/build/lib/build/lib/nabu/preproc/phase.py +0 -425
  1464. build/lib/build/lib/build/lib/nabu/preproc/phase_cuda.py +0 -143
  1465. build/lib/build/lib/build/lib/nabu/preproc/shift.py +0 -95
  1466. build/lib/build/lib/build/lib/nabu/preproc/shift_cuda.py +0 -102
  1467. build/lib/build/lib/build/lib/nabu/preproc/tests/__init__.py +0 -1
  1468. build/lib/build/lib/build/lib/nabu/preproc/tests/test_ccd_corr.py +0 -59
  1469. build/lib/build/lib/build/lib/nabu/preproc/tests/test_ctf.py +0 -250
  1470. build/lib/build/lib/build/lib/nabu/preproc/tests/test_double_flatfield.py +0 -86
  1471. build/lib/build/lib/build/lib/nabu/preproc/tests/test_flatfield.py +0 -626
  1472. build/lib/build/lib/build/lib/nabu/preproc/tests/test_paganin.py +0 -67
  1473. build/lib/build/lib/build/lib/nabu/preproc/tests/test_vshift.py +0 -73
  1474. build/lib/build/lib/build/lib/nabu/processing/__init__.py +0 -0
  1475. build/lib/build/lib/build/lib/nabu/processing/convolution_cuda.py +0 -375
  1476. build/lib/build/lib/build/lib/nabu/processing/fft_base.py +0 -163
  1477. build/lib/build/lib/build/lib/nabu/processing/fft_cuda.py +0 -256
  1478. build/lib/build/lib/build/lib/nabu/processing/fft_opencl.py +0 -54
  1479. build/lib/build/lib/build/lib/nabu/processing/fftshift.py +0 -134
  1480. build/lib/build/lib/build/lib/nabu/processing/histogram.py +0 -286
  1481. build/lib/build/lib/build/lib/nabu/processing/histogram_cuda.py +0 -103
  1482. build/lib/build/lib/build/lib/nabu/processing/kernel_base.py +0 -126
  1483. build/lib/build/lib/build/lib/nabu/processing/medfilt_cuda.py +0 -159
  1484. build/lib/build/lib/build/lib/nabu/processing/muladd.py +0 -29
  1485. build/lib/build/lib/build/lib/nabu/processing/muladd_cuda.py +0 -68
  1486. build/lib/build/lib/build/lib/nabu/processing/padding_base.py +0 -71
  1487. build/lib/build/lib/build/lib/nabu/processing/padding_cuda.py +0 -75
  1488. build/lib/build/lib/build/lib/nabu/processing/padding_opencl.py +0 -77
  1489. build/lib/build/lib/build/lib/nabu/processing/processing_base.py +0 -123
  1490. build/lib/build/lib/build/lib/nabu/processing/roll_opencl.py +0 -64
  1491. build/lib/build/lib/build/lib/nabu/processing/rotation.py +0 -63
  1492. build/lib/build/lib/build/lib/nabu/processing/rotation_cuda.py +0 -66
  1493. build/lib/build/lib/build/lib/nabu/processing/tests/__init__.py +0 -0
  1494. build/lib/build/lib/build/lib/nabu/processing/tests/test_fft.py +0 -268
  1495. build/lib/build/lib/build/lib/nabu/processing/tests/test_fftshift.py +0 -71
  1496. build/lib/build/lib/build/lib/nabu/processing/tests/test_histogram.py +0 -55
  1497. build/lib/build/lib/build/lib/nabu/processing/tests/test_medfilt.py +0 -77
  1498. build/lib/build/lib/build/lib/nabu/processing/tests/test_muladd.py +0 -54
  1499. build/lib/build/lib/build/lib/nabu/processing/tests/test_padding.py +0 -247
  1500. build/lib/build/lib/build/lib/nabu/processing/tests/test_roll.py +0 -63
  1501. build/lib/build/lib/build/lib/nabu/processing/tests/test_rotation.py +0 -83
  1502. build/lib/build/lib/build/lib/nabu/processing/tests/test_transpose.py +0 -72
  1503. build/lib/build/lib/build/lib/nabu/processing/tests/test_unsharp.py +0 -106
  1504. build/lib/build/lib/build/lib/nabu/processing/transpose.py +0 -126
  1505. build/lib/build/lib/build/lib/nabu/processing/unsharp.py +0 -79
  1506. build/lib/build/lib/build/lib/nabu/processing/unsharp_cuda.py +0 -53
  1507. build/lib/build/lib/build/lib/nabu/processing/unsharp_opencl.py +0 -75
  1508. build/lib/build/lib/build/lib/nabu/reconstruction/__init__.py +0 -3
  1509. build/lib/build/lib/build/lib/nabu/reconstruction/cone.py +0 -241
  1510. build/lib/build/lib/build/lib/nabu/reconstruction/fbp.py +0 -124
  1511. build/lib/build/lib/build/lib/nabu/reconstruction/fbp_base.py +0 -391
  1512. build/lib/build/lib/build/lib/nabu/reconstruction/fbp_opencl.py +0 -78
  1513. build/lib/build/lib/build/lib/nabu/reconstruction/filtering.py +0 -220
  1514. build/lib/build/lib/build/lib/nabu/reconstruction/filtering_cuda.py +0 -103
  1515. build/lib/build/lib/build/lib/nabu/reconstruction/filtering_opencl.py +0 -111
  1516. build/lib/build/lib/build/lib/nabu/reconstruction/projection.py +0 -240
  1517. build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor.py +0 -174
  1518. build/lib/build/lib/build/lib/nabu/reconstruction/reconstructor_cuda.py +0 -44
  1519. build/lib/build/lib/build/lib/nabu/reconstruction/rings.py +0 -248
  1520. build/lib/build/lib/build/lib/nabu/reconstruction/rings_cuda.py +0 -322
  1521. build/lib/build/lib/build/lib/nabu/reconstruction/sinogram.py +0 -467
  1522. build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_cuda.py +0 -250
  1523. build/lib/build/lib/build/lib/nabu/reconstruction/sinogram_opencl.py +0 -40
  1524. build/lib/build/lib/build/lib/nabu/reconstruction/tests/__init__.py +0 -1
  1525. build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_cone.py +0 -308
  1526. build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_deringer.py +0 -220
  1527. build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_fbp.py +0 -252
  1528. build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_filtering.py +0 -133
  1529. build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_halftomo.py +0 -100
  1530. build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_projector.py +0 -164
  1531. build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_reconstructor.py +0 -93
  1532. build/lib/build/lib/build/lib/nabu/reconstruction/tests/test_sino_normalization.py +0 -85
  1533. build/lib/build/lib/build/lib/nabu/resources/__init__.py +0 -0
  1534. build/lib/build/lib/build/lib/nabu/resources/cli/__init__.py +0 -0
  1535. build/lib/build/lib/build/lib/nabu/resources/cor.py +0 -5
  1536. build/lib/build/lib/build/lib/nabu/resources/dataset_analyzer.py +0 -469
  1537. build/lib/build/lib/build/lib/nabu/resources/gpu.py +0 -169
  1538. build/lib/build/lib/build/lib/nabu/resources/logger.py +0 -130
  1539. build/lib/build/lib/build/lib/nabu/resources/nxflatfield.py +0 -217
  1540. build/lib/build/lib/build/lib/nabu/resources/templates/__init__.py +0 -0
  1541. build/lib/build/lib/build/lib/nabu/resources/tests/__init__.py +0 -0
  1542. build/lib/build/lib/build/lib/nabu/resources/tests/test_nxflatfield.py +0 -104
  1543. build/lib/build/lib/build/lib/nabu/resources/tests/test_units.py +0 -47
  1544. build/lib/build/lib/build/lib/nabu/resources/utils.py +0 -174
  1545. build/lib/build/lib/build/lib/nabu/stitching/__init__.py +0 -0
  1546. build/lib/build/lib/build/lib/nabu/stitching/alignment.py +0 -184
  1547. build/lib/build/lib/build/lib/nabu/stitching/config.py +0 -1286
  1548. build/lib/build/lib/build/lib/nabu/stitching/definitions.py +0 -6
  1549. build/lib/build/lib/build/lib/nabu/stitching/frame_composition.py +0 -155
  1550. build/lib/build/lib/build/lib/nabu/stitching/overlap.py +0 -373
  1551. build/lib/build/lib/build/lib/nabu/stitching/sample_normalization.py +0 -60
  1552. build/lib/build/lib/build/lib/nabu/stitching/slurm_utils.py +0 -204
  1553. build/lib/build/lib/build/lib/nabu/stitching/tests/__init__.py +0 -0
  1554. build/lib/build/lib/build/lib/nabu/stitching/tests/test_alignment.py +0 -99
  1555. build/lib/build/lib/build/lib/nabu/stitching/tests/test_config.py +0 -226
  1556. build/lib/build/lib/build/lib/nabu/stitching/tests/test_frame_composition.py +0 -180
  1557. build/lib/build/lib/build/lib/nabu/stitching/tests/test_overlap.py +0 -98
  1558. build/lib/build/lib/build/lib/nabu/stitching/tests/test_sample_normalization.py +0 -49
  1559. build/lib/build/lib/build/lib/nabu/stitching/tests/test_slurm_utils.py +0 -146
  1560. build/lib/build/lib/build/lib/nabu/stitching/tests/test_utils.py +0 -21
  1561. build/lib/build/lib/build/lib/nabu/stitching/tests/test_z_stitching.py +0 -1183
  1562. build/lib/build/lib/build/lib/nabu/stitching/utils.py +0 -563
  1563. build/lib/build/lib/build/lib/nabu/stitching/z_stitching.py +0 -2279
  1564. build/lib/build/lib/build/lib/nabu/tests.py +0 -51
  1565. build/lib/build/lib/build/lib/nabu/testutils.py +0 -375
  1566. build/lib/build/lib/build/lib/nabu/thirdparty/__init__.py +0 -0
  1567. build/lib/build/lib/build/lib/nabu/thirdparty/algotom_convert_sino.py +0 -276
  1568. build/lib/build/lib/build/lib/nabu/thirdparty/pore3d_deringer_munch.py +0 -108
  1569. build/lib/build/lib/build/lib/nabu/thirdparty/tomocupy_remove_stripe.py +0 -586
  1570. build/lib/build/lib/build/lib/nabu/thirdparty/tomopy_phase.py +0 -239
  1571. build/lib/build/lib/build/lib/nabu/thirdparty/tomwer_load_flats_darks.py +0 -162
  1572. build/lib/build/lib/build/lib/nabu/utils.py +0 -836
  1573. build/lib/build/lib/doc/conf.py +0 -137
  1574. build/lib/build/lib/doc/create_conf_doc.py +0 -38
  1575. build/lib/build/lib/doc/get_mathjax.py +0 -34
  1576. build/lib/build/lib/nabu/__init__.py +0 -17
  1577. build/lib/build/lib/nabu/app/__init__.py +0 -0
  1578. build/lib/build/lib/nabu/app/bootstrap.py +0 -88
  1579. build/lib/build/lib/nabu/app/bootstrap_stitching.py +0 -69
  1580. build/lib/build/lib/nabu/app/cast_volume.py +0 -272
  1581. build/lib/build/lib/nabu/app/cli_configs.py +0 -626
  1582. build/lib/build/lib/nabu/app/compare_volumes.py +0 -94
  1583. build/lib/build/lib/nabu/app/composite_cor.py +0 -144
  1584. build/lib/build/lib/nabu/app/correct_rot.py +0 -70
  1585. build/lib/build/lib/nabu/app/create_distortion_map_from_poly.py +0 -153
  1586. build/lib/build/lib/nabu/app/diag_to_pix.py +0 -358
  1587. build/lib/build/lib/nabu/app/diag_to_rot.py +0 -449
  1588. build/lib/build/lib/nabu/app/double_flatfield.py +0 -143
  1589. build/lib/build/lib/nabu/app/generate_header.py +0 -261
  1590. build/lib/build/lib/nabu/app/histogram.py +0 -197
  1591. build/lib/build/lib/nabu/app/multicor.py +0 -90
  1592. build/lib/build/lib/nabu/app/nx_z_splitter.py +0 -125
  1593. build/lib/build/lib/nabu/app/parse_reconstruction_log.py +0 -151
  1594. build/lib/build/lib/nabu/app/prepare_weights_double.py +0 -163
  1595. build/lib/build/lib/nabu/app/reconstruct.py +0 -120
  1596. build/lib/build/lib/nabu/app/reconstruct_helical.py +0 -116
  1597. build/lib/build/lib/nabu/app/reduce_dark_flat.py +0 -181
  1598. build/lib/build/lib/nabu/app/rotate.py +0 -162
  1599. build/lib/build/lib/nabu/app/shrink_dataset.py +0 -98
  1600. build/lib/build/lib/nabu/app/stitching.py +0 -85
  1601. build/lib/build/lib/nabu/app/tests/test_reduce_dark_flat.py +0 -78
  1602. build/lib/build/lib/nabu/app/utils.py +0 -33
  1603. build/lib/build/lib/nabu/app/validator.py +0 -110
  1604. build/lib/build/lib/nabu/cuda/__init__.py +0 -0
  1605. build/lib/build/lib/nabu/cuda/convolution.py +0 -8
  1606. build/lib/build/lib/nabu/cuda/fft.py +0 -4
  1607. build/lib/build/lib/nabu/cuda/kernel.py +0 -97
  1608. build/lib/build/lib/nabu/cuda/medfilt.py +0 -6
  1609. build/lib/build/lib/nabu/cuda/padding.py +0 -6
  1610. build/lib/build/lib/nabu/cuda/processing.py +0 -75
  1611. build/lib/build/lib/nabu/cuda/tests/__init__.py +0 -1
  1612. build/lib/build/lib/nabu/cuda/utils.py +0 -331
  1613. build/lib/build/lib/nabu/estimation/__init__.py +0 -12
  1614. build/lib/build/lib/nabu/estimation/alignment.py +0 -578
  1615. build/lib/build/lib/nabu/estimation/cor.py +0 -1621
  1616. build/lib/build/lib/nabu/estimation/cor_sino.py +0 -183
  1617. build/lib/build/lib/nabu/estimation/distortion.py +0 -112
  1618. build/lib/build/lib/nabu/estimation/focus.py +0 -362
  1619. build/lib/build/lib/nabu/estimation/tests/__init__.py +0 -0
  1620. build/lib/build/lib/nabu/estimation/tests/test_alignment.py +0 -70
  1621. build/lib/build/lib/nabu/estimation/tests/test_cor.py +0 -472
  1622. build/lib/build/lib/nabu/estimation/tests/test_focus.py +0 -105
  1623. build/lib/build/lib/nabu/estimation/tests/test_tilt.py +0 -41
  1624. build/lib/build/lib/nabu/estimation/tests/test_translation.py +0 -78
  1625. build/lib/build/lib/nabu/estimation/tilt.py +0 -214
  1626. build/lib/build/lib/nabu/estimation/translation.py +0 -193
  1627. build/lib/build/lib/nabu/estimation/utils.py +0 -39
  1628. build/lib/build/lib/nabu/io/__init__.py +0 -2
  1629. build/lib/build/lib/nabu/io/cast_volume.py +0 -371
  1630. build/lib/build/lib/nabu/io/detector_distortion.py +0 -305
  1631. build/lib/build/lib/nabu/io/reader.py +0 -628
  1632. build/lib/build/lib/nabu/io/reader_helical.py +0 -114
  1633. build/lib/build/lib/nabu/io/tests/__init__.py +0 -0
  1634. build/lib/build/lib/nabu/io/tests/test_cast_volume.py +0 -339
  1635. build/lib/build/lib/nabu/io/tests/test_detector_distortion.py +0 -178
  1636. build/lib/build/lib/nabu/io/tests/test_writers.py +0 -187
  1637. build/lib/build/lib/nabu/io/tiffwriter_zmm.py +0 -99
  1638. build/lib/build/lib/nabu/io/utils.py +0 -263
  1639. build/lib/build/lib/nabu/io/writer.py +0 -892
  1640. build/lib/build/lib/nabu/misc/__init__.py +0 -0
  1641. build/lib/build/lib/nabu/misc/binning.py +0 -98
  1642. build/lib/build/lib/nabu/misc/fftshift.py +0 -6
  1643. build/lib/build/lib/nabu/misc/filters.py +0 -24
  1644. build/lib/build/lib/nabu/misc/fourier_filters.py +0 -152
  1645. build/lib/build/lib/nabu/misc/histogram.py +0 -6
  1646. build/lib/build/lib/nabu/misc/histogram_cuda.py +0 -8
  1647. build/lib/build/lib/nabu/misc/kernel_base.py +0 -4
  1648. build/lib/build/lib/nabu/misc/padding.py +0 -83
  1649. build/lib/build/lib/nabu/misc/padding_base.py +0 -6
  1650. build/lib/build/lib/nabu/misc/processing_base.py +0 -4
  1651. build/lib/build/lib/nabu/misc/rotation.py +0 -6
  1652. build/lib/build/lib/nabu/misc/rotation_cuda.py +0 -6
  1653. build/lib/build/lib/nabu/misc/tests/__init__.py +0 -1
  1654. build/lib/build/lib/nabu/misc/tests/test_binning.py +0 -48
  1655. build/lib/build/lib/nabu/misc/tests/test_interpolation.py +0 -70
  1656. build/lib/build/lib/nabu/misc/transpose.py +0 -6
  1657. build/lib/build/lib/nabu/misc/unsharp.py +0 -4
  1658. build/lib/build/lib/nabu/misc/unsharp_cuda.py +0 -6
  1659. build/lib/build/lib/nabu/misc/unsharp_opencl.py +0 -8
  1660. build/lib/build/lib/nabu/misc/utils.py +0 -117
  1661. build/lib/build/lib/nabu/opencl/__init__.py +0 -0
  1662. build/lib/build/lib/nabu/opencl/fft.py +0 -6
  1663. build/lib/build/lib/nabu/opencl/kernel.py +0 -135
  1664. build/lib/build/lib/nabu/opencl/memcpy.py +0 -35
  1665. build/lib/build/lib/nabu/opencl/padding.py +0 -6
  1666. build/lib/build/lib/nabu/opencl/processing.py +0 -62
  1667. build/lib/build/lib/nabu/opencl/tests/__init__.py +0 -0
  1668. build/lib/build/lib/nabu/opencl/utils.py +0 -292
  1669. build/lib/build/lib/nabu/pipeline/__init__.py +0 -0
  1670. build/lib/build/lib/nabu/pipeline/config.py +0 -265
  1671. build/lib/build/lib/nabu/pipeline/config_validators.py +0 -589
  1672. build/lib/build/lib/nabu/pipeline/datadump.py +0 -164
  1673. build/lib/build/lib/nabu/pipeline/dataset_validator.py +0 -211
  1674. build/lib/build/lib/nabu/pipeline/detector_distortion_provider.py +0 -20
  1675. build/lib/build/lib/nabu/pipeline/estimators.py +0 -1012
  1676. build/lib/build/lib/nabu/pipeline/fallback_utils.py +0 -149
  1677. build/lib/build/lib/nabu/pipeline/fullfield/__init__.py +0 -0
  1678. build/lib/build/lib/nabu/pipeline/fullfield/chunked.py +0 -849
  1679. build/lib/build/lib/nabu/pipeline/fullfield/chunked_cuda.py +0 -152
  1680. build/lib/build/lib/nabu/pipeline/fullfield/computations.py +0 -260
  1681. build/lib/build/lib/nabu/pipeline/fullfield/dataset_validator.py +0 -63
  1682. build/lib/build/lib/nabu/pipeline/fullfield/nabu_config.py +0 -590
  1683. build/lib/build/lib/nabu/pipeline/fullfield/processconfig.py +0 -825
  1684. build/lib/build/lib/nabu/pipeline/fullfield/reconstruction.py +0 -851
  1685. build/lib/build/lib/nabu/pipeline/helical/__init__.py +0 -0
  1686. build/lib/build/lib/nabu/pipeline/helical/dataset_validator.py +0 -19
  1687. build/lib/build/lib/nabu/pipeline/helical/fbp.py +0 -147
  1688. build/lib/build/lib/nabu/pipeline/helical/filtering.py +0 -246
  1689. build/lib/build/lib/nabu/pipeline/helical/gridded_accumulator.py +0 -575
  1690. build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded.py +0 -1670
  1691. build/lib/build/lib/nabu/pipeline/helical/helical_chunked_regridded_cuda.py +0 -119
  1692. build/lib/build/lib/nabu/pipeline/helical/helical_reconstruction.py +0 -598
  1693. build/lib/build/lib/nabu/pipeline/helical/helical_utils.py +0 -42
  1694. build/lib/build/lib/nabu/pipeline/helical/nabu_config.py +0 -175
  1695. build/lib/build/lib/nabu/pipeline/helical/processconfig.py +0 -62
  1696. build/lib/build/lib/nabu/pipeline/helical/span_strategy.py +0 -483
  1697. build/lib/build/lib/nabu/pipeline/helical/tests/__init__.py +0 -0
  1698. build/lib/build/lib/nabu/pipeline/helical/tests/test_accumulator.py +0 -157
  1699. build/lib/build/lib/nabu/pipeline/helical/tests/test_pipeline_elements_full.py +0 -355
  1700. build/lib/build/lib/nabu/pipeline/helical/tests/test_strategy.py +0 -61
  1701. build/lib/build/lib/nabu/pipeline/helical/utils.py +0 -51
  1702. build/lib/build/lib/nabu/pipeline/helical/weight_balancer.py +0 -101
  1703. build/lib/build/lib/nabu/pipeline/params.py +0 -163
  1704. build/lib/build/lib/nabu/pipeline/processconfig.py +0 -210
  1705. build/lib/build/lib/nabu/pipeline/tests/test_chunk_reader.py +0 -78
  1706. build/lib/build/lib/nabu/pipeline/tests/test_estimators.py +0 -149
  1707. build/lib/build/lib/nabu/pipeline/utils.py +0 -116
  1708. build/lib/build/lib/nabu/pipeline/writer.py +0 -193
  1709. build/lib/build/lib/nabu/pipeline/xrdct/__init__.py +0 -0
  1710. build/lib/build/lib/nabu/preproc/__init__.py +0 -7
  1711. build/lib/build/lib/nabu/preproc/alignment.py +0 -11
  1712. build/lib/build/lib/nabu/preproc/ccd.py +0 -161
  1713. build/lib/build/lib/nabu/preproc/ccd_cuda.py +0 -169
  1714. build/lib/build/lib/nabu/preproc/ctf.py +0 -361
  1715. build/lib/build/lib/nabu/preproc/ctf_cuda.py +0 -142
  1716. build/lib/build/lib/nabu/preproc/distortion.py +0 -92
  1717. build/lib/build/lib/nabu/preproc/double_flatfield.py +0 -212
  1718. build/lib/build/lib/nabu/preproc/double_flatfield_cuda.py +0 -174
  1719. build/lib/build/lib/nabu/preproc/double_flatfield_variable_region.py +0 -68
  1720. build/lib/build/lib/nabu/preproc/flatfield.py +0 -448
  1721. build/lib/build/lib/nabu/preproc/flatfield_cuda.py +0 -144
  1722. build/lib/build/lib/nabu/preproc/flatfield_variable_region.py +0 -79
  1723. build/lib/build/lib/nabu/preproc/phase.py +0 -425
  1724. build/lib/build/lib/nabu/preproc/phase_cuda.py +0 -143
  1725. build/lib/build/lib/nabu/preproc/shift.py +0 -95
  1726. build/lib/build/lib/nabu/preproc/shift_cuda.py +0 -102
  1727. build/lib/build/lib/nabu/preproc/tests/__init__.py +0 -1
  1728. build/lib/build/lib/nabu/preproc/tests/test_ccd_corr.py +0 -59
  1729. build/lib/build/lib/nabu/preproc/tests/test_ctf.py +0 -250
  1730. build/lib/build/lib/nabu/preproc/tests/test_double_flatfield.py +0 -86
  1731. build/lib/build/lib/nabu/preproc/tests/test_flatfield.py +0 -626
  1732. build/lib/build/lib/nabu/preproc/tests/test_paganin.py +0 -67
  1733. build/lib/build/lib/nabu/preproc/tests/test_vshift.py +0 -73
  1734. build/lib/build/lib/nabu/processing/__init__.py +0 -0
  1735. build/lib/build/lib/nabu/processing/convolution_cuda.py +0 -375
  1736. build/lib/build/lib/nabu/processing/fft_base.py +0 -163
  1737. build/lib/build/lib/nabu/processing/fft_cuda.py +0 -256
  1738. build/lib/build/lib/nabu/processing/fft_opencl.py +0 -54
  1739. build/lib/build/lib/nabu/processing/fftshift.py +0 -134
  1740. build/lib/build/lib/nabu/processing/histogram.py +0 -286
  1741. build/lib/build/lib/nabu/processing/histogram_cuda.py +0 -103
  1742. build/lib/build/lib/nabu/processing/kernel_base.py +0 -126
  1743. build/lib/build/lib/nabu/processing/medfilt_cuda.py +0 -159
  1744. build/lib/build/lib/nabu/processing/muladd.py +0 -29
  1745. build/lib/build/lib/nabu/processing/muladd_cuda.py +0 -68
  1746. build/lib/build/lib/nabu/processing/padding_base.py +0 -71
  1747. build/lib/build/lib/nabu/processing/padding_cuda.py +0 -75
  1748. build/lib/build/lib/nabu/processing/padding_opencl.py +0 -77
  1749. build/lib/build/lib/nabu/processing/processing_base.py +0 -123
  1750. build/lib/build/lib/nabu/processing/roll_opencl.py +0 -64
  1751. build/lib/build/lib/nabu/processing/rotation.py +0 -63
  1752. build/lib/build/lib/nabu/processing/rotation_cuda.py +0 -66
  1753. build/lib/build/lib/nabu/processing/tests/__init__.py +0 -0
  1754. build/lib/build/lib/nabu/processing/tests/test_fft.py +0 -268
  1755. build/lib/build/lib/nabu/processing/tests/test_fftshift.py +0 -71
  1756. build/lib/build/lib/nabu/processing/tests/test_histogram.py +0 -55
  1757. build/lib/build/lib/nabu/processing/tests/test_medfilt.py +0 -77
  1758. build/lib/build/lib/nabu/processing/tests/test_muladd.py +0 -54
  1759. build/lib/build/lib/nabu/processing/tests/test_padding.py +0 -247
  1760. build/lib/build/lib/nabu/processing/tests/test_roll.py +0 -63
  1761. build/lib/build/lib/nabu/processing/tests/test_rotation.py +0 -83
  1762. build/lib/build/lib/nabu/processing/tests/test_transpose.py +0 -72
  1763. build/lib/build/lib/nabu/processing/tests/test_unsharp.py +0 -106
  1764. build/lib/build/lib/nabu/processing/transpose.py +0 -126
  1765. build/lib/build/lib/nabu/processing/unsharp.py +0 -79
  1766. build/lib/build/lib/nabu/processing/unsharp_cuda.py +0 -53
  1767. build/lib/build/lib/nabu/processing/unsharp_opencl.py +0 -75
  1768. build/lib/build/lib/nabu/reconstruction/__init__.py +0 -3
  1769. build/lib/build/lib/nabu/reconstruction/cone.py +0 -241
  1770. build/lib/build/lib/nabu/reconstruction/fbp.py +0 -124
  1771. build/lib/build/lib/nabu/reconstruction/fbp_base.py +0 -391
  1772. build/lib/build/lib/nabu/reconstruction/fbp_opencl.py +0 -78
  1773. build/lib/build/lib/nabu/reconstruction/filtering.py +0 -220
  1774. build/lib/build/lib/nabu/reconstruction/filtering_cuda.py +0 -103
  1775. build/lib/build/lib/nabu/reconstruction/filtering_opencl.py +0 -111
  1776. build/lib/build/lib/nabu/reconstruction/projection.py +0 -240
  1777. build/lib/build/lib/nabu/reconstruction/reconstructor.py +0 -174
  1778. build/lib/build/lib/nabu/reconstruction/reconstructor_cuda.py +0 -44
  1779. build/lib/build/lib/nabu/reconstruction/rings.py +0 -248
  1780. build/lib/build/lib/nabu/reconstruction/rings_cuda.py +0 -322
  1781. build/lib/build/lib/nabu/reconstruction/sinogram.py +0 -467
  1782. build/lib/build/lib/nabu/reconstruction/sinogram_cuda.py +0 -250
  1783. build/lib/build/lib/nabu/reconstruction/sinogram_opencl.py +0 -40
  1784. build/lib/build/lib/nabu/reconstruction/tests/__init__.py +0 -1
  1785. build/lib/build/lib/nabu/reconstruction/tests/test_cone.py +0 -308
  1786. build/lib/build/lib/nabu/reconstruction/tests/test_deringer.py +0 -220
  1787. build/lib/build/lib/nabu/reconstruction/tests/test_fbp.py +0 -252
  1788. build/lib/build/lib/nabu/reconstruction/tests/test_filtering.py +0 -133
  1789. build/lib/build/lib/nabu/reconstruction/tests/test_halftomo.py +0 -100
  1790. build/lib/build/lib/nabu/reconstruction/tests/test_projector.py +0 -164
  1791. build/lib/build/lib/nabu/reconstruction/tests/test_reconstructor.py +0 -93
  1792. build/lib/build/lib/nabu/reconstruction/tests/test_sino_normalization.py +0 -85
  1793. build/lib/build/lib/nabu/resources/__init__.py +0 -0
  1794. build/lib/build/lib/nabu/resources/cli/__init__.py +0 -0
  1795. build/lib/build/lib/nabu/resources/cor.py +0 -5
  1796. build/lib/build/lib/nabu/resources/dataset_analyzer.py +0 -469
  1797. build/lib/build/lib/nabu/resources/gpu.py +0 -169
  1798. build/lib/build/lib/nabu/resources/logger.py +0 -130
  1799. build/lib/build/lib/nabu/resources/nxflatfield.py +0 -217
  1800. build/lib/build/lib/nabu/resources/templates/__init__.py +0 -0
  1801. build/lib/build/lib/nabu/resources/tests/__init__.py +0 -0
  1802. build/lib/build/lib/nabu/resources/tests/test_nxflatfield.py +0 -104
  1803. build/lib/build/lib/nabu/resources/tests/test_units.py +0 -47
  1804. build/lib/build/lib/nabu/resources/utils.py +0 -174
  1805. build/lib/build/lib/nabu/stitching/__init__.py +0 -0
  1806. build/lib/build/lib/nabu/stitching/alignment.py +0 -184
  1807. build/lib/build/lib/nabu/stitching/config.py +0 -1286
  1808. build/lib/build/lib/nabu/stitching/definitions.py +0 -6
  1809. build/lib/build/lib/nabu/stitching/frame_composition.py +0 -155
  1810. build/lib/build/lib/nabu/stitching/overlap.py +0 -373
  1811. build/lib/build/lib/nabu/stitching/sample_normalization.py +0 -60
  1812. build/lib/build/lib/nabu/stitching/slurm_utils.py +0 -204
  1813. build/lib/build/lib/nabu/stitching/tests/__init__.py +0 -0
  1814. build/lib/build/lib/nabu/stitching/tests/test_alignment.py +0 -99
  1815. build/lib/build/lib/nabu/stitching/tests/test_config.py +0 -226
  1816. build/lib/build/lib/nabu/stitching/tests/test_frame_composition.py +0 -180
  1817. build/lib/build/lib/nabu/stitching/tests/test_overlap.py +0 -98
  1818. build/lib/build/lib/nabu/stitching/tests/test_sample_normalization.py +0 -49
  1819. build/lib/build/lib/nabu/stitching/tests/test_slurm_utils.py +0 -146
  1820. build/lib/build/lib/nabu/stitching/tests/test_utils.py +0 -21
  1821. build/lib/build/lib/nabu/stitching/tests/test_z_stitching.py +0 -1183
  1822. build/lib/build/lib/nabu/stitching/utils.py +0 -563
  1823. build/lib/build/lib/nabu/stitching/z_stitching.py +0 -2279
  1824. build/lib/build/lib/nabu/tests.py +0 -51
  1825. build/lib/build/lib/nabu/testutils.py +0 -375
  1826. build/lib/build/lib/nabu/thirdparty/__init__.py +0 -0
  1827. build/lib/build/lib/nabu/thirdparty/algotom_convert_sino.py +0 -276
  1828. build/lib/build/lib/nabu/thirdparty/pore3d_deringer_munch.py +0 -108
  1829. build/lib/build/lib/nabu/thirdparty/tomocupy_remove_stripe.py +0 -586
  1830. build/lib/build/lib/nabu/thirdparty/tomopy_phase.py +0 -239
  1831. build/lib/build/lib/nabu/thirdparty/tomwer_load_flats_darks.py +0 -162
  1832. build/lib/build/lib/nabu/utils.py +0 -836
  1833. build/lib/doc/conf.py +0 -137
  1834. build/lib/doc/create_conf_doc.py +0 -38
  1835. build/lib/doc/get_mathjax.py +0 -34
  1836. build/lib/nabu/__init__.py +0 -17
  1837. build/lib/nabu/app/__init__.py +0 -0
  1838. build/lib/nabu/app/bootstrap.py +0 -88
  1839. build/lib/nabu/app/bootstrap_stitching.py +0 -69
  1840. build/lib/nabu/app/cast_volume.py +0 -272
  1841. build/lib/nabu/app/cli_configs.py +0 -626
  1842. build/lib/nabu/app/compare_volumes.py +0 -94
  1843. build/lib/nabu/app/composite_cor.py +0 -144
  1844. build/lib/nabu/app/correct_rot.py +0 -70
  1845. build/lib/nabu/app/create_distortion_map_from_poly.py +0 -153
  1846. build/lib/nabu/app/diag_to_pix.py +0 -358
  1847. build/lib/nabu/app/diag_to_rot.py +0 -449
  1848. build/lib/nabu/app/double_flatfield.py +0 -143
  1849. build/lib/nabu/app/generate_header.py +0 -261
  1850. build/lib/nabu/app/histogram.py +0 -197
  1851. build/lib/nabu/app/multicor.py +0 -90
  1852. build/lib/nabu/app/nx_z_splitter.py +0 -125
  1853. build/lib/nabu/app/parse_reconstruction_log.py +0 -151
  1854. build/lib/nabu/app/prepare_weights_double.py +0 -163
  1855. build/lib/nabu/app/reconstruct.py +0 -120
  1856. build/lib/nabu/app/reconstruct_helical.py +0 -116
  1857. build/lib/nabu/app/reduce_dark_flat.py +0 -181
  1858. build/lib/nabu/app/rotate.py +0 -162
  1859. build/lib/nabu/app/shrink_dataset.py +0 -98
  1860. build/lib/nabu/app/stitching.py +0 -85
  1861. build/lib/nabu/app/tests/test_reduce_dark_flat.py +0 -78
  1862. build/lib/nabu/app/utils.py +0 -33
  1863. build/lib/nabu/app/validator.py +0 -110
  1864. build/lib/nabu/cuda/__init__.py +0 -0
  1865. build/lib/nabu/cuda/convolution.py +0 -8
  1866. build/lib/nabu/cuda/fft.py +0 -4
  1867. build/lib/nabu/cuda/kernel.py +0 -97
  1868. build/lib/nabu/cuda/medfilt.py +0 -6
  1869. build/lib/nabu/cuda/padding.py +0 -6
  1870. build/lib/nabu/cuda/processing.py +0 -75
  1871. build/lib/nabu/cuda/tests/__init__.py +0 -1
  1872. build/lib/nabu/cuda/utils.py +0 -331
  1873. build/lib/nabu/estimation/__init__.py +0 -12
  1874. build/lib/nabu/estimation/alignment.py +0 -578
  1875. build/lib/nabu/estimation/cor.py +0 -1621
  1876. build/lib/nabu/estimation/cor_sino.py +0 -183
  1877. build/lib/nabu/estimation/distortion.py +0 -112
  1878. build/lib/nabu/estimation/focus.py +0 -362
  1879. build/lib/nabu/estimation/tests/__init__.py +0 -0
  1880. build/lib/nabu/estimation/tests/test_alignment.py +0 -70
  1881. build/lib/nabu/estimation/tests/test_cor.py +0 -472
  1882. build/lib/nabu/estimation/tests/test_focus.py +0 -105
  1883. build/lib/nabu/estimation/tests/test_tilt.py +0 -41
  1884. build/lib/nabu/estimation/tests/test_translation.py +0 -78
  1885. build/lib/nabu/estimation/tilt.py +0 -214
  1886. build/lib/nabu/estimation/translation.py +0 -193
  1887. build/lib/nabu/estimation/utils.py +0 -39
  1888. build/lib/nabu/io/__init__.py +0 -2
  1889. build/lib/nabu/io/cast_volume.py +0 -371
  1890. build/lib/nabu/io/detector_distortion.py +0 -305
  1891. build/lib/nabu/io/reader.py +0 -628
  1892. build/lib/nabu/io/reader_helical.py +0 -114
  1893. build/lib/nabu/io/tests/__init__.py +0 -0
  1894. build/lib/nabu/io/tests/test_cast_volume.py +0 -339
  1895. build/lib/nabu/io/tests/test_detector_distortion.py +0 -178
  1896. build/lib/nabu/io/tests/test_writers.py +0 -187
  1897. build/lib/nabu/io/tiffwriter_zmm.py +0 -99
  1898. build/lib/nabu/io/utils.py +0 -263
  1899. build/lib/nabu/io/writer.py +0 -892
  1900. build/lib/nabu/misc/__init__.py +0 -0
  1901. build/lib/nabu/misc/binning.py +0 -98
  1902. build/lib/nabu/misc/fftshift.py +0 -6
  1903. build/lib/nabu/misc/filters.py +0 -24
  1904. build/lib/nabu/misc/fourier_filters.py +0 -152
  1905. build/lib/nabu/misc/histogram.py +0 -6
  1906. build/lib/nabu/misc/histogram_cuda.py +0 -8
  1907. build/lib/nabu/misc/kernel_base.py +0 -4
  1908. build/lib/nabu/misc/padding.py +0 -83
  1909. build/lib/nabu/misc/padding_base.py +0 -6
  1910. build/lib/nabu/misc/processing_base.py +0 -4
  1911. build/lib/nabu/misc/rotation.py +0 -6
  1912. build/lib/nabu/misc/rotation_cuda.py +0 -6
  1913. build/lib/nabu/misc/tests/__init__.py +0 -1
  1914. build/lib/nabu/misc/tests/test_binning.py +0 -48
  1915. build/lib/nabu/misc/tests/test_interpolation.py +0 -70
  1916. build/lib/nabu/misc/transpose.py +0 -6
  1917. build/lib/nabu/misc/unsharp.py +0 -4
  1918. build/lib/nabu/misc/unsharp_cuda.py +0 -6
  1919. build/lib/nabu/misc/unsharp_opencl.py +0 -8
  1920. build/lib/nabu/misc/utils.py +0 -117
  1921. build/lib/nabu/opencl/__init__.py +0 -0
  1922. build/lib/nabu/opencl/fft.py +0 -6
  1923. build/lib/nabu/opencl/kernel.py +0 -135
  1924. build/lib/nabu/opencl/memcpy.py +0 -35
  1925. build/lib/nabu/opencl/padding.py +0 -6
  1926. build/lib/nabu/opencl/processing.py +0 -62
  1927. build/lib/nabu/opencl/tests/__init__.py +0 -0
  1928. build/lib/nabu/opencl/utils.py +0 -292
  1929. build/lib/nabu/pipeline/__init__.py +0 -0
  1930. build/lib/nabu/pipeline/config.py +0 -265
  1931. build/lib/nabu/pipeline/config_validators.py +0 -589
  1932. build/lib/nabu/pipeline/datadump.py +0 -164
  1933. build/lib/nabu/pipeline/dataset_validator.py +0 -211
  1934. build/lib/nabu/pipeline/detector_distortion_provider.py +0 -20
  1935. build/lib/nabu/pipeline/estimators.py +0 -1012
  1936. build/lib/nabu/pipeline/fallback_utils.py +0 -149
  1937. build/lib/nabu/pipeline/fullfield/__init__.py +0 -0
  1938. build/lib/nabu/pipeline/fullfield/chunked.py +0 -849
  1939. build/lib/nabu/pipeline/fullfield/chunked_cuda.py +0 -152
  1940. build/lib/nabu/pipeline/fullfield/computations.py +0 -260
  1941. build/lib/nabu/pipeline/fullfield/dataset_validator.py +0 -63
  1942. build/lib/nabu/pipeline/fullfield/nabu_config.py +0 -590
  1943. build/lib/nabu/pipeline/fullfield/processconfig.py +0 -825
  1944. build/lib/nabu/pipeline/fullfield/reconstruction.py +0 -851
  1945. build/lib/nabu/pipeline/helical/__init__.py +0 -0
  1946. build/lib/nabu/pipeline/helical/dataset_validator.py +0 -19
  1947. build/lib/nabu/pipeline/helical/fbp.py +0 -147
  1948. build/lib/nabu/pipeline/helical/filtering.py +0 -246
  1949. build/lib/nabu/pipeline/helical/gridded_accumulator.py +0 -575
  1950. build/lib/nabu/pipeline/helical/helical_chunked_regridded.py +0 -1670
  1951. build/lib/nabu/pipeline/helical/helical_chunked_regridded_cuda.py +0 -119
  1952. build/lib/nabu/pipeline/helical/helical_reconstruction.py +0 -598
  1953. build/lib/nabu/pipeline/helical/helical_utils.py +0 -42
  1954. build/lib/nabu/pipeline/helical/nabu_config.py +0 -175
  1955. build/lib/nabu/pipeline/helical/processconfig.py +0 -62
  1956. build/lib/nabu/pipeline/helical/span_strategy.py +0 -483
  1957. build/lib/nabu/pipeline/helical/tests/__init__.py +0 -0
  1958. build/lib/nabu/pipeline/helical/tests/test_accumulator.py +0 -157
  1959. build/lib/nabu/pipeline/helical/tests/test_pipeline_elements_full.py +0 -355
  1960. build/lib/nabu/pipeline/helical/tests/test_strategy.py +0 -61
  1961. build/lib/nabu/pipeline/helical/utils.py +0 -51
  1962. build/lib/nabu/pipeline/helical/weight_balancer.py +0 -101
  1963. build/lib/nabu/pipeline/params.py +0 -163
  1964. build/lib/nabu/pipeline/processconfig.py +0 -210
  1965. build/lib/nabu/pipeline/tests/test_chunk_reader.py +0 -78
  1966. build/lib/nabu/pipeline/tests/test_estimators.py +0 -149
  1967. build/lib/nabu/pipeline/utils.py +0 -116
  1968. build/lib/nabu/pipeline/writer.py +0 -193
  1969. build/lib/nabu/pipeline/xrdct/__init__.py +0 -0
  1970. build/lib/nabu/preproc/__init__.py +0 -7
  1971. build/lib/nabu/preproc/alignment.py +0 -11
  1972. build/lib/nabu/preproc/ccd.py +0 -161
  1973. build/lib/nabu/preproc/ccd_cuda.py +0 -169
  1974. build/lib/nabu/preproc/ctf.py +0 -361
  1975. build/lib/nabu/preproc/ctf_cuda.py +0 -142
  1976. build/lib/nabu/preproc/distortion.py +0 -92
  1977. build/lib/nabu/preproc/double_flatfield.py +0 -212
  1978. build/lib/nabu/preproc/double_flatfield_cuda.py +0 -174
  1979. build/lib/nabu/preproc/double_flatfield_variable_region.py +0 -68
  1980. build/lib/nabu/preproc/flatfield.py +0 -448
  1981. build/lib/nabu/preproc/flatfield_cuda.py +0 -144
  1982. build/lib/nabu/preproc/flatfield_variable_region.py +0 -79
  1983. build/lib/nabu/preproc/phase.py +0 -425
  1984. build/lib/nabu/preproc/phase_cuda.py +0 -143
  1985. build/lib/nabu/preproc/shift.py +0 -95
  1986. build/lib/nabu/preproc/shift_cuda.py +0 -102
  1987. build/lib/nabu/preproc/tests/__init__.py +0 -1
  1988. build/lib/nabu/preproc/tests/test_ccd_corr.py +0 -59
  1989. build/lib/nabu/preproc/tests/test_ctf.py +0 -250
  1990. build/lib/nabu/preproc/tests/test_double_flatfield.py +0 -86
  1991. build/lib/nabu/preproc/tests/test_flatfield.py +0 -626
  1992. build/lib/nabu/preproc/tests/test_paganin.py +0 -67
  1993. build/lib/nabu/preproc/tests/test_vshift.py +0 -73
  1994. build/lib/nabu/processing/__init__.py +0 -0
  1995. build/lib/nabu/processing/convolution_cuda.py +0 -375
  1996. build/lib/nabu/processing/fft_base.py +0 -163
  1997. build/lib/nabu/processing/fft_cuda.py +0 -256
  1998. build/lib/nabu/processing/fft_opencl.py +0 -54
  1999. build/lib/nabu/processing/fftshift.py +0 -134
  2000. build/lib/nabu/processing/histogram.py +0 -286
  2001. build/lib/nabu/processing/histogram_cuda.py +0 -103
  2002. build/lib/nabu/processing/kernel_base.py +0 -126
  2003. build/lib/nabu/processing/medfilt_cuda.py +0 -159
  2004. build/lib/nabu/processing/muladd.py +0 -29
  2005. build/lib/nabu/processing/muladd_cuda.py +0 -68
  2006. build/lib/nabu/processing/padding_base.py +0 -71
  2007. build/lib/nabu/processing/padding_cuda.py +0 -75
  2008. build/lib/nabu/processing/padding_opencl.py +0 -77
  2009. build/lib/nabu/processing/processing_base.py +0 -123
  2010. build/lib/nabu/processing/roll_opencl.py +0 -64
  2011. build/lib/nabu/processing/rotation.py +0 -63
  2012. build/lib/nabu/processing/rotation_cuda.py +0 -66
  2013. build/lib/nabu/processing/tests/__init__.py +0 -0
  2014. build/lib/nabu/processing/tests/test_fft.py +0 -268
  2015. build/lib/nabu/processing/tests/test_fftshift.py +0 -71
  2016. build/lib/nabu/processing/tests/test_histogram.py +0 -55
  2017. build/lib/nabu/processing/tests/test_medfilt.py +0 -77
  2018. build/lib/nabu/processing/tests/test_muladd.py +0 -54
  2019. build/lib/nabu/processing/tests/test_padding.py +0 -247
  2020. build/lib/nabu/processing/tests/test_roll.py +0 -63
  2021. build/lib/nabu/processing/tests/test_rotation.py +0 -83
  2022. build/lib/nabu/processing/tests/test_transpose.py +0 -72
  2023. build/lib/nabu/processing/tests/test_unsharp.py +0 -106
  2024. build/lib/nabu/processing/transpose.py +0 -126
  2025. build/lib/nabu/processing/unsharp.py +0 -79
  2026. build/lib/nabu/processing/unsharp_cuda.py +0 -53
  2027. build/lib/nabu/processing/unsharp_opencl.py +0 -75
  2028. build/lib/nabu/reconstruction/__init__.py +0 -3
  2029. build/lib/nabu/reconstruction/cone.py +0 -241
  2030. build/lib/nabu/reconstruction/fbp.py +0 -124
  2031. build/lib/nabu/reconstruction/fbp_base.py +0 -391
  2032. build/lib/nabu/reconstruction/fbp_opencl.py +0 -78
  2033. build/lib/nabu/reconstruction/filtering.py +0 -220
  2034. build/lib/nabu/reconstruction/filtering_cuda.py +0 -103
  2035. build/lib/nabu/reconstruction/filtering_opencl.py +0 -111
  2036. build/lib/nabu/reconstruction/projection.py +0 -240
  2037. build/lib/nabu/reconstruction/reconstructor.py +0 -174
  2038. build/lib/nabu/reconstruction/reconstructor_cuda.py +0 -44
  2039. build/lib/nabu/reconstruction/rings.py +0 -248
  2040. build/lib/nabu/reconstruction/rings_cuda.py +0 -322
  2041. build/lib/nabu/reconstruction/sinogram.py +0 -467
  2042. build/lib/nabu/reconstruction/sinogram_cuda.py +0 -250
  2043. build/lib/nabu/reconstruction/sinogram_opencl.py +0 -40
  2044. build/lib/nabu/reconstruction/tests/__init__.py +0 -1
  2045. build/lib/nabu/reconstruction/tests/test_cone.py +0 -308
  2046. build/lib/nabu/reconstruction/tests/test_deringer.py +0 -220
  2047. build/lib/nabu/reconstruction/tests/test_fbp.py +0 -252
  2048. build/lib/nabu/reconstruction/tests/test_filtering.py +0 -133
  2049. build/lib/nabu/reconstruction/tests/test_halftomo.py +0 -100
  2050. build/lib/nabu/reconstruction/tests/test_projector.py +0 -164
  2051. build/lib/nabu/reconstruction/tests/test_reconstructor.py +0 -93
  2052. build/lib/nabu/reconstruction/tests/test_sino_normalization.py +0 -85
  2053. build/lib/nabu/resources/__init__.py +0 -0
  2054. build/lib/nabu/resources/cli/__init__.py +0 -0
  2055. build/lib/nabu/resources/cor.py +0 -5
  2056. build/lib/nabu/resources/dataset_analyzer.py +0 -469
  2057. build/lib/nabu/resources/gpu.py +0 -169
  2058. build/lib/nabu/resources/logger.py +0 -130
  2059. build/lib/nabu/resources/nxflatfield.py +0 -217
  2060. build/lib/nabu/resources/templates/__init__.py +0 -0
  2061. build/lib/nabu/resources/tests/__init__.py +0 -0
  2062. build/lib/nabu/resources/tests/test_nxflatfield.py +0 -104
  2063. build/lib/nabu/resources/tests/test_units.py +0 -47
  2064. build/lib/nabu/resources/utils.py +0 -174
  2065. build/lib/nabu/stitching/__init__.py +0 -0
  2066. build/lib/nabu/stitching/alignment.py +0 -184
  2067. build/lib/nabu/stitching/config.py +0 -1286
  2068. build/lib/nabu/stitching/definitions.py +0 -6
  2069. build/lib/nabu/stitching/frame_composition.py +0 -155
  2070. build/lib/nabu/stitching/overlap.py +0 -373
  2071. build/lib/nabu/stitching/sample_normalization.py +0 -60
  2072. build/lib/nabu/stitching/slurm_utils.py +0 -204
  2073. build/lib/nabu/stitching/tests/__init__.py +0 -0
  2074. build/lib/nabu/stitching/tests/test_alignment.py +0 -99
  2075. build/lib/nabu/stitching/tests/test_config.py +0 -226
  2076. build/lib/nabu/stitching/tests/test_frame_composition.py +0 -180
  2077. build/lib/nabu/stitching/tests/test_overlap.py +0 -98
  2078. build/lib/nabu/stitching/tests/test_sample_normalization.py +0 -49
  2079. build/lib/nabu/stitching/tests/test_slurm_utils.py +0 -146
  2080. build/lib/nabu/stitching/tests/test_utils.py +0 -21
  2081. build/lib/nabu/stitching/tests/test_z_stitching.py +0 -1183
  2082. build/lib/nabu/stitching/utils.py +0 -563
  2083. build/lib/nabu/stitching/z_stitching.py +0 -2279
  2084. build/lib/nabu/tests.py +0 -51
  2085. build/lib/nabu/testutils.py +0 -375
  2086. build/lib/nabu/thirdparty/__init__.py +0 -0
  2087. build/lib/nabu/thirdparty/algotom_convert_sino.py +0 -276
  2088. build/lib/nabu/thirdparty/pore3d_deringer_munch.py +0 -108
  2089. build/lib/nabu/thirdparty/tomocupy_remove_stripe.py +0 -586
  2090. build/lib/nabu/thirdparty/tomopy_phase.py +0 -239
  2091. build/lib/nabu/thirdparty/tomwer_load_flats_darks.py +0 -162
  2092. build/lib/nabu/utils.py +0 -836
  2093. nabu-2024.1.1.dist-info/RECORD +0 -2375
  2094. nabu-2024.1.1.dist-info/top_level.txt +0 -4
  2095. {nabu-2024.1.1.dist-info → nabu-2024.1.3.dist-info}/LICENSE +0 -0
  2096. {nabu-2024.1.1.dist-info → nabu-2024.1.3.dist-info}/WHEEL +0 -0
  2097. {nabu-2024.1.1.dist-info → nabu-2024.1.3.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