From 513ccb084117a5388ef318fb201e9a2c219ff33f Mon Sep 17 00:00:00 2001 From: Laura Nervo <lnervo@esrf.fr> Date: Thu, 3 Jan 2013 10:18:54 +0000 Subject: [PATCH] Taper data : updated and improved the conversion from Fable output to DCT object. Signed-off-by: Laura Nervo <laura.nervo@esrf.fr> git-svn-id: https://svn.code.sf.net/p/dct/code/trunk@970 4c865b51-4357-4376-afb4-474e03ccb993 --- zUtil_Taper/gtTaperConvertFableOutputToDCT.m | 86 +++++++++++++------- zUtil_Taper/script_generate_files.sh | 4 +- 2 files changed, 58 insertions(+), 32 deletions(-) diff --git a/zUtil_Taper/gtTaperConvertFableOutputToDCT.m b/zUtil_Taper/gtTaperConvertFableOutputToDCT.m index 439e1525..72103cfa 100644 --- a/zUtil_Taper/gtTaperConvertFableOutputToDCT.m +++ b/zUtil_Taper/gtTaperConvertFableOutputToDCT.m @@ -1,68 +1,89 @@ -function grain = gtTaperConvertFableOutputToDCT(pathtofile) -% grain = gtTaperConvertFableOutputToDCT(pathtofile) +function grain = gtTaperConvertFableOutputToDCT(pathtofiles,map_file,detector_par) +% grain = gtTaperConvertFableOutputToDCT(pathtofiles,map_file,detector_par) -if exist(pathtofile,'file') && ~isempty(pathtofile) - [fable_dir, map_file, ext] = fileparts(pathtofile); - map_file = [map_file ext]; -else - fable_dir = 'workspace/grid'; - map_file = 'all_smalls_fitted_2.map'; +if ~exist(pathtofiles,'dir') || isempty(pathtofiles) + disp(['directory ' pathtofiles ' does not exist...']) + return +end +if ~exist(fullfile(pathtofiles,map_file),'file') + disp(['file ' map_file ' does not exist...']) + return +end +if ~exist(fullfile(pathtofiles,detector_par),'file') + disp(['file ' detector_par ' does not exist...']) + return end +output_gff = [map_file(1:end-4) '.gff']; % to be run in the analsysis directory -bash_script = fullfile('/users',getenv('USER'),'matlabDCT','zUtil_Taper','script_generate_files.sh'); -cmd = [bash_script ' ' fullfile(fable_dir,map_file)]; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% convert ubi file into gff file +% grainno x y z rodx rody rodz +% ... U11 U12 U13 U21 U22 U23 U31 U32 U33 +% ... eps11 eps22 eps33 eps23 eps13 eps12 + +cmd=['ubi_to_gff.py ' fullfile(pathtofiles,map_file) ' ' ... + fullfile(pathtofiles,detector_par) ' ' ... + fullfile(pathtofiles,output_gff)]; [~,msg]=unix(cmd); disp(msg) -fid = fopen(fullfile(fable_dir,'rodrigues.txt')); -C = textscan(fid, '%*s %f %f %f'); +fid = fopen(fullfile(pathtofiles,output_gff)); +C = textscan(fid, '%*d %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f','Headerlines',1); fclose(fid); -A = cell2mat(C); +gff = cell2mat(C); -fid = fopen(fullfile(fable_dir,'centers.txt')); -C = textscan(fid, '%*s %f %f %f'); -fclose(fid); -A2 = cell2mat(C); +rod = gff(:,4:6); % rx ry rz +cen = gff(:,1:3); % x y z +U = gff(:,7:15); % ... U11 U12 U13 U21 U22 U23 U31 U32 U33 +eps = gff(:,16:end); % ... eps11 eps22 eps33 eps23 eps13 eps12 -fid = fopen(fullfile(fable_dir,'npeaks.txt')); +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% generate txt files from ubi file and save all into grain +bash_script = fullfile('/users',getenv('USER'),'matlabDCT','zUtil_Taper','script_generate_files.sh'); +cmd = [bash_script ' ' fullfile(pathtofiles,map_file)]; +[~,msg]=unix(cmd); +disp(msg) + +fid = fopen(fullfile(pathtofiles,'npeaks.txt')); C = textscan(fid, '%*s %d'); fclose(fid); A3 = cell2mat(C); format longg -fid = fopen(fullfile(fable_dir,'sum_of_all.txt')); +fid = fopen(fullfile(pathtofiles,'sum_of_all.txt')); C = textscan(fid, '%f64'); fclose(fid); A4 = cell2mat(C); -fid = fopen(fullfile(fable_dir,'medians.txt')); +fid = fopen(fullfile(pathtofiles,'medians.txt')); C = textscan(fid, '%f64'); fclose(fid); A5 = cell2mat(C); -fid = fopen(fullfile(fable_dir,'mins.txt')); +fid = fopen(fullfile(pathtofiles,'mins.txt')); C = textscan(fid, '%f64'); fclose(fid); A6 = cell2mat(C); -fid = fopen(fullfile(fable_dir,'maxs.txt')); +fid = fopen(fullfile(pathtofiles,'maxs.txt')); C = textscan(fid, '%f64'); fclose(fid); A7 = cell2mat(C); -fid = fopen(fullfile(fable_dir,'means.txt')); +fid = fopen(fullfile(pathtofiles,'means.txt')); C = textscan(fid, '%f64'); fclose(fid); A8 = cell2mat(C); -fid = fopen(fullfile(fable_dir,'stds.txt')); +fid = fopen(fullfile(pathtofiles,'stds.txt')); C = textscan(fid, '%f64'); fclose(fid); A9 = cell2mat(C); -fid = fopen(fullfile(fable_dir,'ns.txt')); +fid = fopen(fullfile(pathtofiles,'ns.txt')); C = textscan(fid, '%d'); fclose(fid); A10 = cell2mat(C); @@ -70,11 +91,9 @@ A10 = cell2mat(C); grain = []; for ii = 1:length(A) - grain{ii}.ind = ii; - grain{ii}.R_vector = A(ii,:); - grain{ii}.g = Rod2g( grain{ii}.R_vector ); - grain{ii}.angles = gtMathsRod2Euler( grain{ii}.R_vector ); - grain{ii}.center = A2(ii,:); + grain{ii}.id = ii; + grain{ii}.center = cen(ii,:); + grain{ii}.R_vector = rod(ii,:); grain{ii}.npeaks = A3(ii); grain{ii}.allint = A4(ii); grain{ii}.median = A5(ii); @@ -87,6 +106,13 @@ for ii = 1:length(A) grain{ii}.stat.bbxsmean = 1; grain{ii}.stat.bbysmean = 1; grain{ii}.R_onedge = false; + grain{ii}.g = Rod2g( grain{ii}.R_vector ); + grain{ii}.euler = gtMathsRod2Euler( grain{ii}.R_vector ); + grain{ii}.U = [U(ii,1:3);U(ii,4:6);U(ii,7:9)]; + grain{ii}.eps = eps(ii,:); + grain{ii}.strainT = [eps(ii,1) eps(ii,6) eps(ii,5); ... + eps(ii,6) eps(ii,2) eps(ii,4); ... + eps(ii,5) eps(ii,4) eps(ii,3)]; end rvec = gtIndexAllGrainValues(grain,'R_vector',[],1:3,[]); diff --git a/zUtil_Taper/script_generate_files.sh b/zUtil_Taper/script_generate_files.sh index 6b7bd1ad..19b094b6 100755 --- a/zUtil_Taper/script_generate_files.sh +++ b/zUtil_Taper/script_generate_files.sh @@ -35,8 +35,8 @@ then cd $DPATH - less $FILE | grep Rod > rodrigues.txt - less $FILE | grep trans > centers.txt + #less $FILE | grep Rod > rodrigues.txt + #less $FILE | grep trans > centers.txt less $FILE | grep npks > npeaks.txt less $FILE | grep intensity > intensities.txt less intensities.txt | awk -F", " '{print $1}' | awk -F"= " '{print $2}' > sum_of_all.txt -- GitLab