Polydispersity

NanoparticleDistribution class

Context

The NanoparticleDistribution class is designed to provide a comprehensive statistical analysis of nanoparticle samples. In a typical workflow, your input data, sizes and counts) originates from the analysis of raw characterization data, such as HRTEM images.

By performing a non-linear least squares Gaussian fit, it allows researchers to determine the mean particle size, the Standard Deviation (\(\sigma\)), and the Polydispersity (Coefficient of Variation).

This module goes beyond simple curve fitting by providing:

  • Theoretical Population Mapping: Automatic calculation of how many particles fall within specific size ranges (\(1\sigma, 2\sigma, 3\sigma\)).

  • Custom Binning: The ability to discretize the theoretical curve into specific size β€œbins” for direct comparison with experimental histograms.

  • Publication-Ready Visualization: Integrated plotting with statistical markers for FWHM (Full Width at Half Maximum) and the distribution spread.

Input data

To perform an accurate analysis, the NanoparticleDistribution class expects two synchronized arrays (or lists). These represent the size distribution of your measurements (typically obtained via TEM or SAXS fitting):

  1. Count Data (counts) = number of nanoparticles (or the normalized intensity) observed for each corresponding size in the sizes array (format: integers)

  2. Size Data (sizes) = independent variable representing the different particle diameters measured on the TEM image

    • Format: A 1D array-like (list, numpy array, or pandas series) of floats.

    • Unit: nanometers (nm).

Note: Both arrays must have the same length. The accuracy of the Gaussian fit depends on having a sufficient number of data points around the peak of the distribution.

Requirement: The sizes values should represent the center of each bin in your experimental histogram.