how to work with single grains
| On this page ... |
| Connection between grains and EBSD data |
| Visualize the misorientation within a grain |
| Testing on Bingham distribution for a single grain |
| Profiles through a single grain |
As usual, we start by importing some EBSD data and computing grains
close all mtexdata forsterite plotx2east % consider only indexed data for grain segmentation ebsd = ebsd('indexed'); % compute the grains [grains,ebsd.grainId,ebsd.mis2mean] = calcGrains(ebsd);
The grains contain. We can access these data by
grain_selected = grains( grains.grainSize >= 1160) ebsd_selected = ebsd(grain_selected)
grain_selected = grain2d
Phase Grains Pixels Mineral Symmetry Crystal reference frame
1 32 62262 Forsterite mmm
boundary segments: 11070
triple points: 782
Properties: GOS, meanRotation
ebsd_selected = EBSD
Phase Orientations Mineral Color Symmetry Crystal reference frame
1 62262 (100%) Forsterite light blue mmm
Properties: bands, bc, bs, error, mad, x, y, grainId, mis2mean
Scan unit : um
A more convenient way to select grains in daily practice is by spatial coordinates.
grain_selected = grains(12000,3000)
grain_selected = grain2d
Phase Grains Pixels Mineral Symmetry Crystal reference frame
1 1 1208 Forsterite mmm
boundary segments: 238
triple points: 18
Id Phase Pixels GOS phi1 Phi phi2
640 1 1208 0.00806772 153 68 237
you can get the id of this grain by
grain_selected.id
ans = 640
let's look for the grain with the largest grain orientation spread
[~,id] = max(grains.GOS) grain_selected = grains(id)
id =
1856
grain_selected = grain2d
Phase Grains Pixels Mineral Symmetry Crystal reference frame
1 1 2614 Forsterite mmm
boundary segments: 458
triple points: 28
Id Phase Pixels GOS phi1 Phi phi2
1856 1 2614 0.170662 153 109 247
plot(grain_selected.boundary,'linewidth',2) hold on plot(ebsd(grain_selected)) hold off
close plot(grain_selected.boundary,'linewidth',2) hold on plot(ebsd(grain_selected),ebsd(grain_selected).mis2mean.angle./degree) hold off mtexColorbar
Although the orientations of an individual grain are highly concentrated, they may vary in the shape. In particular, if the grain was deformed by some process, we are interested in quantifications.
cs = ebsd(grain_selected).CS;
ori = ebsd(grain_selected).orientations;
plotPDF(ori,[Miller(0,0,1,cs),Miller(0,1,1,cs),Miller(1,1,1,cs)],'antipodal')I'm plotting 1250 random orientations out of 2614 given orientations You can specify the the number points by the option "points". The option "all" ensures that all data are plotted
Testing on the distribution shows a gentle prolatness, nevertheless we would reject the hypothesis for some level of significance, since the distribution is highly concentrated and the numerical results vague.
calcBinghamODF(ori,'approximated')
ans = ODF
crystal symmetry : Forsterite (mmm)
specimen symmetry: 1
Bingham portion:
kappa: 0 4019.3061 4021.4833 4022.7958
weight: 1
T_spherical = bingham_test(ori,'spherical','approximated'); T_prolate = bingham_test(ori,'prolate', 'approximated'); T_oblate = bingham_test(ori,'oblate', 'approximated'); [T_spherical T_prolate T_oblate]
ans =
1 1 1
Sometimes, grains show large orientation difference when being deformed and then its of interest, to characterize the lattice rotation. One way is to order orientations along certain line segment and look at the profile.
We proceed by specifying such a line segment
close, plot(grain_selected.boundary,'linewidth',2) hold on, plot(ebsd(grain_selected),ebsd(grain_selected).orientations) % line segment lineSec = [18826 6438; 18089 10599]; line(lineSec(:,1),lineSec(:,2),'linewidth',2)
The command spatialProfile restricts the EBSD data to this line
ebsd_line = spatialProfile(ebsd(grain_selected),lineSec);
Next, we plot the misorientation angle to the first point of the line as well as the orientation gradient
close all % close previous plots % misorientation angle to the first orientation on the line plot(ebsd_line.y,... angle(ebsd_line(1).orientations,ebsd_line.orientations)/degree) % misorientation gradient hold all plot(0.5*(ebsd_line.y(1:end-1)+ebsd_line.y(2:end)),... angle(ebsd_line(1:end-1).orientations,ebsd_line(2:end).orientations)/degree) hold off xlabel('y'); ylabel('misorientation angle in degree') legend('to reference orientation','orientation gradient')
We can also plot the orientations along this line into inverse pole figures and colorize them according to their y-coordinate
close, plotIPDF(ebsd_line.orientations,[xvector,yvector,zvector],... 'property',ebsd_line.y,'markersize',3,'antipodal') mtexColorbar
| DocHelp 0.1 beta |