A list of crystal orientations usually arrives as a text file with one orientation per row. Unlike an EBSD map, the list has no spatial positions. Importing it requires the numeric representation, the crystal symmetry, and the reference frames in which the numbers were defined.
This page assumes the orientation map introduced in Defining Orientations and the Euler-angle conventions from Defining Rotations. It uses a three-column file of Bunge Euler angles in degrees.
plottingConvention.default('y↑→x');
% load the quartz symmetry and its crystal reference frame from a CIF file
cs = crystalSymmetry.load('quartz.cif');Name the Columns
The file contains three numeric columns but no header. Their names tell orientation.load that the columns are the Bunge angles \((\varphi_1,\Phi,\varphi_2)\).
fname = fullfile(mtexDataPath,'orientation','Tongue_Quartzite_Bunge_Euler');
ori = orientation.load(fname,cs,'ColumnNames',{'phi1','Phi','phi2'})ori = orientation (Quartz → y↑→x)
size: 382 × 1The display reports a \(382 \times 1\) orientation array. It also identifies the quartz crystal symmetry and the specimen frame. MTEX stores all 382 orientations in this one vectorized object.
Check the Imported Texture
A pole figure is a useful first sanity check, although it cannot prove a convention by itself. Here the \((0001)\) and \((10\bar{1}0)\) poles should show the texture carried by the imported orientations.
plotPDF(ori,Miller({0,0,0,1},{1,0,-1,0},cs));
Notice that the \((0001)\) poles concentrate around ND, whereas many \((10\bar{1}0)\) poles lie closer to the rim. The imported population is therefore textured rather than randomly distributed.
What the Options Are For
For Euler input, the three angle columns are mandatory. Further named columns are returned in a struct when a second output is requested, as in [ori,properties] = orientation.load(...). The field names are converted to lower case and have whitespace removed.
|
'ColumnNames' |
what each imported column contains |
|
'Columns' |
positions of those columns in the file |
|
'radians' |
angles are in radians rather than degrees; see the limitation below |
|
'header' |
number of header lines to skip |
|
'delimiter' |
character that separates the numbers |
|
'passive' |
request the inverse map; see the limitation below |
The names and positions solve different problems. For example, 'Columns',[4 2 7] selects physical columns 4, 2, and 7, while 'ColumnNames',{'phi1','Phi','phi2'} assigns their meanings in that order.
The generic importer advertises quaternion columns named {'Quat real','Quat i','Quat j','Quat k'}. In the current implementation, however, that path passes all four columns as one matrix to a constructor that expects four arrays and raises an error. Until it is fixed, read the numeric columns separately and construct orientation(quaternion(a,b,c,d),cs). Quaternions avoid the Euler-angle sequence and angular-unit questions, but they do not identify the mapping direction or either reference frame.
Four Questions to Answer Before Trusting the Result
A plain numeric file does not contain enough information to distinguish several valid interpretations. All four questions below must be answered from its header, accompanying documentation, or a known physical feature.
-
Which Euler-angle convention? This example uses the Bunge column names. Equal angle triplets in other conventions describe different orientations. Import those numeric columns and pass them to
orientation.byEulerwith the convention named explicitly; see Defining Rotations.
-
Degrees or radians? The generic text importer ignores
'radians'and decides the unit from the values instead: a file is read as degrees only when some angle exceeds 15, and as radians otherwise. A file of small angles in degrees is therefore read as radians, silently and with valid-looking results, so the values alone are not a reliable test.
-
Active or passive? MTEX orientations map coordinates from the crystal frame into the specimen frame. Do not select
'passive'merely because a source calls its convention Bunge: reported Bunge Euler angles are copied directly when the frames agree. The distinction is developed in MTEX vs. Bunge Convention.
The generic text importer currently applies |'passive'| twice, so the
two inversions cancel and the option has no effect. Until that defect is
fixed, import first and use |ori = inv(ori)| only when an independent
convention check establishes that the stored map is the inverse.-
Which crystal and specimen frames? The alignment between Cartesian crystal axes and lattice axes belongs to the
crystalSymmetryloaded above; see The Crystal Reference System. The file documentation must also say which physical specimen directions its axes denote. The explicit plotting convention on this page states TD upward and RD to the right; it does not infer those directions from the three columns.
A known direction provides the strongest check. Verify that one indexed crystal direction maps to the specimen direction observed in the experiment. A plausible pole figure alone cannot distinguish every wrong combination of convention and frame.
References
- H.-J. Bunge, Texture Analysis in Materials Science: Mathematical Methods, Butterworths, English ed., 1982, establishes the Euler-angle convention used in texture analysis.
- G. Nolze, Euler angles and crystal symmetry, Crystal Research and Technology 50, 188--201, 2015, explains why unit-cell settings and specimen axes can give different Euler triplets for the same orientation.
- D. Rowenhorst et al., Consistent representations of and conversions between 3D rotations, Modelling and Simulation in Materials Science and Engineering 23, 083501, 2015, gives reproducible conversion rules for Euler angles, matrices, axis--angle pairs, and quaternions.
- ISO 24173:2024, Microbeam analysis -- Guidelines for orientation measurement using electron backscatter diffraction, covers reliable and reproducible orientation measurements when a list originates from EBSD.
Next
Writing orientations back to a file is Export. Orientations measured on a grid across a specimen are imported as a map instead; see Importing EBSD Data.
Citing this page.
This page is part of the documentation of
MTEX, a free and open
source MATLAB toolbox for analyzing and modeling crystallographic textures.
It was written by The MTEX Developers and is published at
https://mtex-toolbox.github.io/OrientationImport.html.
If you use MTEX, or reuse text or figures from this page, in your research,
please cite
F. Bachmann, R. Hielscher, H. Schaeben: Texture Analysis with MTEX - Free and Open Source Software Toolbox, Solid State Phenomena 160 (2010), 63-68. 10.4028/www.scientific.net/SSP.160.63
BibTeX
@article{bachmann2010mtex,
author = {F. Bachmann and R. Hielscher and H. Schaeben},
title = {Texture Analysis with MTEX - Free and Open Source Software Toolbox},
journal = {Solid State Phenomena},
volume = {160},
pages = {63-68},
year = {2010},
doi = {10.4028/www.scientific.net/SSP.160.63},
url = {https://doi.org/10.4028/www.scientific.net/SSP.160.63}
}
Other papers describing specific MTEX methods are listed under Publications — please cite the one that best fits your application. The MTEX source code is licensed under the GNU General Public License v2.0; the text and figures of this documentation are licensed under CC BY 4.0, which permits reuse — including by automated systems — provided The MTEX Developers and this page are credited.