initial commit

This commit is contained in:
2026-08-07 15:56:42 +09:00
commit 91ad25aca9
1012 changed files with 159314 additions and 0 deletions
+201
View File
@@ -0,0 +1,201 @@
% Call function without arguments for a detailed explanation of its use
% Filename: $RCSfile: common_header_value.m,v $
%
% $Revision: 1.7 $ $Date: 2013/01/25 10:22:26 $
% $Author: $
% $Tag: $
%
% Description:
% return header information which are common to most file formats used at
% the cSAXS beamline
%
% Note:
% Call without arguments for a brief help text.
%
% Dependencies:
% - get_hdr_val
%
%
% history:
%
% September 30th 2010:
% add HDF5
%
% October 3rd 2008:
% update FLI date-field since version 1.20 provides a time stamp string
%
% August 28th 2008:
% correct error display for unknown extensions,
% add extension .dat
%
% July 17th 2008: add mar extension
%
% May 7th 2008: 1st version
%*-----------------------------------------------------------------------*
%|                                                                       |
%|  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) 2017 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.
function [value] = common_header_value(header,extension,signature)
import io.image_read
import utils.get_hdr_val
% initialize return value
value = [];
% check number of input arguments
if (nargin ~= 3)
common_header_value_help();
error('invalid number of input arguments');
end
switch extension
case 'cbf'
switch signature
case 'ExposureTime'
value = get_hdr_val(header,'Exposure_time',' %f',1);
case 'Date'
% The date is available in the Pilatus comments, without
% any signature. Searching for the 20 string will fail
% beyond the year 2099
value = [ '20' get_hdr_val(header,'# 20',' %[^\r]',1) ];
otherwise
error('unknown signature %s for extension %s',...
signature,extension);
end
case {'h5', 'hdf5'}
switch signature
case 'ExposureTime'
value = get_hdr_val(header,'Exposure_time',' %f',1);
case 'Date'
value = get_hdr_val(header,'DateTime',' %[^\n]',1);
otherwise
error('unknown signature %s for extension %s',...
signature,extension);
end
case 'dat'
switch signature
case 'ExposureTime'
value = get_hdr_val(header,'Exposure_time',' %f',1);
case 'Date'
value = get_hdr_val(header,'DateTime',' %[^\n]',1);
otherwise
error('unknown signature %s for extension %s',...
signature,extension);
end
case 'edf'
switch signature
case 'ExposureTime'
value = get_hdr_val(header,'count_time',' = %f',1);
case 'Date'
value = get_hdr_val(header,'Date',' = %[^;]',1);
otherwise
error('unknown signature %s for extension %s',...
signature,extension);
end
case {'mar','mccd'}
switch signature
case 'ExposureTime'
value = get_hdr_val(header,'ExposureTime_ms',' %f',1)/1000;
case 'Date'
value = get_hdr_val(header,'DateTime',' %[^\n]',1);
otherwise
error('unknown signature %s for extension %s',...
signature,extension);
end
case {'mat'}
switch signature
case 'ExposureTime'
value = get_hdr_val(header,'Exposure_time',' %f',1);
case 'Date'
value = get_hdr_val(header,'DateTime',' %[^\n]',1);
otherwise
error('unknown signature %s for extension %s',...
signature,extension);
end
case 'raw'
switch signature
case 'ExposureTime'
value = get_hdr_val(header,'exptimesec',' %f',1);
case 'Date'
value = get_hdr_val(header,'version',' %[^\n]',1);
if (version < 1.20)
value = get_hdr_val(header,'FileTimestamp',' %[^\n]',1);
else
value = get_hdr_val(header,'timestamp_string',' %[^\n]',1);
end
otherwise
error('unknown signature %s for extension %s',...
signature,extension);
end
case 'spe'
switch signature
case 'ExposureTime'
value = get_hdr_val(header,'exposure',' %f',1);
case 'Date'
value = [ get_hdr_val(header,'date',' %[^\n]',1)'; ' ';
get_hdr_val(header,'ExperimentTimeLocal',' %[^\n]',1)' ]';
otherwise
error('unknown signature %s for extension %s',...
signature,extension);
end
case {'tif', 'tiff'}
switch signature
case 'ExposureTime'
value = get_hdr_val(header,'Exposure_time',' %f',1);
case 'Date'
value = get_hdr_val(header,'DateTime',' %[^\n]',1);
otherwise
error('unknown signature %s for extension %s',...
signature,extension);
end
otherwise
common_header_value_help();
error('unknown extension ''%s''',extension);
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [] = common_header_value_help()
fprintf('Usage:\n');
fprintf('[value]=%s(header,extension,signature);',mfilename);
fprintf('header and extension are returned by image_read\n');
fprintf('The following signatures are recognized:\n');
fprintf('ExposureTime exposure time in seconds\n');
fprintf('Date date string in detector specific format\n');
fprintf('Example:\n');
fprintf('exp_time_sec=common_header_value(frame.header{1},frame.extension{1},''ExposureTime'');\n');