I don't have a Strehl measuring package per se but use some existing programs of mine. I firstly generate peak-centered images of the measured data by performing a Fourier shift on the data. The peak location is found to the nearest pixel and then a 3 x 3 pixel box (for Nyquist sampling) oe a 5 x 5 box (for the oversampled data) is used to compute the sub-pixel position of the peak. The image is then Fourier shifted, i.e. by adding a tilt-term to the Fourier phases to have the peak centered on a single pixel. This is an iterative process and permits me to shift the image to within 1/5 pixel. If I don't have the pupil info, then I generate a weighted pixelated pupil at a spatial scale comparable to the image scale of the data, i.e. the radius of the cut-off frequency of the MTF is the diameter of the outer pupil. I then numerically create a PSF by taking the power spectrum of this pupil using an FFT. Initially I used to make sure that the array side was the same as the data so that the PSF was generated with the correct sampling. This has since been modified, by simply zero-padding in the Fourier domain, to generate an oversampled PSF, typically 4x Nyquist, which is then "binned" using the iraf "blkavg" task. If the peak of this PSF is not on a single pixel, then I perform the same Fourier shifting as above. For the Nyquist sampled data I normalised the volumes in a 256 x 256 pixel square.