If your dataset is complex, here is a list of tricks to get it indexed. This page is being improved over time.
from ImageD11 import columnfile c = columnfile.columnfile('peaks_t100.flt') % if 'expection: problem interpreting your colfile' check the extention of your file. Should be .flt c.titles % to see what variables you have in your columnfile c.parameters.loadparameters("CeO2_parameters.prm") c.titles c.updateGeometry() import pylab pylab.figure() pylab.show() import matplotlib matplotlib.use("GTK3Agg") from pylab import * show() from ImageD11.columnfile import * c = columnfile("peaks_t100.flt") c.parameters.loadparameters("CeO2_parameters.prm") c.updateGeometry() tth=arange(0,15,.01) plot(np.histogram(c.tth,bins=tth)[0],"-") show() plot(tth[1:],np.histogram(c.tth,bins=tth)[0],"-") % give a better peaks separation show() plot(tth[1:],np.histogram(c.tth,bins=tth,weights=c.sum_intensity)[0],"-") % take in account the intensity of the peaks
Open a python console
python
import matplotlib matplotlib.use("GTK3Agg") from pylab import * from ImageD11.columnfile import * c = columnfile('peaks_t100.flt') c.parameters.loadparameters("CeO2_parameters.prm") c.updateGeometry() tth = arange(0,15,.01) plot(tth[1:],np.histogram(c.tth,bins=tth)[0],"-") show()
Example: You have a phase assemblage consisting of a pressure medium (KCl), majoritic garnet (Maj) and stishovite (St). The phase you are mainly interested in is St. But St is also the least abundant phase. In your 2D diffraction pattern you have difficulties to assign the peaks to certain phases. Especially your phase of interest has only a few peaks of low intensity.
The idea behind the following procedure is this: Remove all peaks that belong to KCl and Maj so the only peaks left must be the St peaks.
Let's start. First, you have to perform the "normal" data analysis up to the point where you search for peaks. We call this PeakSearch result the “Start-peaks”.
Now comes the trickiest part: You have to do a good (!) Rietveld refinement. This is not easy since we already mentioned the issues of low intensity phases and multiple peaks in the paragraph above. But just do the best you can. The information you need for the following steps is the cell parameters of every phase (KCl, Maj and St).
Now, calculate the G-vectors with ImageD11 for every phase and save them. Save also the parameters of each phase.
Before dealing with GrainSpotter let's get rid of some peaks. Since KCl is the most abundant phase (e.g. the one with the most intense peaks), we remove the KCl peaks first. Run ringselect and ringselect_reverse to separate the KCl peaks from the other peaks. Check the peaks carefully in ImageD11 to avoid removing more peaks than necessary and adjust your theta tolerance respectively. We call the file which contains only the KCl peaks “KCl-only” and the other file “KCl-removed”.
Now, take the “KCl-removed” file (without the KCl peaks) and load it to ImageD11. Again, you can calculate the G-vectors (this time only for Maj and St). Save them, as well as the respective parameters.
You can also load the “KCl-only” peaks, calculate their G-vectors (only for KCl) and save the respective parameters.
Run ringselect and ringselect_reverse again to separate the “KCl-removed” peaks into Maj and St peaks. We call the created file “KCl-removed_Maj-only” and “KCl-removed_Maj-removed”. Load them again in ImageD11, save the parameters and G-vectors.
At the end, you should have a bunch of sets of parameter files (.prm) and G-vector files (.gve):
Now, create .ini files for all sets (eight in this example) and run GrainSpotter (or a GrainSpotter loop). Depending on the uncertainties, Euler step etc. in the .ini files this may take a while.
After GrainSpotter did its job you can now run timelessGrainComparison to see which of those results is meaningful and if the whole procedure was worth it.