Bingham distribution and EBSD data
testing rotational symmetry of individual orientations
On this page ... |
Bingham Distribution |
The bipolar case and unimodal distribution |
Prolate case and fibre distribution |
Oblate case |
Bingham Distribution
The quaternionic Bingham distribution has the density
where is a
orthogonal matrix with unit quaternions
in column and
is a
diagonal matrix with the entries
describing the shape of the distribution.
is the hypergeometric function with matrix argument normalizing the density.
The shape parameters give
- a bipolar distribution, if
,
- a circular distribution, if
,
- a spherical distribution, if
,
- an uniform distribution, if
,
in unit quaternion space. Since the quaternion +g and -g describes the same rotation, the bipolar distribution corresponds to an unimodal distribution in orientation space. Moreover we would call the circular distribution a fibre in orientation space.
The general setup of the Bingham distribution in MTEX is done as follows
cs = crystalSymmetry('1'); kappa = [100 90 80 0]; % shape parameters U = eye(4); % orthogonal matrix odf = BinghamODF(kappa,U,cs)
odf = ODF crystal symmetry : 1, X||a*, Y||b*, Z||c* specimen symmetry: 1 Bingham portion: kappa: 100 90 80 0 weight: 1
h = [Miller(0,0,1,cs) Miller(1,0,0,cs) Miller(1,1,1,cs)]; plotPDF(odf,h,'antipodal','silent'); % plot(odf,'sections',10)

The bipolar case and unimodal distribution
First we define some unimodal odf
odf_spherical = unimodalODF(idquaternion,crystalSymmetry,specimenSymmetry,'halfwidth',20*degree)
odf_spherical = ODF crystal symmetry : 1, X||a*, Y||b*, Z||c* specimen symmetry: 1 Radially symmetric portion: kernel: de la Vallee Poussin, halfwidth 20° center: (0°,0°,0°) weight: 1
plotPDF(odf_spherical,h,'antipodal','silent')

Next we simulate individual orientations from this odf, in a scattered axis/angle plot in which the simulated data looks like a sphere
ori_spherical = calcOrientations(odf_spherical,1000); scatter(ori_spherical)

From this simulated ebsd data, we can estimate the parameters of the bingham distribution,
[qm,lambda,U,kappa] = mean(ori_spherical); kappa'
Calling external programm ans = 0 0.8724 2.2034 24.1798
where U is the orthogonal matrix of eigenvectors of the orientation tensor and kappa the shape parameters associated with the U.
next, we test the different cases of the distribution on rejection
T_spherical = bingham_test(ori_spherical,'spherical','approximated'); T_oblate = bingham_test(ori_spherical,'prolate', 'approximated'); T_prolate = bingham_test(ori_spherical,'oblate', 'approximated'); t = [T_spherical T_oblate T_prolate]
t = 0.1973 0.1553 0.3510
The spherical test case failed to reject it for some level of significance, hence we would dismiss the hypothesis prolate and oblate.
odf_spherical = BinghamODF(kappa,U,crystalSymmetry,specimenSymmetry)
odf_spherical = ODF crystal symmetry : 1, X||a*, Y||b*, Z||c* specimen symmetry: 1 Bingham portion: kappa: 0 0.87238 2.2034 24.1798 weight: 1
plotPDF(odf_spherical,h,'antipodal','silent')

Prolate case and fibre distribution
The prolate case correspondes to a fibre.
odf_prolate = fibreODF(Miller(0,0,1,crystalSymmetry('1')),zvector,... 'halfwidth',20*degree)
odf_prolate = ODF crystal symmetry : 1, X||a*, Y||b*, Z||c* specimen symmetry: 1 Fibre symmetric portion: kernel: de la Vallee Poussin, halfwidth 20° fibre: (001) - 0,0,1 weight: 1
plotPDF(odf_prolate,h,'upper','silent')

As before, we generate some random orientations from an model odf. The shape in a axis/angle scatter plot reminds of a cigar
ori_prolate = calcOrientations(odf_prolate,1000); scatter(ori_prolate)

We estimate the parameters of the bingham distribution
[qm,lambda,U,kappa] = mean(ori_prolate); kappa'
Calling external programm ans = 0 2.8966 48.8366 49.9104
and test on the three cases
T_spherical = bingham_test(ori_prolate,'spherical','approximated'); T_oblate = bingham_test(ori_prolate,'prolate', 'approximated'); T_prolate = bingham_test(ori_prolate,'oblate', 'approximated'); t = [T_spherical T_oblate T_prolate]
t = 1.0000 0.3604 1.0000
The test clearly rejects the spherical and prolate case, but not the prolate. We construct the bingham distribution from the parameters, it might show some skewness
odf_prolate = BinghamODF(kappa,U,crystalSymmetry,specimenSymmetry)
odf_prolate = ODF crystal symmetry : 1, X||a*, Y||b*, Z||c* specimen symmetry: 1 Bingham portion: kappa: 0 2.8966 48.8366 49.9104 weight: 1
plotPDF(odf_prolate,h,'antipodal','silent')

Oblate case
The oblate case of the bingham distribution has no direct counterpart in terms of texture components, thus we can construct it straightforward
odf_oblate = BinghamODF([50 50 50 0],eye(4),crystalSymmetry,specimenSymmetry)
odf_oblate = ODF crystal symmetry : 1, X||a*, Y||b*, Z||c* specimen symmetry: 1 Bingham portion: kappa: 50 50 50 0 weight: 1
plotPDF(odf_oblate,h,'antipodal','silent')

The oblate cases in axis/angle space reminds on a disk
ori_oblate = calcOrientations(odf_oblate,1000); scatter(ori_oblate)

We estimate the parameters again
[qm,lambda,U,kappa] = mean(ori_oblate); kappa'
Calling external programm ans = 0 48.3223 48.4183 49.9290
and do the tests
T_spherical = bingham_test(ori_oblate,'spherical','approximated'); T_oblate = bingham_test(ori_oblate,'prolate', 'approximated'); T_prolate = bingham_test(ori_oblate,'oblate', 'approximated'); t = [T_spherical T_oblate T_prolate]
t = 1.0000 1.0000 0.3779
the spherical and oblate case are clearly rejected, the prolate case failed to reject for some level of significance
odf_oblate = BinghamODF(kappa, U,crystalSymmetry,specimenSymmetry)
odf_oblate = ODF crystal symmetry : 1, X||a*, Y||b*, Z||c* specimen symmetry: 1 Bingham portion: kappa: 0 48.3223 48.4183 49.929 weight: 1
plotPDF(odf_oblate,h,'antipodal','silent')

MTEX 4.0.10 |