Support multiple azimuthal range
Currently the distributed integration only supports an azimuthal integration range with one slice (nb_slices = 1
in make_azims )
Using multiple ranges entails to
- Perform several AI (
integrate1d
, medfilt, sigmaclip...) - Save results in a dedicated HDF5 group
out_file['azim_%02d/intensities' %(1+current_azim_index)]
Code for generating the azimuthal ranges:
def make_azims(azim_min, azim_max, nb_slices):
cake = ( float(azim_min), float(azim_max) )
npieces = int(nb_slices)
#-- calculate azim slices
if npieces == 1:
azims = [( cake[0], cake[1] )]
#-- calculate azim slices if n.pieces > 1
elif npieces > 1:
vals = np.linspace(cake[0], cake[1], npieces + 1)
azims = [(vals[i], vals[i + 1]) for i in range(npieces)]
return np.array(azims)
or equivalently
def make_azims(azim_min, azim_max, nb_slices):
vals = np.linspace(azim_min, azim_max, int(nb_slices) + 1)
return np.vstack([vals[:-1], vals[1:]]).T