mirror of
https://github.com/c-sooyoung/fold_slice.git
synced 2026-09-17 19:39:08 +09:00
initial commit
This commit is contained in:
@@ -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');
|
||||
Reference in New Issue
Block a user