Importing Data into SXDM

The first step in any SXDM workflow will be to import the raw data into a common format. These importer functions are written as needed: if your preferred beamline is not here, submit an issue.

APS Beamline 26-ID-C

Experimental Data (.mda) Import

The raw data file file.mda given to the User at 26-ID-C saves all source data as a matlab binary file. SXDM preserves the original (“source”) file and saves imported and processed data in a second (“destination”) HDF file to be used in later analysis. The source file.mda file can be easily imported:

import_mda(mda_path='path/to/folder/holding/.mda_files',
             hdf5_save_directory='path/to/save/dir',
             hdf5_save_filename='file')

This function will iterate through all scan.mda files in the mda_folder and import all detector channel data into the User defined hdf5 destination/file.

# EXAMPLE

import_mda(mda_path='/home/usr/Desktop/mda_folder/',
            hdf5_save_directory='/home/usr/Desktop',
            hdf5_save_filename='test_file')

Note

Raw reader values are flipped and inverted to match 26-ID-C beamline MatLab Viewer output.

Note

This importer is what creates the main *.h5 file.

Diffraction Image (.tif) Import

The raw diffraction images image_#####.tif given to the User at 26-ID-C will be imported based on the protocol below. SXDM preserves the original (“source”) file and saves imported and processed data in a second (“destination”) HDF file to be used in later analysis. All source image_#####.tif file can be easily imported:

import_images(
    file='path/to/save/dir/file.h5',
    images_loc='/path/to/master/images/directory',
    scans=False,
    fill_num=4,
    delete=False,
    import_type='uint32',
    delimiter_function=<function delimiter_func at 0x7f0873f3fe18>,
    force_reimport=False,
    )

This function will iterate through all folders in the images_loc folders and import all images_####.tif image data into the User defined hdf5 destination/file.

# EXAMPLE
# /home/usr/Desktop/images_folder/scan_folder/image.tif

import_images(
    file='/home/usr/Desktop/test_file.h5',
    images_loc='/home/usr/Desktop/images_folder/',
    scans=[1, 2, 10, 18],
    )

Note

This will Not reimport the .tif images. If the User would like to do this they can set force_reimport=True

Data Structure

The main structure is similar to what is shown below:

#Main_HDF5_File#

    #images/
        #0001_scan/
            #000001.tif
            .
            .
            .
            #number.tif

        #0002_scan/
            #000001.tif
            .
            .
            .
            #number.tif

        #0003_scan/
            #000001.tif
            .
            .
            .
            #number.tif

    #mda/
        #0001_scan/
            #D01_channel/
                #detector data
            .
            .
            .
            #D70_channel/
                #detector data

        #0002_scan/
            #D01_channel/
                #detector data
            .
            .
            .
            #D70_channel/
                #detector data

        #0003_scan/
            #D01_channel/
                #detector data
            .
            .
            .
            #D70_channel/
                #detector data

    #detector_channels/
        #detector_scan/
        #filenumber/
        #fluor/
        #hybrid_x/
        #hybrid_y/
        #mis/
        #roi/
        #sample_theta/

    #zone_plate/
        #D_um/
        #d_rN_nm/
        #detector_pixel_size/

    #dataset_name1/
        #dxdy/
        #scan_numbers/
        #scan_theta/

    #dataset_name2/
        #dxdy/
        #scan_numbers/
        #scan_theta/

Note

Please see Analyzing the Data/Retrieving Imported Data for more details