MTEX - Analysis of EBSD Data
Analysis of single orientation measurement.
Specify Crystal and Specimen Symmetry
% specify crystal and specimen symmetry CS = {... 'Not Indexed',... crystalSymmetry('m-3m','mineral','Fe'),... % crystal symmetry phase 1 crystalSymmetry('m-3m','mineral','Mg')}; % crystal symmetry phase 2
import ebsd data
% file name fname = fullfile(mtexDataPath,'EBSD','85_829grad_07_09_06.txt'); ebsd = loadEBSD(fname,'CS',CS,'interface','generic',... 'ColumnNames', { 'Phase' 'x' 'y' 'Euler 1' 'Euler 2' 'Euler 3' 'Mad' 'BC'},... 'Columns', [2 3 4 5 6 7 8 9],... 'ignorePhase', 0, 'Bunge');
Plot Spatial Data
plot(ebsd)

Plot Pole Figures as Scatter Plots
h = [Miller(1,0,0,CS{2}),Miller(1,1,0,CS{2}),Miller(1,1,1,CS{2})]; plotPDF(ebsd('Fe').orientations,h,'points',500,'antipodal')
I'm plotting 500 random orientations out of 48184 given orientations You can specify the the number points by the option "points". The option "all" ensures that all data are plotted

Kernel Density Estimation
The crucial point in kernel density estimation in the choice of the halfwidth of the kernel function used for estimation. If the halfwidth of is chosen to small the single orientations are visible rather then the ODF (compare plot of ODF1). If the halfwidth is chosen to wide the estimated ODF becomes very smooth (ODF2).
odf1 = calcODF(ebsd('Fe').orientations) odf2 = calcODF(ebsd('Fe').orientations,'halfwidth',5*degree)
odf1 = ODF crystal symmetry : Fe (m-3m) specimen symmetry: 1 Radially symmetric portion: kernel: de la Vallee Poussin, halfwidth 6.8° center: 1533 orientations, resolution: 3.3° weight: 1 odf2 = ODF crystal symmetry : Fe (m-3m) specimen symmetry: 1 Radially symmetric portion: kernel: de la Vallee Poussin, halfwidth 5° center: 1921 orientations, resolution: 2.5° weight: 1
Plot pole figures
plotPDF(odf1,h,'antipodal') figure plotPDF(odf2,h,'antipodal')


Plot ODF
plotODF(odf2,'sections',9,'resolution',2*degree,... 'FontSize',10,'silent')
Plotting ODF as phi2 sections, range: 0° - 80°

Estimation of Fourier Coefficients
Once, a ODF has been estimated from EBSD data it is straight forward to calculate Fourier coefficients. E.g. by
close all odf2 = FourierODF(odf2); imagesc(abs(odf2.calcFourier('order',10))) colorbar

However this is a biased estimator of the Fourier coefficents which underestimates the true Fourier coefficients by a factor that correspondes to the decay rate of the Fourier coeffients of the kernel used for ODF estimation. One obtains an unbiased estimator of the Fourier coefficients if they are calculated from the ODF estimated with the help fo the Direchlet kernel. I.e.
dirichlet = DirichletKernel(32); odf3 = calcODF(ebsd('Fe').orientations,'kernel',dirichlet); imagesc(abs(odf3.calcFourier('order',10))) colorbar

Let us compare the Fourier coefficients obtained by both methods.
plotFourier(odf2,'bandwidth',32) hold all plotFourier(odf3,'bandwidth',32) hold off

A Sythetic Example
Simulate EBSD data from a given standard ODF
CS = crystalSymmetry('trigonal'); fibre_odf = 0.5*uniformODF(CS) + 0.5*fibreODF(Miller(0,0,0,1,CS),zvector); plotODF(fibre_odf,'sections',6,'silent') ori = calcOrientations(fibre_odf,10000)
Plotting ODF as phi2 sections, range: 0° - 100° ori = orientation size: 10000 x 1 crystal symmetry : -31m, X||a*, Y||b, Z||c* specimen symmetry: 1

Estimate an ODF from the simulated EBSD data
odf = calcODF(ori)
odf = ODF crystal symmetry : -31m, X||a*, Y||b, Z||c* specimen symmetry: 1 Portion specified by Fourier coefficients: degree: 27 weight: 1
plot the estimated ODF
plotODF(odf,'sections',6,'silent')
Plotting ODF as phi2 sections, range: 0° - 100°

calculate estimation error
calcError(odf,fibre_odf,'resolution',5*degree)
ans = 0.1029
For a more exhausive example see the EBSD Simulation demo!
Exercises
5)
a) Load the EBSD data: data/ebsd\_txt/85\_829grad\_07\_09\_06.txt!
import_wizard('ebsd')

b) Estimate an ODF from the above EBSD data.
odf = calcODF(ori)
odf = ODF crystal symmetry : -31m, X||a*, Y||b, Z||c* specimen symmetry: 1 Portion specified by Fourier coefficients: degree: 27 weight: 1
c) Visualize the ODF and some of its pole figures!
plot(odf,'sections',6,'silent')
Plotting ODF as phi2 sections, range: 0° - 100°

d) Explore the influence of the halfwidth to the kernel density estimation by looking at the pole figures!
MTEX 4.0.10 |