diff --git a/1_preprocessing/gtSetup_Utils/gtLoadAcquisitionXML.m b/1_preprocessing/gtSetup_Utils/gtLoadAcquisitionXML.m index 9cfd857c776096d14253e1664afaf2c106b5abed..415a4cf79e4a91abc24261cc723d47e6b8b7cd17 100644 --- a/1_preprocessing/gtSetup_Utils/gtLoadAcquisitionXML.m +++ b/1_preprocessing/gtSetup_Utils/gtLoadAcquisitionXML.m @@ -1,7 +1,7 @@ -function params = gtLoadAcquisitionXML(parameters, list, xmlfname, interactive) +function params_acq = gtLoadAcquisitionXML(acq, list_acq, xmlfname, interactive) % FUNCTION gtLoadAcquisitionXML -% params = gtLoadAcquisitionXML(parameters, list, xmlfname, interactive) -% ---------------------------------------------------------------------- +% params_acq = gtLoadAcquisitionXML(acq, list_acq, xmlfname, interactive) +% ----------------------------------------------------------------------- % % Version 002 02/05/2012 by LNervo % Add acq.beamchroma default value to 'mono' @@ -17,24 +17,22 @@ function params = gtLoadAcquisitionXML(parameters, list, xmlfname, interactive) tmpxml = xml_read(xmlfname); tmpxml = tmpxml.acquisition; - parameters.acq.name = tmpxml.scanName; % shouldn't change! - parameters.acq.date = tmpxml.date; - parameters.acq.xdet = tmpxml.projectionSize.DIM_2; - parameters.acq.ydet = tmpxml.projectionSize.DIM_1; - parameters.acq.nproj = tmpxml.tomo_N/2; - parameters.acq.refon = tmpxml.ref_On; - parameters.acq.nref = tmpxml.ref_N; - parameters.acq.ndark = tmpxml.dark_N; - parameters.acq.pixelsize = tmpxml.pixelSize/1000; % mm - parameters.acq.count_time = tmpxml.ccdtime; - parameters.acq.energy = tmpxml.energy; - parameters.acq.dist = tmpxml.distance; % mm - parameters.acq.sensortype = tmpxml.cameraName; - parameters.acq.type = [num2str(tmpxml.scanRange) 'degree']; - parameters.acq.orig_xdet = 2048; - parameters.acq.orig_ydet = 2048; - parameters.acq.roi_x_off = tmpxml.projectionSize.ROW_BEG; - parameters.acq.roi_y_off = tmpxml.projectionSize.COL_BEG; + acq.name = tmpxml.scanName; % shouldn't change! + acq.date = tmpxml.date; + acq.xdet = tmpxml.projectionSize.DIM_2; + acq.ydet = tmpxml.projectionSize.DIM_1; + acq.nproj = tmpxml.tomo_N/2; + acq.refon = tmpxml.ref_On; + acq.nref = tmpxml.ref_N; + acq.ndark = tmpxml.dark_N; + acq.pixelsize = tmpxml.pixelSize/1000; % mm + acq.count_time = tmpxml.ccdtime; + acq.energy = tmpxml.energy; + acq.dist = tmpxml.distance; % mm + acq.sensortype = tmpxml.cameraName; + acq.type = [num2str(tmpxml.scanRange) 'degree']; + acq.roi_x_off = tmpxml.projectionSize.ROW_BEG; + acq.roi_y_off = tmpxml.projectionSize.COL_BEG; else %if .xml not found if interactive disp('No .xml file found! Are you sure you are correctly in the acquistion directory?') @@ -46,61 +44,62 @@ function params = gtLoadAcquisitionXML(parameters, list, xmlfname, interactive) end end % guess some default values - parameters.acq.date = date(); - parameters.acq.xdet = 2048; - parameters.acq.ydet = 2048; - parameters.acq.nproj = 7200; - parameters.acq.refon = 200; - parameters.acq.nref = 5; - parameters.acq.ndark = 11; - parameters.acq.pixelsize = 0.0014; - parameters.acq.count_time = 2; - parameters.acq.energy = 20; - parameters.acq.dist = 5; - parameters.acq.sensortype = 'frelon'; - parameters.acq.type = '360degree'; - parameters.acq.orig_xdet = 2048; - parameters.acq.orig_ydet = 2048; - parameters.acq.roi_x_off = 0; - parameters.acq.roi_y_off = 0; + acq.date = date(); + acq.xdet = 2048; + acq.ydet = 2048; + acq.nproj = 7200; + acq.refon = 200; + acq.nref = 5; + acq.ndark = 11; + acq.pixelsize = 0.0014; + acq.count_time = 2; + acq.energy = 20; + acq.dist = 5; + acq.sensortype = 'frelon'; + acq.type = '360degree'; + acq.roi_x_off = 0; + acq.roi_y_off = 0; clear check end - + + + acq.orig_xdet = 2048; + acq.orig_ydet = 2048; % interlacing parameters % try to guess whether the scan is interlaced - if exist([parameters.acq.name '0_0000.edf'], 'file') - parameters.acq.interlaced_turns = true; % assume one extra turn is reasonable guess + if exist([acq.name '0_0000.edf'], 'file') + acq.interlaced_turns = true; % assume one extra turn is reasonable guess disp('This looks like an interlaced scan! Doubling nproj...') - parameters.acq.nproj = parameters.acq.nproj*2; + acq.nproj = acq.nproj*2; else - parameters.acq.interlaced_turns = false; + acq.interlaced_turns = false; end % mono tuned during scan? - parameters.acq.mono_tune = false; + acq.mono_tune = false; % if we have a horizontal rotation axis we turn the images during the copying process - parameters.acq.rotation_axis = 'vertical'; - parameters.acq.distortion = 'none'; + acq.rotation_axis = 'vertical'; + acq.distortion = 'none'; % deal with flips and rotations % subsequently, deal with flips and rotations, scans without direct beam - parameters.acq.flip_images = false; - parameters.acq.no_direct_beam = false; + acq.flip_images = false; + acq.no_direct_beam = false; % rotate images to the gt coordinate system !!! Help !!! - parameters.acq.rotation_direction = 'clockwise'; + acq.rotation_direction = 'clockwise'; - parameters.acq.rotu = parameters.acq.xdet/2+0.5; % Images will be shifted in gtCreateFullLive to have rotation axis in center... - parameters.acq.rotx = parameters.acq.rotu; - parameters.acq.maxradius = max(parameters.acq.xdet,parameters.acq.ydet)/2*sqrt(2); - parameters.acq.beamchroma = 'mono'; + acq.rotu = acq.xdet/2+0.5; % Images will be shifted in gtCreateFullLive to have rotation axis in center... + acq.rotx = acq.rotu; + acq.maxradius = max(acq.xdet,acq.ydet)/2*sqrt(2); + acq.beamchroma = 'mono'; % if it is 360degree data, we need a pair table - if strcmpi(parameters.acq.type, '360degree') + if strcmpi(acq.type, '360degree') % pair tablename can be derived from the scan name - parameters.acq.pair_tablename = [parameters.acq.name 'spotpairs']; - parameters.acq.calib_tablename = [parameters.acq.name 'paircalib']; + acq.pair_tablename = [acq.name 'spotpairs']; + acq.calib_tablename = [acq.name 'paircalib']; end if interactive @@ -111,10 +110,10 @@ function params = gtLoadAcquisitionXML(parameters, list, xmlfname, interactive) else header='Check all values. All "(?)" should be removed:'; end - parameters.acq = gtModifyStructure(parameters.acq, list.acq(:,1:2), header); + acq = gtModifyStructure(acq, list_acq(:,1:2), header); end - params = parameters; + params_acq = acq; end % end of function diff --git a/3_pairmatchingGUI/gtMatchDefaultParametersGUI.m b/3_pairmatchingGUI/gtMatchDefaultParametersGUI.m index 6155e81067e49e0e68a1f3494894337ff9c869ab..1ab81846486f336c89901a2c46f57d6435dbd035 100644 --- a/3_pairmatchingGUI/gtMatchDefaultParametersGUI.m +++ b/3_pairmatchingGUI/gtMatchDefaultParametersGUI.m @@ -1,11 +1,8 @@ -% -% FUNCTION par_match = gtMatchDefaultParametersGUI() -% -% Stores and provides the default parameters for Friedel pair matching. -% -% - function par_match = gtMatchDefaultParametersGUI() +% GTMATCHDEFAULTPARAMETERSGUI Stores and provides the default parameters for Friedel pair matching. +% par_match = gtMatchDefaultParametersGUI() +% ----------------------------------------- +% par_match.thr_theta = 0.2; par_match.thr_theta_scale = 0; @@ -26,4 +23,4 @@ par_match.thr_meanerror = Inf; par_match.thetalimits = [0 90]; -end \ No newline at end of file +end % end of function \ No newline at end of file diff --git a/zUtil_Cryst/gtLoadReflections.m b/zUtil_Cryst/gtLoadReflections.m index eeab3fac98fbd64a148e9404998851d1ca21dafc..3b2401a15b757a02c3bfc17aed403d803a0a5172 100644 --- a/zUtil_Cryst/gtLoadReflections.m +++ b/zUtil_Cryst/gtLoadReflections.m @@ -125,16 +125,12 @@ if isreflections title = lower(title); title = strrep(title,'.',''); title = regexprep(title,'[^a-zA-Z]',''); - %title = regexprep(title,'theta','tt'); title = regexprep(title,'theta','twotheta'); if length(title)==1 title = regexprep(title,'m','mult'); - %title = regexprep(title,'^f','F'); title = regexprep(title,'^f','formfactor'); end title = strtrim(title); - %title = strrep(title,'dspacing','d0'); - %title = strrep(title,'dspc','d0'); title = strrep(title,'dspc','dspacing'); if ~strcmpi(title,'no') reflections.(title)=C{i}; @@ -142,9 +138,7 @@ if isreflections end reflections.hkl=[reflections.h reflections.k reflections.l]; - reflections=rmfield(reflections,'h'); - reflections=rmfield(reflections,'k'); - reflections=rmfield(reflections,'l'); + reflections=rmfield(reflections,{'h','k','l'}); xop = reflections; ind=strfind(file,filesep); diff --git a/zUtil_Parameters/build_list_v2.m b/zUtil_Parameters/build_list_v2.m index 8ab5cf149c37bb196ac8d48f3bd8a044d0f93a6e..fa363968f74dba861e3180810237c17775f0b505 100644 --- a/zUtil_Parameters/build_list_v2.m +++ b/zUtil_Parameters/build_list_v2.m @@ -265,9 +265,9 @@ list.labgeo{23,1} = 'reflabY'; list.labgeo{23,2} = ''; list.labgeo{23,3} = 'char'; list.labgeo{24,1} = 'reflabZ'; list.labgeo{24,2} = ''; list.labgeo{24,3} = 'char'; -list.labgeo{25,1} = 'detsizeu'; list.labgeo{25,2} = ''; +list.labgeo{25,1} = 'detsizeu'; list.labgeo{25,2} = 'Number of pixels along the u direction'; list.labgeo{25,3} = 'double'; % scalar -list.labgeo{26,1} = 'detsizev'; list.labgeo{26,2} = ''; +list.labgeo{26,1} = 'detsizev'; list.labgeo{26,2} = 'Number of pixels along the v direction'; list.labgeo{26,3} = 'double'; % scalar list.labgeo{27,1} = 'rotcomp'; list.labgeo{27,2} = 'Rotation matrix components [computed]'; list.labgeo{27,3} = 'struct';