nabu 2024.1.1__py3-none-any.whl → 2024.1.2__py3-none-any.whl

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