Skip to content
Snippets Groups Projects
Commit e19425fe authored by Nicola Vigano's avatar Nicola Vigano
Browse files

Read CTF files from Channel 5

parent f84d378a
No related branches found
No related tags found
No related merge requests found
function [EBSD_e_map, EBSD_r_map, mask] = gtReadEBSDMapEulerCTFFile(filename, axes_perm, permute_maps)
% function [EBSD_e_map, EBSD_r_map] = gtReadEBSDMapEulerCSVFile(filename, axes_perm, permute_maps)
% Axes permutation allows to easily deal with different reference
% systems, like for instance:
% DCT Axes <-> EBSD Axes ([x y z] <-> [x'y'z'])
% x = -y'
% y = z'
% z = -x'
% Translates to: axes_perm = [-2 3 -1]
%
% NOTE: Only the Rodrigues vector map has the axes changed!
%
if (~exist('axes_perm', 'var'))
axes_perm = 1:3;
end
if (~exist('permute_maps', 'var'))
permute_maps = true;
end
c = tic();
fprintf('Reading from file: "%s"..', filename);
fid = fopen(filename);
fgetl(fid);
fgetl(fid);
fgetl(fid);
fgetl(fid);
dims = fscanf(fid, 'XCells\t%d\nYCells\t%d\nXStep\t%f\nYStep\t%f\n');
fscanf(fid, 'AcqE1\t%d\nAcqE2\t%d\nAcqE3\t%d\n'); % Unknown parameters
fgetl(fid);
fgetl(fid);
fgetl(fid);
fgetl(fid);
input = fscanf(fid, '%d\t%f\t%f\t%d\t%d\t%f\t%f\t%f\t%f\t%d\t%d');
fclose(fid);
fprintf('\b\b, Done in %f seconds.\n', toc(c));
c = tic();
fprintf('Converting to Euler and Rodriguez maps..');
input = reshape(input, 11, [])';
% scales = dims(3:4);
%
% xx = (input(:, 2) ./ scales(1)) + 1;
% yy = (input(:, 3) ./ scales(2)) + 1;
ea1 = input(:, 6);
ea2 = input(:, 7);
ea3 = input(:, 8);
sizes = dims(1:2)';
EBSD_e_map = cat(3, reshape(ea1, sizes), reshape(ea2, sizes), reshape(ea3, sizes));
% EBSD_e_map = zeros([sizes 3], 'single');
% ii = sub2ind([sizes, 3], yy, xx, 1 * ones(size(xx)));
% EBSD_e_map(ii) = ea1;
% ii = sub2ind([sizes, 3], yy, xx, 2 * ones(size(xx)));
% EBSD_e_map(ii) = ea2;
% ii = sub2ind([sizes, 3], yy, xx, 3 * ones(size(xx)));
% EBSD_e_map(ii) = ea3;
% EBSD_e_map = EBSD_e_map * 180 / pi;
dmvol_EBSD_e_map = permute(EBSD_e_map, [1 2 4 3]);
[gvdm_EBSD_e_map, size_dmvol_EBSD_map] = gtDefDmvol2Gvdm(dmvol_EBSD_e_map);
gvdm_EBSD_r_map = gtMathsEuler2Rod(gvdm_EBSD_e_map);
dmvol_EBSD_r_map = gtDefGvdm2Dmvol(gvdm_EBSD_r_map, size_dmvol_EBSD_map);
EBSD_r_map = reshape(dmvol_EBSD_r_map, [sizes 3]);
EBSD_r_map = EBSD_r_map(:, :, abs(axes_perm));
negative = axes_perm < 0;
EBSD_r_map(:, :, negative) = - EBSD_r_map(:, :, negative);
mask = input(:, 1);
mask = reshape(mask, sizes);
if (permute_maps)
EBSD_e_map = permute(EBSD_e_map, [2 1 3]);
EBSD_r_map = permute(EBSD_r_map, [2 1 3]);
mask = mask';
end
fprintf('\b\b, Done in %f seconds.\n', toc(c));
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment