Hi all,
I'm currently working with a rather large multi-phase EBSD dataset. Part of what I need to do requires merging both Dauphine twins in quartz and albite twins in oligoclase.
For now, I am just working with quartz - it appears that my dataset is too large to properly run the script I have. Any advice would be welcome - I need this step to do a proper grain size analysis.
The part of the script I'm using for merging grains:
%% Merging grains
%find quartz-quartz boundaries with misorientations of 60 +- x around
%c-axis; merge these in to a single grain
gb_qtz = grains.boundary('Quartz-new','Quartz-new');
rot = rotation('axis',Miller(0,0,0,1,CS{2}),'angle',60*degree);
ind = angle(gb_qtz.misorientation,rot)<4*degree;
twinBoundary = gb_qtz(ind);
[mergedGrains,parentId] = merge(grains,twinBoundary)
When I run this on my full dataset, I get the errors:
Error using full
Requested 225277x225277 (378.1GB) array exceeds maximum array size preference. Creation of arrays greater than this limit may take a long time and cause
MATLAB to become unresponsive. See array size limit or preference panel for more information.
Error in grain2d/merge (line 36)
A = full(A + A.');:
When I restrict the dataset to just quartz (using grainsQ = grains('Quartz-new'), then re-running the step above with grainsQ), I get the errors:
Error using sparse
Index exceeds matrix dimensions.
Error in grain2d/merge (line 35)
A = sparse(mergeId(:,1),mergeId(:,2),1,length(grains),length(grains));
I've attached my full script up to this point, plus an image of just the quartz in my sample, with grain boundary misorientations between 55-65* plotted in red to show the Dauphine twins. I can provide the dataset on request as well if need be.
Thanks in advance.
Cheers,
Kat