Example #1
0
def process_all_globs(glob_patterns,
                      show=False,
                      individual=False,
                      subArray=None,
                      normalization="peak",
                      normalizationArray=None,
                      labelList=None,
                      filterList=None,
                      recompute=False,
                      scale='angle',
                      ncores=None):
    """
    Return scaled, background-subtracted, and normalized powder patterns for data
    corresponding to each pattern in glob_patterns
    """
    if subArray is None:
        subArray = [None] * len(glob_patterns)
    if labelList is None:
        labelList = [None] * len(glob_patterns)
    if filterList is None:
        filterList = [None] * len(glob_patterns)
    if normalizationArray is None:
        normalizationArray = [None] * len(glob_patterns)

    def run_and_plot(glob,
                     bgsub=None,
                     label=None,
                     data_filter=None,
                     normalization=None):
        return process_radial_distribution(sum_radial_densities(glob,
                                                                False,
                                                                True,
                                                                ncores=ncores),
                                           normalization=normalization,
                                           bgsub=bgsub,
                                           label=glob,
                                           scale=scale,
                                           plot=show)

    outputs = []
    for patt, subtraction, label, one_filter, norm in zip(
            glob_patterns, subArray, labelList, filterList,
            normalizationArray):
        outputs = outputs + [
            run_and_plot(patt,
                         bgsub=subtraction,
                         label=label,
                         data_filter=one_filter,
                         normalization=norm)
        ]
    if show:
        plt.legend()
        plt.show(block=False)
    #output format: angles, intensities, angles, intensities, etc.
    return np.vstack((_ for _ in outputs))
Example #2
0
 def plot_curves(cmap_start=0.0, cmap_max=1.0):
     # TODO: implement this
     # cmap = plt.get_cmap('coolwarm')
     ncurves = len(spectra)
     for i, pattern, curve in zip(range(len(spectra)), pattern_list, spectra):
         # plt.plot(*curve, label = pattern, color = cmap(cmap_start + i * (cmap_max - cmap_start)/ncurves))
         plt.plot(*curve, label=pattern)
     plt.legend()
     #        ax.set_xlabel('Angle (rad)')
     #        ax.set_ylabel('Intensity (arb)')
     plt.xlabel("Angle (rad)")
     plt.ylabel("Intensity (arb)")
Example #3
0
 def plot_curves(cmap_start=0., cmap_max=1.0):
     # TODO: implement this
     #cmap = plt.get_cmap('coolwarm')
     ncurves = len(spectra)
     for i, pattern, curve in zip(range(len(spectra)), pattern_list,
                                  spectra):
         #plt.plot(*curve, label = pattern, color = cmap(cmap_start + i * (cmap_max - cmap_start)/ncurves))
         plt.plot(*curve, label=pattern)
     plt.legend()
     #        ax.set_xlabel('Angle (rad)')
     #        ax.set_ylabel('Intensity (arb)')
     plt.xlabel('Angle (rad)')
     plt.ylabel('Intensity (arb)')
Example #4
0
def process_all_globs(
    glob_patterns,
    show=False,
    individual=False,
    subArray=None,
    normalization="peak",
    normalizationArray=None,
    labelList=None,
    filterList=None,
    recompute=False,
    scale="angle",
    ncores=None,
):
    """
    Return scaled, background-subtracted, and normalized powder patterns for data
    corresponding to each pattern in glob_patterns
    """
    if subArray is None:
        subArray = [None] * len(glob_patterns)
    if labelList is None:
        labelList = [None] * len(glob_patterns)
    if filterList is None:
        filterList = [None] * len(glob_patterns)
    if normalizationArray is None:
        normalizationArray = [None] * len(glob_patterns)

    def run_and_plot(glob, bgsub=None, label=None, data_filter=None, normalization=None):
        return process_radial_distribution(
            sum_radial_densities(glob, False, True, ncores=ncores),
            normalization=normalization,
            bgsub=bgsub,
            label=glob,
            scale=scale,
            plot=show,
        )

    outputs = []
    for patt, subtraction, label, one_filter, norm in zip(
        glob_patterns, subArray, labelList, filterList, normalizationArray
    ):
        outputs = outputs + [
            run_and_plot(patt, bgsub=subtraction, label=label, data_filter=one_filter, normalization=norm)
        ]
    if show:
        plt.legend()
        plt.show(block=False)
    # output format: angles, intensities, angles, intensities, etc.
    return np.vstack((_ for _ in outputs))
Example #5
0
 def show():
     plt.xlabel("angle (degrees)")
     plt.ylabel("inensity (arb)")
     plt.legend()
     plt.show()
Example #6
0
 def show():
     plt.xlabel("angle (degrees)")
     plt.ylabel("inensity (arb)")
     plt.legend()
     plt.show()