Processing EBSD-type data
An experimental EBSD (orientation) map can be written as a Raster Tessellation File (.tesr) and visualized using the Visualization Module (-V). It can also be post-processed using the Simulation Module (-S), just as a mesh (and simulation results) can be.
Writing EBSD-type data as a Raster Tessellation File (.tesr)
An EBSD map typically consists of an orientation field described over a 2D grid. This can be described by a Raster Tessellation File (.tesr). An example of an EBSD map comprising \(3 \times 4\) pixels of size 0.001 is provided below (n2.tesr
):
***tesr
**format
2.1
**general
2
4 3
0.001000000000 0.001000000000
**oridata
rodrigues:active
ascii
0.497071991874 0.751536029443 -0.324435016090
0.450508625443 0.778380114981 -0.314292142975
-2.500450755483 0.574774285761 2.818266339832
-2.640295868326 0.613322889998 2.986906001722
0.461530296952 0.723425478677 -0.335158513196
-2.320688155349 0.549041867222 2.520971641905
-2.355181399597 0.486342836815 2.739196570132
-2.366437134562 0.745092186202 2.707700283931
-2.680163356497 0.715754776276 3.187546229403
-2.384540616434 0.667255925120 2.619216702767
-2.694443582845 0.730843654602 2.969465573439
-2.235296365544 0.532494712165 2.629239250625
***end
Note
See the description of a Raster Tessellation File (.tesr) for details on the structure. Voxel is used instead of pixel in the following, and in Neper in general.
The EBSD map can be visualized, colored by orientation, using the Visualization Module (-V):
$ neper -V n2.tesr -datavoxcol ori -print img1
Note
The orientation color key itself is not generated but can be obtained as detailed in Plotting an Orientation Color Key.
In the EBSD map, it may also occur that a voxel is not assigned any orientation. This can be indicated using the **oridef
section:
***tesr
**format
2.1
**general
2
4 3
0.001000000000 0.001000000000
**oridata
rodrigues:active
ascii
0.497071991874 0.751536029443 -0.324435016090
0.450508625443 0.778380114981 -0.314292142975
-2.500450755483 0.574774285761 2.818266339832
-2.640295868326 0.613322889998 2.986906001722
0.461530296952 0.723425478677 -0.335158513196
-2.320688155349 0.549041867222 2.520971641905
-2.355181399597 0.486342836815 2.739196570132
-2.366437134562 0.745092186202 2.707700283931
0.000000000000 0.000000000000 0.000000000000
-2.384540616434 0.667255925120 2.619216702767
-2.694443582845 0.730843654602 2.969465573439
-2.235296365544 0.532494712165 2.629239250625
**oridef
ascii
1 1 1 1 1 1 1 1 0 1 1 1
***end
Note
Voxels for which the orientation is unknown (indicated 0
in the **oridef
section) must still be assigned an orientation in the **oridata
section, as a placeholder.
The EBSD map can be visualized as before:
$ neper -V n2b.tesr -datavoxcol ori -print img2
The “unindexed” voxels appear in gray by default, and their color can be changed using option -datavoxcol
.
Finally, cells (or “grains”) can be defined using the **cell
and **data
sections:
***tesr
**format
2.1
**general
2
4 3
0.001000000000 0.001000000000
**cell
2
*id
1 2
**data
ascii
2 2 1 1 2 1 1 1 1 1 1 1
**oridata
rodrigues:active
ascii
0.497071991874 0.751536029443 -0.324435016090
0.450508625443 0.778380114981 -0.314292142975
-2.500450755483 0.574774285761 2.818266339832
-2.640295868326 0.613322889998 2.986906001722
0.461530296952 0.723425478677 -0.335158513196
-2.320688155349 0.549041867222 2.520971641905
-2.355181399597 0.486342836815 2.739196570132
-2.366437134562 0.745092186202 2.707700283931
0.000000000000 0.000000000000 0.000000000000
-2.384540616434 0.667255925120 2.619216702767
-2.694443582845 0.730843654602 2.969465573439
-2.235296365544 0.532494712165 2.629239250625
**oridef
ascii
1 1 1 1 1 1 1 1 0 1 1 1
***end
Note
The lines highlighted above indicate that there are 2
cells of numbers (or “ids”) 1
and 2
. The *id
section is optional if the cells are numbered contiguously from 1
. The **data
section should always contain numbers contiguously numbered from 1
(0
can be used to represent empty voxels), where 1
represents the first cell, 2
the second cell, etc. (independently of the cell ids provided in *id
).
The EBSD map can be visualized, colored by its cell ids (which is the default), as follows:
$ neper -V n2c.tesr -print img3
Note
The **data
, **oridata
and **oridef
sections are independent from each other, so that a cell may contain voxels that do not have any orientation, or a voxel that has an orientation may not belong to any cell.
Finally, it is a good idea to specify the crystal symmetry, using the *crysym
section:
***tesr
**format
2.1
**general
2
4 3
0.001000000000 0.001000000000
**cell
2
*id
1 2
*crysym
cubic
**data
ascii
2 2 1 1 2 1 1 1 1 1 1 1
**oridata
rodrigues:active
ascii
0.497071991874 0.751536029443 -0.324435016090
0.450508625443 0.778380114981 -0.314292142975
-2.500450755483 0.574774285761 2.818266339832
-2.640295868326 0.613322889998 2.986906001722
0.461530296952 0.723425478677 -0.335158513196
-2.320688155349 0.549041867222 2.520971641905
-2.355181399597 0.486342836815 2.739196570132
-2.366437134562 0.745092186202 2.707700283931
0.000000000000 0.000000000000 0.000000000000
-2.384540616434 0.667255925120 2.619216702767
-2.694443582845 0.730843654602 2.969465573439
-2.235296365544 0.532494712165 2.629239250625
**oridef
ascii
1 1 1 1 1 1 1 1 0 1 1 1
***end
Processing the Data
A Raster Tessellation File (.tesr) (n2c.tesr
) can be written as a Simulation Directory (.sim), for post-processing. This is simply done as follows:
$ neper -T -loadtesr n2d.tesr -for sim
The resulting simulation directory is simply structured as follows:
n2d.sim
└── inputs
└── simulation.tesr
Cell properties can then be computed using option -rescell
of the Simulation Module (-S), as follows:
$ neper -S n2d.sim -rescell ori
The resulting simulation directory is simply structured as follows:
n2d.sim
├── inputs
│ └── simulation.tesr
└── results
└── cells
└── ori
└── ori.step0
Note
For consistency with actual simulation results, the result files are suffixed .step0
, which denotes the initial state.
The map can then be colored following its average cell orientations (compare to the first image):
$ neper -V n2d.sim -datacellcol ori -print img4
Cell properties, such as the “grain orientation spread”, gos
, can be computed:
$ neper -S n2d.sim -rescell gos
The resulting simulation directory is simply structured as follows:
n2d.sim
├── inputs
│ └── simulation.tesr
└── results
└── cells
├── gos
│ └── gos.step0
└── ori
└── ori.step0
The data are simply formatted and can be accessed easily:
$ more n2d.sim/results/cells/gos/gos.step0
3.124415538011
2.405535676705
The map can then be colored following its cell gos
values:
$ neper -V n2d.sim -datacellcol real:gos -datacellscale 2.0:3.0 -datacellscaletitle "GOS (degrees)" -print img5
$ convert img5.png img5-scale.png -gravity East -composite img5.png
This originally produces a PNG file named img5.png
for the map and a PNG file named img5-scale.png
for the scale bar, which is included to img5.png
thanks to convert.