nabu 2024.1.8__tar.gz → 2024.1.8.post1__tar.gz

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 (333) hide show
  1. {nabu-2024.1.8/nabu.egg-info → nabu-2024.1.8.post1}/PKG-INFO +2 -22
  2. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/__init__.py +1 -1
  3. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/pipeline/fullfield/chunked.py +1 -1
  4. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/reconstruction/tests/test_cone.py +1 -1
  5. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/stitching/overlap.py +1 -1
  6. nabu-2024.1.8.post1/nabu/thirdparty/__init__.py +0 -0
  7. {nabu-2024.1.8 → nabu-2024.1.8.post1/nabu.egg-info}/PKG-INFO +2 -22
  8. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu.egg-info/SOURCES.txt +2 -33
  9. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu.egg-info/top_level.txt +1 -0
  10. nabu-2024.1.8/doc/doc_config.py +0 -32
  11. nabu-2024.1.8/sandbox/align_test.py +0 -61
  12. nabu-2024.1.8/sandbox/app.py +0 -123
  13. nabu-2024.1.8/sandbox/binning_cython.py +0 -37
  14. nabu-2024.1.8/sandbox/circ_sm.py +0 -195
  15. nabu-2024.1.8/sandbox/composite_image.py +0 -90
  16. nabu-2024.1.8/sandbox/convert_id15.py +0 -148
  17. nabu-2024.1.8/sandbox/do_test_ctf.py +0 -40
  18. nabu-2024.1.8/sandbox/esrf_envs.py +0 -36
  19. nabu-2024.1.8/sandbox/fbp_polar.py +0 -39
  20. nabu-2024.1.8/sandbox/fbp_tilt.py +0 -340
  21. nabu-2024.1.8/sandbox/interleaved.py +0 -129
  22. nabu-2024.1.8/sandbox/interp_sinos_halftomo.py +0 -31
  23. nabu-2024.1.8/sandbox/linear_interp.py +0 -14
  24. nabu-2024.1.8/sandbox/merge_recs.py +0 -56
  25. nabu-2024.1.8/sandbox/moduleutils.py +0 -50
  26. nabu-2024.1.8/sandbox/nbreconstruct.py +0 -246
  27. nabu-2024.1.8/sandbox/pag_margin.py +0 -38
  28. nabu-2024.1.8/sandbox/parse.py +0 -132
  29. nabu-2024.1.8/sandbox/plot.py +0 -49
  30. nabu-2024.1.8/sandbox/proj3D.py +0 -75
  31. nabu-2024.1.8/sandbox/rec_bm05.py +0 -71
  32. nabu-2024.1.8/sandbox/rec_thread.py +0 -133
  33. nabu-2024.1.8/sandbox/shift_bilinear2.py +0 -42
  34. nabu-2024.1.8/sandbox/sinotilt.py +0 -181
  35. nabu-2024.1.8/sandbox/sysutils.py +0 -63
  36. nabu-2024.1.8/sandbox/test_mp_queue.py +0 -73
  37. nabu-2024.1.8/sandbox/tilt.py +0 -251
  38. nabu-2024.1.8/sandbox/utils.py +0 -54
  39. nabu-2024.1.8/sandbox/vo.py +0 -204
  40. nabu-2024.1.8/sandbox/workers.py +0 -123
  41. nabu-2024.1.8/sandbox/xrdrec_pyFAI_data.py +0 -212
  42. {nabu-2024.1.8 → nabu-2024.1.8.post1}/LICENSE +0 -0
  43. {nabu-2024.1.8 → nabu-2024.1.8.post1}/README.md +0 -0
  44. {nabu-2024.1.8 → nabu-2024.1.8.post1}/doc/conf.py +0 -0
  45. {nabu-2024.1.8 → nabu-2024.1.8.post1}/doc/create_conf_doc.py +0 -0
  46. {nabu-2024.1.8 → nabu-2024.1.8.post1}/doc/get_mathjax.py +0 -0
  47. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/app/__init__.py +0 -0
  48. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/app/bootstrap.py +0 -0
  49. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/app/bootstrap_stitching.py +0 -0
  50. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/app/cast_volume.py +0 -0
  51. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/app/cli_configs.py +0 -0
  52. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/app/compare_volumes.py +0 -0
  53. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/app/composite_cor.py +0 -0
  54. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/app/correct_rot.py +0 -0
  55. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/app/create_distortion_map_from_poly.py +0 -0
  56. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/app/diag_to_pix.py +0 -0
  57. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/app/diag_to_rot.py +0 -0
  58. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/app/double_flatfield.py +0 -0
  59. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/app/generate_header.py +0 -0
  60. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/app/histogram.py +0 -0
  61. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/app/multicor.py +0 -0
  62. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/app/nx_z_splitter.py +0 -0
  63. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/app/parse_reconstruction_log.py +0 -0
  64. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/app/prepare_weights_double.py +0 -0
  65. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/app/reconstruct.py +0 -0
  66. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/app/reconstruct_helical.py +0 -0
  67. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/app/reduce_dark_flat.py +0 -0
  68. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/app/rotate.py +0 -0
  69. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/app/shrink_dataset.py +0 -0
  70. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/app/stitching.py +0 -0
  71. {nabu-2024.1.8/nabu/cuda → nabu-2024.1.8.post1/nabu/app/tests}/__init__.py +0 -0
  72. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/app/tests/test_reduce_dark_flat.py +0 -0
  73. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/app/utils.py +0 -0
  74. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/app/validator.py +0 -0
  75. {nabu-2024.1.8/nabu/estimation/tests → nabu-2024.1.8.post1/nabu/cuda}/__init__.py +0 -0
  76. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/cuda/convolution.py +0 -0
  77. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/cuda/fft.py +0 -0
  78. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/cuda/kernel.py +0 -0
  79. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/cuda/medfilt.py +0 -0
  80. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/cuda/padding.py +0 -0
  81. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/cuda/processing.py +0 -0
  82. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/cuda/src/ElementOp.cu +0 -0
  83. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/cuda/src/backproj.cu +0 -0
  84. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/cuda/src/backproj_polar.cu +0 -0
  85. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/cuda/src/boundary.h +0 -0
  86. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/cuda/src/convolution.cu +0 -0
  87. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/cuda/src/dfi_fftshift.cu +0 -0
  88. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/cuda/src/flatfield.cu +0 -0
  89. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/cuda/src/fourier_wavelets.cu +0 -0
  90. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/cuda/src/halftomo.cu +0 -0
  91. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/cuda/src/helical_padding.cu +0 -0
  92. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/cuda/src/histogram.cu +0 -0
  93. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/cuda/src/interpolation.cu +0 -0
  94. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/cuda/src/medfilt.cu +0 -0
  95. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/cuda/src/normalization.cu +0 -0
  96. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/cuda/src/padding.cu +0 -0
  97. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/cuda/src/proj.cu +0 -0
  98. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/cuda/src/rotation.cu +0 -0
  99. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/cuda/src/transpose.cu +0 -0
  100. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/cuda/tests/__init__.py +0 -0
  101. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/cuda/utils.py +0 -0
  102. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/estimation/__init__.py +0 -0
  103. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/estimation/alignment.py +0 -0
  104. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/estimation/cor.py +0 -0
  105. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/estimation/cor_sino.py +0 -0
  106. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/estimation/distortion.py +0 -0
  107. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/estimation/focus.py +0 -0
  108. {nabu-2024.1.8/nabu/io → nabu-2024.1.8.post1/nabu/estimation}/tests/__init__.py +0 -0
  109. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/estimation/tests/test_alignment.py +0 -0
  110. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/estimation/tests/test_cor.py +0 -0
  111. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/estimation/tests/test_focus.py +0 -0
  112. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/estimation/tests/test_tilt.py +0 -0
  113. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/estimation/tests/test_translation.py +0 -0
  114. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/estimation/tilt.py +0 -0
  115. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/estimation/translation.py +0 -0
  116. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/estimation/utils.py +0 -0
  117. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/io/__init__.py +0 -0
  118. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/io/cast_volume.py +0 -0
  119. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/io/detector_distortion.py +0 -0
  120. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/io/reader.py +0 -0
  121. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/io/reader_helical.py +0 -0
  122. {nabu-2024.1.8/nabu/misc → nabu-2024.1.8.post1/nabu/io/tests}/__init__.py +0 -0
  123. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/io/tests/test_cast_volume.py +0 -0
  124. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/io/tests/test_detector_distortion.py +0 -0
  125. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/io/tests/test_writers.py +0 -0
  126. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/io/tiffwriter_zmm.py +0 -0
  127. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/io/utils.py +0 -0
  128. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/io/writer.py +0 -0
  129. {nabu-2024.1.8/nabu/opencl → nabu-2024.1.8.post1/nabu/misc}/__init__.py +0 -0
  130. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/misc/binning.py +0 -0
  131. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/misc/fftshift.py +0 -0
  132. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/misc/filters.py +0 -0
  133. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/misc/fourier_filters.py +0 -0
  134. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/misc/histogram.py +0 -0
  135. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/misc/histogram_cuda.py +0 -0
  136. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/misc/kernel_base.py +0 -0
  137. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/misc/padding.py +0 -0
  138. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/misc/padding_base.py +0 -0
  139. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/misc/processing_base.py +0 -0
  140. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/misc/rotation.py +0 -0
  141. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/misc/rotation_cuda.py +0 -0
  142. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/misc/tests/__init__.py +0 -0
  143. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/misc/tests/test_binning.py +0 -0
  144. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/misc/tests/test_interpolation.py +0 -0
  145. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/misc/transpose.py +0 -0
  146. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/misc/unsharp.py +0 -0
  147. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/misc/unsharp_cuda.py +0 -0
  148. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/misc/unsharp_opencl.py +0 -0
  149. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/misc/utils.py +0 -0
  150. {nabu-2024.1.8/nabu/opencl/tests → nabu-2024.1.8.post1/nabu/opencl}/__init__.py +0 -0
  151. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/opencl/fft.py +0 -0
  152. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/opencl/kernel.py +0 -0
  153. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/opencl/memcpy.py +0 -0
  154. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/opencl/padding.py +0 -0
  155. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/opencl/processing.py +0 -0
  156. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/opencl/src/ElementOp.cl +0 -0
  157. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/opencl/src/backproj.cl +0 -0
  158. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/opencl/src/fftshift.cl +0 -0
  159. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/opencl/src/halftomo.cl +0 -0
  160. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/opencl/src/padding.cl +0 -0
  161. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/opencl/src/roll.cl +0 -0
  162. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/opencl/src/transpose.cl +0 -0
  163. {nabu-2024.1.8/nabu/pipeline → nabu-2024.1.8.post1/nabu/opencl/tests}/__init__.py +0 -0
  164. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/opencl/utils.py +0 -0
  165. {nabu-2024.1.8/nabu/pipeline/fullfield → nabu-2024.1.8.post1/nabu/pipeline}/__init__.py +0 -0
  166. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/pipeline/config.py +0 -0
  167. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/pipeline/config_validators.py +0 -0
  168. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/pipeline/datadump.py +0 -0
  169. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/pipeline/dataset_validator.py +0 -0
  170. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/pipeline/detector_distortion_provider.py +0 -0
  171. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/pipeline/estimators.py +0 -0
  172. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/pipeline/fallback_utils.py +0 -0
  173. {nabu-2024.1.8/nabu/pipeline/helical → nabu-2024.1.8.post1/nabu/pipeline/fullfield}/__init__.py +0 -0
  174. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/pipeline/fullfield/chunked_cuda.py +0 -0
  175. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/pipeline/fullfield/computations.py +0 -0
  176. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/pipeline/fullfield/dataset_validator.py +0 -0
  177. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/pipeline/fullfield/nabu_config.py +0 -0
  178. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/pipeline/fullfield/processconfig.py +0 -0
  179. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/pipeline/fullfield/reconstruction.py +0 -0
  180. {nabu-2024.1.8/nabu/pipeline/helical/tests → nabu-2024.1.8.post1/nabu/pipeline/helical}/__init__.py +0 -0
  181. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/pipeline/helical/dataset_validator.py +0 -0
  182. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/pipeline/helical/fbp.py +0 -0
  183. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/pipeline/helical/filtering.py +0 -0
  184. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/pipeline/helical/gridded_accumulator.py +0 -0
  185. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/pipeline/helical/helical_chunked_regridded.py +0 -0
  186. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/pipeline/helical/helical_chunked_regridded_cuda.py +0 -0
  187. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/pipeline/helical/helical_reconstruction.py +0 -0
  188. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/pipeline/helical/helical_utils.py +0 -0
  189. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/pipeline/helical/nabu_config.py +0 -0
  190. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/pipeline/helical/processconfig.py +0 -0
  191. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/pipeline/helical/span_strategy.py +0 -0
  192. {nabu-2024.1.8/nabu/pipeline/xrdct → nabu-2024.1.8.post1/nabu/pipeline/helical/tests}/__init__.py +0 -0
  193. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/pipeline/helical/tests/test_accumulator.py +0 -0
  194. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/pipeline/helical/tests/test_pipeline_elements_full.py +0 -0
  195. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/pipeline/helical/tests/test_strategy.py +0 -0
  196. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/pipeline/helical/utils.py +0 -0
  197. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/pipeline/helical/weight_balancer.py +0 -0
  198. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/pipeline/params.py +0 -0
  199. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/pipeline/processconfig.py +0 -0
  200. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/pipeline/tests/test_chunk_reader.py +0 -0
  201. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/pipeline/tests/test_estimators.py +0 -0
  202. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/pipeline/utils.py +0 -0
  203. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/pipeline/writer.py +0 -0
  204. {nabu-2024.1.8/nabu/processing → nabu-2024.1.8.post1/nabu/pipeline/xrdct}/__init__.py +0 -0
  205. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/preproc/__init__.py +0 -0
  206. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/preproc/alignment.py +0 -0
  207. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/preproc/ccd.py +0 -0
  208. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/preproc/ccd_cuda.py +0 -0
  209. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/preproc/ctf.py +0 -0
  210. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/preproc/ctf_cuda.py +0 -0
  211. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/preproc/distortion.py +0 -0
  212. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/preproc/double_flatfield.py +0 -0
  213. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/preproc/double_flatfield_cuda.py +0 -0
  214. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/preproc/double_flatfield_variable_region.py +0 -0
  215. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/preproc/flatfield.py +0 -0
  216. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/preproc/flatfield_cuda.py +0 -0
  217. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/preproc/flatfield_variable_region.py +0 -0
  218. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/preproc/phase.py +0 -0
  219. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/preproc/phase_cuda.py +0 -0
  220. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/preproc/shift.py +0 -0
  221. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/preproc/shift_cuda.py +0 -0
  222. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/preproc/tests/__init__.py +0 -0
  223. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/preproc/tests/test_ccd_corr.py +0 -0
  224. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/preproc/tests/test_ctf.py +0 -0
  225. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/preproc/tests/test_double_flatfield.py +0 -0
  226. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/preproc/tests/test_flatfield.py +0 -0
  227. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/preproc/tests/test_paganin.py +0 -0
  228. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/preproc/tests/test_vshift.py +0 -0
  229. {nabu-2024.1.8/nabu/processing/tests → nabu-2024.1.8.post1/nabu/processing}/__init__.py +0 -0
  230. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/processing/convolution_cuda.py +0 -0
  231. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/processing/fft_base.py +0 -0
  232. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/processing/fft_cuda.py +0 -0
  233. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/processing/fft_opencl.py +0 -0
  234. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/processing/fftshift.py +0 -0
  235. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/processing/histogram.py +0 -0
  236. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/processing/histogram_cuda.py +0 -0
  237. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/processing/kernel_base.py +0 -0
  238. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/processing/medfilt_cuda.py +0 -0
  239. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/processing/muladd.py +0 -0
  240. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/processing/muladd_cuda.py +0 -0
  241. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/processing/padding_base.py +0 -0
  242. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/processing/padding_cuda.py +0 -0
  243. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/processing/padding_opencl.py +0 -0
  244. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/processing/processing_base.py +0 -0
  245. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/processing/roll_opencl.py +0 -0
  246. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/processing/rotation.py +0 -0
  247. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/processing/rotation_cuda.py +0 -0
  248. {nabu-2024.1.8/nabu/resources → nabu-2024.1.8.post1/nabu/processing/tests}/__init__.py +0 -0
  249. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/processing/tests/test_fft.py +0 -0
  250. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/processing/tests/test_fftshift.py +0 -0
  251. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/processing/tests/test_histogram.py +0 -0
  252. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/processing/tests/test_medfilt.py +0 -0
  253. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/processing/tests/test_muladd.py +0 -0
  254. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/processing/tests/test_padding.py +0 -0
  255. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/processing/tests/test_roll.py +0 -0
  256. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/processing/tests/test_rotation.py +0 -0
  257. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/processing/tests/test_transpose.py +0 -0
  258. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/processing/tests/test_unsharp.py +0 -0
  259. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/processing/transpose.py +0 -0
  260. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/processing/unsharp.py +0 -0
  261. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/processing/unsharp_cuda.py +0 -0
  262. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/processing/unsharp_opencl.py +0 -0
  263. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/reconstruction/__init__.py +0 -0
  264. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/reconstruction/cone.py +0 -0
  265. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/reconstruction/fbp.py +0 -0
  266. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/reconstruction/fbp_base.py +0 -0
  267. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/reconstruction/fbp_opencl.py +0 -0
  268. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/reconstruction/filtering.py +0 -0
  269. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/reconstruction/filtering_cuda.py +0 -0
  270. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/reconstruction/filtering_opencl.py +0 -0
  271. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/reconstruction/projection.py +0 -0
  272. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/reconstruction/reconstructor.py +0 -0
  273. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/reconstruction/reconstructor_cuda.py +0 -0
  274. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/reconstruction/rings.py +0 -0
  275. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/reconstruction/rings_cuda.py +0 -0
  276. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/reconstruction/sinogram.py +0 -0
  277. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/reconstruction/sinogram_cuda.py +0 -0
  278. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/reconstruction/sinogram_opencl.py +0 -0
  279. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/reconstruction/tests/__init__.py +0 -0
  280. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/reconstruction/tests/test_deringer.py +0 -0
  281. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/reconstruction/tests/test_fbp.py +0 -0
  282. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/reconstruction/tests/test_filtering.py +0 -0
  283. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/reconstruction/tests/test_halftomo.py +0 -0
  284. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/reconstruction/tests/test_projector.py +0 -0
  285. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/reconstruction/tests/test_reconstructor.py +0 -0
  286. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/reconstruction/tests/test_sino_normalization.py +0 -0
  287. {nabu-2024.1.8/nabu/resources/cli → nabu-2024.1.8.post1/nabu/resources}/__init__.py +0 -0
  288. {nabu-2024.1.8/nabu/resources/templates → nabu-2024.1.8.post1/nabu/resources/cli}/__init__.py +0 -0
  289. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/resources/cor.py +0 -0
  290. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/resources/dataset_analyzer.py +0 -0
  291. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/resources/gpu.py +0 -0
  292. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/resources/logger.py +0 -0
  293. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/resources/nxflatfield.py +0 -0
  294. {nabu-2024.1.8/nabu/resources/tests → nabu-2024.1.8.post1/nabu/resources/templates}/__init__.py +0 -0
  295. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/resources/templates/bm05_pag.conf +0 -0
  296. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/resources/templates/id16_ctf.conf +0 -0
  297. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/resources/templates/id16_holo.conf +0 -0
  298. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/resources/templates/id19_pag.conf +0 -0
  299. {nabu-2024.1.8/nabu/stitching → nabu-2024.1.8.post1/nabu/resources/tests}/__init__.py +0 -0
  300. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/resources/tests/test_nxflatfield.py +0 -0
  301. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/resources/tests/test_units.py +0 -0
  302. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/resources/utils.py +0 -0
  303. {nabu-2024.1.8/nabu/stitching/tests → nabu-2024.1.8.post1/nabu/stitching}/__init__.py +0 -0
  304. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/stitching/alignment.py +0 -0
  305. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/stitching/config.py +0 -0
  306. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/stitching/definitions.py +0 -0
  307. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/stitching/frame_composition.py +0 -0
  308. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/stitching/sample_normalization.py +0 -0
  309. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/stitching/slurm_utils.py +0 -0
  310. {nabu-2024.1.8/nabu/thirdparty → nabu-2024.1.8.post1/nabu/stitching/tests}/__init__.py +0 -0
  311. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/stitching/tests/test_alignment.py +0 -0
  312. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/stitching/tests/test_config.py +0 -0
  313. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/stitching/tests/test_frame_composition.py +0 -0
  314. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/stitching/tests/test_overlap.py +0 -0
  315. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/stitching/tests/test_sample_normalization.py +0 -0
  316. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/stitching/tests/test_slurm_utils.py +0 -0
  317. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/stitching/tests/test_utils.py +0 -0
  318. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/stitching/tests/test_z_stitching.py +0 -0
  319. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/stitching/utils.py +0 -0
  320. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/stitching/z_stitching.py +0 -0
  321. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/tests.py +0 -0
  322. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/testutils.py +0 -0
  323. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/thirdparty/algotom_convert_sino.py +0 -0
  324. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/thirdparty/pore3d_deringer_munch.py +0 -0
  325. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/thirdparty/tomocupy_remove_stripe.py +0 -0
  326. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/thirdparty/tomopy_phase.py +0 -0
  327. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/thirdparty/tomwer_load_flats_darks.py +0 -0
  328. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu/utils.py +0 -0
  329. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu.egg-info/dependency_links.txt +0 -0
  330. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu.egg-info/entry_points.txt +0 -0
  331. {nabu-2024.1.8 → nabu-2024.1.8.post1}/nabu.egg-info/requires.txt +0 -0
  332. {nabu-2024.1.8 → nabu-2024.1.8.post1}/pyproject.toml +0 -0
  333. {nabu-2024.1.8 → nabu-2024.1.8.post1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: nabu
3
- Version: 2024.1.8
3
+ Version: 2024.1.8.post1
4
4
  Summary: Nabu - Tomography software
5
5
  Author-email: Pierre Paleo <pierre.paleo@esrf.fr>, Henri Payno <henri.payno@esrf.fr>, Alessandro Mirone <mirone@esrf.fr>, Jérôme Lesaint <jerome.lesaint@esrf.fr>
6
6
  Maintainer-email: Pierre Paleo <pierre.paleo@esrf.fr>
@@ -48,29 +48,9 @@ Classifier: Topic :: Scientific/Engineering :: Physics
48
48
  Classifier: Topic :: Scientific/Engineering :: Medical Science Apps.
49
49
  Requires-Python: >=3.7
50
50
  Description-Content-Type: text/markdown
51
- License-File: LICENSE
52
- Requires-Dist: numpy<2,>1.9.0
53
- Requires-Dist: scipy
54
- Requires-Dist: h5py>=3.0
55
- Requires-Dist: silx>=0.15.0
56
- Requires-Dist: tomoscan>=2.0.4
57
- Requires-Dist: psutil
58
- Requires-Dist: pytest
59
- Requires-Dist: tifffile
60
51
  Provides-Extra: full
61
- Requires-Dist: scikit-image; extra == "full"
62
- Requires-Dist: PyWavelets; extra == "full"
63
- Requires-Dist: glymur; extra == "full"
64
- Requires-Dist: pycuda<2024.1.1; extra == "full"
65
- Requires-Dist: scikit-cuda; extra == "full"
66
- Requires-Dist: pycudwt; extra == "full"
67
- Requires-Dist: sluurp>=0.3; extra == "full"
68
- Requires-Dist: pyvkfft; extra == "full"
69
52
  Provides-Extra: doc
70
- Requires-Dist: sphinx; extra == "doc"
71
- Requires-Dist: cloud_sptheme; extra == "doc"
72
- Requires-Dist: myst-parser; extra == "doc"
73
- Requires-Dist: nbsphinx; extra == "doc"
53
+ License-File: LICENSE
74
54
 
75
55
  # Nabu
76
56
 
@@ -1,4 +1,4 @@
1
- __version__ = "2024.1.8"
1
+ __version__ = "2024.1.8.post1"
2
2
  __nabu_modules__ = [
3
3
  "app",
4
4
  "cuda",
@@ -577,7 +577,7 @@ class ChunkedPipeline:
577
577
  sample_detector_dist,
578
578
  angles=-options["angles"],
579
579
  rot_center=options["rotation_axis_position"],
580
- axis_correction=-options["axis_correction"],
580
+ axis_correction=(-options["axis_correction"] if options["axis_correction"] is not None else None),
581
581
  pixel_size=1,
582
582
  scale_factor=1.0 / options["voxel_size_cm"][0],
583
583
  )
@@ -281,7 +281,7 @@ class TestCone:
281
281
  # Reconstruct with horizontal shifts
282
282
  cone_reconstructor_with_correction = ConebeamReconstructor(
283
283
  *reconstructor_args,
284
- axis_corrections=shifts,
284
+ axis_correction=shifts,
285
285
  **reconstructor_kwargs,
286
286
  )
287
287
 
@@ -301,7 +301,7 @@ def check_overlaps(frames: Union[tuple, numpy.ndarray], positions: tuple, axis:
301
301
  if raise_error:
302
302
  raise ValueError(error_msg)
303
303
  else:
304
- _logger.error(raise_error)
304
+ _logger.error(error_msg)
305
305
 
306
306
  # convert each frame to appropriate bounding box according to the axis
307
307
  def convert_to_bb(frame: numpy.ndarray, position: tuple, axis: int):
File without changes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: nabu
3
- Version: 2024.1.8
3
+ Version: 2024.1.8.post1
4
4
  Summary: Nabu - Tomography software
5
5
  Author-email: Pierre Paleo <pierre.paleo@esrf.fr>, Henri Payno <henri.payno@esrf.fr>, Alessandro Mirone <mirone@esrf.fr>, Jérôme Lesaint <jerome.lesaint@esrf.fr>
6
6
  Maintainer-email: Pierre Paleo <pierre.paleo@esrf.fr>
@@ -48,29 +48,9 @@ Classifier: Topic :: Scientific/Engineering :: Physics
48
48
  Classifier: Topic :: Scientific/Engineering :: Medical Science Apps.
49
49
  Requires-Python: >=3.7
50
50
  Description-Content-Type: text/markdown
51
- License-File: LICENSE
52
- Requires-Dist: numpy<2,>1.9.0
53
- Requires-Dist: scipy
54
- Requires-Dist: h5py>=3.0
55
- Requires-Dist: silx>=0.15.0
56
- Requires-Dist: tomoscan>=2.0.4
57
- Requires-Dist: psutil
58
- Requires-Dist: pytest
59
- Requires-Dist: tifffile
60
51
  Provides-Extra: full
61
- Requires-Dist: scikit-image; extra == "full"
62
- Requires-Dist: PyWavelets; extra == "full"
63
- Requires-Dist: glymur; extra == "full"
64
- Requires-Dist: pycuda<2024.1.1; extra == "full"
65
- Requires-Dist: scikit-cuda; extra == "full"
66
- Requires-Dist: pycudwt; extra == "full"
67
- Requires-Dist: sluurp>=0.3; extra == "full"
68
- Requires-Dist: pyvkfft; extra == "full"
69
52
  Provides-Extra: doc
70
- Requires-Dist: sphinx; extra == "doc"
71
- Requires-Dist: cloud_sptheme; extra == "doc"
72
- Requires-Dist: myst-parser; extra == "doc"
73
- Requires-Dist: nbsphinx; extra == "doc"
53
+ License-File: LICENSE
74
54
 
75
55
  # Nabu
76
56
 
@@ -3,7 +3,6 @@ README.md
3
3
  pyproject.toml
4
4
  doc/conf.py
5
5
  doc/create_conf_doc.py
6
- doc/doc_config.py
7
6
  doc/get_mathjax.py
8
7
  nabu/__init__.py
9
8
  nabu/tests.py
@@ -41,6 +40,7 @@ nabu/app/shrink_dataset.py
41
40
  nabu/app/stitching.py
42
41
  nabu/app/utils.py
43
42
  nabu/app/validator.py
43
+ nabu/app/tests/__init__.py
44
44
  nabu/app/tests/test_reduce_dark_flat.py
45
45
  nabu/cuda/__init__.py
46
46
  nabu/cuda/convolution.py
@@ -296,35 +296,4 @@ nabu/thirdparty/algotom_convert_sino.py
296
296
  nabu/thirdparty/pore3d_deringer_munch.py
297
297
  nabu/thirdparty/tomocupy_remove_stripe.py
298
298
  nabu/thirdparty/tomopy_phase.py
299
- nabu/thirdparty/tomwer_load_flats_darks.py
300
- sandbox/align_test.py
301
- sandbox/app.py
302
- sandbox/binning_cython.py
303
- sandbox/circ_sm.py
304
- sandbox/composite_image.py
305
- sandbox/convert_id15.py
306
- sandbox/do_test_ctf.py
307
- sandbox/esrf_envs.py
308
- sandbox/fbp_polar.py
309
- sandbox/fbp_tilt.py
310
- sandbox/interleaved.py
311
- sandbox/interp_sinos_halftomo.py
312
- sandbox/linear_interp.py
313
- sandbox/merge_recs.py
314
- sandbox/moduleutils.py
315
- sandbox/nbreconstruct.py
316
- sandbox/pag_margin.py
317
- sandbox/parse.py
318
- sandbox/plot.py
319
- sandbox/proj3D.py
320
- sandbox/rec_bm05.py
321
- sandbox/rec_thread.py
322
- sandbox/shift_bilinear2.py
323
- sandbox/sinotilt.py
324
- sandbox/sysutils.py
325
- sandbox/test_mp_queue.py
326
- sandbox/tilt.py
327
- sandbox/utils.py
328
- sandbox/vo.py
329
- sandbox/workers.py
330
- sandbox/xrdrec_pyFAI_data.py
299
+ nabu/thirdparty/tomwer_load_flats_darks.py
@@ -2,3 +2,4 @@ build
2
2
  dist
3
3
  doc
4
4
  nabu
5
+ scripts
@@ -1,32 +0,0 @@
1
- #!/usr/bin/env python
2
-
3
- from nabu.resources.nabu_config import nabu_config
4
-
5
-
6
- def generate(file_):
7
- def write(content):
8
- print(content, file=file_)
9
- for section, values in nabu_config.items():
10
- if section == "about":
11
- continue
12
- write("## %s\n" % section)
13
- for key, val in values.items():
14
- if val["type"] == "unsupported":
15
- continue
16
- write(val["help"] + "\n")
17
- write(
18
- "```ini\n%s = %s\n```"
19
- % (key, val["default"])
20
- )
21
-
22
-
23
-
24
- if __name__ == "__main__":
25
-
26
- import sys, os
27
- print(os.path.abspath(__file__))
28
- exit(0)
29
-
30
- fname = "/tmp/test.md"
31
- with open(fname, "w") as f:
32
- generate(f)
@@ -1,61 +0,0 @@
1
- import numpy as np
2
- from nabu.estimation.translation import DetectorTranslationAlongBeam
3
- from tomoscan.io import HDF5File
4
-
5
-
6
- def get_data(fname, h5_paths):
7
- with HDF5File(fname, "r") as f:
8
- align_data = f[h5_paths["align_data"]][()]
9
- dark = f[h5_paths["dark"]][0]
10
- pixel_size_um = f[h5_paths["pixel_size"]][()]
11
- positions_mm = f[h5_paths["positions"]][()]
12
-
13
- # Dark subtraction
14
- align_data = align_data - dark.astype("f")
15
-
16
- return align_data, pixel_size_um, positions_mm
17
-
18
-
19
-
20
- def get_alignment(align_data, pixel_size_um, positions_mm, plot=True):
21
-
22
- tr_calc = DetectorTranslationAlongBeam()
23
- if plot == True:
24
- tr_calc.verbose=True
25
-
26
- shifts_v, shifts_h = tr_calc.find_shift(align_data, positions_mm)
27
-
28
- # pixel_size is in microns, motor position is in mm
29
- tilt_v_deg = np.rad2deg(np.arctan(shifts_v * pixel_size_um / 1e3))
30
- tilt_h_deg = np.rad2deg(np.arctan(shifts_h * pixel_size_um / 1e3))
31
- print (f"\nVertical tilt to be applied in deg (thy): {tilt_v_deg}")
32
- print (f"Horizontal tilt to be applied in deg (thz): {tilt_h_deg}\n")
33
-
34
- return align_data, shifts_v, shifts_h, positions_mm
35
-
36
-
37
-
38
-
39
-
40
-
41
- if __name__ == "__main__":
42
- fname = "/data/id19/inhouse/id192201/id19/sample/sample_0001/sample_0001.h5"
43
- h5_paths = {
44
- "align_data": "11.1/measurement/pcolinux",
45
- "dark": "12.1/measurement/pcolinux",
46
- "pixel_size": "11.1/instrument/pcolinux/x_pixel_size",
47
- "positions": "11.1/measurement/hrxc"
48
- }
49
- align_data, pixel_size_um, positions_mm = get_data(fname, h5_paths)
50
- # align_data, shifts_v, shifts_h, positions_mm = get_alignment(align_data, pixel_size_um, positions_mm)
51
-
52
- D = DetectorTranslationAlongBeam()
53
- D. verbose = True
54
- sv, sh = D.find_shift(align_data, positions_mm)
55
- D.verbose = False
56
- sv, sh = D.find_shift(align_data, positions_mm)
57
- D.verbose = True
58
- sv, sh = D.find_shift(align_data, positions_mm)
59
-
60
-
61
-
@@ -1,123 +0,0 @@
1
- from time import sleep
2
- import pycuda.autoinit
3
- import pycuda.gpuarray as garray
4
- from nabu.resources.processconfig import ProcessConfig
5
- from nabu.resources.tasks import build_processing_steps
6
-
7
- from nabu.app.logger import Logger
8
-
9
- from nabu.app.chunkreader import ChunkReaderComponent
10
- from nabu.app.flatfield import FlatFieldComponent
11
- from nabu.app.phase import PhaseRetrievalComponent
12
- from nabu.app.opmap import NegativeLogComponent
13
- from nabu.app.ccdfilter import CCDFilterComponent
14
- from nabu.app.unsharp import UnsharpMaskComponent
15
- from nabu.app.reconstructor import ReconstructorComponent
16
-
17
-
18
- if __name__ == "__main__":
19
-
20
- conf = ProcessConfig("/home/pierre/workspace/data/nabu.conf")
21
- steps, options = build_processing_steps(conf)
22
- dataset_infos = conf.dataset_infos
23
- SUB_REGION = (None, None, None, 50)
24
-
25
- logger = Logger("nabu_processing", console=True)
26
-
27
- # Read chunk
28
- options["read_chunk"]["sub_region"] = SUB_REGION
29
- options["read_chunk"]["convert_float"] = True
30
- Ch = ChunkReaderComponent(options["read_chunk"], dataset_infos, logger=logger)
31
- Ch.execute()
32
- radios = Ch.chunk_reader.files_data
33
- d_radios = garray.to_gpu(radios)
34
-
35
- # Flat-field
36
- options["flatfield"]["sub_region"] = SUB_REGION
37
- options["flatfield"]["use_opencl"] = False
38
- options["flatfield"]["use_cuda"] = True
39
- F = FlatFieldComponent(d_radios, options["flatfield"], dataset_infos, logger=logger)
40
- F.execute()
41
-
42
- # CCD filter
43
- options["ccd_correction"]["use_cuda"] = True
44
- options["ccd_correction"]["use_opencl"] = False
45
- CCD = CCDFilterComponent(d_radios, options["ccd_correction"], dataset_infos, logger=logger)
46
- CCD.execute()
47
-
48
-
49
- # Phase retrieval
50
- options["phase"]["use_cuda"] = True
51
- options["phase"]["use_opencl"] = False
52
- P = PhaseRetrievalComponent(radios[0].shape, options["phase"], dataset_infos, logger=logger)
53
- P.execute(d_radios)
54
-
55
- # Unsharp
56
- # ~ options["unsharp_mask"]["use_cuda"] = True
57
- # ~ options["unsharp_mask"]["use_opencl"] = False
58
- # ~ U = UnsharpMaskComponent(radios[0].shape, options["unsharp_mask"], dataset_infos, logger=logger)
59
- # ~ U.execute(d_radios)
60
-
61
- # -log()
62
- options["take_log"]["use_cuda"] = True
63
- options["take_log"]["use_opencl"] = False
64
- L = NegativeLogComponent(d_radios, options["take_log"], dataset_infos, logger=logger)
65
- L.execute()
66
-
67
-
68
- # Test
69
- # ~ from spire.utils import ims
70
- # ~ r = d_radios.get()
71
- # ~ ims(r[:, 10, :])
72
-
73
-
74
- # Reconstruction
75
- options["reconstruction"]["use_cuda"] = True
76
-
77
- # Test ...
78
- if 1:
79
- options["reconstruction"]["start_x"] = 100
80
- options["reconstruction"]["end_x"] = -100
81
- options["reconstruction"]["start_y"] = 100
82
- options["reconstruction"]["end_y"] = -100
83
- options["reconstruction"]["start_z"] = 0
84
- options["reconstruction"]["end_z"] = SUB_REGION[-1]-1
85
- d_rec = garray.zeros((50, 1849, 1849), "f") # y
86
- #
87
- else:
88
- d_rec = garray.zeros((SUB_REGION[-1], 2048, 2048), "f")
89
- R = ReconstructorComponent(d_radios.shape, options["reconstruction"], dataset_infos, logger=logger)
90
- R.execute(d_radios, output=d_rec)
91
-
92
-
93
- # Write to file
94
- rec = d_rec.get()
95
- import numpy as np
96
- np.save("/home/pierre/tmp/crayon/recs_nabu_vertical.npy", rec)
97
-
98
- """from nabu.reconstruction.reconstructor_cuda import CudaReconstructor
99
- R = CudaReconstructor(
100
- radios.shape,
101
- [0, 1],
102
- vol_type="projections",
103
- extra_options={"padding_mode": conf.nabu_config["reconstruction"]["padding_type"]}
104
- )
105
- d_recs = garray.zeros((1, 2048, 2048), "f")
106
- R.reconstruct(d_radios, output=d_recs)
107
- recs = d_recs.get()
108
- ims(recs[0], cmap="gray")
109
- # save
110
- import numpy as np
111
- np.save("/tmp/rec0.npy", recs[0])
112
- """
113
-
114
-
115
- """
116
- Notes
117
- - If the cuda backend is used at step N, it should also be used at step N+1,
118
-
119
-
120
- otherwise we have to get() the data
121
-
122
- """
123
-
@@ -1,37 +0,0 @@
1
- %%cython --compile-args=-fopenmp --link-args=-fopenmp -a
2
- #%%cython -a
3
- #cython: embedsignature=True, language_level=3, binding=True
4
- #cython: boundscheck=False, wraparound=False, cdivision=True, initializedcheck=False,
5
- ## This is for developping:
6
- ## cython: profile=True, warn.undeclared=True, warn.unused=True, warn.unused_result=False, warn.unused_arg=True
7
-
8
- import numpy as np
9
- from cython.parallel import prange
10
- """
11
- def bin2_cython(float[:, ::1] img):
12
- cdef:
13
- float[:, ::1] res
14
- int i, j, Ny, Nx
15
-
16
- shp = img.shape
17
- Ny, Nx = (img.shape[0]//2, img.shape[1]//2)
18
- res = np.zeros((Ny, Nx), dtype="f")
19
- for i in prange(Ny, nogil=True):
20
- for j in range(Nx):
21
- res[i, j] = 0.25 * (img[2*i, 2*j] + img[2*i+1, 2*j] + img[2*i, 2*j+1] + img[2*i+1, 2*j+1])
22
- return np.asarray(res)
23
- """
24
-
25
-
26
- def bin2_cython(unsigned short[:, ::1] img):
27
- cdef:
28
- float[:, ::1] res
29
- int i, j, Ny, Nx
30
-
31
- shp = img.shape
32
- Ny, Nx = (img.shape[0]//2, img.shape[1]//2)
33
- res = np.zeros((Ny, Nx), dtype="f")
34
- for i in prange(Ny, nogil=True):
35
- for j in range(Nx):
36
- res[i, j] = 0.25 * (img[2*i, 2*j] + img[2*i+1, 2*j] + img[2*i, 2*j+1] + img[2*i+1, 2*j+1])
37
- return np.asarray(res)
@@ -1,195 +0,0 @@
1
- import numpy as np
2
- from multiprocessing.shared_memory import SharedMemory
3
- from multiprocessing.pool import ThreadPool
4
- from multiprocessing import Pool
5
- from itertools import product
6
- from functools import partial
7
-
8
- # Constants
9
- # Miller index of reflection
10
- H = 0
11
- # Miller index of reflection
12
- K = 4
13
- # Number of unit cells per direction
14
- N = 32
15
- # Defines how many points are needed to describe a single Laue fringe (2 = Nyquist frequency)
16
- oversampling = 3
17
-
18
- # Radius of the crystal
19
- R = N/2
20
-
21
- # Maximum strain at surface
22
- e0 = 0.01
23
- # Width of the strain profile below the surface
24
- w = 5.
25
-
26
- # Generate real and reciprocal space coordinates
27
- n = np.arange(N)
28
- m = np.arange(N)
29
- h = np.arange(H-0.5, H+0.5, 1./(oversampling*N))
30
- k = np.arange(K-0.5, K+0.5, 1./(oversampling*N))
31
-
32
-
33
- # Displacement of atoms as function of the radius
34
- def delta(radius, crystal_radius, strain_width):
35
- """Displacement of atoms as function of the radius"""
36
- return 1 + np.tanh((radius - crystal_radius) / strain_width)
37
-
38
-
39
-
40
- def circ_numpy_2(N, h, k):
41
- R, C = np.indices((N, N))
42
- radius = np.sqrt((R - N/2.)**2 + (C - N/2.)**2)
43
- support = radius**2 <= (N/2)**2
44
- Delta = delta(radius, N/2, w)
45
- delta_n = e0 * (n - N/2) * Delta
46
- delta_n_n = n + delta_n
47
- delta_m_m = delta_n_n.T
48
-
49
- res = np.zeros((h.size, k.size))
50
- for hk in product(enumerate(h), enumerate(k)):
51
- (i_h, v_h), (i_k, v_k) = hk
52
- res[i_h, i_k] = np.abs(np.sum(
53
- support * np.exp(2j * np.pi * (v_h*delta_n_n + v_k*delta_m_m))
54
- ))**2
55
- return res
56
-
57
-
58
- def compute_image_part(my_part, N, h, k):
59
- (start_x, end_x), (start_y, end_y) = my_part
60
-
61
- # Retrieve shared arrays
62
- my_s_support = SharedMemory(create=False, name="support")
63
- my_support = np.ndarray((N, N), dtype=np.float64, buffer=my_s_support.buf)
64
-
65
- my_s_delta_n_n = SharedMemory(create=False, name="delta_n_n")
66
- my_delta_n_n = np.ndarray((N, N), dtype=np.float64, buffer=my_s_delta_n_n.buf)
67
- my_delta_m_m = my_delta_n_n.T
68
-
69
- my_s_result = SharedMemory(create=False, name="result")
70
- my_result = np.ndarray((h.size, k.size), dtype=np.float64, buffer=my_s_result.buf)
71
-
72
- # Compute on a partial set of reciprocal coordinates
73
- for i_h, i_k in product(range(start_y, end_y), range(start_x, end_x)):
74
- v_h = h[i_h]
75
- v_k = k[i_k]
76
- my_result[i_h, i_k] = np.abs(np.sum(my_support * np.exp(2j * np.pi * (v_h*my_delta_n_n + v_k*my_delta_m_m))))**2
77
-
78
-
79
- def circ_mp(N, h, k):
80
- R, C = np.indices((N, N))
81
- radius = np.sqrt((R - N/2.)**2 + (C - N/2.)**2)
82
- # support = radius**2 <= (N/2)**2
83
- Delta = delta(radius, N/2, w)
84
- delta_n = e0 * (n - N/2) * Delta
85
- # delta_n_n = n + delta_n
86
- # delta_m_m = delta_n_n.T
87
-
88
- parts_1D = [(0, h.size//2), (h.size//2, h.size)]
89
- parts = list(product(parts_1D, parts_1D))
90
-
91
- try:
92
- # Create shared arrays
93
- s_support = SharedMemory(create=True, size=N*N*np.dtype(np.float64).itemsize, name="support")
94
- support = np.ndarray((N, N), dtype=np.float64, buffer=s_support.buf)
95
- support[:] = radius**2 <= (N/2)**2
96
-
97
- s_delta_n_n = SharedMemory(create=True, size=support.nbytes, name="delta_n_n")
98
- delta_n_n = np.ndarray((N, N), dtype=np.float64, buffer=s_delta_n_n.buf)
99
- delta_n_n[:] = n + delta_n
100
-
101
- s_result = SharedMemory(
102
- create=True, size=h.size * k.size * np.dtype(np.float64).itemsize, name="result"
103
- )
104
- result = np.ndarray((h.size, k.size), dtype=np.float64, buffer=s_result.buf)
105
- result[:] = 0.
106
-
107
- # Dispatch computations
108
- with Pool(4) as p:
109
- p.map(partial(compute_image_part, N=N, h=h, k=k), parts)
110
-
111
- finally:
112
- res = result.copy()
113
- for s_array in [s_support, s_delta_n_n, s_result]:
114
- s_array.unlink()
115
-
116
- return res
117
-
118
-
119
-
120
-
121
-
122
-
123
-
124
- def circ_mt(N, h, k):
125
- R, C = np.indices((N, N))
126
- radius = np.sqrt((R - N/2.)**2 + (C - N/2.)**2)
127
- support = radius**2 <= (N/2)**2
128
- Delta = delta(radius, N/2, w)
129
- delta_n = e0 * (n - N/2) * Delta
130
- delta_n_n = n + delta_n
131
- delta_m_m = delta_n_n.T
132
-
133
- parts_1D = [(0, h.size//2), (h.size//2, h.size)]
134
- parts = list(product(parts_1D, parts_1D))
135
-
136
- result = np.zeros((h.size, k.size), dtype=np.float64)
137
-
138
- def compute_image_part(my_part):
139
- (start_x, end_x), (start_y, end_y) = my_part
140
- # Compute on a partial set of reciprocal coordinates
141
- for i_h, i_k in product(range(start_y, end_y), range(start_x, end_x)):
142
- v_h = h[i_h]
143
- v_k = k[i_k]
144
- result[i_h, i_k] = np.abs(np.sum(
145
- support * np.exp(2j * np.pi * (v_h*delta_n_n + v_k*delta_m_m))
146
- ))**2
147
-
148
- with ThreadPool(4) as tp:
149
- tp.map(compute_image_part, parts)
150
-
151
-
152
- return result
153
-
154
-
155
-
156
-
157
-
158
-
159
-
160
-
161
-
162
-
163
-
164
-
165
-
166
-
167
-
168
-
169
- from matplotlib.pyplot import subplots
170
- from matplotlib.colors import LogNorm
171
- def display(result):
172
- "Display the array"
173
- fig, ax = subplots()
174
- fig.suptitle("Bragg peak")
175
- ax.imshow(result.T, extent=(h.min(), h.max(), k.min(), k.max()), norm=LogNorm(), origin = 'lower')
176
- ax.set_xlabel('H');
177
- ax.set_ylabel('K')
178
- ax.set_title("Crystal")
179
-
180
-
181
-
182
- def circ_einsum(N, h, k):
183
- R, C = np.indices((N, N))
184
- radius = np.sqrt((R - N/2.)**2 + (C - N/2.)**2)
185
- support = radius**2 <= (N/2)**2
186
- Delta = delta(radius, N/2, w)
187
- delta_n = e0 * (n - N/2) * Delta
188
- delta_n_n = n + delta_n
189
- delta_m_m = delta_n_n.T
190
-
191
- tmp1 = np.exp(2j*pi*np.einsum("i,jk", h, delta_n_n))
192
- tmp2 = np.exp(2j*pi*np.einsum("i,jk", k, delta_m_m))
193
- res = np.abs(np.einsum("jk,ijk,ljk->il", support, tmp1, tmp2))**2
194
-
195
- return res