a unimodal ODF, radially symmetric about a modal orientation, its shape a kernel on SO(3)
Syntax
odf = unimodalODF(ori)
The de la Vallee Poussin kernel of halfwidth 10 degree.
odf = unimodalODF(ori, halfwidth=15*degree)
Another halfwidth.
odf = unimodalODF(rot, cs, ss)
The centre given as a rotation, the frames named.
odf = unimodalODF(ori, psi)
The kernel psi, also kernel=psi.
odf = unimodalODF(ori, weights=w, thinning=False)
One weight per centre, all kept.
Description
The ODF is a kernel sum, SO3FunRBF, with the kernel at the modal orientations, the weights normalised to a mean of one. Given weights, the centres of negligible weight, a hundredth of a kernel’s peak shared among the centres, are dropped unless thinning=False. Without a centre the mode is the identity.
Input
center |
orientation, the modal orientations, or a rotation with the frames following |
args |
crystalFrame and specimenFrame of a centre given as a rotation, and an SO3Kernel |
Keywords
| keyword | default | description |
|---|---|---|
kernel |
None |
SO3Kernel, the shape; by default the de la Vallee Poussin kernel |
halfwidth |
None |
the halfwidth of the default kernel, 10 degree unless given |
weights |
None |
one weight per centre |
thinning |
True |
drop the centres of negligible weight (MATLAB’s flag nothinning keeps them) |
Output
odf |
SO3FunRBF |
Example
Build a model texture from a preferred orientation and an angular spread, then mix it with a uniform background. The coefficients 0.3 and 0.7 are volume fractions.
import matplotlib.pyplot as plt
from mtex import crystalFrame, orientation, degree, unimodalODF, uniformODF, Miller, plotPF, mtexColorbar
cs = crystalFrame('m-3m')
centre = orientation.byEuler(15*degree, 35*degree, 45*degree, cs)
peak = unimodalODF(centre, halfwidth=15*degree)
odf = 0.3*peak + 0.7*uniformODF(cs)
print('Mean of the mixture:', round(float(odf.mean()), 3))
plotPF(odf, Miller(1, 0, 0, cs), antipodal=True, contourf=True, resolution=5*degree)
mtexColorbar(title='mrd')
plt.show()
Each component has mean one, so fractions summing to one preserve that normalization. The halfwidth specifies the spread about the mode, rather than a sharp cutoff.
Mean of the mixture: 1.0

See also
fibreODF, uniformODF, FourierODF, BinghamODF, SO3FunRBF, RadialODFs
Used on
OrientationEmbeddings, OrientationExport, OrientationGrid, OrientationStandard, SpecimenSymmetry, ClusterDemo, OptimalKernel, DetectionOfSampleSymmetry, EulerAngleSections, ODFCharacteristics, ODFExport, ODFInversePoleFigure
MATLAB’s unimodalODF
source
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/unimodalODF_py.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.