Cosmetic changes.

This commit is contained in:
Karthik 2025-08-27 23:44:29 +02:00
parent 90f7d2b520
commit cf577bfcde
4 changed files with 34 additions and 34 deletions

View File

@ -46,8 +46,8 @@ function [od_imgs, scan_parameter_values, file_list] = collectODImages(options)
end
end
% --- General path to raw data folders ---
raw_data_folders = dir(fullfile(options.saveDirectory,'RawData_*'));
% --- General path to full od image folders ---
fullodimage_folders = dir(fullfile(options.saveDirectory,'FullODImages_*'));
% --- Specific sequence, data and run ---
dataSource = makeDataSourceStruct(options.folderPath);
@ -63,7 +63,7 @@ function [od_imgs, scan_parameter_values, file_list] = collectODImages(options)
[options.SAVE_TO_WORKSPACE, ~] = Helper.estimateDatasetMemory(dataSource, options);
end
raw_data_folder = [];
fullodimage_folder = [];
% --- Prepare full_od_imgs, full_bkg_imgs, scan values, file list ---
if fullDataExists
@ -74,32 +74,32 @@ function [od_imgs, scan_parameter_values, file_list] = collectODImages(options)
raw_file_list = evalin('base', 'raw_file_list');
nFiles = size(full_od_imgs,3);
fprintf('\n[INFO] Cropping and subtracting background from images...\n');
elseif ~options.SAVE_TO_WORKSPACE && ~isempty(raw_data_folders)
elseif ~options.SAVE_TO_WORKSPACE && ~isempty(fullodimage_folders)
matched = false;
for r = 1:numel(raw_data_folders)
metaPath = fullfile(raw_data_folders(r).folder, raw_data_folders(r).name, 'metadata.mat');
for r = 1:numel(fullodimage_folders)
metaPath = fullfile(fullodimage_folders(r).folder, fullodimage_folders(r).name, 'metadata.mat');
if ~isfile(metaPath), continue; end
S = load(metaPath,'metadata');
if isequaln(S.metadata.options, options)
fprintf('\n[INFO] Found matching raw data folder: %s\n', raw_data_folders(r).name);
raw_data_folder = fullfile(raw_data_folders(r).folder, raw_data_folders(r).name);
fprintf('\n[INFO] Found matching full OD images folder: %s\n', fullodimage_folders(r).name);
fullodimage_folder = fullfile(fullodimage_folders(r).folder, fullodimage_folders(r).name);
matched = true;
break;
end
end
if ~matched
fprintf('\n[INFO] No matching raw data folder for this run found.\n');
fprintf('\n[INFO] No matching full OD images folder for this run found.\n');
[~, ~, ~, ~] = Helper.processRawData(options);
fprintf('\n[INFO] Completed computing OD images. Images will be stored on disk for reuse.\n');
end
mat_files = dir(fullfile(raw_data_folder,'*.mat'));
mat_files = dir(fullfile(fullodimage_folder,'*.mat'));
mat_files = mat_files(~strcmp({mat_files.name}, 'metadata.mat')); % Exclude metadata.mat
nFiles = numel(mat_files);
raw_scan_parameter_values = zeros(1,nFiles);
raw_file_list = strings(1,nFiles);
fprintf('\n[INFO] Cropping and subtracting background from images in raw data folder on disk...\n');
fprintf('\n[INFO] Cropping and subtracting background from images in full OD images folder on disk...\n');
else
fprintf('\n[INFO] No raw data found in either the workspace or on disk.\n');
fprintf('\n[INFO] No full OD images found in either the workspace or on disk.\n');
[full_od_imgs, full_bkg_imgs, raw_scan_parameter_values, raw_file_list] = Helper.processRawData(options);
if options.SAVE_TO_WORKSPACE
nFiles = size(full_od_imgs,3);
@ -115,13 +115,13 @@ function [od_imgs, scan_parameter_values, file_list] = collectODImages(options)
dataSource{1}.sequence, ...
strrep(dataSource{1}.date,'/','-'), ...
dataSource{1}.runs);
raw_data_folder = fullfile(options.saveDirectory, ['RawData_' runID]);
mat_files = dir(fullfile(raw_data_folder,'*.mat'));
fullodimage_folder = fullfile(options.saveDirectory, ['FullODImages_' runID]);
mat_files = dir(fullfile(fullodimage_folder,'*.mat'));
mat_files = mat_files(~strcmp({mat_files.name}, 'metadata.mat')); % Exclude metadata.mat
nFiles = numel(mat_files);
raw_scan_parameter_values = zeros(1,nFiles);
raw_file_list = strings(1,nFiles);
fprintf('\n[INFO] Cropping and subtracting background from images in raw data folder on disk...\n');
fprintf('\n[INFO] Cropping and subtracting background from images in full OD images folder on disk...\n');
end
end
@ -136,12 +136,12 @@ function [od_imgs, scan_parameter_values, file_list] = collectODImages(options)
end
for k = 1:nFiles
if fullDataExists || ~isempty(raw_data_folder)
if fullDataExists || ~isempty(fullodimage_folder)
if fullDataExists
od_mat = full_od_imgs(:,:,k);
bkg_mat = full_bkg_imgs(:,:,k);
else
data = load(fullfile(raw_data_folder, mat_files(k).name));
data = load(fullfile(fullodimage_folder, mat_files(k).name));
od_mat = data.OD;
bkg_mat = data.BKG;
raw_scan_parameter_values(k) = data.Scan;

View File

