Calculations/Data-Analyzer/+Analyzer/performAnalysis.m

75 lines
3.0 KiB
Matlab

function results = performAnalysis(options)
arguments
options.scan_parameter (1,:) char
options.scan_reference_values (1,:) double
options.cam (1,1) double
options.angle (1,1) double
options.center (1,2) double
options.span (1,2) double
options.fraction (1,2) double
options.ImagingMode (1,:) char
options.PulseDuration (1,1) double
options.removeFringes (1,1) logical
options.skipUnshuffling (1,1) logical
options.pixel_size (1,1) double
options.magnification (1,1) double
options.zoom_size (1,1) double
options.N_angular_bins (1,1) double
options.Angular_Threshold (1,1) double
options.Angular_Sigma (1,1) double
options.Angular_WindowSize (1,1) double
options.theta_min (1,1) double
options.theta_max (1,1) double
options.N_radial_bins (1,1) double
options.Radial_Sigma (1,1) double
options.Radial_WindowSize (1,1) double
options.k_min (1,1) double
options.k_max (1,1) double
options.skipPreprocessing (1,1) logical
options.skipMasking (1,1) logical
options.skipIntensityThresholding (1,1) logical
options.skipBinarization (1,1) logical
options.skipNormalization (1,1) logical
options.skipLivePlot (1,1) logical
options.skipSaveFigures (1,1) logical
options.showProgressBar (1,1) logical
options.measurementName (1,:) char
options.folderPath (1,:) char
options.baseDataFolder (1,:) char
options.saveDirectory (1,:) char
options.titleString (1,:) char
options.font (1,:) char
end
% Collect OD images
[od_imgs, scan_parameter_values, ~] = Helper.collectODImages(options);
% Conduct spectral analysis
fprintf('\nInitiating spectral analysis...\n');
spectral_analysis_results = Analyzer.conductSpectralAnalysis(od_imgs, scan_parameter_values, options);
N_shots = length(od_imgs);
% Extract angular correlations
full_g2_results = Analyzer.extractAutocorrelation(...
spectral_analysis_results.theta_vals, ...
spectral_analysis_results.angular_spectral_distribution, ...
scan_parameter_values, N_shots, options.N_angular_bins);
custom_g_results = Analyzer.extractCustomCorrelation(...
spectral_analysis_results.angular_spectral_distribution, ...
scan_parameter_values, N_shots, options.N_angular_bins);
fprintf('\nSpectral analysis complete!\n');
% PCA
% Lattice Reconstruction
% Package results into struct
results = struct();
results.spectral_analysis_results = spectral_analysis_results;
results.full_g2_results = full_g2_results;
results.custom_g_results = custom_g_results;
end