processing:indexing_with_grainspotter
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| processing:indexing_with_grainspotter [2019/02/21 07:34] – smerkel | processing:indexing_with_grainspotter [2023/03/16 13:10] (current) – smerkel | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Grain indexing with GrainSpotter ====== | ====== Grain indexing with GrainSpotter ====== | ||
| - | At this point, you should have a [[processing: | + | At this point, you should have a [[processing: |
| - | GrainSpotter first generates a number of random grain orientations and, for each, calculates the corresponding theoretical G-vectors. For each grain orientation, | + | GrainSpotter first generates a number of random grain orientations and, for each, calculates the corresponding theoretical G-vectors. For each grain orientation, |
| - | below), the grain is assigned. | + | |
| ==== Estimation of the uncertainties ==== | ==== Estimation of the uncertainties ==== | ||
| Line 12: | Line 11: | ||
| In Fabian, load your peaks from the peaksearch and overlap them with the diffraction data ('' | In Fabian, load your peaks from the peaksearch and overlap them with the diffraction data ('' | ||
| - | ImageD11 is not a good tool for evaluating δη and δω as all peaks extracted for all ω are stacked on the same plot. It is the only tool, however, | + | ImageD11 is not a good tool for evaluating δη and δω as all peaks extracted for all ω are stacked on the same plot. It is appropriate, however, to evaluate δ2θ. |
| - | [{{: | + | [{{: |
| - | [{{ : | + | [{{ : |
| + | ==== Indexing grains ==== | ||
| + | |||
| + | You are now ready to start indexing your g-vectors with [[software: | ||
| - | ==== From diffraction peaks to G_vectors ==== | + | GrainSpotter works with an input file, typically ending with a [[fileformat: |
| + | * the crystal structure of the grains you are looking for, | ||
| + | * the 2θ, η and ω ranges in which to look for g-vectors, the 2θ can also be expressed in d-spacing range, | ||
| + | * the cuts, above which a grain is considered a grain, | ||
| + | * the uncertainties in 2θ, η and ω, | ||
| + | * a nσ factor that will be applied to the uncertainties above, | ||
| + | * the number of random tries. | ||
| - | [[software: | + | Changing the 2θ range allow you to exclude some domains where the peaks are not well defined. |
| - | * open the software with the command | + | You should play on the //cut// and // |
| - | <WRAP center box 18%> | + | |
| - | **ImageD11_gui.py** | + | |
| - | </ | + | |
| - | * in the menu **' | + | When your input file is ready, type either |
| - | * in the menu **' | + | GrainSpotter.0.90 index.ini |
| - | {{ : | + | or |
| - | </ | + | |
| + | or | ||
| + | | ||
| - | * [[software: | ||
| - | * you can save the parameters : **' | ||
| - | * clear the plot and use **' | ||
| - | {{ : | ||
| - | // | ||
| - | </ | ||
| - | * [[software: | + | ======Sample GrainSpotter input file====== |
| - | * in **' | + | |
| - | {{ : | + | |
| - | //Zoom on peaks positions between 2θ=5 and 2θ=11(again, same set of data). Unit cell peaks positions in red.// | + | |
| - | </ | + | |
| - | + | ||
| - | * here you can estimate the uncertainty on 2θ : determine the maximal width of the peak line for which the spots of each line do not mix. | + | |
| - | * compute and save G-vectors : **' | + | |
| - | * in the menu **' | + | |
| - | * then use **' | + | |
| - | + | ||
| - | With that G-vectors file, you will be able to use GrainSpotter to find your original grains. | + | |
| - | + | ||
| - | ==== From G-vectors to grains | + | |
| - | + | ||
| - | You can now index your diffraction peaks with [[software: | + | |
| - | + | ||
| - | But before entering the commande line in the Konsole, you must complete the input file : index.ini. | + | |
| - | In that file you must write the same parameters you used in your experiment/ | + | |
| - | * the 2θ range; | + | |
| - | * the cut | + | |
| - | * the uncertainties | + | |
| - | * the random number | + | |
| - | + | ||
| - | Changing the 2θ range allow you to exclude some domains where the peaks are not well defined. | + | |
| - | You should play on the cut and the uncertainties to found the settings | + | Below is a sample GrainSpotter input file that we actually used: |
| + | * lines started with '' | ||
| + | * we define several 2theta ranges in which we actually look for peaks (other changes were polluted by an additional phase, | ||
| + | * images were acquired | ||
| + | * the GVE file to start from is '' | ||
| + | * results will be saved in '' | ||
| + | * cuts are as follow | ||
| + | * 15 peaks, minimum per grain, | ||
| + | * 30% completeness minimum, which is quite low but diamond anvil cells have shadows, peaks may be hidden by the pressure medium, etc. If the completeness restriction is too high, you will not find enough grains, | ||
| + | * 50% uniqueness: has no effect in the experiments we performed, | ||
| + | * uncertainties: | ||
| + | * tries for 10000 random orientations and stops, | ||
| - | Increasing | + | < |
| + | spacegroup 62 ! spacegroup [space group nr] | ||
| + | ! dsrange 0 0.34 ! dsrange [min max], d-spacing range, multiple ranges can be specified | ||
| + | tthrange 3.0 7.15 ! tthrange [min max], multiple ranges can be specified | ||
| + | tthrange 7.35 10.2 ! tthrange [min max], multiple ranges can be specified | ||
| + | tthrange 10.3 12.5 ! tthrange [min max], multiple ranges can be specified | ||
| + | tthrange 12.65 14.5 ! tthrange [min max], multiple ranges can be specified | ||
| + | etarange 0 360 ! etarange [min max], multiple ranges can be specified | ||
| + | domega 0.5 ! domega [stepsize] in omega, degrees | ||
| + | omegarange -28 28 ! omegarange [min max] degrees, multiple ranges can be specified | ||
| + | filespecs peaks-I-Want-To-Index.gve grains-I-found.log ! filespecs [gvecsfile grainsfile] | ||
| + | cuts 15 0.3 0.5 ! cuts [min_measuments min_completeness min_uniqueness] | ||
| + | eulerstep 5 ! eulerstep [stepsize] : angle step size in Euler space | ||
| + | uncertainties 0.02 1 2 ! uncertainties [sigma_tth sigma_eta sigma_omega] in degrees | ||
| + | nsigmas 2 ! nsigmas [Nsig] : maximal deviation in sigmas | ||
| + | ! minfracg 1 ! stop search when minfracg (0..1) of the gvectors have been assigned to grains | ||
| + | ! Nhkls_in_indexing 15 ! Nhkls_in_indexing [Nfamilies] : use first Nfamilies in indexing | ||
| + | random | ||
| + | ! positionfit | ||
| + | ! genhkl | ||
| + | </ | ||
| - | When your input file is ready, type : | + | ======Loops with GrainSpotter====== |
| - | <WRAP center box 30%> | + | |
| - | **GrainSpotter.0.90 index.ini** | + | |
| - | </ | + | |
| - | //nb : the commande **GrainSpotter** instead of GrainSpotter.0.90 work too, I do not know what is the difference.// | + | |
| + | It can be efficients to run multiple loops of grainspotter indexings. The underlying concept is as follow | ||
| + | * Step 1: | ||
| + | * run grainspotter with a given set of specifications, | ||
| + | * repeat the above operation X times, | ||
| + | * this will provide a first set of grains, which should be the most reliable | ||
| + | * Step 2: | ||
| + | * Lower the tolerance, and repeat X loops of indexings, remove indexed peaks at each step | ||
| + | * this will provide a second set of grains, which may have to be checked | ||
| + | * Repeat steps above, lowering tolerances progressively in order to optimize the number of indexed grains, while making sure that all indexed grains make sense | ||
| + | * Combined the results of all indexings into one main log file, with all indexed files from the loop. | ||
| + | There are several TIMEleSS tools to help you with this process | ||
| + | * [[processing: | ||
| + | * [[processing: | ||
| + | * [[processing: | ||
| + | An example of a GrainSpotter loop is provided in a [[processing: | ||
processing/indexing_with_grainspotter.1550730869.txt.gz · Last modified: by smerkel
