@@ -86,13 +86,14 @@ <h1>Source code for corrct.attenuation</h1><div class="highlight"><pre>
86
86
87
87
< span class ="kn "> from</ span > < span class ="nn "> tqdm</ span > < span class ="kn "> import</ span > < span class ="n "> tqdm</ span >
88
88
89
- < span class ="kn "> from</ span > < span class ="nn "> typing</ span > < span class ="kn "> import</ span > < span class ="n "> Dict</ span > < span class ="p "> ,</ span > < span class ="n "> Optional</ span > < span class ="p "> ,</ span > < span class ="n "> Sequence</ span > < span class ="p "> ,</ span > < span class ="n "> Union</ span >
89
+ < span class ="kn "> from</ span > < span class ="nn "> typing</ span > < span class ="kn "> import</ span > < span class ="n "> Dict</ span > < span class ="p "> ,</ span > < span class ="n "> Optional</ span > < span class ="p "> ,</ span > < span class ="n "> Sequence</ span > < span class ="p "> ,</ span > < span class ="n "> Union</ span > < span class =" p " > , </ span > < span class =" n " > List </ span >
90
90
< span class ="kn "> from</ span > < span class ="nn "> numpy.typing</ span > < span class ="kn "> import</ span > < span class ="n "> ArrayLike</ span > < span class ="p "> ,</ span > < span class ="n "> DTypeLike</ span > < span class ="p "> ,</ span > < span class ="n "> NDArray</ span >
91
91
92
92
93
93
< span class ="n "> num_threads</ span > < span class ="o "> =</ span > < span class ="nb "> round</ span > < span class ="p "> (</ span > < span class ="n "> np</ span > < span class ="o "> .</ span > < span class ="n "> log2</ span > < span class ="p "> (</ span > < span class ="n "> mp</ span > < span class ="o "> .</ span > < span class ="n "> cpu_count</ span > < span class ="p "> ()</ span > < span class ="o "> +</ span > < span class ="mi "> 1</ span > < span class ="p "> ))</ span >
94
94
95
95
< span class ="n "> NDArrayFloat</ span > < span class ="o "> =</ span > < span class ="n "> NDArray</ span > < span class ="p "> [</ span > < span class ="n "> np</ span > < span class ="o "> .</ span > < span class ="n "> floating</ span > < span class ="p "> ]</ span >
96
+ < span class ="n "> NDArrayInt</ span > < span class ="o "> =</ span > < span class ="n "> NDArray</ span > < span class ="p "> [</ span > < span class ="n "> np</ span > < span class ="o "> .</ span > < span class ="n "> integer</ span > < span class ="p "> ]</ span >
96
97
97
98
98
99
< div class ="viewcode-block " id ="AttenuationVolume "> < a class ="viewcode-back " href ="../../corrct.html#corrct.attenuation.AttenuationVolume "> [docs]</ a > < span class ="k "> class</ span > < span class ="nc "> AttenuationVolume</ span > < span class ="p "> :</ span >
@@ -207,8 +208,8 @@ <h1>Source code for corrct.attenuation</h1><div class="highlight"><pre>
207
208
< span class ="n "> rot_ind</ span > < span class ="p "> :</ span > < span class ="nb "> int</ span > < span class ="p "> ,</ span >
208
209
< span class ="n "> det_ind</ span > < span class ="p "> :</ span > < span class ="nb "> int</ span > < span class ="o "> =</ span > < span class ="mi "> 0</ span > < span class ="p "> ,</ span >
209
210
< span class ="n "> slice_ind</ span > < span class ="p "> :</ span > < span class ="n "> Optional</ span > < span class ="p "> [</ span > < span class ="nb "> int</ span > < span class ="p "> ]</ span > < span class ="o "> =</ span > < span class ="kc "> None</ span > < span class ="p "> ,</ span >
210
- < span class ="n "> axes</ span > < span class ="p "> :</ span > < span class ="n "> Union</ span > < span class ="p "> [</ span > < span class ="n "> Sequence</ span > < span class ="p "> [</ span > < span class ="nb "> int</ span > < span class ="p "> ],</ span > < span class ="n "> NDArray </ span > < span class ="p "> ]</ span > < span class ="o "> =</ span > < span class ="p "> (</ span > < span class ="o "> -</ span > < span class ="mi "> 2</ span > < span class ="p "> ,</ span > < span class ="o "> -</ span > < span class ="mi "> 1</ span > < span class ="p "> ),</ span >
211
- < span class ="p "> )</ span > < span class ="o "> -></ span > < span class ="kc " > None </ span > < span class ="p "> :</ span >
211
+ < span class ="n "> axes</ span > < span class ="p "> :</ span > < span class ="n "> Union</ span > < span class ="p "> [</ span > < span class ="n "> Sequence</ span > < span class ="p "> [</ span > < span class ="nb "> int</ span > < span class ="p "> ],</ span > < span class ="n "> NDArrayInt </ span > < span class ="p "> ]</ span > < span class ="o "> =</ span > < span class ="p "> (</ span > < span class ="o "> -</ span > < span class ="mi "> 2</ span > < span class ="p "> ,</ span > < span class ="o "> -</ span > < span class ="mi "> 1</ span > < span class ="p "> ),</ span >
212
+ < span class ="p "> )</ span > < span class ="o "> -></ span > < span class ="n " > List </ span > < span class ="p "> [ </ span > < span class =" nb " > float </ span > < span class =" p " > ] :</ span >
212
213
< span class ="sd "> """</ span >
213
214
< span class ="sd "> Plot the requested attenuation map.</ span >
214
215
@@ -225,6 +226,11 @@ <h1>Source code for corrct.attenuation</h1><div class="highlight"><pre>
225
226
< span class ="sd "> axes : Sequence[int] | NDArray, optional</ span >
226
227
< span class ="sd "> Axes of the slice. The default is (-2, -1).</ span >
227
228
229
+ < span class ="sd "> Returns</ span >
230
+ < span class ="sd "> -------</ span >
231
+ < span class ="sd "> List[float]</ span >
232
+ < span class ="sd "> The extent of the axes plot (min-max coords).</ span >
233
+
228
234
< span class ="sd "> Raises</ span >
229
235
< span class ="sd "> ------</ span >
230
236
< span class ="sd "> ValueError</ span >
@@ -241,7 +247,8 @@ <h1>Source code for corrct.attenuation</h1><div class="highlight"><pre>
241
247
< span class ="n "> slice_shape</ span > < span class ="o "> =</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> vol_shape_zyx</ span > < span class ="p "> [</ span > < span class ="nb "> list</ span > < span class ="p "> (</ span > < span class ="n "> axes</ span > < span class ="p "> )]</ span >
242
248
< span class ="n "> coords</ span > < span class ="o "> =</ span > < span class ="p "> [(</ span > < span class ="o "> -</ span > < span class ="p "> (</ span > < span class ="n "> s</ span > < span class ="o "> -</ span > < span class ="mi "> 1</ span > < span class ="p "> )</ span > < span class ="o "> /</ span > < span class ="mi "> 2</ span > < span class ="p "> ,</ span > < span class ="p "> (</ span > < span class ="n "> s</ span > < span class ="o "> -</ span > < span class ="mi "> 1</ span > < span class ="p "> )</ span > < span class ="o "> /</ span > < span class ="mi "> 2</ span > < span class ="p "> )</ span > < span class ="k "> for</ span > < span class ="n "> s</ span > < span class ="ow "> in</ span > < span class ="n "> slice_shape</ span > < span class ="p "> ]</ span >
243
249
244
- < span class ="n "> ax</ span > < span class ="o "> .</ span > < span class ="n "> imshow</ span > < span class ="p "> (</ span > < span class ="n "> att_map</ span > < span class ="p "> ,</ span > < span class ="n "> extent</ span > < span class ="o "> =</ span > < span class ="nb "> list</ span > < span class ="p "> (</ span > < span class ="n "> np</ span > < span class ="o "> .</ span > < span class ="n "> concatenate</ span > < span class ="p "> (</ span > < span class ="n "> coords</ span > < span class ="p "> )))</ span >
250
+ < span class ="n "> extent</ span > < span class ="o "> =</ span > < span class ="nb "> list</ span > < span class ="p "> (</ span > < span class ="n "> np</ span > < span class ="o "> .</ span > < span class ="n "> concatenate</ span > < span class ="p "> (</ span > < span class ="n "> coords</ span > < span class ="p "> ))</ span >
251
+ < span class ="n "> ax</ span > < span class ="o "> .</ span > < span class ="n "> imshow</ span > < span class ="p "> (</ span > < span class ="n "> att_map</ span > < span class ="p "> ,</ span > < span class ="n "> extent</ span > < span class ="o "> =</ span > < span class ="n "> extent</ span > < span class ="p "> )</ span >
245
252
246
253
< span class ="k "> if</ span > < span class ="n "> other_dim</ span > < span class ="o "> ==</ span > < span class ="o "> -</ span > < span class ="mi "> 3</ span > < span class ="p "> :</ span >
247
254
< span class ="n "> arrow_length</ span > < span class ="o "> =</ span > < span class ="n "> np</ span > < span class ="o "> .</ span > < span class ="n "> linalg</ span > < span class ="o "> .</ span > < span class ="n "> norm</ span > < span class ="p "> (</ span > < span class ="n "> slice_shape</ span > < span class ="p "> )</ span > < span class ="o "> /</ span > < span class ="n "> np</ span > < span class ="o "> .</ span > < span class ="n "> pi</ span >
@@ -262,13 +269,15 @@ <h1>Source code for corrct.attenuation</h1><div class="highlight"><pre>
262
269
< span class ="n "> beam_e_orig</ span > < span class ="o "> =</ span > < span class ="n "> np</ span > < span class ="o "> .</ span > < span class ="n "> array</ span > < span class ="p "> ([</ span > < span class ="mi "> 0</ span > < span class ="p "> ,</ span > < span class ="mi "> 0</ span > < span class ="p "> ])</ span >
263
270
264
271
< span class ="n "> ax</ span > < span class ="o "> .</ span > < span class ="n "> arrow</ span > < span class ="p "> (</ span > < span class ="o "> *</ span > < span class ="n "> beam_i_orig</ span > < span class ="p "> ,</ span > < span class ="o "> *</ span > < span class ="n "> beam_i_dir</ span > < span class ="p "> ,</ span > < span class ="o "> **</ span > < span class ="n "> arrow_args</ span > < span class ="p "> ,</ span > < span class ="n "> fc</ span > < span class ="o "> =</ span > < span class ="s2 "> "r"</ span > < span class ="p "> ,</ span > < span class ="n "> ec</ span > < span class ="o "> =</ span > < span class ="s2 "> "r"</ span > < span class ="p "> )</ span >
265
- < span class ="n "> ax</ span > < span class ="o "> .</ span > < span class ="n "> arrow</ span > < span class ="p "> (</ span > < span class ="o "> *</ span > < span class ="n "> beam_e_orig</ span > < span class ="p "> ,</ span > < span class ="o "> *</ span > < span class ="n "> beam_e_dir</ span > < span class ="p "> ,</ span > < span class ="o "> **</ span > < span class ="n "> arrow_args</ span > < span class ="p "> ,</ span > < span class ="n "> fc</ span > < span class ="o "> =</ span > < span class ="s2 "> "k"</ span > < span class ="p "> ,</ span > < span class ="n "> ec</ span > < span class ="o "> =</ span > < span class ="s2 "> "k"</ span > < span class ="p "> )</ span > </ div >
272
+ < span class ="n "> ax</ span > < span class ="o "> .</ span > < span class ="n "> arrow</ span > < span class ="p "> (</ span > < span class ="o "> *</ span > < span class ="n "> beam_e_orig</ span > < span class ="p "> ,</ span > < span class ="o "> *</ span > < span class ="n "> beam_e_dir</ span > < span class ="p "> ,</ span > < span class ="o "> **</ span > < span class ="n "> arrow_args</ span > < span class ="p "> ,</ span > < span class ="n "> fc</ span > < span class ="o "> =</ span > < span class ="s2 "> "k"</ span > < span class ="p "> ,</ span > < span class ="n "> ec</ span > < span class ="o "> =</ span > < span class ="s2 "> "k"</ span > < span class ="p "> )</ span >
273
+
274
+ < span class ="k "> return</ span > < span class ="n "> extent</ span > </ div >
266
275
267
276
< div class ="viewcode-block " id ="AttenuationVolume.get_maps "> < a class ="viewcode-back " href ="../../corrct.html#corrct.attenuation.AttenuationVolume.get_maps "> [docs]</ a > < span class ="k "> def</ span > < span class ="nf "> get_maps</ span > < span class ="p "> (</ span >
268
277
< span class ="bp "> self</ span > < span class ="p "> ,</ span >
269
278
< span class ="n "> roi</ span > < span class ="p "> :</ span > < span class ="n "> Optional</ span > < span class ="p "> [</ span > < span class ="n "> ArrayLike</ span > < span class ="p "> ]</ span > < span class ="o "> =</ span > < span class ="kc "> None</ span > < span class ="p "> ,</ span >
270
- < span class ="n "> rot_ind</ span > < span class ="p "> :</ span > < span class ="n "> Union</ span > < span class ="p "> [</ span > < span class ="nb "> int</ span > < span class ="p "> ,</ span > < span class ="nb "> slice</ span > < span class ="p "> ,</ span > < span class ="n "> Sequence</ span > < span class ="p "> [</ span > < span class ="nb "> int</ span > < span class ="p "> ],</ span > < span class ="kc "> None</ span > < span class ="p "> ]</ span > < span class ="o "> =</ span > < span class ="kc "> None</ span > < span class ="p "> ,</ span >
271
- < span class ="n "> det_ind</ span > < span class ="p "> :</ span > < span class ="n "> Union</ span > < span class ="p "> [</ span > < span class ="nb "> int</ span > < span class ="p "> ,</ span > < span class ="nb "> slice</ span > < span class ="p "> ,</ span > < span class ="n "> Sequence</ span > < span class ="p "> [</ span > < span class ="nb "> int</ span > < span class ="p "> ],</ span > < span class ="kc "> None</ span > < span class ="p "> ]</ span > < span class ="o "> =</ span > < span class ="kc "> None</ span > < span class ="p "> ,</ span >
279
+ < span class ="n "> rot_ind</ span > < span class ="p "> :</ span > < span class ="n "> Union</ span > < span class ="p "> [</ span > < span class ="nb "> int</ span > < span class ="p "> ,</ span > < span class ="nb "> slice</ span > < span class ="p "> ,</ span > < span class ="n "> Sequence</ span > < span class ="p "> [</ span > < span class ="nb "> int</ span > < span class ="p "> ],</ span > < span class ="n " > NDArrayInt </ span > < span class =" p " > , </ span > < span class =" kc "> None</ span > < span class ="p "> ]</ span > < span class ="o "> =</ span > < span class ="kc "> None</ span > < span class ="p "> ,</ span >
280
+ < span class ="n "> det_ind</ span > < span class ="p "> :</ span > < span class ="n "> Union</ span > < span class ="p "> [</ span > < span class ="nb "> int</ span > < span class ="p "> ,</ span > < span class ="nb "> slice</ span > < span class ="p "> ,</ span > < span class ="n "> Sequence</ span > < span class ="p "> [</ span > < span class ="nb "> int</ span > < span class ="p "> ],</ span > < span class ="n " > NDArrayInt </ span > < span class =" p " > , </ span > < span class =" kc "> None</ span > < span class ="p "> ]</ span > < span class ="o "> =</ span > < span class ="kc "> None</ span > < span class ="p "> ,</ span >
272
281
< span class ="p "> )</ span > < span class ="o "> -></ span > < span class ="n "> NDArray</ span > < span class ="p "> :</ span >
273
282
< span class ="sd "> """</ span >
274
283
< span class ="sd "> Return the attenuation maps.</ span >
@@ -307,8 +316,8 @@ <h1>Source code for corrct.attenuation</h1><div class="highlight"><pre>
307
316
< div class ="viewcode-block " id ="AttenuationVolume.get_projector_args "> < a class ="viewcode-back " href ="../../corrct.html#corrct.attenuation.AttenuationVolume.get_projector_args "> [docs]</ a > < span class ="k "> def</ span > < span class ="nf "> get_projector_args</ span > < span class ="p "> (</ span >
308
317
< span class ="bp "> self</ span > < span class ="p "> ,</ span >
309
318
< span class ="n "> roi</ span > < span class ="p "> :</ span > < span class ="n "> Optional</ span > < span class ="p "> [</ span > < span class ="n "> ArrayLike</ span > < span class ="p "> ]</ span > < span class ="o "> =</ span > < span class ="kc "> None</ span > < span class ="p "> ,</ span >
310
- < span class ="n "> rot_ind</ span > < span class ="p "> :</ span > < span class ="n "> Union</ span > < span class ="p "> [</ span > < span class ="nb "> int</ span > < span class ="p "> ,</ span > < span class ="nb "> slice</ span > < span class ="p "> ,</ span > < span class ="n "> Sequence</ span > < span class ="p "> [</ span > < span class ="nb "> int</ span > < span class ="p "> ],</ span > < span class ="kc "> None</ span > < span class ="p "> ]</ span > < span class ="o "> =</ span > < span class ="kc "> None</ span > < span class ="p "> ,</ span >
311
- < span class ="n "> det_ind</ span > < span class ="p "> :</ span > < span class ="n "> Union</ span > < span class ="p "> [</ span > < span class ="nb "> int</ span > < span class ="p "> ,</ span > < span class ="nb "> slice</ span > < span class ="p "> ,</ span > < span class ="n "> Sequence</ span > < span class ="p "> [</ span > < span class ="nb "> int</ span > < span class ="p "> ],</ span > < span class ="kc "> None</ span > < span class ="p "> ]</ span > < span class ="o "> =</ span > < span class ="kc "> None</ span > < span class ="p "> ,</ span >
319
+ < span class ="n "> rot_ind</ span > < span class ="p "> :</ span > < span class ="n "> Union</ span > < span class ="p "> [</ span > < span class ="nb "> int</ span > < span class ="p "> ,</ span > < span class ="nb "> slice</ span > < span class ="p "> ,</ span > < span class ="n "> Sequence</ span > < span class ="p "> [</ span > < span class ="nb "> int</ span > < span class ="p "> ],</ span > < span class ="n " > NDArrayInt </ span > < span class =" p " > , </ span > < span class =" kc "> None</ span > < span class ="p "> ]</ span > < span class ="o "> =</ span > < span class ="kc "> None</ span > < span class ="p "> ,</ span >
320
+ < span class ="n "> det_ind</ span > < span class ="p "> :</ span > < span class ="n "> Union</ span > < span class ="p "> [</ span > < span class ="nb "> int</ span > < span class ="p "> ,</ span > < span class ="nb "> slice</ span > < span class ="p "> ,</ span > < span class ="n "> Sequence</ span > < span class ="p "> [</ span > < span class ="nb "> int</ span > < span class ="p "> ],</ span > < span class ="n " > NDArrayInt </ span > < span class =" p " > , </ span > < span class =" kc "> None</ span > < span class ="p "> ]</ span > < span class ="o "> =</ span > < span class ="kc "> None</ span > < span class ="p "> ,</ span >
312
321
< span class ="p "> )</ span > < span class ="o "> -></ span > < span class ="n "> Dict</ span > < span class ="p "> [</ span > < span class ="nb "> str</ span > < span class ="p "> ,</ span > < span class ="n "> NDArray</ span > < span class ="p "> ]:</ span >
313
322
< span class ="sd "> """</ span >
314
323
< span class ="sd "> Return the projector arguments.</ span >
0 commit comments