nabu 2024.2.4__py3-none-any.whl → 2025.1.0.dev4__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.
- doc/doc_config.py +32 -0
- nabu/__init__.py +1 -1
- nabu/app/bootstrap_stitching.py +4 -2
- nabu/app/cast_volume.py +7 -13
- nabu/app/cli_configs.py +0 -5
- nabu/app/compare_volumes.py +1 -1
- nabu/app/composite_cor.py +2 -4
- nabu/app/correct_rot.py +0 -8
- nabu/app/diag_to_pix.py +5 -6
- nabu/app/diag_to_rot.py +10 -11
- nabu/app/multicor.py +1 -1
- nabu/app/parse_reconstruction_log.py +1 -0
- nabu/app/prepare_weights_double.py +1 -2
- nabu/app/reconstruct_helical.py +1 -5
- nabu/app/reduce_dark_flat.py +0 -2
- nabu/app/rotate.py +3 -1
- nabu/app/tests/test_reduce_dark_flat.py +2 -2
- nabu/app/validator.py +1 -4
- nabu/cuda/convolution.py +1 -1
- nabu/cuda/fft.py +1 -1
- nabu/cuda/medfilt.py +1 -1
- nabu/cuda/padding.py +1 -1
- nabu/cuda/src/cone.cu +19 -9
- nabu/cuda/src/hierarchical_backproj.cu +16 -0
- nabu/cuda/utils.py +2 -2
- nabu/estimation/alignment.py +17 -31
- nabu/estimation/cor.py +23 -29
- nabu/estimation/cor_sino.py +2 -8
- nabu/estimation/focus.py +4 -8
- nabu/estimation/tests/test_alignment.py +2 -0
- nabu/estimation/tests/test_tilt.py +1 -1
- nabu/estimation/tilt.py +5 -4
- nabu/io/cast_volume.py +5 -5
- nabu/io/detector_distortion.py +5 -6
- nabu/io/reader.py +3 -3
- nabu/io/reader_helical.py +5 -4
- nabu/io/tests/test_cast_volume.py +2 -2
- nabu/io/tests/test_readers.py +4 -4
- nabu/io/tests/test_writers.py +2 -2
- nabu/io/utils.py +8 -4
- nabu/io/writer.py +1 -2
- nabu/misc/fftshift.py +1 -1
- nabu/misc/fourier_filters.py +1 -1
- nabu/misc/histogram.py +1 -1
- nabu/misc/histogram_cuda.py +1 -1
- nabu/misc/padding_base.py +1 -1
- nabu/misc/rotation.py +1 -1
- nabu/misc/rotation_cuda.py +1 -1
- nabu/misc/tests/test_binning.py +1 -1
- nabu/misc/transpose.py +1 -1
- nabu/misc/unsharp.py +1 -1
- nabu/misc/unsharp_cuda.py +1 -1
- nabu/misc/unsharp_opencl.py +1 -1
- nabu/misc/utils.py +1 -1
- nabu/opencl/fft.py +1 -1
- nabu/opencl/padding.py +1 -1
- nabu/opencl/utils.py +8 -8
- nabu/pipeline/config.py +2 -2
- nabu/pipeline/config_validators.py +4 -3
- nabu/pipeline/datadump.py +3 -3
- nabu/pipeline/estimators.py +6 -6
- nabu/pipeline/fullfield/chunked.py +4 -5
- nabu/pipeline/fullfield/dataset_validator.py +0 -1
- nabu/pipeline/fullfield/nabu_config.py +2 -1
- nabu/pipeline/fullfield/reconstruction.py +9 -8
- nabu/pipeline/helical/dataset_validator.py +3 -4
- nabu/pipeline/helical/fbp.py +4 -4
- nabu/pipeline/helical/filtering.py +5 -4
- nabu/pipeline/helical/gridded_accumulator.py +9 -10
- nabu/pipeline/helical/helical_chunked_regridded.py +1 -0
- nabu/pipeline/helical/helical_reconstruction.py +10 -7
- nabu/pipeline/helical/helical_utils.py +1 -2
- nabu/pipeline/helical/nabu_config.py +1 -0
- nabu/pipeline/helical/span_strategy.py +1 -0
- nabu/pipeline/helical/weight_balancer.py +1 -2
- nabu/pipeline/tests/__init__.py +0 -0
- nabu/pipeline/utils.py +1 -1
- nabu/pipeline/writer.py +1 -1
- nabu/preproc/alignment.py +0 -10
- nabu/preproc/ctf.py +8 -8
- nabu/preproc/ctf_cuda.py +1 -1
- nabu/preproc/double_flatfield_cuda.py +2 -2
- nabu/preproc/double_flatfield_variable_region.py +0 -1
- nabu/preproc/flatfield.py +1 -1
- nabu/preproc/flatfield_cuda.py +1 -2
- nabu/preproc/flatfield_variable_region.py +3 -3
- nabu/preproc/phase.py +2 -4
- nabu/preproc/phase_cuda.py +2 -2
- nabu/preproc/shift_cuda.py +0 -1
- nabu/preproc/tests/test_ctf.py +3 -3
- nabu/preproc/tests/test_double_flatfield.py +1 -1
- nabu/preproc/tests/test_flatfield.py +1 -1
- nabu/preproc/tests/test_vshift.py +4 -1
- nabu/processing/azim.py +2 -2
- nabu/processing/convolution_cuda.py +6 -4
- nabu/processing/fft_base.py +1 -1
- nabu/processing/fft_cuda.py +19 -8
- nabu/processing/fft_opencl.py +9 -4
- nabu/processing/fftshift.py +1 -1
- nabu/processing/histogram.py +1 -1
- nabu/processing/muladd.py +0 -1
- nabu/processing/padding_base.py +1 -1
- nabu/processing/padding_cuda.py +0 -1
- nabu/processing/processing_base.py +1 -1
- nabu/processing/tests/test_fft.py +1 -1
- nabu/processing/tests/test_fftshift.py +1 -1
- nabu/processing/tests/test_medfilt.py +1 -3
- nabu/processing/tests/test_padding.py +1 -1
- nabu/processing/tests/test_roll.py +1 -1
- nabu/processing/unsharp_opencl.py +1 -1
- nabu/reconstruction/astra.py +245 -0
- nabu/reconstruction/cone.py +9 -4
- nabu/reconstruction/fbp_base.py +2 -2
- nabu/reconstruction/filtering_cuda.py +1 -1
- nabu/reconstruction/hbp.py +16 -3
- nabu/reconstruction/mlem.py +0 -1
- nabu/reconstruction/projection.py +3 -5
- nabu/reconstruction/sinogram.py +1 -1
- nabu/reconstruction/sinogram_cuda.py +0 -1
- nabu/reconstruction/tests/test_cone.py +76 -3
- nabu/reconstruction/tests/test_deringer.py +2 -2
- nabu/reconstruction/tests/test_fbp.py +1 -1
- nabu/reconstruction/tests/test_halftomo.py +27 -1
- nabu/reconstruction/tests/test_mlem.py +3 -2
- nabu/reconstruction/tests/test_projector.py +7 -2
- nabu/reconstruction/tests/test_sino_normalization.py +0 -1
- nabu/resources/dataset_analyzer.py +4 -4
- nabu/resources/gpu.py +4 -4
- nabu/resources/logger.py +4 -4
- nabu/resources/nxflatfield.py +2 -2
- nabu/resources/tests/test_nxflatfield.py +4 -4
- nabu/stitching/alignment.py +1 -4
- nabu/stitching/config.py +19 -16
- nabu/stitching/frame_composition.py +8 -10
- nabu/stitching/overlap.py +2 -2
- nabu/stitching/slurm_utils.py +2 -2
- nabu/stitching/stitcher/base.py +2 -0
- nabu/stitching/stitcher/dumper/base.py +0 -1
- nabu/stitching/stitcher/dumper/postprocessing.py +1 -1
- nabu/stitching/stitcher/post_processing.py +6 -6
- nabu/stitching/stitcher/pre_processing.py +13 -11
- nabu/stitching/stitcher/single_axis.py +3 -4
- nabu/stitching/stitcher_2D.py +2 -1
- nabu/stitching/tests/test_config.py +7 -8
- nabu/stitching/tests/test_sample_normalization.py +1 -1
- nabu/stitching/tests/test_slurm_utils.py +1 -2
- nabu/stitching/tests/test_z_postprocessing_stitching.py +1 -1
- nabu/stitching/tests/test_z_preprocessing_stitching.py +4 -4
- nabu/stitching/utils/tests/__init__.py +0 -0
- nabu/stitching/utils/tests/test_post-processing.py +1 -0
- nabu/stitching/utils/utils.py +10 -12
- nabu/tests.py +0 -3
- nabu/testutils.py +30 -8
- nabu/utils.py +28 -18
- {nabu-2024.2.4.dist-info → nabu-2025.1.0.dev4.dist-info}/METADATA +25 -25
- nabu-2025.1.0.dev4.dist-info/RECORD +320 -0
- {nabu-2024.2.4.dist-info → nabu-2025.1.0.dev4.dist-info}/WHEEL +1 -1
- nabu/io/tests/test_detector_distortion.py +0 -178
- nabu/resources/tests/test_extract.py +0 -9
- nabu-2024.2.4.dist-info/RECORD +0 -318
- /nabu/{stitching → app}/tests/__init__.py +0 -0
- {nabu-2024.2.4.dist-info → nabu-2025.1.0.dev4.dist-info}/LICENSE +0 -0
- {nabu-2024.2.4.dist-info → nabu-2025.1.0.dev4.dist-info}/entry_points.txt +0 -0
- {nabu-2024.2.4.dist-info → nabu-2025.1.0.dev4.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,320 @@
|
|
1
|
+
doc/conf.py,sha256=3xtCarCHrXPr50GbeRDuH-o3Jzojw7mpr7vpGfZPLAE,3787
|
2
|
+
doc/create_conf_doc.py,sha256=IVOdP70KvbW9WS_UQu3Iyd0YfS60E2fJ5IDtQ_s4cDw,1143
|
3
|
+
doc/doc_config.py,sha256=anqeOVjqE2e7eVzg7yuh9dvIneTkrA5doGl1cVBqT7Q,730
|
4
|
+
doc/get_mathjax.py,sha256=VIvKRCdDuF2VoY8JD3mSey9XX13AZMmwTJBHdt1tUs4,1012
|
5
|
+
nabu/__init__.py,sha256=V5zdPYiUiPrnkJuHBsh6IGZqzmQjMO3MsSAbVLM_FJw,275
|
6
|
+
nabu/tests.py,sha256=hOJD1GGxn_KE1bWMoxfjnjzI7d9JBUpoc9B2_tVFiEk,1370
|
7
|
+
nabu/testutils.py,sha256=xYRhwM38eUMHK156la_YTf5a119mU0Nre6OrbnnqS9o,8633
|
8
|
+
nabu/utils.py,sha256=COC0rgyjsVTnAnWEwZqUZSu8RZYizDFlj2oFk1HMBmU,26599
|
9
|
+
nabu/app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
10
|
+
nabu/app/bootstrap.py,sha256=3yLZJmrmQBmPJMBtE2ih2cspfqOy5T_UN2U8B3i_hkI,3266
|
11
|
+
nabu/app/bootstrap_stitching.py,sha256=wCKgugOQr6-lPMWEn4AYQeric0tCuRc9O-RnpBuTWAA,2230
|
12
|
+
nabu/app/cast_volume.py,sha256=fBjVWOgLWS_JBF5qEdN-b-7GCOQVx15cwerh4BmAsTQ,11171
|
13
|
+
nabu/app/cli_configs.py,sha256=x32idqLU2iMWxMi8ysYneUnq8mgpyAcT_-1udvAWWuM,22141
|
14
|
+
nabu/app/compare_volumes.py,sha256=3qm3QsxV-D_myLAkhM_LlX0DTrDmhzfhrnNak-1538Q,3337
|
15
|
+
nabu/app/composite_cor.py,sha256=-qAbMJCFa0NmSb1hO2G1QvdW4fwEXSMBBbSFCnQXmCc,5068
|
16
|
+
nabu/app/correct_rot.py,sha256=rIgBZZ_q-WPTy0mH22_XUXSXYqmR9DQkKlgEw_ol1kI,1988
|
17
|
+
nabu/app/create_distortion_map_from_poly.py,sha256=aa-vE-ndB9PsuHwdHUW7-8jGz4BxvjC-bQDWHlPV0Kg,6193
|
18
|
+
nabu/app/diag_to_pix.py,sha256=KKIj4YrcvEc8Ey-_T3yvxeSKTfrY5o13ekteMQN_cr4,14987
|
19
|
+
nabu/app/diag_to_rot.py,sha256=tBaF1Oy0-bjCqkLFK-Bu_n74easzLlRkI_FTC1cAH2Q,16933
|
20
|
+
nabu/app/double_flatfield.py,sha256=6ko_ZJomtwWVHs1pchWy7Pa5_rCO12NyUmyptKarEd0,5420
|
21
|
+
nabu/app/generate_header.py,sha256=Voo-FAvwS_mU5gtDxyqpZnSpP_mlMSfd_6bEtgdi_tg,8919
|
22
|
+
nabu/app/histogram.py,sha256=gyLXKwFrU5WPQMkM1k8OdpIXSwGEEKC-f8RcTHKOho4,7930
|
23
|
+
nabu/app/multicor.py,sha256=25v7tmN2_p1OQNhsI0qbCn3rpBmXzpJUDhHSVwzkLKo,4068
|
24
|
+
nabu/app/nx_z_splitter.py,sha256=p54jR-PAAw-AkGolM9fZE5lM2vbNLspCNCy5zBnJNP4,4976
|
25
|
+
nabu/app/parse_reconstruction_log.py,sha256=msOtA3xaqLZpISRqS0F9_SrkvbdvKNPE99tdWhPrkY0,4745
|
26
|
+
nabu/app/prepare_weights_double.py,sha256=jy78aP1UNKqSk82Wy6ZCkKjpYXxaGmlIj_vjB4SxS8A,5443
|
27
|
+
nabu/app/reconstruct.py,sha256=L5N6BnP8lUQbXGi4NtcAZQ7h-T8CbyiBBP6s1SlPqrg,5792
|
28
|
+
nabu/app/reconstruct_helical.py,sha256=meHlSfW-wc1GtMNsE2ihhMlvVRPYkXq-UlJ4oqhJgX4,4277
|
29
|
+
nabu/app/reduce_dark_flat.py,sha256=nJ67oRGRWRw3P5Q3oTdW17_SszVxwkNSiYUjTkZJQZA,6555
|
30
|
+
nabu/app/rotate.py,sha256=st9tPf9XSH_nYPivANbcvBwDcY3snH-fYXJhVh7Suh4,6503
|
31
|
+
nabu/app/shrink_dataset.py,sha256=P9dorO0Q-gPAWgSHyZi3XQp4jkMTJacDYzNvJY4oh98,3507
|
32
|
+
nabu/app/stitching.py,sha256=T5nQVp7D6jNg86vMi8BCQANJJsKstvwItJWZDs05t64,4194
|
33
|
+
nabu/app/utils.py,sha256=XUBRWDmth4i3BZHd27rfarFAUP7OEcsMeVmDJ6T4EXA,1178
|
34
|
+
nabu/app/validator.py,sha256=rmSiMnp1PucJo4adsn7eQ-wVf1sFXA1qZFOOHDJPLVs,3338
|
35
|
+
nabu/app/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
36
|
+
nabu/app/tests/test_reduce_dark_flat.py,sha256=ouHz3q6RK4KgmYWt7Te-_THWqF9cX_81WMU0-X4tn7A,2694
|
37
|
+
nabu/cuda/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
38
|
+
nabu/cuda/convolution.py,sha256=2YfvcfOVVXSHH4PNoifsYhtG__rRQ2kD-nVjHTBNe3c,255
|
39
|
+
nabu/cuda/fft.py,sha256=cahlqESgKsHXwerCqW3NZBPPMCWSrCnAcSoTMAcOrqY,208
|
40
|
+
nabu/cuda/kernel.py,sha256=8v0b9kGNZfTPt2-xRbwrwX363Tw38B0TvsvmtmEtcrw,3776
|
41
|
+
nabu/cuda/medfilt.py,sha256=0V_zx2FSKvOwTwhyFQ8YlkzES5OKKu4tBx-xZlkllNI,230
|
42
|
+
nabu/cuda/padding.py,sha256=x6lk6_SoHzruHbQZCdN-FTgE4JlN3hyrtm3k6wwANZM,230
|
43
|
+
nabu/cuda/processing.py,sha256=nefntcARa917yirZqe5c90yPXua_sGzVUtg6Fzc2Vu8,2655
|
44
|
+
nabu/cuda/utils.py,sha256=8FkRKNe3ONQrizWSnqtBJOrhbGAMc24I-wSrNGD2q_0,9627
|
45
|
+
nabu/cuda/src/ElementOp.cu,sha256=PhebQQgeF0V7MDNzeYiRXIeNq3tE2PsBx00XhanBmvg,7188
|
46
|
+
nabu/cuda/src/backproj.cu,sha256=Zq9w8TP9zSYCHH_91dfrTVLOSEmY0y4hzm7J2qdCdJ8,6257
|
47
|
+
nabu/cuda/src/backproj_polar.cu,sha256=sZbtw3KMfN69XyubJQSSLC87d5IPOyzbPBoRSNC1Cek,1851
|
48
|
+
nabu/cuda/src/boundary.h,sha256=eQhfKZm-o0kj88BvkUwzqfqxYfRde4Tuj8AhQvRK16Y,2898
|
49
|
+
nabu/cuda/src/cone.cu,sha256=IuuVpHPnGekQmLq7_FyJ3pN4Ntjs7k5yeUiPKty7H9w,3399
|
50
|
+
nabu/cuda/src/convolution.cu,sha256=O6r8qPpQjpaqnNivMRX0LK3dEACKk9xyNYO9u_JysU0,7353
|
51
|
+
nabu/cuda/src/dfi_fftshift.cu,sha256=ElgNXy8H14mff2hmyjxCq7CnFK_DSY2Z564QGytRO1o,2220
|
52
|
+
nabu/cuda/src/flatfield.cu,sha256=ZVVmEd-jcsK03VWv42uugYw6LeUnDEVY8qo_G07doHs,2058
|
53
|
+
nabu/cuda/src/fourier_wavelets.cu,sha256=571gDOFLy4cMKOockPZIxCJKcFWJwDYT8FdWjQJHEWE,547
|
54
|
+
nabu/cuda/src/halftomo.cu,sha256=agqNiL4gvY0S57_d0Xa7rvjXI5teOOXF9XHK1IA-aDQ,2902
|
55
|
+
nabu/cuda/src/helical_padding.cu,sha256=87Ia2jDWzA_1ZSmE-v1yBqccIrIvF5Op6Nbmyvk31Ww,3955
|
56
|
+
nabu/cuda/src/hierarchical_backproj.cu,sha256=HT18tjIviwubvWiufC51TVIftBA5qD3-k94l1J19l8Y,9625
|
57
|
+
nabu/cuda/src/histogram.cu,sha256=bVdVA5GfT0-asMjmWk8r39a7W2jmjL-YVz60LUyvqiQ,808
|
58
|
+
nabu/cuda/src/interpolation.cu,sha256=Q4TjDklZToSjk9yCd4Rq97kQlhSAgFer7Pf4PUo4jYU,839
|
59
|
+
nabu/cuda/src/medfilt.cu,sha256=fyuuOEHxQFfQoDjyXr_BdNRHIUBN7e6T66kvW4OQI7A,2449
|
60
|
+
nabu/cuda/src/normalization.cu,sha256=uEJLeKZRe6yWYB9fSHnLjluIOiNBzJRK8LFYyVqrrn0,2028
|
61
|
+
nabu/cuda/src/padding.cu,sha256=ir5kmWq3Fm0dgyNLfWS3bVp_GrQGJcHjCNXXoW76TmY,4420
|
62
|
+
nabu/cuda/src/proj.cu,sha256=i5WZ6-V_yO2BoAVkrrELAWhFHQAOifnVwPqtIWFbcS4,3750
|
63
|
+
nabu/cuda/src/rotation.cu,sha256=inatw44lT0Qn4D2xguLi_YZsjzP96zfGGLiCc9vLhQw,657
|
64
|
+
nabu/cuda/src/transpose.cu,sha256=Enim7vLxTCFZbK3BmYdQ6ZatA_FLp6601VOSl8iGFjg,476
|
65
|
+
nabu/cuda/tests/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
66
|
+
nabu/estimation/__init__.py,sha256=HWE3ivArjlJx4FjFh2Q73VmpIyzod80KTmXvFo1AP1s,379
|
67
|
+
nabu/estimation/alignment.py,sha256=i7q6txkHDXuxusJ9bi6MlMVpOR8yv07LeWkKXGwqSz0,20839
|
68
|
+
nabu/estimation/cor.py,sha256=xKr3CWHktz1F-D1-h1UY6WCKZhPN0515NW2F9E87C-o,50291
|
69
|
+
nabu/estimation/cor_sino.py,sha256=qN6y16UVqoDX696JYyn3iWXDxQo0FMcFTuGbT92BW_s,18959
|
70
|
+
nabu/estimation/distortion.py,sha256=DEXizQpgHBXmrhbQ0kuEchicxmiDgmU2qrh8bCgSezg,4701
|
71
|
+
nabu/estimation/focus.py,sha256=CdtMFk6Xt4qq1JwwKDmDcVCeVocz-mpV0saikO0B1mc,17995
|
72
|
+
nabu/estimation/tilt.py,sha256=VllpMNX-_4XIyqSFYSh4y_rxnZX9U1ZlpflHjBS6hp0,8765
|
73
|
+
nabu/estimation/translation.py,sha256=L-SCLozW1I-FyGta9LjbNPLYRnaznwenF-p9rISM2pE,8581
|
74
|
+
nabu/estimation/utils.py,sha256=31d17Ng__NxcLOtGXPmbPPW1veh1m0poCvRgDCJssUA,347
|
75
|
+
nabu/estimation/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
76
|
+
nabu/estimation/tests/test_alignment.py,sha256=knNn_IqVd5MR-K3LBNc1BkREZF9V8aRD829K_zD1atY,2513
|
77
|
+
nabu/estimation/tests/test_cor.py,sha256=YKrZc1v33WBcNEOTmzoifnotghgvUL8-78B0IxCmjCs,23811
|
78
|
+
nabu/estimation/tests/test_focus.py,sha256=cMxEeTLlfVHOvG_4oGMLpp6bVI6okYz0u4aNcW0vmNI,4188
|
79
|
+
nabu/estimation/tests/test_tilt.py,sha256=KIgTJqQvNfWndm8f3aRSdznWFl3AdQhYXiZPKLseYOs,1672
|
80
|
+
nabu/estimation/tests/test_translation.py,sha256=RkOnCYgk9DZGKlIka1snqTv4wbIz_nG7-EHAxnBHsJU,2999
|
81
|
+
nabu/io/__init__.py,sha256=AbQgj4-fCCHOKynO_PyAR9ejnFSuWKgroxxhxWVpjyQ,120
|
82
|
+
nabu/io/cast_volume.py,sha256=5weJeXeNsK7-6guodB8ym4OoK_LF1ykxKmG3bXFNBRk,16716
|
83
|
+
nabu/io/detector_distortion.py,sha256=qO1Z6gejkBrixThvU_sLwH3UfLAe8aAO63YQ8z7PH78,11750
|
84
|
+
nabu/io/reader.py,sha256=39zW7zMmXa7A9Lhx2IlkObO_g-ux2UY6HE04GZZqHXY,40524
|
85
|
+
nabu/io/reader_helical.py,sha256=q3LOmu6F_4Uxi3rZZWJ-rsix2Lgu_saXXdiJF8TLi24,4533
|
86
|
+
nabu/io/utils.py,sha256=iSeBhOIcLlKgiHXdDLfAdyvSrgdv6I5iQUcjT2gv_WQ,9303
|
87
|
+
nabu/io/writer.py,sha256=0bZ2X0hvT-r_2Uu2u3fIfXZH7clxKIDhBwHmBS0ZcxM,15811
|
88
|
+
nabu/io/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
89
|
+
nabu/io/tests/test_cast_volume.py,sha256=UGrIYVp1fxm372YFJinLWAL-xCtcR731axYchhonZHY,10774
|
90
|
+
nabu/io/tests/test_readers.py,sha256=E26UE_nwqKcA6fBvzSdANNwqJ4Py07Dho61ShcMLb50,18131
|
91
|
+
nabu/io/tests/test_writers.py,sha256=EJp3DKeaRko7FVTgGdjrl2tt6jES228_XT5Jb767I0w,3137
|
92
|
+
nabu/misc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
93
|
+
nabu/misc/binning.py,sha256=x7mbKTfEKF8ZaZoPq2LJl9hfUsQ0qMNGMxaHE98PcNc,2920
|
94
|
+
nabu/misc/fftshift.py,sha256=5ktzFxD0XMrR7h8Y-ccnYZX92wmE5lhf4tuXhn8_vQg,219
|
95
|
+
nabu/misc/filters.py,sha256=8aoO7-g94PJ8zDUSKD0pV4knozsmZIGTDiiGgO3Fzhg,604
|
96
|
+
nabu/misc/fourier_filters.py,sha256=e3bEUXZLSWorsG8oUZ-AdYWx3fKrP2UsFg9M81ESwC8,5668
|
97
|
+
nabu/misc/histogram.py,sha256=eV6VfEl1gGP9_wbthh1xhiqtZHmb41o0OMI6G8q1sXw,223
|
98
|
+
nabu/misc/histogram_cuda.py,sha256=-eivBJlFRicRBWQtiDfs-iMiF6NDv43sWuAlul2dFqk,252
|
99
|
+
nabu/misc/kernel_base.py,sha256=ASiEvHiXhp_dLjkQxxAhob1fQ68ZmIkTsZM9uz11dbU,194
|
100
|
+
nabu/misc/padding.py,sha256=NUTNDsafUnI1pgy-YtemKINGUUufCb7w2EV-UrznCsM,2713
|
101
|
+
nabu/misc/padding_base.py,sha256=NQwOxhMnbssGBDKznE2Q6FMrIiQeAYRHVgsjxKy3Rzk,230
|
102
|
+
nabu/misc/processing_base.py,sha256=YTDfq2G64RVVuZn7JgWTie1YAtW-tT48Uq3ZuXH21hw,214
|
103
|
+
nabu/misc/rotation.py,sha256=4UgR3kaedemjeaZCfwmjF0HwfOLdSFE9ooSpMtoP85E,219
|
104
|
+
nabu/misc/rotation_cuda.py,sha256=agtjgKBjwOHJGXY-Y1HlbOUXi3Bl9ykyGv_a1qksucc,239
|
105
|
+
nabu/misc/transpose.py,sha256=ogJ1PPYO0sOPUfCgjk-Ho5cTjlBbP-KXGqhCgTj75DY,223
|
106
|
+
nabu/misc/unsharp.py,sha256=3xYsdiLTqTDlE8G-tIY7EeTf3nKxPrvMHOnXgkcKWvU,209
|
107
|
+
nabu/misc/unsharp_cuda.py,sha256=-csDxfQt_naYn5O8fOxksYNqyFKxbF8lV7yXlPd2XoM,235
|
108
|
+
nabu/misc/unsharp_opencl.py,sha256=HCPoobPwi2LEAfqGQ2qekjQi6G2VDKmqJQZTDXySv1Y,252
|
109
|
+
nabu/misc/utils.py,sha256=s8ACtKdw9rTmlD0APdrpeo_ZIneKsTv2Xq3X2TRxCRk,3898
|
110
|
+
nabu/misc/tests/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
111
|
+
nabu/misc/tests/test_binning.py,sha256=vcZZINi_v_KOw4DMqLIgPlF-CwLTG102Yf7dMQ5_SEo,1890
|
112
|
+
nabu/misc/tests/test_interpolation.py,sha256=H8ZJ7dppCcpxVa9wOBkJ9U0mymH5lGyCJ0LZCYIK8PE,2389
|
113
|
+
nabu/opencl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
114
|
+
nabu/opencl/fft.py,sha256=0TOYjzIhRhvFgF6_oL2V89kOrlekPXu9eWpIkfOexAI,222
|
115
|
+
nabu/opencl/kernel.py,sha256=lmHRgWqpEbQUOunZe0xFuuw_Z_K6dq8BxjH3FLReVBU,5125
|
116
|
+
nabu/opencl/memcpy.py,sha256=s_0CCO-PTDmEsCW9_kVCNHwN7_hw7uNy_O6KJ0zS71I,1263
|
117
|
+
nabu/opencl/padding.py,sha256=CjeifU4xcUhgD_OILoIC4vPDQGVyVRjJXsMb8gxPL_0,238
|
118
|
+
nabu/opencl/processing.py,sha256=cKq_VLtLBPijp2pl7Zgc4mrVsYLUA27x26jPo484Kg4,2416
|
119
|
+
nabu/opencl/utils.py,sha256=OPqSJAZ82EwRmqu_H5_S59Y9a3CrqQhEQomWQj-EuSU,10239
|
120
|
+
nabu/opencl/src/ElementOp.cl,sha256=RMScHhHYDa6xXC4NLJrC1KpDRq-aMZG1lwq3O9pStiY,1258
|
121
|
+
nabu/opencl/src/backproj.cl,sha256=M226iOQ-0WhGsJZfUn3mUCfBHqqGAqWa2caK9Igk058,5559
|
122
|
+
nabu/opencl/src/fftshift.cl,sha256=xq-HNRWhuXqTVD_nD-38_41HPYZPCXAHDTpxsGURSTY,1726
|
123
|
+
nabu/opencl/src/halftomo.cl,sha256=IZ2VJwWLpfaNpzM8Ief13zsqDcq68lyFqG55qYWoHNE,1386
|
124
|
+
nabu/opencl/src/padding.cl,sha256=0e4wDB3wOVFIFw0f7VTfD45PK6HzDhooCgK2DZqiUfA,460
|
125
|
+
nabu/opencl/src/roll.cl,sha256=UTH4A9SfajGoX3wjOAm1inDT9-8RxCFfoZ5ePijMGOE,2486
|
126
|
+
nabu/opencl/src/transpose.cl,sha256=jFRIFccPefzbKFEqEIVYGrWac5XJs3FY1tEmvCzA74E,450
|
127
|
+
nabu/opencl/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
128
|
+
nabu/pipeline/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
129
|
+
nabu/pipeline/config.py,sha256=rOpCHywEi_StPDaz-fSYc36ondCMamMPhMy7o03HcJk,9207
|
130
|
+
nabu/pipeline/config_validators.py,sha256=ertytKkgp154AI0lOZbCWK9vMugSEoWVp7dy1x32wsk,16395
|
131
|
+
nabu/pipeline/datadump.py,sha256=tKW-Dl28FU2vf1OuIie_YI1-GT1DMreis57sOR-DuGU,7026
|
132
|
+
nabu/pipeline/dataset_validator.py,sha256=etQw9NC_YGsdWCgjsn8aJ3WfvcRuJlLVZlWoqhvvo-8,9263
|
133
|
+
nabu/pipeline/detector_distortion_provider.py,sha256=ru1AxbcuO-FA8FYooPBWgp1lzdSDUtzFUC1A_sS8jME,920
|
134
|
+
nabu/pipeline/estimators.py,sha256=Wi1VVt-yl-SpbYon5t3zQTjSx6rY_FxAMmpBRlv6lrA,40465
|
135
|
+
nabu/pipeline/params.py,sha256=EoovjCUTUXmj5HQ3qE0RhP7XD3cndaiT21TdvjTIhE8,3746
|
136
|
+
nabu/pipeline/processconfig.py,sha256=3xx2Lc8uEzPAqSMwUncr4RCiCtKn2c7wnXXbPSn8GNo,7719
|
137
|
+
nabu/pipeline/reader.py,sha256=wkxPHYOi_C8dHNc7kddB8AMtFuW7GjsP_tm6SJeHlEY,4792
|
138
|
+
nabu/pipeline/utils.py,sha256=5GGhT9Wu7tHDlF3w7YNjTTYkNBl5xHa9EcRZSGFUWtM,3538
|
139
|
+
nabu/pipeline/writer.py,sha256=NVeAtkWDtXg5UJ4C3wsbkfM23ZnK64atCWl8tjmjsuY,8166
|
140
|
+
nabu/pipeline/fullfield/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
141
|
+
nabu/pipeline/fullfield/chunked.py,sha256=PFAVK2ROCJ8xzorRwU4nTN54OOaMlOZakj2V4jgJwn0,40765
|
142
|
+
nabu/pipeline/fullfield/chunked_cuda.py,sha256=Jdkk6ZIt3S6UZYbupHtSj2vrj3krWMcqRHHprfblDfk,5848
|
143
|
+
nabu/pipeline/fullfield/computations.py,sha256=AEp3qvwyY-l8-GzjH1E6kmcmU6OgDp6sB-mltq0Jnxg,9970
|
144
|
+
nabu/pipeline/fullfield/dataset_validator.py,sha256=HK_bmlII9pc59PXCgKJOyLv7Xu3DYv_jbH3RmQSgzvI,2933
|
145
|
+
nabu/pipeline/fullfield/nabu_config.py,sha256=1z-CODIWvMIybXSleyVptTzeHVaG6n5cemhAByltZOM,31910
|
146
|
+
nabu/pipeline/fullfield/processconfig.py,sha256=2eE9W0KjsHq8aSCXlczsISpWM9SMjWL03fN1RqZWyxg,36815
|
147
|
+
nabu/pipeline/fullfield/reconstruction.py,sha256=XtIC4fUEo93-nWPocP6WCkwgjTBrZTva3Mjrz39QxFM,37520
|
148
|
+
nabu/pipeline/helical/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
149
|
+
nabu/pipeline/helical/dataset_validator.py,sha256=HdKjUSj3PIpJb1dKSzJg8s4zXbAnMPWaPn8kvp_xQEs,657
|
150
|
+
nabu/pipeline/helical/fbp.py,sha256=MKn587bO5Lj7yFu-Sll2RkOIY5r3rC-fmC10SzFU5i0,5841
|
151
|
+
nabu/pipeline/helical/filtering.py,sha256=dK93SP68QMCROTh8kWaYsm_NhqFpfj0I1Teek7dM6xg,10215
|
152
|
+
nabu/pipeline/helical/gridded_accumulator.py,sha256=ZaH80g6_YwUHzrV3p3Lu9-k7WfdUBLQmUBa236lCr6c,26357
|
153
|
+
nabu/pipeline/helical/helical_chunked_regridded.py,sha256=Pedgb4D8SzMEHw_vIrSVTHXkt60gXmAIUGM69LBosaE,68463
|
154
|
+
nabu/pipeline/helical/helical_chunked_regridded_cuda.py,sha256=DdH55nQml3JWDX9VJaxflefyFWFZr6zBWwJRitCeeE8,3887
|
155
|
+
nabu/pipeline/helical/helical_reconstruction.py,sha256=3W3ncinPbQkI0JHFKMHCTL9NYh9GPutY3Uyo_kOxwbs,24121
|
156
|
+
nabu/pipeline/helical/helical_utils.py,sha256=s38xbugkIJgcGeXqXJVSdGsUg-WPHt5hBmWuiYHVzR0,1437
|
157
|
+
nabu/pipeline/helical/nabu_config.py,sha256=bhAIhcArlki57MpQodXvS8yjO7wkDd1I89_sM5naVuU,8055
|
158
|
+
nabu/pipeline/helical/processconfig.py,sha256=IlCfKkiclBmDDdT6Ail3aSj9Q7zV38YpFmF1_SsCjy4,2775
|
159
|
+
nabu/pipeline/helical/span_strategy.py,sha256=tKLWQv2woj3SSW5JLJu5pNbv48fy0vYNejnm7uHnaEc,25057
|
160
|
+
nabu/pipeline/helical/weight_balancer.py,sha256=0Ebgs8p8J63cLsN3ESTzIzwE6vZX4Y5_gzqgFeS5LoY,3980
|
161
|
+
nabu/pipeline/helical/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
162
|
+
nabu/pipeline/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
163
|
+
nabu/pipeline/tests/test_estimators.py,sha256=usi2Rp0zry5ADJV9k8nHhCqdDBSuHguZvyH-jkg-F48,6146
|
164
|
+
nabu/pipeline/xrdct/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
165
|
+
nabu/preproc/__init__.py,sha256=dKxvZvWZXjKS3iPRaSXiUeM2dNGIOyTlirq5pdAWY0Y,284
|
166
|
+
nabu/preproc/alignment.py,sha256=PUw4YdpCmY6FVkUaosaT6LxFoNgPv7XHFy11Fhz1_6w,19
|
167
|
+
nabu/preproc/ccd.py,sha256=AHU9iwXLrzisMOfIfMtKwDfd9vP5m_-MBI0rmP4u7eg,5145
|
168
|
+
nabu/preproc/ccd_cuda.py,sha256=IckZjk0fznVgX6VlBWZEURar_RqvMTN-g87Aj6Y8rJk,6093
|
169
|
+
nabu/preproc/ctf.py,sha256=LEZT5fawEIIT3Qx0V0910RSv8aPLYuuHDrMzTYqyd5o,14981
|
170
|
+
nabu/preproc/ctf_cuda.py,sha256=j6s8JOYQ7IVuu5HHAoGJhbTRW2zi7t5d6YrcAxIU0aQ,5268
|
171
|
+
nabu/preproc/distortion.py,sha256=XksQNrrSBfZS7mlvIdVEMZjw839ppQWP6AitTLcgfb0,3309
|
172
|
+
nabu/preproc/double_flatfield.py,sha256=WcYsNuotgQgm_KaioNa3OVI8rGfk3Wrn_YCW5v4mo4w,7895
|
173
|
+
nabu/preproc/double_flatfield_cuda.py,sha256=lqgvZyeujdWJ5nF_GNRMQx7punjqA3SZ8K3IIyL3HDY,6197
|
174
|
+
nabu/preproc/double_flatfield_variable_region.py,sha256=yiyvfGLFv3b93aKzHw84EQszPwQHfBv0PqtlQ8khvm4,2258
|
175
|
+
nabu/preproc/flatfield.py,sha256=EX4zz7l8YddyGcY8bSF0QLeu7XQWzxj1jLXf70_t4Vs,19401
|
176
|
+
nabu/preproc/flatfield_cuda.py,sha256=Iiqv7bHa870DZOH68L19xiN1kG9I9JXuckFfA3khGtY,5482
|
177
|
+
nabu/preproc/flatfield_variable_region.py,sha256=RVmSW515vgkHagjqotPNPUe97oQooHgdqkBn6hPH_2Q,3142
|
178
|
+
nabu/preproc/phase.py,sha256=nRFhnHN_Bmmu5AHDcoO-Kt59sXYFSQaTljHZ5dlZiA0,13857
|
179
|
+
nabu/preproc/phase_cuda.py,sha256=2oGjpmSl8U6dbzxrU_pt-_3JFm3XeBMCTCUNoxjIAuw,4944
|
180
|
+
nabu/preproc/shift.py,sha256=UVa962Gj4b1CRAsez57glvBGXXFSDVnquB3Zd0JgquQ,3424
|
181
|
+
nabu/preproc/shift_cuda.py,sha256=4YOVRZ4oECEVWOQ6MzDBh8cOY2RtOOhlU7tir0Tp77M,4125
|
182
|
+
nabu/preproc/tests/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
183
|
+
nabu/preproc/tests/test_ccd_corr.py,sha256=KIpwaWYWT_6OPVXyVuLxXIIWreBkYF0rOnDMiegiLMU,2249
|
184
|
+
nabu/preproc/tests/test_ctf.py,sha256=5C-PKzMcIQQFR4RsNh6au8TVGqbKhPV3_5djVaSB9p8,9992
|
185
|
+
nabu/preproc/tests/test_double_flatfield.py,sha256=qUmgAktFHqzKJBHHfj3GJzorey0yk7R0e4nr8dRmbTo,2870
|
186
|
+
nabu/preproc/tests/test_flatfield.py,sha256=8_vmTtfmrpbuKUr4fW8NmtH-PtGWkSQkMBFD6hs0ul4,21055
|
187
|
+
nabu/preproc/tests/test_paganin.py,sha256=aHfNsJcVALVYkbNHrhcO9lFYfco2qYA5PnzAjKTG2BU,2998
|
188
|
+
nabu/preproc/tests/test_vshift.py,sha256=Gq9sDtbbAAdLTJALH2qcbeYXE5dINQ8QpBnCgZM0tFQ,2972
|
189
|
+
nabu/processing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
190
|
+
nabu/processing/azim.py,sha256=GIv_C1NYjUP3IYd51qvfECTDu-rfs3Dl2Hb5-ZhdhHY,7080
|
191
|
+
nabu/processing/convolution_cuda.py,sha256=jOLKdEwzBwNZPTEjXIBWStZp22ieeukc6KGnuSNVnaA,15421
|
192
|
+
nabu/processing/fft_base.py,sha256=xoyILNWUKAP8T2Wp6A8UGYKalDRkpvGyLn22vmxANlk,5656
|
193
|
+
nabu/processing/fft_cuda.py,sha256=4NK7XjWkhPLG11jjpuV0r4ylqiKsZ5UPRy38olY0Po0,9388
|
194
|
+
nabu/processing/fft_opencl.py,sha256=J2Oqe-EoxT9hYNfrjKdkCLiWKnHozNAs4FvTSAmjMlw,1605
|
195
|
+
nabu/processing/fftshift.py,sha256=mFOKuqQtxDPXoFPPP_G-YMA4WFmmO0oPFXjBWrrfDO8,4880
|
196
|
+
nabu/processing/histogram.py,sha256=CumzHFjOw0JaHWlMnhCnj7I2Guam1HYqPVJeijKqC40,11376
|
197
|
+
nabu/processing/histogram_cuda.py,sha256=G0uKJNhDwPUTr8lyEBr1m5G0D4n3-eZwCCBC1FZaCyQ,3338
|
198
|
+
nabu/processing/kernel_base.py,sha256=0m5WxJIREntSMoUP_ECtGnuWMKN9AS6wJVdblEGDu_M,4366
|
199
|
+
nabu/processing/medfilt_cuda.py,sha256=usnNMKxFMrGI6ZIYNRDXBn5kzBzOyuVay8mnQSvNR2k,5691
|
200
|
+
nabu/processing/muladd.py,sha256=CZyVL2innf7suGvwM7xB16vUjgZSz0UYEm7Z563igyw,876
|
201
|
+
nabu/processing/muladd_cuda.py,sha256=wGivGyyMn7FN68hDT590RwSiV4Ju-TLGwa1bnw4Cd_k,2477
|
202
|
+
nabu/processing/padding_base.py,sha256=P6Zu8yLkHrCW3ZAZmeLfPn2ZfAH2_fZEB3CMLbCWL6E,2874
|
203
|
+
nabu/processing/padding_cuda.py,sha256=x5aXHNa1pvUnYaftFGlvuqZqyNKD4_bjsqr-hVPgNB4,2649
|
204
|
+
nabu/processing/padding_opencl.py,sha256=H7w5bY9Th9pJKYKaX1_u-XqUj8lM5XWfVViu0ax4W40,3074
|
205
|
+
nabu/processing/processing_base.py,sha256=cQl5gjp1tS6d3P50O9RkYcD4BSayrMWY8KyMmNkvK-M,4411
|
206
|
+
nabu/processing/roll_opencl.py,sha256=ms6ZW7ecG-kWq--wWijAjDB_uVWQtUylFp_EDKmfUKw,2283
|
207
|
+
nabu/processing/rotation.py,sha256=8tVQponi8tv8uPw-xT-0GyZecl3YIXyJgPkEnQMer8M,1836
|
208
|
+
nabu/processing/rotation_cuda.py,sha256=mfExwPCTyoKFhv8ZmE833jI_D6o-J-p5-TxacGdb-e4,2796
|
209
|
+
nabu/processing/transpose.py,sha256=bOnxEFXJd16YcTGyMS-3lwREIVaDkClE_Fkb8bOn1l8,4410
|
210
|
+
nabu/processing/unsharp.py,sha256=XqoieKlX5sEHalxObi5JBOjauRUSbiHc6rqYT_buTa4,2682
|
211
|
+
nabu/processing/unsharp_cuda.py,sha256=uKFCEk8bRqgJzR8HB_OeKYuwC5jKqaXpFI6pRv_pDY4,2152
|
212
|
+
nabu/processing/unsharp_opencl.py,sha256=vBVq5wA-rxOkULE-sv6WzNt5Pq9hc3gFcp4mM0kCo44,2651
|
213
|
+
nabu/processing/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
214
|
+
nabu/processing/tests/test_fft.py,sha256=BlUvHjpLtyrn_kpAhM7rldhrdQ8tb_APY1Q2IwntoN0,10260
|
215
|
+
nabu/processing/tests/test_fftshift.py,sha256=Qwg3oOwNh_MRmg9BS1kMVhQSSfzQzrCOsppsvY3v5rg,2599
|
216
|
+
nabu/processing/tests/test_histogram.py,sha256=25CLs1WZpLF9xZ2DR82x4_YokA5Z76Qsnn6zY8YdJj8,2283
|
217
|
+
nabu/processing/tests/test_medfilt.py,sha256=rnReK3MMCsc74-NoycYSRSMp7bN4Qdg4cZbHfWQ9ZWQ,2652
|
218
|
+
nabu/processing/tests/test_muladd.py,sha256=cRhAC5hgmRV0BAwPA4o4M-kcx-UDniLK7sSyiN0F3kE,1927
|
219
|
+
nabu/processing/tests/test_padding.py,sha256=EQXYwAFDvtAjK6KRPAY7fNarRXPixuwqKItM3bkJDKY,8730
|
220
|
+
nabu/processing/tests/test_roll.py,sha256=XtEFz1V_OId1O2hGf4JJjesCyYLxKjoz966sGL-YzEs,2333
|
221
|
+
nabu/processing/tests/test_rotation.py,sha256=vedRXV9RePJywBKoyBkGANP1dhZCjphbYOhdnsBDQtE,2737
|
222
|
+
nabu/processing/tests/test_transpose.py,sha256=hTG17wTaB5Wv6twbW3ZFhBv6BYfqJY7DTQPoO0-KdkM,2760
|
223
|
+
nabu/processing/tests/test_unsharp.py,sha256=R3ovbwDDp3ccy2A8t6CcUVELXRWkED5EnQdN2FQOfQM,4391
|
224
|
+
nabu/reconstruction/__init__.py,sha256=EmKVvx_-FJvzJngG4ielIC7FhMCpI1Waaflg_lF44tk,163
|
225
|
+
nabu/reconstruction/astra.py,sha256=qnFYabU-Bzgys8hXjIBcwO2NazrvhNXUYFIkMHc6BmM,10444
|
226
|
+
nabu/reconstruction/cone.py,sha256=RZj1JoxqskShvglgxUnsbYw7qbm6Rralt7hJ96eU-8c,19015
|
227
|
+
nabu/reconstruction/fbp.py,sha256=uwEniGdEOn1atc9mTAHEDeF1y-ZqneifCKVr-ieHZss,5015
|
228
|
+
nabu/reconstruction/fbp_base.py,sha256=wY0fa81DH6Wmq6rJMtibD6L9sqwvhujYVdtaNBMxaEE,17099
|
229
|
+
nabu/reconstruction/fbp_opencl.py,sha256=coEGLq65PCuvWnhAbIyLPHACkWjMB0XOceMp9ZIDWtc,3274
|
230
|
+
nabu/reconstruction/filtering.py,sha256=fg_loze-VkiFqBAqQ7AGkKwCDz-5UskSSh27klaakD0,8659
|
231
|
+
nabu/reconstruction/filtering_cuda.py,sha256=ZrocsgEy3eLWt-_4S8pJ1Lml-JVZdMW1YTegaG44U6U,4037
|
232
|
+
nabu/reconstruction/filtering_opencl.py,sha256=B9zcvSxvt3KMxEXxoirop1vfqM0kSRP-LhvGgqDGQlA,3957
|
233
|
+
nabu/reconstruction/hbp.py,sha256=RRd2aYKycnFhaGu2BrL37nK50nsGmKt3D3QxywPq9Tg,18682
|
234
|
+
nabu/reconstruction/mlem.py,sha256=66_porIK6Fn4KO6NIO3ZZHBPEEA1rf2Qk23YYwaZwzg,3568
|
235
|
+
nabu/reconstruction/projection.py,sha256=SNocaOY9HuNiHs-VxkW9IS707JPJnd3sDjAbf7aIw2E,9081
|
236
|
+
nabu/reconstruction/reconstructor.py,sha256=16xxHcK4iie-uh-trf6x_IuvgxJKBvQRTE5B8tnc4F8,7358
|
237
|
+
nabu/reconstruction/reconstructor_cuda.py,sha256=m_3GzG44PRyiSEfTvYjgr5atLwl26hMfZOMyqTWxp0g,1644
|
238
|
+
nabu/reconstruction/rings.py,sha256=mpbCLuFM_6Uy9oNJkyQ8tZwhGhrbWtzRlArSRsC90bI,9527
|
239
|
+
nabu/reconstruction/rings_cuda.py,sha256=yBGv_MITcWzD1VWLIchloV8IB43D_5Rxf1MoqYoTvMw,13704
|
240
|
+
nabu/reconstruction/sinogram.py,sha256=VeydpunbseI6azvMpoutldz3ZaSc6cKP4ibrGuvEHN4,17028
|
241
|
+
nabu/reconstruction/sinogram_cuda.py,sha256=DBF06ruzkZ5zn8x06Ron2NkB_FBKiZC2oM7kjeiV6jQ,10630
|
242
|
+
nabu/reconstruction/sinogram_opencl.py,sha256=vxJa5BeOd2NVdUayXYfQGAfO1AEbJfTGotuijT8qgCs,1486
|
243
|
+
nabu/reconstruction/tests/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
244
|
+
nabu/reconstruction/tests/test_cone.py,sha256=4a5EjEt8pbpdvDFDITiEcnuTGDMRY_jgZ-EQGBRn19Y,21457
|
245
|
+
nabu/reconstruction/tests/test_deringer.py,sha256=HsEPlqa5sup1NoayjZjBATy67Y7MBlB-PsN780y02Rw,8368
|
246
|
+
nabu/reconstruction/tests/test_fbp.py,sha256=xQgqbsF2D2TP98o9qlqM1hlvqRmiOlRpcPwlgSA8edQ,15305
|
247
|
+
nabu/reconstruction/tests/test_filtering.py,sha256=I5H1KSfd4iXTJWSqeMPR5Q7v5rFTXO6Vp2jYU4ugl58,5247
|
248
|
+
nabu/reconstruction/tests/test_halftomo.py,sha256=FFv58sSA-5WDcJ_Y5tSm1P7QQwNX4SUIYtHQQb_G3xM,6532
|
249
|
+
nabu/reconstruction/tests/test_mlem.py,sha256=JWby9nqWqockgUh2RQoqrC8BtfB4v5SCNayk4bBJ4TM,3791
|
250
|
+
nabu/reconstruction/tests/test_projector.py,sha256=QcHLnNWQ6HC9pJo9CdalaaeEDQ_vFpNMn5yXEpfBDXI,6259
|
251
|
+
nabu/reconstruction/tests/test_reconstructor.py,sha256=3p2Wk_OqgZqkNOkhK_NJWlHkOIENTJhLuwVRI8Y1_Ak,3385
|
252
|
+
nabu/reconstruction/tests/test_sino_normalization.py,sha256=qNnpVUp3UcFGyLlSP0rCzE5hxdV6YENL9AF6mo72WcQ,3669
|
253
|
+
nabu/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
254
|
+
nabu/resources/cor.py,sha256=-mcrTbj3G7o4PP5E_gIRo2j6_-ADmMkkOc_0CyQv84c,170
|
255
|
+
nabu/resources/dataset_analyzer.py,sha256=TFpec0j4Hlp1GS7InTyxkbYDni9ux4DHDlZrGdGuRzg,18540
|
256
|
+
nabu/resources/gpu.py,sha256=oQA8PpPdyuIzpxq1PwVd9gJdyCiLIry2godUV1AbPW0,5769
|
257
|
+
nabu/resources/logger.py,sha256=xV9UoLZBw3wXAWYfOgqrnOtzJc9aC1VNO4LM2cHxWJg,3738
|
258
|
+
nabu/resources/nxflatfield.py,sha256=4B8MYKPEtREOe4ZMTpDVlIxldXPutdI8DgO0P8AeRo0,9317
|
259
|
+
nabu/resources/utils.py,sha256=LtOWEYneEzz0mDIpUWM23v9ILJ8FM0YFaVG3fFVc7OU,5725
|
260
|
+
nabu/resources/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
261
|
+
nabu/resources/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
262
|
+
nabu/resources/templates/bm05_pag.conf,sha256=3-Zny2_QlQuZKge53N1vFLZ8yzq-y2cmpAAkByUdHX8,394
|
263
|
+
nabu/resources/templates/id16_ctf.conf,sha256=PJt_hvBlAweZSo6INnsmozHfBJvJ64b28x1mFfAOD6s,842
|
264
|
+
nabu/resources/templates/id16_holo.conf,sha256=sDd_rEJGZjOGVAsGub5sT2arfXDnc_sxyDBAcfKHNpw,773
|
265
|
+
nabu/resources/templates/id16a_fluo.conf,sha256=Nz1etzO2fSwksi7CThWJ5T1kZEdyBe8rMO7puNJ93Hc,542
|
266
|
+
nabu/resources/templates/id19_pag.conf,sha256=u4fFPEBprzOW9_5_ChkIgowQcYpLhjmA8Gwm5XgC4Jc,384
|
267
|
+
nabu/resources/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
268
|
+
nabu/resources/tests/test_nxflatfield.py,sha256=cbUWBOhE9sfdpKmxPTfu3_waPHFC2dZjy6z9gWpfzBA,4193
|
269
|
+
nabu/resources/tests/test_units.py,sha256=F2jFTck-1UwYET1MwTtX6ntzYUosfwOJkugSencGgz8,2155
|
270
|
+
nabu/stitching/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
271
|
+
nabu/stitching/alignment.py,sha256=UbyhDAYlISeb6pD0NCzdPo1h5rQwjROVP29jsXoYTsg,8954
|
272
|
+
nabu/stitching/config.py,sha256=C7pp6BX-t2aaADsFYgdVNC9mepwsTBnLB33ofGb6rUM,52832
|
273
|
+
nabu/stitching/definitions.py,sha256=JbmYwXKxOTYCr2LDXbHO-uNE2OLOBm4ir9AQ7e-Q3lY,158
|
274
|
+
nabu/stitching/frame_composition.py,sha256=bOuOn3SoyAgtEv_DZon-JbEfh5hW3RySTjK6ERxVZ2w,6626
|
275
|
+
nabu/stitching/overlap.py,sha256=bW_QjjEOihFqVFVmGt3_nmEx4wYKGjpzSDFL9Q9_o6E,17214
|
276
|
+
nabu/stitching/sample_normalization.py,sha256=_radin_wxnuD3MMmZNAOKA__aPa2z3ss4TFbZeocpXc,2069
|
277
|
+
nabu/stitching/single_axis_stitching.py,sha256=bAJlZhUOqW93VkX4nWFNrnQN4G92PHCn-87RpQ34oto,1214
|
278
|
+
nabu/stitching/slurm_utils.py,sha256=kTtqZOrkSLjY_AzL5Fd2n11uqmWPCYHJvN1qbbaGy-E,8993
|
279
|
+
nabu/stitching/stitcher_2D.py,sha256=g9MQttUrJTYNt4SreGjj3PkccyVCQ4MwyUUUbjsweC4,12667
|
280
|
+
nabu/stitching/y_stitching.py,sha256=Urt2lBXokxXxX5HFHEiLBqC69yy5b_KyuKFoU8smah4,1020
|
281
|
+
nabu/stitching/z_stitching.py,sha256=gNwj7qWvDFQaGroLVoQnKBPlbvr_CReUQEqxW15m2Ag,1835
|
282
|
+
nabu/stitching/stitcher/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
283
|
+
nabu/stitching/stitcher/base.py,sha256=Nyc5L-nvSLWOsrVVq_EP8V9j5AKnFVgxTijStyiF5-I,4326
|
284
|
+
nabu/stitching/stitcher/post_processing.py,sha256=7xmpoU-g0NzBi3-QvhLzFROAhQSA5kSx8Xya4O1bG2A,26207
|
285
|
+
nabu/stitching/stitcher/pre_processing.py,sha256=peIISQciwk4__l-F1Ud7TrjKsBAZ2wutV6zO_Kq6j9Q,51470
|
286
|
+
nabu/stitching/stitcher/single_axis.py,sha256=Ewr8gZ_LeiidLVh-usQj6V8zQSjqT_m2Kq1CcBom53Y,19985
|
287
|
+
nabu/stitching/stitcher/stitcher.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
288
|
+
nabu/stitching/stitcher/y_stitcher.py,sha256=KXwkyw6cCFcuSBCq5OyAait2Ob_5WRrtawrAlAhk60k,317
|
289
|
+
nabu/stitching/stitcher/z_stitcher.py,sha256=S22nkQZ_6NwQm8h9mOhMvEZgUxXGQf6xadR5j6A91gI,1360
|
290
|
+
nabu/stitching/stitcher/dumper/__init__.py,sha256=065KlsJai-Q3BnfuzmTP4XzO9wDV2a0CjlMdcV28Hc8,176
|
291
|
+
nabu/stitching/stitcher/dumper/base.py,sha256=kenknxtqyg_SQMDsLzd0yBYPlpepCaqyB5bvZnGEpuk,3397
|
292
|
+
nabu/stitching/stitcher/dumper/postprocessing.py,sha256=lOvKRvaxnAnow_y-0LJ2Lwjq1U9OZbFYH0rAgqKED4w,14368
|
293
|
+
nabu/stitching/stitcher/dumper/preprocessing.py,sha256=7qOx27p92Tbbiah6gYEjkxfax7L8ictdrvzqfDm3vHo,2219
|
294
|
+
nabu/stitching/tests/test_alignment.py,sha256=MACak1ILOr8nRKeT0mWfMd-ZvhCl3SWjjcp6GjRbITc,2735
|
295
|
+
nabu/stitching/tests/test_config.py,sha256=joelu7WubWbT3z5NxhiGdhaMOhI8z7-XkTmN6U9Cc-o,7302
|
296
|
+
nabu/stitching/tests/test_frame_composition.py,sha256=fQLT426u-uF5TTURKN48uHKgeYiz3ogTjwo7o4YFE30,4839
|
297
|
+
nabu/stitching/tests/test_overlap.py,sha256=B_iT0pe9b9EJ77V59ilk-_Run6n5a1V9mTDuiPzqieg,7820
|
298
|
+
nabu/stitching/tests/test_sample_normalization.py,sha256=a-F8geN8qrteDeQK37oeSYNdt49siyWFs3fZgPTRn4g,1328
|
299
|
+
nabu/stitching/tests/test_slurm_utils.py,sha256=QTbtx5SRAK1JkbyI-GNSI5xeqVHI8KptD3STpOb09Pc,4951
|
300
|
+
nabu/stitching/tests/test_utils.py,sha256=hIahPlogtnZNr_YkbN_Rcv-y6qG47IiRSSss51-cWK4,647
|
301
|
+
nabu/stitching/tests/test_y_preprocessing_stitching.py,sha256=Hi7UtxzELBsjeLsvI3Qjq__VXVDsHAuKLJyYalxXtGI,5021
|
302
|
+
nabu/stitching/tests/test_z_postprocessing_stitching.py,sha256=vAQB8nGa2-GdqGNj7PM63aA_NyXJIefn9JqVByV6jro,26930
|
303
|
+
nabu/stitching/tests/test_z_preprocessing_stitching.py,sha256=UDka2f6_6ex2Zu4T5hJhjbt5jB19r16pnnfPLL6KiVM,16127
|
304
|
+
nabu/stitching/utils/__init__.py,sha256=alIDGBnxWH4JvP-UW-7N99seBBi0r1GV1h8f1ERFBec,21
|
305
|
+
nabu/stitching/utils/post_processing.py,sha256=aow36shbYhFgAnbCoq6mtXVpjBNCKm7VSLIvv3EYVdA,11303
|
306
|
+
nabu/stitching/utils/utils.py,sha256=w92DtLj_cf5EfrE0lxtTaSWnWJi6eIC_O1-TR36590M,24574
|
307
|
+
nabu/stitching/utils/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
308
|
+
nabu/stitching/utils/tests/test_post-processing.py,sha256=X79gYJ2dwF_bjFWVQLu9odHNJaMmljfuI1-ROIp7jdE,766
|
309
|
+
nabu/thirdparty/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
310
|
+
nabu/thirdparty/algotom_convert_sino.py,sha256=iZVRilvyqMyLTu8RKgbqDFUjObWW5X69rCARrnNizuI,13872
|
311
|
+
nabu/thirdparty/pore3d_deringer_munch.py,sha256=o4bisnFc-wMjuohWBT8wgWmfNehPQGtCl6G2NebJlbg,4500
|
312
|
+
nabu/thirdparty/tomocupy_remove_stripe.py,sha256=Khe4zFf0kRzu65Yxnvq58gt1ljOztqJGdMDhVAiM7lM,24363
|
313
|
+
nabu/thirdparty/tomopy_phase.py,sha256=hK4oPpkogLOhv23XzzEXQY2u3r8fJvASY_bINVs6ERE,8634
|
314
|
+
nabu/thirdparty/tomwer_load_flats_darks.py,sha256=ZNoVAinUb_wGYbfvs_4BVnWsjsQmNxSvCh1bWhR2WWg,5611
|
315
|
+
nabu-2025.1.0.dev4.dist-info/LICENSE,sha256=1eAIPSnEsnSFNUODnLtNtQTs76exG3ZxJ1DJR6zoUBA,1066
|
316
|
+
nabu-2025.1.0.dev4.dist-info/METADATA,sha256=0Qg0LEOMdgLG7OSFJFOSUqhcj5VVR105UfZBwA4GdMk,5516
|
317
|
+
nabu-2025.1.0.dev4.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
318
|
+
nabu-2025.1.0.dev4.dist-info/entry_points.txt,sha256=cJKGkBeykVL7uK3E4R0RLRqMXifTL2qdO573syPAvJc,1288
|
319
|
+
nabu-2025.1.0.dev4.dist-info/top_level.txt,sha256=fsm_N3eXLRZk2QXF9OSKPNDPFXOz8FAQjHh5avT3dok,9
|
320
|
+
nabu-2025.1.0.dev4.dist-info/RECORD,,
|
@@ -1,178 +0,0 @@
|
|
1
|
-
import pytest
|
2
|
-
import numpy as np
|
3
|
-
import scipy.ndimage
|
4
|
-
from scipy import sparse
|
5
|
-
from nabu.io.detector_distortion import DetectorDistortionBase
|
6
|
-
from nabu.processing.rotation import Rotation, __have__skimage__
|
7
|
-
|
8
|
-
if __have__skimage__:
|
9
|
-
import skimage
|
10
|
-
|
11
|
-
|
12
|
-
@pytest.mark.skipif(not (__have__skimage__), reason="Need scikit-image for rotation")
|
13
|
-
def test_detector_distortion():
|
14
|
-
image = scipy.ndimage.gaussian_filter(np.random.random([379, 1357]), 3.0)
|
15
|
-
center_xz = ((image.shape[1] - 1) / 2, (image.shape[0] - 1) / 2)
|
16
|
-
|
17
|
-
part_to_be_retrieved = image[100:279]
|
18
|
-
|
19
|
-
rotated_image = skimage.transform.rotate(image, angle=5.0, center=center_xz[::])
|
20
|
-
|
21
|
-
corrector = DetectorDistortionRotation(detector_full_shape_vh=image.shape, center_xz=center_xz, angle_deg=-5.0)
|
22
|
-
start_x, end_x, start_z, end_z = corrector.set_sub_region_transformation(
|
23
|
-
target_sub_region=(
|
24
|
-
None,
|
25
|
-
None,
|
26
|
-
100,
|
27
|
-
279,
|
28
|
-
)
|
29
|
-
)
|
30
|
-
|
31
|
-
source = rotated_image[start_z:end_z, start_x:end_x]
|
32
|
-
|
33
|
-
retrieved = corrector.transform(source)
|
34
|
-
|
35
|
-
diff = (retrieved - part_to_be_retrieved)[:, 20:-20]
|
36
|
-
|
37
|
-
assert abs(diff).std() < 1e-3
|
38
|
-
|
39
|
-
|
40
|
-
class DetectorDistortionRotation(DetectorDistortionBase):
|
41
|
-
""" """
|
42
|
-
|
43
|
-
def __init__(self, detector_full_shape_vh=(0, 0), center_xz=(0, 0), angle_deg=0.0):
|
44
|
-
"""This is the basis class.
|
45
|
-
A simple identity transformation which has the only merit to show
|
46
|
-
how it works.Reimplement this function to have more parameters for other
|
47
|
-
transformations
|
48
|
-
"""
|
49
|
-
self._build_full_transformation(detector_full_shape_vh, center_xz, angle_deg)
|
50
|
-
|
51
|
-
def _build_full_transformation(self, detector_full_shape_vh, center_xz, angle_deg):
|
52
|
-
"""A simple identity.
|
53
|
-
Reimplement this function to have more parameters for other
|
54
|
-
transformations
|
55
|
-
"""
|
56
|
-
|
57
|
-
indices = np.indices(detector_full_shape_vh)
|
58
|
-
center_x, center_z = center_xz
|
59
|
-
coordinates = (indices.T - np.array([center_z, center_x])).T
|
60
|
-
|
61
|
-
c = np.cos(np.deg2rad(angle_deg))
|
62
|
-
s = np.sin(np.deg2rad(angle_deg))
|
63
|
-
|
64
|
-
rot_mat = np.array([[c, s], [-s, c]])
|
65
|
-
|
66
|
-
coordinates = np.tensordot(rot_mat, coordinates, axes=[1, 0])
|
67
|
-
|
68
|
-
# padding
|
69
|
-
sz, sx = detector_full_shape_vh
|
70
|
-
total_detector_npixs = sz * sx
|
71
|
-
xs = np.clip(np.array(coordinates[1].flat) + center_x, [[0]], [[sx - 1]])
|
72
|
-
zs = np.clip(np.array(coordinates[0].flat) + center_z, [[0]], [[sz - 1]])
|
73
|
-
|
74
|
-
ix0s = np.floor(xs)
|
75
|
-
ix1s = np.ceil(xs)
|
76
|
-
fx = xs - ix0s
|
77
|
-
|
78
|
-
iz0s = np.floor(zs)
|
79
|
-
iz1s = np.ceil(zs)
|
80
|
-
fz = zs - iz0s
|
81
|
-
|
82
|
-
I_tmp = np.empty([4 * sz * sx], np.int64)
|
83
|
-
J_tmp = np.empty([4 * sz * sx], np.int64)
|
84
|
-
V_tmp = np.ones([4 * sz * sx], "f")
|
85
|
-
|
86
|
-
I_tmp[:] = np.arange(sz * sx * 4) // 4
|
87
|
-
|
88
|
-
J_tmp[0::4] = iz0s * sx + ix0s
|
89
|
-
J_tmp[1::4] = iz0s * sx + ix1s
|
90
|
-
J_tmp[2::4] = iz1s * sx + ix0s
|
91
|
-
J_tmp[3::4] = iz1s * sx + ix1s
|
92
|
-
|
93
|
-
V_tmp[0::4] = (1 - fz) * (1 - fx)
|
94
|
-
V_tmp[1::4] = (1 - fz) * fx
|
95
|
-
V_tmp[2::4] = fz * (1 - fx)
|
96
|
-
V_tmp[3::4] = fz * fx
|
97
|
-
|
98
|
-
self.detector_full_shape_vh = detector_full_shape_vh
|
99
|
-
|
100
|
-
coo_tmp = sparse.coo_matrix((V_tmp.astype("f"), (I_tmp, J_tmp)), shape=(sz * sx, sz * sx))
|
101
|
-
|
102
|
-
csr_tmp = coo_tmp.tocsr()
|
103
|
-
|
104
|
-
self.full_csr_data = csr_tmp.data
|
105
|
-
self.full_csr_indices = csr_tmp.indices
|
106
|
-
self.full_csr_indptr = csr_tmp.indptr
|
107
|
-
|
108
|
-
## This will be used to save time if the same sub_region argument is requested several time in a row
|
109
|
-
self._status = None
|
110
|
-
|
111
|
-
def _set_sub_region_transformation(
|
112
|
-
self,
|
113
|
-
target_sub_region=(
|
114
|
-
(
|
115
|
-
None,
|
116
|
-
None,
|
117
|
-
0,
|
118
|
-
0,
|
119
|
-
),
|
120
|
-
),
|
121
|
-
):
|
122
|
-
(x_start, x_end, z_start, z_end) = target_sub_region
|
123
|
-
|
124
|
-
if z_start is None:
|
125
|
-
z_start = 0
|
126
|
-
if z_end is None:
|
127
|
-
z_end = self.detector_full_shape_vh[0]
|
128
|
-
|
129
|
-
if (x_start, x_end) not in [(None, None), (0, None), (0, self.detector_full_shape_vh[1])]:
|
130
|
-
message = f""" In the base class DetectorDistortionRotation only vertical slicing is accepted.
|
131
|
-
The sub_region contained (x_start, x_end)={(x_start, x_end)} which would slice the
|
132
|
-
full horizontal size which is {self.detector_full_shape_vh[1]}
|
133
|
-
"""
|
134
|
-
raise ValueError()
|
135
|
-
|
136
|
-
x_start, x_end = 0, self.detector_full_shape_vh[1]
|
137
|
-
|
138
|
-
row_ptr_start = z_start * self.detector_full_shape_vh[1]
|
139
|
-
row_ptr_end = z_end * self.detector_full_shape_vh[1]
|
140
|
-
|
141
|
-
indices_start = self.full_csr_indptr[row_ptr_start]
|
142
|
-
indices_end = self.full_csr_indptr[row_ptr_end]
|
143
|
-
|
144
|
-
data_tmp = self.full_csr_data[indices_start:indices_end]
|
145
|
-
|
146
|
-
target_offset = self.full_csr_indptr[row_ptr_start]
|
147
|
-
indptr_tmp = self.full_csr_indptr[row_ptr_start : row_ptr_end + 1] - target_offset
|
148
|
-
|
149
|
-
indices_tmp = self.full_csr_indices[indices_start:indices_end]
|
150
|
-
|
151
|
-
iz_source = (indices_tmp) // self.detector_full_shape_vh[1]
|
152
|
-
|
153
|
-
z_start_source = iz_source.min()
|
154
|
-
z_end_source = iz_source.max() + 1
|
155
|
-
source_offset = z_start_source * self.detector_full_shape_vh[1]
|
156
|
-
indices_tmp = indices_tmp - source_offset
|
157
|
-
|
158
|
-
target_size = (z_end - z_start) * self.detector_full_shape_vh[1]
|
159
|
-
source_size = (z_end_source - z_start_source) * self.detector_full_shape_vh[1]
|
160
|
-
|
161
|
-
self.transformation_matrix = sparse.csr_matrix(
|
162
|
-
(data_tmp, indices_tmp, indptr_tmp), shape=(target_size, source_size)
|
163
|
-
)
|
164
|
-
|
165
|
-
self.target_shape = ((z_end - z_start), self.detector_full_shape_vh[1])
|
166
|
-
|
167
|
-
## For the identity matrix the source and the target have the same size.
|
168
|
-
## The two following lines are trivial.
|
169
|
-
## For this identity transformation only the slicing of the appropriate part
|
170
|
-
## of the identity sparse matrix is slightly laborious.
|
171
|
-
## Practical case will be more complicated and source_sub_region
|
172
|
-
## will be in general larger than the target_sub_region
|
173
|
-
self._status = {
|
174
|
-
"target_sub_region": ((x_start, x_end, z_start, z_end)),
|
175
|
-
"source_sub_region": ((x_start, x_end, z_start_source, z_end_source)),
|
176
|
-
}
|
177
|
-
|
178
|
-
return self._status["source_sub_region"]
|