This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
examples:gs_loop_multiphase [2023/12/10 08:39] smerkel created |
examples:gs_loop_multiphase [2023/12/10 13:19] (current) smerkel |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== GrainSpotter loop for olivine ====== | + | ====== GrainSpotter loop for a sample with multiple phases ====== |
Below is an example of a GrainSpotter loop for a multiphase sample. You can run it by typing | Below is an example of a GrainSpotter loop for a multiphase sample. You can run it by typing | ||
Line 9: | Line 9: | ||
===== Main idea ===== | ===== Main idea ===== | ||
- | todo: describe what the loop actually does. | + | The options in this scripts are all in the top section of the file, which should be somewhat self-documented. |
+ | |||
+ | This script requires | ||
+ | * one g-vector file per phase, experimental g-vectors should be identical for all phases, but the list of computed theoretical g-vectors depends on the unit cell (see [[processing:complex-multi-phase|Indexing a complex dataset with many phases]]), | ||
+ | * some basic information on each phase (space group number, etc) and experiment wavelength, | ||
+ | * to update the GrainSpotter parameters (tthrange, etarange, domega, omegarange, etc)* | ||
+ | * to define parameters for each grain spotter loop: | ||
+ | * convergence criteria for each phase, | ||
+ | * number of random trials for each phase, | ||
+ | * how many times to shall we run GrainSpotter with those sets of parameters. | ||
+ | |||
+ | The number of times to run GrainSpotter, number of parameters to try, etc, is not limited. In some cases, with have run GrainSpotter up to 100 times, with 100000 random trials at each run. This is a test for 10 million configurations. | ||
+ | |||
+ | What it will do | ||
+ | - Create a folder for the indexing (Indexing-1, and then -2, etc if you request the loop to be run multiple times), | ||
+ | - Make a copy of the starting GVE file, | ||
+ | - Run the GrainSpotter iterations, saving a GrainSpotter output file for each iteration, and removing assigned experimental g-vectors from the GVE file (for all phases) | ||
+ | - Merge the indexed grains into a master ''merge-XXX-grains.log'' for each phase, | ||
+ | - Extract a list of Euler angles for those grains into ''merge-XXX-grains-euler.txt'' so you can plot the orientations of the indexed grains, | ||
+ | - Saving list of indexed g-vectors for each phase, | ||
+ | - Save the list of remaining g-vectors, | ||
+ | - Provide some indexing statistics using the script described in the section on how to [[evaluation:evaluate_indexing_statistics|evaluate your indexing performance]] | ||
===== The loop ===== | ===== The loop ===== | ||
- | You wanted it?! Here is the source code for the loop above | + | You wanted it?! Here is the source code for the loop above. |
+ | |||
+ | If you find that this script is useful for you, please cite one of the relevant [[http://timeless.texture.rocks/publications/ |TIMEleSS publications]] for which this script was slowly developped: | ||
+ | * One of the 2 Ledoux et al (2023) publications on olivine and wadsleyite, | ||
+ | * Gay et al (2023) on transformation microsctructures in pyrolite | ||
+ | * Upcoming (I hope) Gay et al publication on pyrolite deformation. | ||
<code bash gsLoop-NPhases.sh> | <code bash gsLoop-NPhases.sh> | ||
#!/bin/bash | #!/bin/bash | ||
+ | # | ||
+ | # This is part of the TIMEleSS tools | ||
+ | # http://timeless.texture.rocks/ | ||
+ | # | ||
+ | # Copyright (C) S. Merkel, Universite de Lille, France | ||
+ | # | ||
+ | # This program is free software; you can redistribute it and/or | ||
+ | # modify it under the terms of the GNU General Public License | ||
+ | # as published by the Free Software Foundation; either version 2 | ||
+ | # of the License, or (at your option) any later version. | ||
+ | # | ||
+ | # Please cite one of the relevant TIMEleSS publications if you find that was of any use | ||
+ | # | ||
# Number of phases | # Number of phases | ||
Line 23: | Line 62: | ||
# Name of phases (used for comments) | # Name of phases (used for comments) | ||
- | phases=("Ringwoodite" "Garnet") | + | phases=("Phase A" "Phase B") |
# Short name of phases (for generating file names, avoid spaces and funny characters please) | # Short name of phases (for generating file names, avoid spaces and funny characters please) | ||
# If your phase is BB, peaks will be in files peaks-BB.gve, grains in grains-BB.gve, and GrainSpotter input files in index-BB.in with additional numbers | # If your phase is BB, peaks will be in files peaks-BB.gve, grains in grains-BB.gve, and GrainSpotter input files in index-BB.in with additional numbers | ||
- | phasesShort=("Rw" "Gt") | + | phasesShort=("phA" "phB") |
# Crystal symmetry codes, one per phase (used in merge grains) | # Crystal symmetry codes, one per phase (used in merge grains) | ||
Line 34: | Line 73: | ||
# Space groups, one per phase (used in grainspotter) | # Space groups, one per phase (used in grainspotter) | ||
- | spaceGroups=(227 230) | + | spaceGroups=(245 212) |
# Starting GVE files, one per phase | # Starting GVE files, one per phase | ||
- | startGVEs=("ringwoodite_peaks_t55_filtered.gve" "pyrope_peaks_t55_filtered.gve") | + | startGVEs=("phaseA.gve" "phaseB.gve") |
# Wavelength (in Angstrom) | # Wavelength (in Angstrom) | ||
- | wavelength=0.289800 | + | wavelength=0.34512 |
# Grain spotter parameters | # Grain spotter parameters |