Skip to content
Snippets Groups Projects
Select Git revision
  • 4d4f3611118cd9cc3c81036887af35ec86afe47f
  • main default protected
2 results

azimuthal_integration_2d_detector_images.py

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    azimuthal_integration_2d_detector_images.py 1.62 KiB
    import pyFAI
    import fabio
    import os
    import glob
    
    def integrate_ims_in_dir(path, dtype_im=".tif", dtype_int=".dat"):
        """
        Azimuthally integrate all images in directory <path> with ending <dtype_im>
        to patterns of ending <dtype_int> if not already integrated.
        :param 'str' path: path to directory where to apply the azimuthal integration
        :param 'str' dtype_im: data type/filename ending of image file
        :param 'str' dtype_int: data type/filename ending of pattern file
        """
        fnames_ims = glob(os.path.join(path, "*" + dtype_im))
        for fname_im in fnames_ims:
            im = fabio.open(fname_im).data
            fname_int = fname_im[:-len(dtype_im)] + dtype_int
            if os.path.isfile(fname_int):
                print(f"already integrated: {fname_im}")
                continue
            else:
                ai.integrate1d(data=im,
                               npt=1000,
                               filename=fname_int,
                               mask=mask,
                               polarization_factor=0.95,
                               unit="q_A^-1")
                print(f"integrate: {fname_im}")
    
    if __name__ == "__main__":
        # define directories, filenames and initiate pyFAI object for azimuthal integration
        path = "/Users/admin/data/20_Pt_tf/watchdog_test"
        fname_poni = "/Users/admin/data/20_Pt_tf/alaci/poni_avg_phiscan.poni"
        fname_mask = "/Users/admin/data/20_Pt_tf/alaci/mask_20200413.edf" # empty string/None/False if no mask available
        ai = pyFAI.load(fname_poni)
        mask = fabio.open(fname_mask).data if fname_mask else None
    
        # integrate all images in directory if not already integrated
        integrate_ims_in_dir(path)