@ -58,10 +58,10 @@ function [SAVE_TO_WORKSPACE, runMemoryGB] = estimateDatasetMemory(dataSources, o
% Decide workspace flag per run by comparing with 50% of available RAM
if runBytes > 0.75 * availableRAM
SAVE_TO_WORKSPACE = false;
fprintf('\n[INFO] Estimated size on memory of Run %s/%s too large (%.2f GB). Will save raw data to disk and partially to workspace if not done so already.\n', ...
fprintf('\n[INFO] Estimated size on memory of Run %s/%s too large (%.2f GB). Will save full OD images to disk and partially to workspace if not done so already.\n', ...
ds.sequence, runID, runBytes/1e9);
else
fprintf('\n[INFO] Estimated size on memory of Run %s/%s = %.2f GB. Will save raw data completely to workspace if not done so already.\n', ...
fprintf('\n[INFO] Estimated size on memory of Run %s/%s = %.2f GB. Will save full OD images data completely to workspace if not done so already.\n', ...
ds.sequence, runID, runBytes/1e9);
end
end

View File

@ -33,16 +33,16 @@ function [full_od_imgs, full_bkg_imgs, raw_scan_parameter_values, raw_file_list]
full_od_imgs = nan(ny, nx, nFiles, 'single');
full_bkg_imgs = nan(ny, nx, nFiles, 'single');
else
% --- Create uniquely identified RawData folder ---
% --- Create uniquely identified full OD image folder ---
dataSource = makeDataSourceStruct(options.folderPath);
runID = sprintf('%s_%s_Run%04d', ...
dataSource{1}.sequence, ...
strrep(dataSource{1}.date,'/','-'), ...
dataSource{1}.runs);
rawFolder = fullfile(options.saveDirectory, ['RawData_' runID]);
if ~exist(rawFolder,'dir'), mkdir(rawFolder); end
fprintf('\n[INFO] Creating folder of raw data on disk: %s\n', rawFolder);
fullODImageFolder = fullfile(options.saveDirectory, ['FullODImages_' runID]);
if ~exist(fullODImageFolder,'dir'), mkdir(fullODImageFolder); end
fprintf('\n[INFO] Creating folder of full OD images on disk: %s\n', fullODImageFolder);
% --- Save metadata for this run ---
metadata.options = options;
@ -50,10 +50,10 @@ function [full_od_imgs, full_bkg_imgs, raw_scan_parameter_values, raw_file_list]
metadata.runID = runID; % traceable to experiment run
metadata.imageSize = [ny, nx];
metadata.fileList = string(arrayfun(@(f) fullfile(f.folder, f.name), files, 'UniformOutput', false));
save(fullfile(rawFolder,'metadata.mat'),'metadata','-v7.3');
save(fullfile(fullODImageFolder,'metadata.mat'),'metadata','-v7.3');
full_od_imgs = rawFolder;
full_bkg_imgs = rawFolder;
full_od_imgs = fullODImageFolder;
full_bkg_imgs = fullODImageFolder;
end
% --- Prepare file names ---
@ -72,7 +72,7 @@ function [full_od_imgs, full_bkg_imgs, raw_scan_parameter_values, raw_file_list]
% --- Parallel loop without progress bar ---
parfor k = 1:nFiles
[od_img, bkg_img, val] = readAndComputeOD(fullFileNames(k), options, groupList, ny, nx);
writeRawImagesToDisk(rawFolder, od_img, bkg_img, val, fullFileNames(k), k);
writeFullODImagesToDisk(fullODImageFolder, od_img, bkg_img, val, fullFileNames(k), k);
raw_scan_parameter_values(k) = val;
end
else
@ -90,7 +90,7 @@ function [full_od_imgs, full_bkg_imgs, raw_scan_parameter_values, raw_file_list]
full_od_imgs(:,:,k) = single(od_img);
full_bkg_imgs(:,:,k) = single(bkg_img);
else
writeRawImagesToDisk(rawFolder, od_img, bkg_img, val, fullFileNames(k), k);
writeFullODImagesToDisk(fullODImageFolder, od_img, bkg_img, val, fullFileNames(k), k);
end
raw_scan_parameter_values(k) = val;
raw_file_list(k) = fullFileNames(k);
@ -137,9 +137,9 @@ function [od_img, bkg_img, val] = readAndComputeOD(fullFileName, options, groupL
end
end
function writeRawImagesToDisk(rawFolder, od_img, bkg_img, scan_val, file_name, idx)
function writeFullODImagesToDisk(fullODImageFolder, od_img, bkg_img, scan_val, file_name, idx)
% Writes a single OD/BKG image + scan parameter to a MAT file
matFilePath = fullfile(rawFolder, sprintf('Image_%04d.mat', idx));
matFilePath = fullfile(fullODImageFolder, sprintf('Image_%04d.mat', idx));
OD = single(od_img);
BKG = single(bkg_img);
Scan = single(scan_val);

View File

@ -2,9 +2,9 @@
% Specify data location to run analysis on
dataSources = {
struct('sequence', 'TwoDGas', ...
'date', '2025/06/23', ...
'runs', [300]) % specify run numbers as a string in "" or just as a numeric value
struct('sequence', 'StructuralPhaseTransition', ...
'date', '2025/08/16', ...
'runs', [8]) % specify run numbers as a string in "" or just as a numeric value
};
options = struct();
@ -18,7 +18,7 @@ options.saveDirectory = fileparts(scriptFullPath);
% Camera / imaging
options.cam = 5;
options.angle = 0;
options.center = [1410, 2030];
options.center = [1420, 2050];
options.span = [200, 200];
options.fraction = [0.1, 0.1];
options.pixel_size = 5.86e-6; % in meters