Files
fold_slice/+beamline/update_mask.m
T
2026-08-07 15:56:42 +09:00

96 lines
3.9 KiB
Matlab
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
%% UDPATE_MASK
% This small script guides you to update an alread existing mask for
% ptychography. The main tool for creating a new mask is
% beamline.create_mask, a GUI that lets you select bad/hot pixels.
% UPDATE_MASK loads the data, specified by file_path, plots it and starts
% the GUI. Although you can create a 3D mask, i.e. a mask which varies from
% frame to frame, a 2D mask is sufficient for most datasets.
% You can load an already existing mask within the GUI.
close all
file_path = '~/Data10/eiger_4/S00000-00999/S00089/run_00089_000000000000.h5';
single_file = true; % if you have multiple files use * in file_path
H5Location = '/entry/data/eiger_4/'; % check the location within the h5 file in ptycho/+detector
orientation = [1 0 0]; % check the detector orientation in ptycho/+detector
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% load the data
image_read_args = [];
image_read_args{1} = 'Orientation';
image_read_args{2} = orientation;
image_read_args{3} = 'OrientByExtension';
image_read_args{4} = false;
if ~single_file
image_read_args{end+1} = 'IsFmask';
image_read_args{end+1} = 1;
end
if ~isempty(H5Location)
image_read_args{end+1} = 'H5Location';
image_read_args{end+1} = H5Location;
end
data = io.image_read(file_path, image_read_args(:));
%% plot the data
figure(1),
plotting.imagesc3D(abs(log10(double(data.data)+1)));
colorbar
axis xy equal tight
colorbar
title('Detector raw data')
colormap jet
%% iterative step for a mask update (add dead pixels to the current mask)
mask = beamline.create_mask;
%% check it again
figure (2),
imagesc(mask); axis equal tight xy
title('Final mask')
%*-----------------------------------------------------------------------*
%|                                                                       |
%|  Except where otherwise noted, this work is licensed under a          |
%|  Creative Commons Attribution-NonCommercial-ShareAlike 4.0            |
%|  International (CC BY-NC-SA 4.0) license.                             |
%|                                                                       |
%|  Copyright (c) 2018 by Paul Scherrer Institute (http://www.psi.ch)    |
%|                                                                       |
%|      Author: CXS group, PSI  |
%*-----------------------------------------------------------------------*
% You may use this code with the following provisions:
%
% If the code is fully or partially redistributed, or rewritten in another
% computing language this notice should be included in the redistribution.
%
% If this code, or subfunctions or parts of it, is used for research in a
% publication or if it is fully or partially rewritten for another
% computing language the authors and institution should be acknowledged
% in written form in the publication: “Data processing was carried out
% using the “cSAXS matlab package” developed by the CXS group,
% Paul Scherrer Institut, Switzerland.”
% Variations on the latter text can be incorporated upon discussion with
% the CXS group if needed to more specifically reflect the use of the package
% for the published work.
%
% A publication that focuses on describing features, or parameters, that
% are already existing in the code should be first discussed with the
% authors.
%
% This code and subroutines are part of a continuous development, they
% are provided “as they are” without guarantees or liability on part
% of PSI or the authors. It is the user responsibility to ensure its
% proper use and the correctness of the results.