EBSD data is usually acquired on a regular grid. Hence, even over a finite number of grid points, all possible grain boundary directions can not be uniquely represented. One way of overcoming this problem - and also allowing to compute grid-independent curvatures and grain boundary directions - is the interpolation of grain boundary coordinates using grains.smooth
.
Proper smoothing has an influence on measures such as total grain boundary length, grain boundary curvature, triple point angles or grain boundary directions among others.
While we used grains.smooth
before, here we will illustrate the different options.
With the default parameters we have the following result
The grain boundary boundaries look now a little bit more smooth and the total grain boundary length is reasonable reduced.
However, if we look at the frequency distribution of grain boundary segments, we find that some angle are over-represented which is due to the fact that without any additional input argument, grains.smooth
performs just a single iteration
Effect of smoothing iterations
If we specify a larger number of iterations, we can see that the scatting around 0 and 90 degree decreases.
We can compare the histogram of the grain boundary directions of the entire map.
Note that we are still stuck with many segments at 0 and 90 degree positions which is due to the boundaries in question being too short for the sample size to deviate from the grid.
grains.smooth
usually keeps the triple junction positions locked. However, sometimes it is necessary (todo) to allow triple junctions to move.
Comparing the grain boundary direction histograms shows that we suppressed the gridding effect even a little more.
Be careful since this allows small grains to shrink with increasing number of smoothing iterations
Todo: different smoothing algorithms and 2nd order