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,1621 +0,0 @@
1
- import math
2
- import numpy as np
3
- from scipy.fftpack import rfft
4
- from numbers import Real
5
- from ..misc import fourier_filters
6
- from .alignment import AlignmentBase, plt, progress_bar, local_fftn, local_ifftn
7
- from ..resources.utils import extract_parameters
8
-
9
- # three possible values for the validity check, which can optionally be returned by the find_shifts methods
10
- cor_result_validity = {
11
- "unknown": "unknown",
12
- "sound": "sound",
13
- "correct": "sound",
14
- "questionable": "questionable",
15
- }
16
-
17
-
18
- class CenterOfRotation(AlignmentBase):
19
- def find_shift(
20
- self,
21
- img_1: np.ndarray,
22
- img_2: np.ndarray,
23
- shift_axis: int = -1,
24
- roi_yxhw=None,
25
- median_filt_shape=None,
26
- padding_mode=None,
27
- peak_fit_radius=1,
28
- high_pass=None,
29
- low_pass=None,
30
- return_validity=False,
31
- cor_options=None,
32
- ):
33
- """Find the Center of Rotation (CoR), given two images.
34
-
35
- This method finds the half-shift between two opposite images, by
36
- means of correlation computed in Fourier space.
37
-
38
- The output of this function, allows to compute motor movements for
39
- aligning the sample rotation axis. Given the following values:
40
-
41
- - L1: distance from source to motor
42
- - L2: distance from source to detector
43
- - ps: physical pixel size
44
- - v: output of this function
45
-
46
- displacement of motor = (L1 / L2 * ps) * v
47
-
48
- Parameters
49
- ----------
50
- img_1: numpy.ndarray
51
- First image
52
- img_2: numpy.ndarray
53
- Second image, it needs to have been flipped already (e.g. using numpy.fliplr).
54
- shift_axis: int
55
- Axis along which we want the shift to be computed. Default is -1 (horizontal).
56
- roi_yxhw: (2, ) or (4, ) numpy.ndarray, tuple, or array, optional
57
- 4 elements vector containing: vertical and horizontal coordinates
58
- of first pixel, plus height and width of the Region of Interest (RoI).
59
- Or a 2 elements vector containing: plus height and width of the
60
- centered Region of Interest (RoI).
61
- Default is None -> deactivated.
62
- median_filt_shape: (2, ) numpy.ndarray, tuple, or array, optional
63
- Shape of the median filter window. Default is None -> deactivated.
64
- padding_mode: str in numpy.pad's mode list, optional
65
- Padding mode, which determines the type of convolution. If None or
66
- 'wrap' are passed, this resorts to the traditional circular convolution.
67
- If 'edge' or 'constant' are passed, it results in a linear convolution.
68
- Default is the circular convolution.
69
- All options are:
70
- None | 'constant' | 'edge' | 'linear_ramp' | 'maximum' | 'mean'
71
- | 'median' | 'minimum' | 'reflect' | 'symmetric' |'wrap'
72
- peak_fit_radius: int, optional
73
- Radius size around the max correlation pixel, for sub-pixel fitting.
74
- Minimum and default value is 1.
75
- low_pass: float or sequence of two floats
76
- Low-pass filter properties, as described in `nabu.misc.fourier_filters`
77
- high_pass: float or sequence of two floats
78
- High-pass filter properties, as described in `nabu.misc.fourier_filters`
79
- return_validity: a boolean, defaults to false
80
- if set to True adds a second return value which may have three string values.
81
- These values are "unknown", "sound", "questionable".
82
- It will be "uknown" if the validation method is not implemented
83
- and it will be "sound" or "questionable" if it is implemented.
84
-
85
-
86
- Raises
87
- ------
88
- ValueError
89
- In case images are not 2-dimensional or have different sizes.
90
-
91
- Returns
92
- -------
93
- float
94
- Estimated center of rotation position from the center of the RoI in pixels.
95
-
96
- Examples
97
- --------
98
- The following code computes the center of rotation position for two
99
- given images in a tomography scan, where the second image is taken at
100
- 180 degrees from the first.
101
-
102
- >>> radio1 = data[0, :, :]
103
- ... radio2 = np.fliplr(data[1, :, :])
104
- ... CoR_calc = CenterOfRotation()
105
- ... cor_position = CoR_calc.find_shift(radio1, radio2)
106
-
107
- Or for noisy images:
108
-
109
- >>> cor_position = CoR_calc.find_shift(radio1, radio2, median_filt_shape=(3, 3))
110
- """
111
-
112
- self._check_img_pair_sizes(img_1, img_2)
113
-
114
- if peak_fit_radius < 1:
115
- self.logger.warning("Parameter peak_fit_radius should be at least 1, given: %d instead." % peak_fit_radius)
116
- peak_fit_radius = 1
117
-
118
- img_shape = img_2.shape
119
- roi_yxhw = self._determine_roi(img_shape, roi_yxhw)
120
-
121
- img_1 = self._prepare_image(img_1, roi_yxhw=roi_yxhw, median_filt_shape=median_filt_shape)
122
- img_2 = self._prepare_image(img_2, roi_yxhw=roi_yxhw, median_filt_shape=median_filt_shape)
123
-
124
- cc = self._compute_correlation_fft(img_1, img_2, padding_mode, high_pass=high_pass, low_pass=low_pass)
125
- img_shape = img_2.shape
126
- cc_vs = np.fft.fftfreq(img_shape[-2], 1 / img_shape[-2])
127
- cc_hs = np.fft.fftfreq(img_shape[-1], 1 / img_shape[-1])
128
-
129
- (f_vals, fv, fh) = self.extract_peak_region_2d(cc, peak_radius=peak_fit_radius, cc_vs=cc_vs, cc_hs=cc_hs)
130
- fitted_shifts_vh = self.refine_max_position_2d(f_vals, fv, fh)
131
-
132
- estimated_cor = fitted_shifts_vh[shift_axis] / 2.0
133
-
134
- if isinstance(self.cor_options.get("near_pos", None), (int, float)):
135
- near_pos = self.cor_options["near_pos"]
136
- if (
137
- np.abs(near_pos - estimated_cor) / near_pos > 0.2
138
- ): # For comparison, near_pos is RELATIVE (as estimated_cor is).
139
- validity_check_result = cor_result_validity["questionable"]
140
- else:
141
- validity_check_result = cor_result_validity["sound"]
142
- else:
143
- validity_check_result = cor_result_validity["unknown"]
144
-
145
- if return_validity:
146
- return estimated_cor, validity_check_result
147
- else:
148
- return estimated_cor
149
-
150
-
151
- class CenterOfRotationSlidingWindow(CenterOfRotation):
152
- def find_shift(
153
- self,
154
- img_1: np.ndarray,
155
- img_2: np.ndarray,
156
- side,
157
- window_width=None,
158
- roi_yxhw=None,
159
- median_filt_shape=None,
160
- padding_mode=None,
161
- peak_fit_radius=1,
162
- high_pass=None,
163
- low_pass=None,
164
- return_validity=False,
165
- cor_options=None,
166
- ):
167
- """Semi-automatically find the Center of Rotation (CoR), given two images
168
- or sinograms. Suitable for half-aquisition scan.
169
-
170
- This method finds the half-shift between two opposite images, by
171
- minimizing difference over a moving window.
172
-
173
- The output of this function, allows to compute motor movements for
174
- aligning the sample rotation axis. Given the following values:
175
-
176
- - L1: distance from source to motor
177
- - L2: distance from source to detector
178
- - ps: physical pixel size
179
- - v: output of this function
180
-
181
- displacement of motor = (L1 / L2 * ps) * v
182
-
183
- Parameters
184
- ----------
185
- img_1: numpy.ndarray
186
- First image
187
- img_2: numpy.ndarray
188
- Second image, it needs to have been flipped already (e.g. using numpy.fliplr).
189
- side: string
190
- Expected region of the CoR. Allowed values: 'left', 'center' or 'right'.
191
- window_width: int, optional
192
- Width of window that will slide on the other image / part of the
193
- sinogram. Default is None.
194
- roi_yxhw: (2, ) or (4, ) numpy.ndarray, tuple, or array, optional
195
- 4 elements vector containing: vertical and horizontal coordinates
196
- of first pixel, plus height and width of the Region of Interest (RoI).
197
- Or a 2 elements vector containing: plus height and width of the
198
- centered Region of Interest (RoI).
199
- Default is None -> deactivated.
200
- median_filt_shape: (2, ) numpy.ndarray, tuple, or array, optional
201
- Shape of the median filter window. Default is None -> deactivated.
202
- padding_mode: str in numpy.pad's mode list, optional
203
- Padding mode, which determines the type of convolution. If None or
204
- 'wrap' are passed, this resorts to the traditional circular convolution.
205
- If 'edge' or 'constant' are passed, it results in a linear convolution.
206
- Default is the circular convolution.
207
- All options are:
208
- None | 'constant' | 'edge' | 'linear_ramp' | 'maximum' | 'mean'
209
- | 'median' | 'minimum' | 'reflect' | 'symmetric' |'wrap'
210
- peak_fit_radius: int, optional
211
- Radius size around the max correlation pixel, for sub-pixel fitting.
212
- Minimum and default value is 1.
213
- low_pass: float or sequence of two floats
214
- Low-pass filter properties, as described in `nabu.misc.fourier_filters`
215
- high_pass: float or sequence of two floats
216
- High-pass filter properties, as described in `nabu.misc.fourier_filters`
217
- return_validity: a boolean, defaults to false
218
- if set to True adds a second return value which may have three string values.
219
- These values are "unknown", "sound", "questionable".
220
- It will be "uknown" if the validation method is not implemented
221
- and it will be "sound" or "questionable" if it is implemented.
222
-
223
- Raises
224
- ------
225
- ValueError
226
- In case images are not 2-dimensional or have different sizes.
227
-
228
- Returns
229
- -------
230
- float
231
- Estimated center of rotation position from the center of the RoI in pixels.
232
-
233
- Examples
234
- --------
235
- The following code computes the center of rotation position for two
236
- given images in a tomography scan, where the second image is taken at
237
- 180 degrees from the first.
238
-
239
- >>> radio1 = data[0, :, :]
240
- ... radio2 = np.fliplr(data[1, :, :])
241
- ... CoR_calc = CenterOfRotationSlidingWindow()
242
- ... cor_position = CoR_calc.find_shift(radio1, radio2)
243
-
244
- Or for noisy images:
245
-
246
- >>> cor_position = CoR_calc.find_shift(radio1, radio2, median_filt_shape=(3, 3))
247
- """
248
-
249
- validity_check_result = cor_result_validity["unknown"]
250
-
251
- if side is None:
252
- raise ValueError("Side should be one of 'left', 'right', or 'center'. 'None' was given instead")
253
-
254
- self._check_img_pair_sizes(img_1, img_2)
255
-
256
- if peak_fit_radius < 1:
257
- self.logger.warning("Parameter peak_fit_radius should be at least 1, given: %d instead." % peak_fit_radius)
258
- peak_fit_radius = 1
259
-
260
- img_shape = img_2.shape
261
- roi_yxhw = self._determine_roi(img_shape, roi_yxhw)
262
-
263
- img_1 = self._prepare_image(
264
- img_1, roi_yxhw=roi_yxhw, median_filt_shape=median_filt_shape, high_pass=high_pass, low_pass=low_pass
265
- )
266
- img_2 = self._prepare_image(
267
- img_2, roi_yxhw=roi_yxhw, median_filt_shape=median_filt_shape, high_pass=high_pass, low_pass=low_pass
268
- )
269
- img_shape = img_2.shape
270
-
271
- near_pos = self.cor_options.get("near_pos", None)
272
- if near_pos is None:
273
- if window_width is None:
274
- if side.lower() == "center":
275
- window_width = round(img_shape[-1] / 4.0 * 3.0)
276
- else:
277
- window_width = round(img_shape[-1] / 10)
278
- window_shift = window_width // 2
279
- window_width = window_shift * 2 + 1
280
-
281
- win_1_start_seed = 0
282
- # number of pixels where the window will "slide".
283
- n = img_shape[-1] - window_width
284
- else:
285
- abs_pos = near_pos + img_shape[-1] // 2
286
- offset = min(img_shape[-1] - abs_pos, abs_pos) # distance to closest edge.
287
-
288
- window_fraction = 0.4 # Hard-coded ?
289
- window_shift = int(np.floor(offset * window_fraction))
290
- window_width = 2 * window_shift + 1
291
-
292
- sliding_shift = int(np.floor(offset * (1 - window_fraction))) - 1
293
- n = 2 * sliding_shift + 1
294
- win_1_start_seed = 2 * near_pos - sliding_shift
295
-
296
- if side.lower() == "right":
297
- win_2_start = 0
298
- elif side.lower() == "left":
299
- win_2_start = img_shape[-1] - window_width
300
- elif side.lower() == "center":
301
- win_2_start = img_shape[-1] // 2 - window_shift
302
- else:
303
- raise ValueError(
304
- "Side should be one of 'left', 'right', or 'center'. '%s' was given instead" % side.lower()
305
- )
306
-
307
- win_2_end = win_2_start + window_width
308
-
309
- diffs_mean = np.zeros((n,), dtype=img_1.dtype)
310
- diffs_std = np.zeros((n,), dtype=img_1.dtype)
311
-
312
- for ii in progress_bar(range(n), verbose=self.verbose):
313
- win_1_start = win_1_start_seed + ii
314
- win_1_end = win_1_start + window_width
315
- img_diff = img_1[:, win_1_start:win_1_end] - img_2[:, win_2_start:win_2_end]
316
- diffs_abs = np.abs(img_diff)
317
- diffs_mean[ii] = diffs_abs.mean()
318
- diffs_std[ii] = diffs_abs.std()
319
-
320
- diffs_mean = diffs_mean.min() - diffs_mean
321
- win_ind_max = np.argmax(diffs_mean)
322
-
323
- diffs_std = diffs_std.min() - diffs_std
324
- if not win_ind_max == np.argmax(diffs_std):
325
- self.logger.warning(
326
- "Minimum mean difference and minimum std-dev of differences do not coincide. "
327
- + "This means that the validity of the found solution might be questionable."
328
- )
329
- validity_check_result = cor_result_validity["questionable"]
330
- else:
331
- validity_check_result = cor_result_validity["sound"]
332
-
333
- (f_vals, f_pos) = self.extract_peak_regions_1d(diffs_mean, peak_radius=peak_fit_radius)
334
- win_pos_max, win_val_max = self.refine_max_position_1d(f_vals, return_vertex_val=True)
335
-
336
- # Derive the COR
337
- if isinstance(near_pos, Real):
338
- cor_h = -(win_2_start - (win_1_start_seed + win_ind_max + win_pos_max)) / 2.0
339
- cor_pos = -(win_2_start - (win_1_start_seed + np.arange(n))) / 2.0
340
- else:
341
- cor_h = -(win_2_start - (win_ind_max + win_pos_max)) / 2.0
342
- cor_pos = -(win_2_start - np.arange(n)) / 2.0
343
-
344
- if (side.lower() == "right" and win_ind_max == 0) or (side.lower() == "left" and win_ind_max == n):
345
- self.logger.warning("Sliding window width %d might be too large!" % window_width)
346
-
347
- if self.verbose:
348
- print("Lowest difference window: index=%d, range=[0, %d]" % (win_ind_max, n))
349
- print("CoR tested for='%s', found at voxel=%g (from center)" % (side, cor_h))
350
-
351
- f, ax = plt.subplots(1, 1)
352
- self._add_plot_window(f, ax=ax)
353
- ax.stem(cor_pos, diffs_mean, label="Mean difference")
354
- ax.stem(cor_h, win_val_max, linefmt="C1-", markerfmt="C1o", label="Best mean difference")
355
- ax.stem(cor_pos, -diffs_std, linefmt="C2-", markerfmt="C2o", label="Std-dev difference")
356
- ax.set_title("Window dispersions")
357
- plt.legend()
358
- plt.show(block=False)
359
-
360
- if return_validity:
361
- return cor_h, validity_check_result
362
- else:
363
- return cor_h
364
-
365
-
366
- class CenterOfRotationGrowingWindow(CenterOfRotation):
367
- def find_shift(
368
- self,
369
- img_1: np.ndarray,
370
- img_2: np.ndarray,
371
- side="all",
372
- min_window_width=11,
373
- roi_yxhw=None,
374
- median_filt_shape=None,
375
- padding_mode=None,
376
- peak_fit_radius=1,
377
- high_pass=None,
378
- low_pass=None,
379
- return_validity=False,
380
- ):
381
- """Automatically find the Center of Rotation (CoR), given two images or
382
- sinograms. Suitable for half-aquisition scan.
383
-
384
- This method finds the half-shift between two opposite images, by
385
- minimizing difference over a moving window.
386
-
387
- The output of this function, allows to compute motor movements for
388
- aligning the sample rotation axis. Given the following values:
389
-
390
- - L1: distance from source to motor
391
- - L2: distance from source to detector
392
- - ps: physical pixel size
393
- - v: output of this function
394
-
395
- displacement of motor = (L1 / L2 * ps) * v
396
-
397
- Parameters
398
- ----------
399
- img_1: numpy.ndarray
400
- First image
401
- img_2: numpy.ndarray
402
- Second image, it needs to have been flipped already (e.g. using numpy.fliplr).
403
- side: string, optional
404
- Expected region of the CoR. Allowed values: 'left', 'center', 'right', or 'all'.
405
- Default is 'all'.
406
- min_window_width: int, optional
407
- Minimum window width that covers the common region of the two images /
408
- sinograms. Default is 11.
409
- roi_yxhw: (2, ) or (4, ) numpy.ndarray, tuple, or array, optional
410
- 4 elements vector containing: vertical and horizontal coordinates
411
- of first pixel, plus height and width of the Region of Interest (RoI).
412
- Or a 2 elements vector containing: plus height and width of the
413
- centered Region of Interest (RoI).
414
- Default is None -> deactivated.
415
- median_filt_shape: (2, ) numpy.ndarray, tuple, or array, optional
416
- Shape of the median filter window. Default is None -> deactivated.
417
- padding_mode: str in numpy.pad's mode list, optional
418
- Padding mode, which determines the type of convolution. If None or
419
- 'wrap' are passed, this resorts to the traditional circular convolution.
420
- If 'edge' or 'constant' are passed, it results in a linear convolution.
421
- Default is the circular convolution.
422
- All options are:
423
- None | 'constant' | 'edge' | 'linear_ramp' | 'maximum' | 'mean'
424
- | 'median' | 'minimum' | 'reflect' | 'symmetric' |'wrap'
425
- peak_fit_radius: int, optional
426
- Radius size around the max correlation pixel, for sub-pixel fitting.
427
- Minimum and default value is 1.
428
- low_pass: float or sequence of two floats
429
- Low-pass filter properties, as described in `nabu.misc.fourier_filters`
430
- high_pass: float or sequence of two floats
431
- High-pass filter properties, as described in `nabu.misc.fourier_filters`
432
- return_validity: a boolean, defaults to false
433
- if set to True adds a second return value which may have three string values.
434
- These values are "unknown", "sound", "questionable".
435
- It will be "uknown" if the validation method is not implemented
436
- and it will be "sound" or "questionable" if it is implemented.
437
-
438
-
439
-
440
- Raises
441
- ------
442
- ValueError
443
- In case images are not 2-dimensional or have different sizes.
444
-
445
- Returns
446
- -------
447
- float
448
- Estimated center of rotation position from the center of the RoI in pixels.
449
-
450
- Examples
451
- --------
452
- The following code computes the center of rotation position for two
453
- given images in a tomography scan, where the second image is taken at
454
- 180 degrees from the first.
455
-
456
- >>> radio1 = data[0, :, :]
457
- ... radio2 = np.fliplr(data[1, :, :])
458
- ... CoR_calc = CenterOfRotationGrowingWindow()
459
- ... cor_position = CoR_calc.find_shift(radio1, radio2)
460
-
461
- Or for noisy images:
462
-
463
- >>> cor_position = CoR_calc.find_shift(radio1, radio2, median_filt_shape=(3, 3))
464
- """
465
-
466
- validity_check_result = cor_result_validity["unknown"]
467
-
468
- self._check_img_pair_sizes(img_1, img_2)
469
-
470
- if peak_fit_radius < 1:
471
- self.logger.warning("Parameter peak_fit_radius should be at least 1, given: %d instead." % peak_fit_radius)
472
- peak_fit_radius = 1
473
-
474
- img_shape = img_2.shape
475
- roi_yxhw = self._determine_roi(img_shape, roi_yxhw)
476
-
477
- img_1 = self._prepare_image(
478
- img_1, roi_yxhw=roi_yxhw, median_filt_shape=median_filt_shape, high_pass=high_pass, low_pass=low_pass
479
- )
480
- img_2 = self._prepare_image(
481
- img_2, roi_yxhw=roi_yxhw, median_filt_shape=median_filt_shape, high_pass=high_pass, low_pass=low_pass
482
- )
483
- img_shape = img_2.shape
484
-
485
- def window_bounds(mid_point, window_max_width=img_shape[-1]):
486
- return (
487
- np.fmax(np.ceil(mid_point - window_max_width / 2), 0).astype(np.intp),
488
- np.fmin(np.ceil(mid_point + window_max_width / 2), img_shape[-1]).astype(np.intp),
489
- )
490
-
491
- img_lower_half_size = np.floor(img_shape[-1] / 2).astype(np.intp)
492
- img_upper_half_size = np.ceil(img_shape[-1] / 2).astype(np.intp)
493
-
494
- use_estimate_from_motor = "near_pos" in self.cor_options.keys() and isinstance(
495
- self.cor_options["near_pos"], (int, float)
496
- )
497
- use_estimate_from_motor = False # Not yet implemented.
498
- if use_estimate_from_motor:
499
- near_pos = self.cor_options["near_pos"]
500
-
501
- else:
502
- if side.lower() == "right":
503
- win_1_mid_start = img_lower_half_size
504
- win_1_mid_end = np.floor(img_shape[-1] * 3 / 2).astype(np.intp) - min_window_width
505
- win_2_mid_start = -img_upper_half_size + min_window_width
506
- win_2_mid_end = img_upper_half_size
507
- elif side.lower() == "left":
508
- win_1_mid_start = -img_lower_half_size + min_window_width
509
- win_1_mid_end = img_lower_half_size
510
- win_2_mid_start = img_upper_half_size
511
- win_2_mid_end = np.ceil(img_shape[-1] * 3 / 2).astype(np.intp) - min_window_width
512
- elif side.lower() == "center":
513
- win_1_mid_start = 0
514
- win_1_mid_end = img_shape[-1]
515
- win_2_mid_start = 0
516
- win_2_mid_end = img_shape[-1]
517
- elif side.lower() == "all":
518
- win_1_mid_start = -img_lower_half_size + min_window_width
519
- win_1_mid_end = np.floor(img_shape[-1] * 3 / 2).astype(np.intp) - min_window_width
520
- win_2_mid_start = -img_upper_half_size + min_window_width
521
- win_2_mid_end = np.ceil(img_shape[-1] * 3 / 2).astype(np.intp) - min_window_width
522
- else:
523
- raise ValueError(
524
- "Side should be one of 'left', 'right', or 'center'. '%s' was given instead" % side.lower()
525
- )
526
-
527
- n1 = win_1_mid_end - win_1_mid_start
528
- n2 = win_2_mid_end - win_2_mid_start
529
-
530
- if not n1 == n2:
531
- raise ValueError(
532
- "Internal error: the number of window steps for the two images should be the same."
533
- + "Found the following configuration instead => Side: %s, #1: %d, #2: %d" % (side, n1, n2)
534
- )
535
-
536
- diffs_mean = np.zeros((n1,), dtype=img_1.dtype)
537
- diffs_std = np.zeros((n1,), dtype=img_1.dtype)
538
-
539
- for ii in progress_bar(range(n1), verbose=self.verbose):
540
- win_1 = window_bounds(win_1_mid_start + ii)
541
- win_2 = window_bounds(win_2_mid_end - ii)
542
- img_diff = img_1[:, win_1[0] : win_1[1]] - img_2[:, win_2[0] : win_2[1]]
543
- diffs_abs = np.abs(img_diff)
544
- diffs_mean[ii] = diffs_abs.mean()
545
- diffs_std[ii] = diffs_abs.std()
546
-
547
- diffs_mean = diffs_mean.min() - diffs_mean
548
- win_ind_max = np.argmax(diffs_mean)
549
-
550
- diffs_std = diffs_std.min() - diffs_std
551
- if not win_ind_max == np.argmax(diffs_std):
552
- self.logger.warning(
553
- "Minimum mean difference and minimum std-dev of differences do not coincide. "
554
- + "This means that the validity of the found solution might be questionable."
555
- )
556
- validity_check_result = cor_result_validity["questionable"]
557
- else:
558
- validity_check_result = cor_result_validity["sound"]
559
-
560
- (f_vals, f_pos) = self.extract_peak_regions_1d(diffs_mean, peak_radius=peak_fit_radius)
561
- win_pos_max, win_val_max = self.refine_max_position_1d(f_vals, return_vertex_val=True)
562
-
563
- cor_h = (win_1_mid_start + (win_ind_max + win_pos_max) - img_upper_half_size) / 2.0
564
-
565
- if (side.lower() == "right" and win_ind_max == 0) or (side.lower() == "left" and win_ind_max == n1):
566
- self.logger.warning("Minimum growing window width %d might be too large!" % min_window_width)
567
-
568
- if self.verbose:
569
- cor_pos = (win_1_mid_start + np.arange(n1) - img_upper_half_size) / 2.0
570
-
571
- self.logger.info("Lowest difference window: index=%d, range=[0, %d]" % (win_ind_max, n1))
572
- self.logger.info("CoR tested for='%s', found at voxel=%g (from center)" % (side, cor_h))
573
-
574
- f, ax = plt.subplots(1, 1)
575
- self._add_plot_window(f, ax=ax)
576
- ax.stem(cor_pos, diffs_mean, label="Mean difference")
577
- ax.stem(cor_h, win_val_max, linefmt="C1-", markerfmt="C1o", label="Best mean difference")
578
- ax.stem(cor_pos, -diffs_std, linefmt="C2-", markerfmt="C2o", label="Std-dev difference")
579
- ax.set_title("Window dispersions")
580
- plt.show(block=False)
581
-
582
- if return_validity:
583
- return cor_h, validity_check_result
584
- else:
585
- return cor_h
586
-
587
-
588
- class CenterOfRotationAdaptiveSearch(CenterOfRotation):
589
- """This adaptive method works by applying a gaussian which highlights, by apodisation, a region
590
- which can possibly contain the good center of rotation.
591
- The whole image is spanned during several applications of the apodisation. At each application
592
- the apodisation function, which is a gaussian, is moved to a new guess position.
593
- The lenght of the step, by which the gaussian is moved, and its sigma are
594
- obtained by multiplying the shortest distance from the left or right border with
595
- a self.step_fraction and self.sigma_fraction factors which ensure global overlapping.
596
- for each step a region around the CoR of each image is selected, and the regions of the two images
597
- are compared to calculate a cost function. The value of the cost function, at its minimum
598
- is used to select the best step at which the CoR is taken as final result.
599
- The option filtered_cost= True (default) triggers the filtering (according to low_pass and high_pass)
600
- of the two images which are used for he cost function. ( Note: the low_pass and high_pass options
601
- are used, if given, also without the filtered_cost option, by being passed to the base class
602
- CenterOfRotation )
603
- """
604
-
605
- sigma_fraction = 1.0 / 4.0
606
- step_fraction = 1.0 / 6.0
607
-
608
- def find_shift(
609
- self,
610
- img_1: np.ndarray,
611
- img_2: np.ndarray,
612
- roi_yxhw=None,
613
- median_filt_shape=None,
614
- padding_mode=None,
615
- high_pass=None,
616
- low_pass=None,
617
- margins=None,
618
- filtered_cost=True,
619
- return_validity=False,
620
- ):
621
- """Find the Center of Rotation (CoR), given two images.
622
-
623
- This method finds the half-shift between two opposite images, by
624
- means of correlation computed in Fourier space.
625
- A global search is done on on the detector span (minus a margin) without assuming centered scan conditions.
626
-
627
- The output of this function, allows to compute motor movements for
628
- aligning the sample rotation axis. Given the following values:
629
-
630
- - L1: distance from source to motor
631
- - L2: distance from source to detector
632
- - ps: physical pixel size
633
- - v: output of this function
634
-
635
- displacement of motor = (L1 / L2 * ps) * v
636
-
637
- Parameters
638
- ----------
639
- img_1: numpy.ndarray
640
- First image
641
- img_2: numpy.ndarray
642
- Second image, it needs to have been flipped already (e.g. using numpy.fliplr).
643
- roi_yxhw: (2, ) or (4, ) numpy.ndarray, tuple, or array, optional
644
- 4 elements vector containing: vertical and horizontal coordinates
645
- of first pixel, plus height and width of the Region of Interest (RoI).
646
- Or a 2 elements vector containing: plus height and width of the
647
- centered Region of Interest (RoI).
648
- Default is None -> deactivated.
649
- median_filt_shape: (2, ) numpy.ndarray, tuple, or array, optional
650
- Shape of the median filter window. Default is None -> deactivated.
651
- padding_mode: str in numpy.pad's mode list, optional
652
- Padding mode, which determines the type of convolution. If None or
653
- 'wrap' are passed, this resorts to the traditional circular convolution.
654
- If 'edge' or 'constant' are passed, it results in a linear convolution.
655
- Default is the circular convolution.
656
- All options are:
657
- None | 'constant' | 'edge' | 'linear_ramp' | 'maximum' | 'mean'
658
- | 'median' | 'minimum' | 'reflect' | 'symmetric' |'wrap'
659
- low_pass: float or sequence of two floats.
660
- Low-pass filter properties, as described in `nabu.misc.fourier_filters`
661
- high_pass: float or sequence of two floats
662
- High-pass filter properties, as described in `nabu.misc.fourier_filters`.
663
- margins: None or a couple of floats or ints
664
- if margins is None or in the form of (margin1,margin2) the search is done between margin1 and dim_x-1-margin2.
665
- If left to None then by default (margin1,margin2) = ( 10, 10 ).
666
- filtered_cost: boolean.
667
- True by default. It triggers the use of filtered images in the calculation of the cost function.
668
- return_validity: a boolean, defaults to false
669
- if set to True adds a second return value which may have three string values.
670
- These values are "unknown", "sound", "questionable".
671
- It will be "uknown" if the validation method is not implemented
672
- and it will be "sound" or "questionable" if it is implemented.
673
-
674
- Raises
675
- ------
676
- ValueError
677
- In case images are not 2-dimensional or have different sizes.
678
-
679
- Returns
680
- -------
681
- float
682
- Estimated center of rotation position from the center of the RoI in pixels.
683
-
684
- Examples
685
- --------
686
- The following code computes the center of rotation position for two
687
- given images in a tomography scan, where the second image is taken at
688
- 180 degrees from the first.
689
-
690
- >>> radio1 = data[0, :, :]
691
- ... radio2 = np.fliplr(data[1, :, :])
692
- ... CoR_calc = CenterOfRotationAdaptiveSearch()
693
- ... cor_position = CoR_calc.find_shift(radio1, radio2)
694
-
695
- Or for noisy images:
696
-
697
- >>> cor_position = CoR_calc.find_shift(radio1, radio2, median_filt_shape=(3, 3), high_pass=20, low_pass=1 )
698
- """
699
-
700
- validity_check_result = cor_result_validity["unknown"]
701
-
702
- self._check_img_pair_sizes(img_1, img_2)
703
-
704
- used_type = img_1.dtype
705
-
706
- roi_yxhw = self._determine_roi(img_1.shape, roi_yxhw)
707
-
708
- if filtered_cost and (low_pass is not None or high_pass is not None):
709
- img_filter = fourier_filters.get_bandpass_filter(
710
- img_1.shape[-2:],
711
- cutoff_lowpass=low_pass,
712
- cutoff_highpass=high_pass,
713
- use_rfft=True,
714
- data_type=self.data_type,
715
- )
716
- # fft2 and iff2 use axes=(-2, -1) by default
717
- img_filtered_1 = local_ifftn(local_fftn(img_1, axes=(-2, -1)) * img_filter, axes=(-2, -1)).real
718
- img_filtered_2 = local_ifftn(local_fftn(img_2, axes=(-2, -1)) * img_filter, axes=(-2, -1)).real
719
- else:
720
- img_filtered_1 = img_1
721
- img_filtered_2 = img_2
722
-
723
- img_1 = self._prepare_image(img_1, roi_yxhw=roi_yxhw, median_filt_shape=median_filt_shape)
724
- img_2 = self._prepare_image(img_2, roi_yxhw=roi_yxhw, median_filt_shape=median_filt_shape)
725
-
726
- img_filtered_1 = self._prepare_image(img_filtered_1, roi_yxhw=roi_yxhw, median_filt_shape=median_filt_shape)
727
- img_filtered_2 = self._prepare_image(img_filtered_2, roi_yxhw=roi_yxhw, median_filt_shape=median_filt_shape)
728
-
729
- dim_radio = img_1.shape[1]
730
-
731
- if margins is None:
732
- lim_1, lim_2 = 10, dim_radio - 1 - 10
733
- else:
734
- lim_1, lim_2 = margins
735
- lim_2 = dim_radio - 1 - lim_2
736
-
737
- if lim_1 < 1:
738
- lim_1 = 1
739
- if lim_2 > dim_radio - 2:
740
- lim_2 = dim_radio - 2
741
-
742
- if lim_2 <= lim_1:
743
- message = (
744
- "Image shape or cropped selection too small for global search."
745
- + " After removal of the margins the search limits collide."
746
- + " The cropped size is %d\n" % (dim_radio)
747
- )
748
- raise ValueError(message)
749
-
750
- found_centers = []
751
- x_cor = lim_1
752
- while x_cor < lim_2:
753
- tmp_sigma = (
754
- min(
755
- (img_1.shape[1] - x_cor),
756
- (x_cor),
757
- )
758
- * self.sigma_fraction
759
- )
760
-
761
- tmp_x = (np.arange(img_1.shape[1]) - x_cor) / tmp_sigma
762
- apodis = np.exp(-tmp_x * tmp_x / 2.0)
763
-
764
- x_cor_rel = x_cor - (img_1.shape[1] // 2)
765
-
766
- img_1_apodised = img_1 * apodis
767
-
768
- try:
769
- cor_position = CenterOfRotation.find_shift(
770
- self,
771
- img_1_apodised.astype(used_type),
772
- img_2.astype(used_type),
773
- low_pass=low_pass,
774
- high_pass=high_pass,
775
- roi_yxhw=roi_yxhw,
776
- )
777
- except ValueError as err:
778
- if "positions are outside the input margins" in str(err):
779
- x_cor = min(x_cor + x_cor * self.step_fraction, x_cor + (dim_radio - x_cor) * self.step_fraction)
780
- continue
781
- except:
782
- message = "Unexpected error from base class CenterOfRotation.find_shift in CenterOfRotationAdaptiveSearch.find_shift : {err}".format(
783
- err=err
784
- )
785
- self.logger.error(message)
786
- raise
787
-
788
- p_1 = cor_position * 2
789
- if cor_position < 0:
790
- p_2 = img_2.shape[1] + cor_position * 2
791
- else:
792
- p_2 = -img_2.shape[1] + cor_position * 2
793
-
794
- if abs(x_cor_rel - p_1 / 2) < abs(x_cor_rel - p_2 / 2):
795
- cor_position = p_1 / 2
796
- else:
797
- cor_position = p_2 / 2
798
-
799
- cor_in_img = img_1.shape[1] // 2 + cor_position
800
- tmp_sigma = (
801
- min(
802
- (img_1.shape[1] - cor_in_img),
803
- (cor_in_img),
804
- )
805
- * self.sigma_fraction
806
- )
807
-
808
- M1 = int(round(cor_position + img_1.shape[1] // 2)) - int(round(tmp_sigma))
809
- M2 = int(round(cor_position + img_1.shape[1] // 2)) + int(round(tmp_sigma))
810
-
811
- piece_1 = img_filtered_1[:, M1:M2]
812
- piece_2 = img_filtered_2[:, img_1.shape[1] - M2 : img_1.shape[1] - M1]
813
-
814
- if piece_1.size and piece_2.size:
815
- piece_1 = piece_1 - piece_1.mean()
816
- piece_2 = piece_2 - piece_2.mean()
817
- energy = np.array(piece_1 * piece_1 + piece_2 * piece_2, "d").sum()
818
- diff_energy = np.array((piece_1 - piece_2) * (piece_1 - piece_2), "d").sum()
819
- cost = diff_energy / energy
820
-
821
- if not np.isnan(cost):
822
- if tmp_sigma * 2 > abs(x_cor_rel - cor_position):
823
- found_centers.append([cost, abs(x_cor_rel - cor_position), cor_position, energy])
824
-
825
- x_cor = min(x_cor + x_cor * self.step_fraction, x_cor + (dim_radio - x_cor) * self.step_fraction)
826
-
827
- if len(found_centers) == 0:
828
- message = "Unable to find any valid CoR candidate in {my_class}.find_shift ".format(
829
- my_class=self.__class__.__name__
830
- )
831
- raise ValueError(message)
832
-
833
- # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
834
- # Now build the neigborhood of the minimum as a list of five elements:
835
- # the minimum in the middle of the two before, and the two after
836
-
837
- filtered_found_centers = []
838
- for i in range(len(found_centers)):
839
- if i > 0:
840
- if abs(found_centers[i][2] - found_centers[i - 1][2]) < 0.5:
841
- filtered_found_centers.append(found_centers[i])
842
- continue
843
- if i + 1 < len(found_centers):
844
- if abs(found_centers[i][2] - found_centers[i + 1][2]) < 0.5:
845
- filtered_found_centers.append(found_centers[i])
846
- continue
847
-
848
- if len(filtered_found_centers):
849
- found_centers = filtered_found_centers
850
-
851
- min_choice = min(found_centers)
852
- index_min_choice = found_centers.index(min_choice)
853
- min_neighborood = [
854
- found_centers[i][2] if (i >= 0 and i < len(found_centers)) else math.nan
855
- for i in range(index_min_choice - 2, index_min_choice + 2 + 1)
856
- ]
857
-
858
- score_right = 0
859
- for i_pos in [3, 4]:
860
- if abs(min_neighborood[i_pos] - min_neighborood[2]) < 0.5:
861
- score_right += 1
862
- else:
863
- break
864
-
865
- score_left = 0
866
- for i_pos in [1, 0]:
867
- if abs(min_neighborood[i_pos] - min_neighborood[2]) < 0.5:
868
- score_left += 1
869
- else:
870
- break
871
-
872
- if score_left + score_right >= 2:
873
- validity_check_result = cor_result_validity["sound"]
874
- else:
875
- self.logger.warning(
876
- "Minimum mean difference and minimum std-dev of differences do not coincide. "
877
- + "This means that the validity of the found solution might be questionable."
878
- )
879
- validity_check_result = cor_result_validity["questionable"]
880
-
881
- # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
882
- # An informative message in case one wish to look at how it has gone
883
- informative_message = " ".join(
884
- ["CenterOfRotationAdaptiveSearch found this neighborood of the optimal position:"]
885
- + [str(t) if not math.isnan(t) else "N.A." for t in min_neighborood]
886
- )
887
- self.logger.debug(informative_message)
888
-
889
- # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
890
- # The return value is the optimum which had been placed in the middle of the neighborood
891
- cor_position = min_neighborood[2]
892
-
893
- if return_validity:
894
- return cor_position, validity_check_result
895
- else:
896
- return cor_position
897
-
898
- __call__ = find_shift
899
-
900
-
901
- class CenterOfRotationFourierAngles(CenterOfRotation):
902
- """This CoR estimation algo is proposed by V. Valls (BCU). It is based on the Fourier
903
- transform of the columns on the sinogram.
904
- It requires an initial guesss of the CoR wich is retrieved from
905
- dataset_info.dataset_scanner.estimated_cor_from_motor. It is assumed in mm and pixel size in um.
906
- Options are (for the moment) hard-coded in the SinoCORFinder.cor_finder.extra_options dict.
907
- """
908
-
909
- _default_cor_options = {
910
- "crop_around_cor": False,
911
- "side": "center",
912
- "near_pos": None,
913
- "near_std": 100,
914
- "near_width": 20,
915
- "near_shape": "tukey",
916
- "near_weight": 0.1,
917
- "near_alpha": 0.5,
918
- "shift_sino": True,
919
- "near_step": 0.5,
920
- "refine": False,
921
- }
922
-
923
- def _freq_radio(self, sinos, ifrom, ito):
924
- size = (sinos.shape[0] + sinos.shape[0] % 2) // 2
925
- fs = np.empty((size, sinos.shape[1]))
926
- for i in range(ifrom, ito):
927
- line = sinos[:, i]
928
- f_signal = rfft(line)
929
- f = np.abs(f_signal[: (f_signal.size - 1) // 2 + 1])
930
- f2 = np.abs(f_signal[(f_signal.size - 1) // 2 + 1 :][::-1])
931
- if len(f) > len(f2):
932
- f[1:] += f2
933
- else:
934
- f[0:] += f2
935
- fs[:, i] = f
936
- with np.errstate(divide="ignore", invalid="ignore", under="ignore"):
937
- fs = np.log(fs)
938
- return fs
939
-
940
- def gaussian(self, p, x):
941
- return p[3] + p[2] * np.exp(-((x - p[0]) ** 2) / (2 * p[1] ** 2))
942
-
943
- def tukey(self, p, x):
944
- pos, std, alpha, height, background = p
945
- alpha = np.clip(alpha, 0, 1)
946
- pi = np.pi
947
- inv_alpha = 1 - alpha
948
- width = std / (1 - alpha * 0.5)
949
- xx = (np.abs(x - pos) - (width * 0.5 * inv_alpha)) / (width * 0.5 * alpha)
950
- xx = np.clip(xx, 0, 1)
951
- return (0.5 + np.cos(pi * xx) * 0.5) * height + background
952
-
953
- def sinlet(self, p, x):
954
- std = p[1] * 2.5
955
- lin = np.maximum(0, std - np.abs(p[0] - x)) * 0.5 * np.pi / std
956
- return p[3] + p[2] * np.sin(lin)
957
-
958
- def _px(self, detector_width, abs_pos, near_std):
959
- sym_range = None
960
- if abs_pos is not None:
961
- if self.cor_options["crop_around_cor"]:
962
- sym_range = int(abs_pos - near_std * 2), int(abs_pos + near_std * 2)
963
-
964
- window = self.cor_options["near_width"]
965
- if sym_range is not None:
966
- xx_from = max(window, sym_range[0])
967
- xx_to = max(xx_from, min(detector_width - window, sym_range[1]))
968
- if xx_from == xx_to:
969
- sym_range = None
970
- if sym_range is None:
971
- xx_from = window
972
- xx_to = detector_width - window
973
-
974
- xx = np.arange(xx_from, xx_to, self.cor_options["near_step"])
975
-
976
- return xx
977
-
978
- def _symmetry_correlation(self, px, array, angles):
979
- window = self.cor_options["near_width"]
980
- if self.cor_options["shift_sino"]:
981
- shift_index = np.argmin(np.abs(angles - np.pi)) - np.argmin(np.abs(angles - 0))
982
- else:
983
- shift_index = None
984
- px_from = int(px[0])
985
- px_to = int(np.ceil(px[-1]))
986
- f_coef = np.empty(len(px))
987
- f_array = self._freq_radio(array, px_from - window, px_to + window)
988
- if shift_index is not None:
989
- shift_array = np.empty(array.shape, dtype=array.dtype)
990
- shift_array[0 : len(shift_array) - shift_index, :] = array[shift_index:, :]
991
- shift_array[len(shift_array) - shift_index :, :] = array[:shift_index, :]
992
- f_shift_array = self._freq_radio(shift_array, px_from - window, px_to + window)
993
- else:
994
- f_shift_array = f_array
995
-
996
- for j, x in enumerate(px):
997
- i = int(np.floor(x))
998
- if x - i > 0.4: # TO DO : Specific to near_step = 0.5?
999
- f_left = f_array[:, i - window : i]
1000
- f_right = f_shift_array[:, i + 1 : i + window + 1][:, ::-1]
1001
- else:
1002
- f_left = f_array[:, i - window : i]
1003
- f_right = f_shift_array[:, i : i + window][:, ::-1]
1004
- with np.errstate(divide="ignore", invalid="ignore"):
1005
- f_coef[j] = np.sum(np.abs(f_left - f_right))
1006
- return f_coef
1007
-
1008
- def _cor_correlation(self, px, abs_pos, near_std):
1009
- if abs_pos is not None:
1010
- signal = self.cor_options["near_shape"]
1011
- weight = self.cor_options["near_weight"]
1012
- alpha = self.cor_options["near_alpha"]
1013
- if signal == "sinlet":
1014
- coef = self.sinlet((abs_pos, near_std, -weight, 1), px)
1015
- elif signal == "gaussian":
1016
- coef = self.gaussian((abs_pos, near_std, -weight, 1), px)
1017
- elif signal == "tukey":
1018
- coef = self.tukey((abs_pos, near_std * 2, alpha, -weight, 1), px)
1019
- else:
1020
- raise ValueError("Shape unsupported")
1021
- else:
1022
- coef = np.ones_like(px)
1023
- return coef
1024
-
1025
- def find_shift(
1026
- self,
1027
- img_1,
1028
- img_2,
1029
- angles,
1030
- side,
1031
- roi_yxhw=None,
1032
- median_filt_shape=None,
1033
- padding_mode=None,
1034
- peak_fit_radius=1,
1035
- high_pass=None,
1036
- low_pass=None,
1037
- ):
1038
- sinos = np.vstack([img_1, np.fliplr(img_2).copy()])
1039
- detector_width = sinos.shape[1]
1040
-
1041
- increment = np.abs(angles[0] - angles[1])
1042
- if np.abs(angles[0] - angles[-1]) < (360 - 0.5) * np.pi / 180 - increment:
1043
- self.logger.warning("Not enough angles, estimator skipped")
1044
- return None
1045
-
1046
- near_pos = self.cor_options.get("near_pos", None) # A RELATIVE estimation of the COR
1047
-
1048
- # Default coarse estimate to center of detector
1049
- # if no one is given either in NX or by user.
1050
- if near_pos is None:
1051
- self.logger.warning("No initial guess was found (from metadata or user) for CoR")
1052
- self.logger.warning("Setting initial guess to center of detector.")
1053
- if side == "center":
1054
- abs_pos = detector_width // 2
1055
- elif side == "left":
1056
- abs_pos = detector_width // 4
1057
- elif side == "right":
1058
- abs_pos = detector_width * 3 // 4
1059
- elif side == "near":
1060
- abs_pos = detector_width // 2
1061
- else:
1062
- raise ValueError(f"side '{side}' is not handled")
1063
- elif isinstance(near_pos, (int, float)): # Convert RELATIVE to ABSOLUTE position
1064
- abs_pos = near_pos + detector_width / 2
1065
-
1066
- near_std = None
1067
- if abs_pos is not None:
1068
- near_std = self.cor_options["near_std"]
1069
-
1070
- px = self._px(detector_width, abs_pos, near_std)
1071
-
1072
- coef_f = self._symmetry_correlation(
1073
- px,
1074
- sinos,
1075
- angles,
1076
- )
1077
- coef_p = self._cor_correlation(px, abs_pos, near_std)
1078
- coef = coef_f * coef_p
1079
-
1080
- if len(px) > 0:
1081
- if self.cor_options["refine"]:
1082
- f_vals, f_pos = self.extract_peak_regions_1d(-coef, peak_radius=20, cc_coords=px)
1083
- cor, _ = self.refine_max_position_1d(f_vals, fx=f_pos, return_vertex_val=True)
1084
- else:
1085
- cor = px[np.argmin(coef)]
1086
- cor = cor - detector_width / 2
1087
- else:
1088
- cor = None
1089
-
1090
- return cor
1091
-
1092
- __call__ = find_shift
1093
-
1094
-
1095
- class CenterOfRotationOctaveAccurate(AlignmentBase):
1096
- """This is a Python implementation of Octave/fastomo3/accurate COR estimator.
1097
- The Octave 'accurate' function is renamed `local_correlation`.
1098
- The Nabu standard `find_shift` has the same API as the other COR estimators (sliding, growing...)
1099
-
1100
- The class inherits directly from AlignmentBase.
1101
- """
1102
-
1103
- _default_cor_options = {
1104
- "maxsize": [5, 5],
1105
- "refine": None,
1106
- "pmcc": False,
1107
- "normalize": True,
1108
- "low_pass": 0.01,
1109
- "limz": 0.5,
1110
- }
1111
-
1112
- def _cut(self, im, nrows, ncols, new_center_row=None, new_center_col=None):
1113
- """Cuts a sub-matrix out of a larger matrix.
1114
- Cuts in the center of the original matrix, except if new center is specified
1115
- NO CHECKING of validity indices sub-matrix!
1116
-
1117
- Parameters
1118
- ----------
1119
- im : array.
1120
- Original matrix
1121
- nrows : int
1122
- Number of rows in the output matrix.
1123
- ncols : int
1124
- Number of columns in the output matrix.
1125
- new_center_row : int
1126
- Index of center row around which to cut (default: None, i.e. center)
1127
- new_center_col : int
1128
- Index of center column around which to cut (default: None, i.e. center)
1129
-
1130
- Returns
1131
- -------
1132
- nrows x ncols array.
1133
-
1134
- Examples
1135
- --------
1136
- im_roi = cut(im, 1024, 1024) -> cut center 1024x1024 pixels
1137
- im_roi = cut(im, 1024, 1024, 600.5, 700.5) -> cut 1024x1024 pixels around pixels (600-601, 700-701)
1138
-
1139
- Author: P. Cloetens <cloetens@esrf.eu>
1140
- 2023-11-06 J. Lesaint <jerome.lesaint@esrf.fr>
1141
-
1142
- * See octave-archive for the original Octave code.
1143
- * 2023-11-06: Python implementation. Comparison seems OK.
1144
- """
1145
- [n, m] = im.shape
1146
- if new_center_row is None:
1147
- new_center_row = (n + 1) / 2
1148
- if new_center_col is None:
1149
- new_center_col = (m + 1) / 2
1150
-
1151
- rb = int(np.round(0.5 + new_center_row - nrows / 2))
1152
- rb = int(np.round(new_center_row - nrows / 2))
1153
- re = int(nrows + rb)
1154
- cb = int(np.round(0.5 + new_center_col - ncols / 2))
1155
- cb = int(np.round(new_center_col - ncols / 2))
1156
- ce = int(ncols + cb)
1157
-
1158
- return im[rb:re, cb:ce]
1159
-
1160
- def _checkifpart(self, rapp, rapp_hist):
1161
- res = 0
1162
- for k in range(rapp_hist.shape[0]):
1163
- if np.allclose(rapp, rapp_hist[k, :]):
1164
- res = 1
1165
- return res
1166
- return res
1167
-
1168
- def _interpolate(self, input, shift, mode="mean", interpolation_method="linear"):
1169
- """Applies to the input a translation by a vector `shift`. Based on
1170
- `scipy.ndimage.affine_transform` function.
1171
- JL: This Octave function was initially used in the refine clause of the local_correlation (Octave find_shift).
1172
- Since find_shift is always called with refine=False in Octave, refine is not implemented (see local_interpolation())
1173
- and this function becomes useless.
1174
-
1175
- Parameters
1176
- ----------
1177
- input : array
1178
- Array to which the translation is applied.
1179
- shift : tuple, list or array of length 2.
1180
- mode : str
1181
- Type of padding applied to the unapplicable areas of the output image.
1182
- Default `mean` is a constant padding with the mean of the input array.
1183
- `mode` must belong to 'reflect', 'grid-mirror', 'constant', 'grid-constant', 'nearest', 'mirror', 'grid-wrap', 'wrap'
1184
- See `scipy.ndimage.affine_transform` for details.
1185
- interpolation_method : str or int.
1186
- The interpolation is based on spline interpolation.
1187
- Either 0, 1, 2, 3, 4 or 5: order of the spline interpolation functions.
1188
- Or one among 'linear','cubic','pchip','nearest','spline' (Octave legacy).
1189
- 'nearest' is equivalent to 0
1190
- 'linear' is equivalent to 1
1191
- 'cubic','pchip','spline' are equivalent to 3.
1192
- """
1193
- admissible_modes = (
1194
- "reflect",
1195
- "grid-mirror",
1196
- "constant",
1197
- "grid-constant",
1198
- "nearest",
1199
- "mirror",
1200
- "grid-wrap",
1201
- "wrap",
1202
- )
1203
- admissible_interpolation_methods = ("linear", "cubic", "pchip", "nearest", "spline")
1204
-
1205
- from scipy.ndimage import affine_transform
1206
-
1207
- [s0, s1] = shift
1208
- matrix = np.zeros([2, 3], dtype=float)
1209
- matrix[0, 0] = 1.0
1210
- matrix[1, 1] = 1.0
1211
- matrix[:, 2] = [-s0, -s1] # JL: due to transf. convention diff in Octave and scipy (push fwd vs pull back)
1212
-
1213
- if interpolation_method == "nearest":
1214
- order = 0
1215
- elif interpolation_method == "linear":
1216
- order = 1
1217
- elif interpolation_method in ("pchip", "cubic", "spline"):
1218
- order = 3
1219
- elif interpolation_method in (0, 1, 2, 3, 4, 5):
1220
- order = interpolation_method
1221
- else:
1222
- raise ValueError(
1223
- f"Interpolation method is {interpolation_method} and should either an integer between 0 (inc.) and 5 (inc.) or in {admissible_interpolation_methods}."
1224
- )
1225
-
1226
- if mode == "mean":
1227
- mode = "constant"
1228
- cval = input.mean()
1229
- return affine_transform(input, matrix, mode=mode, order=order, cval=cval)
1230
- elif mode not in admissible_modes:
1231
- raise ValueError(f"Pad method is {mode} and should be in {admissible_modes}.")
1232
-
1233
- return affine_transform(input, matrix, mode=mode, order=order)
1234
-
1235
- def _local_correlation(
1236
- self,
1237
- z1,
1238
- z2,
1239
- maxsize=[5, 5],
1240
- cor_estimate=[0, 0],
1241
- refine=None,
1242
- pmcc=False,
1243
- normalize=True,
1244
- ):
1245
- """Returns the 2D shift in pixels between two images.
1246
- It looks for a local optimum around the initial shift cor_estimate
1247
- and within a window 'maxsize'.
1248
- It uses variance of the difference of the normalized images or PMCC
1249
- It adapts the shift estimate in case optimum is at the edge of the window
1250
- If 'maxsize' is set to 0, it will only use approximate shift (+ refine possibly)
1251
- Set 'cor_estimate' to allow for the use of any initial shift estimation.
1252
-
1253
- When not successful (stuck in loop or edge reached), returns [nan nan]
1254
- Positive values corresponds to moving z2 to higher values of the index
1255
- to compensate drift: interpolate(f)(z2, row, column)
1256
-
1257
- Parameters
1258
- ----------
1259
- z1,z2 : 2D arrays.
1260
- The two (sub)images to be compared.
1261
-
1262
- maxsize : 2-list. Default [5,5]
1263
- Size of the search window.
1264
-
1265
- cor_estimate:
1266
- Initial guess of the center of rotation.
1267
-
1268
- refine: Boolean or None (default is None)
1269
- Wether the initial guess should be refined of not.
1270
-
1271
- pmcc: Boolean (default is False)
1272
- Use Pearson correlation coefficient i.o. variance.
1273
-
1274
- normalize: Boolean (default is True)
1275
- Set mean of each image to 1 if True.
1276
-
1277
- Returns
1278
- -------
1279
- c = [row,column] (or [NaN,NaN] if unsuccessful.)
1280
-
1281
- 2007-01-05 P. Cloetens cloetens@esrf.eu
1282
- * Initial revision
1283
- 2023-11-10 J. Lesaint jerome.lesaint@esrf.fr
1284
- * Python conversion.
1285
- """
1286
-
1287
- if type(maxsize) in (float, int):
1288
- maxsize = [int(maxsize), int(maxsize)]
1289
- elif type(maxsize) in (tuple, list):
1290
- maxsize = [int(maxsize[0]), int(maxsize[1])]
1291
- elif maxsize in ([], None, ""):
1292
- maxsize = [5, 5]
1293
-
1294
- if refine is None:
1295
- refine = np.allclose(maxsize, 0.0)
1296
-
1297
- if normalize:
1298
- z1 /= np.mean(z1)
1299
- z2 /= np.mean(z2)
1300
-
1301
- #####################################
1302
- # JL : seems useless since func is always called with a first approximate.
1303
- ## determination of approximative shift (manually or Fourier correlation)
1304
- # if isinstance(cor_estimate,str):
1305
- # if cor_estimate in ('fft','auto','fourier'):
1306
- # padding_mode = None
1307
- # cor_estimate = self._compute_correlation_fft(
1308
- # z1,
1309
- # z2,
1310
- # padding_mode,
1311
- # high_pass=self.high_pass,
1312
- # low_pass=self.low_pass
1313
- # )
1314
- # elif cor_estimate in ('manual','man','m'):
1315
- # cor_estimate = None
1316
- # # No ImageJ plugin here :
1317
- # # rapp = ij_align(z1,z2)
1318
-
1319
- ####################################
1320
- # check if refinement with realspace correlation is required
1321
- # otherwise keep result as it is
1322
- if np.allclose(maxsize, 0):
1323
- shiftfound = 1
1324
- if refine:
1325
- c = np.round(np.array(cor_estimate, dtype=int))
1326
- else:
1327
- c = np.array(cor_estimate, dtype=int)
1328
- else:
1329
- shiftfound = 0
1330
- cor_estimate = np.round(np.array(cor_estimate, dtype=int))
1331
-
1332
- rapp_hist = []
1333
- if np.sum(np.abs(cor_estimate) + 1 >= z1.shape):
1334
- self.logger.info(f"Approximate shift of [{cor_estimate[0]},{cor_estimate[1]}] is too large, setting [0 0]")
1335
- cor_estimate = np.array([0, 0])
1336
- maxsize = np.minimum(maxsize, np.floor((np.array(z1.shape) - 1) / 2)).astype(int)
1337
- maxsize = np.minimum(maxsize, np.array(z1.shape) - np.abs(cor_estimate) - 1).astype(int)
1338
-
1339
- while not shiftfound:
1340
- # Set z1 region
1341
- # Rationale: the (shift[0]+maxsize[0]:,shift[1]+maxsize[1]:) block of z1 should match
1342
- # the (maxsize[0]:,maxisze[1]:)-upper-left corner of z2.
1343
- # We first extract this z1 block.
1344
- # Then, take moving z2-block according to maxsize.
1345
- # Of course, care must be taken with borders, hence the various max,min calls.
1346
-
1347
- # Extract the reference block
1348
- shape_ar = np.array(z1.shape)
1349
- cor_ar = np.array(cor_estimate)
1350
- maxsize_ar = np.array(maxsize)
1351
-
1352
- z1beg = np.maximum(cor_ar + maxsize_ar, np.zeros(2, dtype=int))
1353
- z1end = shape_ar + np.minimum(cor_ar - maxsize_ar, np.zeros(2, dtype=int))
1354
-
1355
- z1p = z1[z1beg[0] : z1end[0], z1beg[1] : z1end[1]].flatten()
1356
-
1357
- # Build local correlations array.
1358
- window_shape = (2 * int(maxsize[0]) + 1, 2 * int(maxsize[1]) + 1)
1359
- cc = np.zeros(window_shape)
1360
-
1361
- # Prepare second block indices
1362
- z2beg = (cor_ar + maxsize_ar > 0) * cc.shape + (cor_ar + maxsize_ar <= 0) * (shape_ar - z1end + z1beg) - 1
1363
- z2end = z2beg + z1end - z1beg
1364
-
1365
- if pmcc:
1366
- std_z1p = z1p.std()
1367
- if normalize == 2:
1368
- z1p /= z1p.mean()
1369
-
1370
- for k in range(cc.shape[0]):
1371
- for l in range(cc.shape[1]):
1372
- if pmcc:
1373
- z2p = z2[z2beg[0] - k : z2end[0] - k, z2beg[1] - l : z2end[1] - l].flatten()
1374
- std_z2p = z2p.std()
1375
- cc[k, l] = -np.cov(z1p, z2p, rowvar=True)[1, 0] / (std_z1p * std_z2p)
1376
- else:
1377
- if normalize == 2:
1378
- z2p = z2[z2beg[0] - k : z2end[0] - k, z2beg[1] - l : z2end[1] - l].flatten()
1379
- z2p /= z2p.mean()
1380
- z2p -= z1p
1381
- else:
1382
- z2p = z2[z2beg[0] - k : z2end[0] - k, z2beg[1] - l : z2end[1] - l].flatten()
1383
- z2p -= z1p
1384
- cc[k, l] = ((z2p - z2p.mean()) ** 2).sum()
1385
- # cc(k,l) = std(z1p./z2(z2beg(1)-k:z2end(1)-k,z2beg(2)-l:z2end(2)-l)(:));
1386
-
1387
- c = np.unravel_index(np.argmin(cc, axis=None), shape=cc.shape)
1388
-
1389
- if not np.sum((c == 0) + (c == np.array(cc.shape) - 1)):
1390
- # check that we are not at the edge of the region that was sampled
1391
- x = np.array([-1, 0, 1])
1392
- tmp = self.refine_max_position_2d(cc[c[0] - 1 : c[0] + 2, c[1] - 1 : c[1] + 2], x, x)
1393
- c += tmp
1394
- shiftfound = True
1395
-
1396
- c += z1beg - z2beg
1397
-
1398
- rapp_hist = []
1399
- if not shiftfound:
1400
- cor_estimate = c
1401
- # Check that new shift estimate was not already done (avoid eternal loop)
1402
- if self._checkifpart(cor_estimate, rapp_hist):
1403
- if self.verbose:
1404
- self.logger.info(f"Stuck in loop?")
1405
- refine = True
1406
- shiftfound = True
1407
- c = np.array([np.nan, np.nan])
1408
- else:
1409
- rapp_hist.append(cor_estimate)
1410
- if self.verbose:
1411
- self.logger.info(f"Changing shift estimate: {cor_estimate}")
1412
- maxsize = np.minimum(maxsize, np.array(z1.shape) - np.abs(cor_estimate) - 1).astype(int)
1413
- if (maxsize == 0).sum():
1414
- if self.verbose:
1415
- self.logger.info(f"Edge of image reached")
1416
- refine = False
1417
- shiftfound = True
1418
- c = np.array([np.nan, np.nan])
1419
- elif len(rapp_hist) > 0:
1420
- if self.verbose:
1421
- self.logger.info("\n")
1422
-
1423
- ####################################
1424
- # refine result; useful when shifts are not integer values
1425
- # JL: I don't understand why this refine step should be useful.
1426
- # In Octave, from fastomo.m, refine is always set to False.
1427
- # So this could be ignored.
1428
- # I keep it for future use if it proves useful.
1429
- # if refine:
1430
- # if debug:
1431
- # print('Refining solution ...')
1432
- # z2n = self.interpolate(z2,c)
1433
- # indices = np.ceil(np.abs(c)).astype(int)
1434
- # z1p = np.roll(z1,((c>0) * (-1) * indices),[0,1])
1435
- # z1p = z1p[1:-indices[0]-1,1:-indices[1]-1].flatten()
1436
- # z2n = np.roll(z2n,((c>0) * (-1) * indices),[0,1])
1437
- # z2n = z2n[:-indices[0],:-indices[1]]
1438
- # ccrefine = np.zeros([3,3])
1439
- # [n2,m2] = z2n.shape
1440
- # for k in range(3):
1441
- # for l in range(3):
1442
- # z2p = z1p - z2n[2-k:n2-k,2-l:m2-l].flatten()
1443
- # ccrefine[k,l] = ((z2p - z2p.mean())**2).sum()
1444
- # x = np.array([-1,0,1])
1445
- # crefine = self.refine_max_position_2d(ccrefine, x, x)
1446
- # #crefine = min2par(ccrefine)
1447
-
1448
- # # Check if the refinement is effectively confined to subpixel
1449
- # if (np.abs(crefine) >= 1).sum():
1450
- # self.logger.info("Problems refining result\n")
1451
- # else:
1452
- # c += crefine
1453
-
1454
- return c
1455
-
1456
- def find_shift(
1457
- self,
1458
- img_1: np.ndarray,
1459
- img_2: np.ndarray,
1460
- side: str,
1461
- roi_yxhw=None,
1462
- median_filt_shape=None,
1463
- padding_mode=None,
1464
- low_pass=0.01,
1465
- high_pass=None,
1466
- ):
1467
- """Automatically finds the Center of Rotation (CoR), given two images
1468
- (projections/radiographs). Suitable for half-aquisition scan.
1469
-
1470
- This method finds the half-shift between two opposite images, by
1471
- minimizing the variance of small ROI around a global COR estimate
1472
- (obtained by maximizing Fourier-space computed global correlations).
1473
-
1474
-
1475
- The output of this function, allows to compute motor movements for
1476
- aligning the sample rotation axis. Given the following values:
1477
-
1478
- - L1: distance from source to motor
1479
- - L2: distance from source to detector
1480
- - ps: physical pixel size
1481
- - v: output of this function
1482
-
1483
- displacement of motor = (L1 / L2 * ps) * v
1484
-
1485
- Parameters
1486
- ----------
1487
- img_1: numpy.ndarray
1488
- First image
1489
- img_2: numpy.ndarray
1490
- Second image, it needs to have been flipped already (e.g. using numpy.fliplr).
1491
- side: string
1492
- Expected region of the CoR. Must be 'center' in that case.
1493
- roi_yxhw: (2, ) or (4, ) numpy.ndarray, tuple, or array, optional
1494
- 4 elements vector containing: vertical and horizontal coordinates
1495
- of first pixel, plus height and width of the Region of Interest (RoI).
1496
- Or a 2 elements vector containing: plus height and width of the
1497
- centered Region of Interest (RoI).
1498
- Default is None -> deactivated.
1499
- The ROI will be used for the global estimate.
1500
- median_filt_shape: (2, ) numpy.ndarray, tuple, or array, optional
1501
- Shape of the median filter window. Default is None -> deactivated.
1502
- padding_mode: str in numpy.pad's mode list, optional
1503
- Padding mode, which determines the type of convolution. If None or
1504
- 'wrap' are passed, this resorts to the traditional circular convolution.
1505
- If 'edge' or 'constant' are passed, it results in a linear convolution.
1506
- Default is the circular convolution.
1507
- All options are:
1508
- None | 'constant' | 'edge' | 'linear_ramp' | 'maximum' | 'mean'
1509
- | 'median' | 'minimum' | 'reflect' | 'symmetric' |'wrap'
1510
- low_pass: float or sequence of two floats
1511
- Low-pass filter properties, as described in `nabu.misc.fourier_filters`
1512
- high_pass: float or sequence of two floats
1513
- High-pass filter properties, as described in `nabu.misc.fourier_filters`
1514
-
1515
- Raises
1516
- ------
1517
- ValueError
1518
- In case images are not 2-dimensional or have different sizes.
1519
-
1520
- Returns
1521
- -------
1522
- float
1523
- Estimated center of rotation position from the center of the RoI in pixels.
1524
-
1525
- Examples
1526
- --------
1527
- The following code computes the center of rotation position for two
1528
- given images in a tomography scan, where the second image is taken at
1529
- 180 degrees from the first.
1530
-
1531
- >>> radio1 = data[0, :, :]
1532
- ... radio2 = np.fliplr(data[1, :, :])
1533
- ... CoR_calc = CenterOfRotationOctaveAccurate()
1534
- ... cor_position = CoR_calc.find_shift(radio1, radio2)
1535
-
1536
- Or for noisy images:
1537
-
1538
- >>> cor_position = CoR_calc.find_shift(radio1, radio2, median_filt_shape=(3, 3))
1539
- """
1540
-
1541
- self.logger.info(
1542
- f"Estimation of the COR with following options: high_pass={high_pass}, low_pass={low_pass}, limz={self.cor_options['limz']}."
1543
- )
1544
-
1545
- self._check_img_pair_sizes(img_1, img_2)
1546
-
1547
- if side != "center":
1548
- self.logger.fatal(
1549
- "The accurate algorithm cannot handle half acq. Use 'near', 'fourier-angles', 'sliding-window' or 'growing-window' instead."
1550
- )
1551
- raise ValueError(
1552
- "The accurate algorithm cannot handle half acq. Use 'near', 'fourier-angles', 'sliding-window' or 'growing-window' instead."
1553
- )
1554
-
1555
- img_shape = img_2.shape
1556
- roi_yxhw = self._determine_roi(img_shape, roi_yxhw)
1557
-
1558
- img_1 = self._prepare_image(img_1, roi_yxhw=roi_yxhw, median_filt_shape=median_filt_shape)
1559
- img_2 = self._prepare_image(img_2, roi_yxhw=roi_yxhw, median_filt_shape=median_filt_shape)
1560
-
1561
- cc = self._compute_correlation_fft(
1562
- img_1,
1563
- img_2,
1564
- padding_mode,
1565
- high_pass=high_pass,
1566
- low_pass=low_pass,
1567
- )
1568
-
1569
- # We use fftshift to deal more easily with negative shifts.
1570
- # This has a cost of subtracting half the image shape afterward.
1571
- shift = np.unravel_index(np.argmax(np.fft.fftshift(cc)), img_shape)
1572
- shift -= np.array(img_shape) // 2
1573
-
1574
- # The real "accurate" starts here (i.e. the octave findshift() func).
1575
- if np.abs(shift[0]) > 10 * self.cor_options["limz"]:
1576
- # This is suspiscious. We don't trust results of correlate.
1577
- self.logger.info(f"Pre-correlation yields {shift[0]} pixels vertical motion")
1578
- self.logger.info(f"We do not consider it.")
1579
- shift = (0, 0)
1580
-
1581
- # Limit the size of region for comparison to cutsize in both directions.
1582
- # Hard-coded?
1583
- cutsize = img_shape[1] // 2
1584
- oldshift = np.round(shift).astype(int)
1585
- if (img_shape[0] > cutsize) or (img_shape[1] > cutsize):
1586
- im0 = self._cut(img_1, min(img_shape[0], cutsize), min(img_shape[1], cutsize))
1587
- im1 = self._cut(
1588
- np.roll(img_2, oldshift, axis=(0, 1)), min(img_shape[0], cutsize), min(img_shape[1], cutsize)
1589
- )
1590
- shift = oldshift + self._local_correlation(
1591
- im0,
1592
- im1,
1593
- maxsize=self.cor_options["maxsize"],
1594
- refine=self.cor_options["refine"],
1595
- pmcc=self.cor_options["pmcc"],
1596
- normalize=self.cor_options["normalize"],
1597
- )
1598
- else:
1599
- shift = self._local_correlation(
1600
- img_1,
1601
- img_2,
1602
- maxsize=self.cor_options["maxsize"],
1603
- cor_estimate=oldshift,
1604
- refine=self.cor_options["refine"],
1605
- pmcc=self.cor_options["pmcc"],
1606
- normalize=self.cor_options["normalize"],
1607
- )
1608
- if ((shift - oldshift) ** 2).sum() > 4:
1609
- self.logger.info(f"Pre-correlation ({oldshift}) and accurate correlation ({shift}) are not consistent.")
1610
- self.logger.info("Please check!!!")
1611
-
1612
- offset = shift[1] / 2
1613
-
1614
- if np.abs(shift[0]) > self.cor_options["limz"]:
1615
- self.logger.info("Verify alignment or sample motion.")
1616
- self.logger.info(f"Verical motion: {shift[0]} pixels.")
1617
- self.logger.info(f"Offset?: {offset} pixels.")
1618
- else:
1619
- self.logger.info(f"Offset?: {offset} pixels.")
1620
-
1621
- return offset