a function on the sphere by its spherical harmonic series, or a list of such functions; the default representation of a function on the sphere
Syntax
sF = S2FunHarmonic(fhat)
From MTEX’s coefficients.
sF = S2FunHarmonic(fhat, cs, antipodal=True)
In a crystal frame, f(v) = f(-v).
sF = S2FunHarmonic(lambda v: v.z**2, bandwidth=16)
A callable expanded by quadrature.
sF = S2FunHarmonic(psi)
The series of a kernel on the sphere.
sF = S2FunHarmonic(sF, bandwidth=8)
Another function, truncated.
Description
The harmonic series is the form on which convolution, rotation, products and integrals are cheap. The coefficients fhat are MTEX’s, degree by degree, (L + 1)^2 of them for the bandwidth L; a vector ending inside a degree is padded with zeros. A list of functions carries its shape in front of the coefficients.
The first argument may also be:
- a callable of vector3d: sampled on a quadrature grid of the bandwidth, by default the preference defaultS2Bandwidth; S2FunHarmonic.quadrature takes values at nodes
- an S2Kernel: its series
- another S2Fun: its harmonic form, truncated to the bandwidth if given
The function is made invariant under the group of its frame unless symmetrise=False, so a callable that is not invariant becomes its mean over the symmetric directions. A frame with an inversion makes the function antipodal.
Input
fhat |
array of MTEX’s coefficients, an S2Fun, an S2Kernel or a callable of vector3d |
frame |
the crystalFrame or specimenFrame of the directions |
Keywords
| keyword | default | description |
|---|---|---|
real |
whether the function takes real values only; by default read off the coefficients or the sampled values | |
antipodal |
f(v) = f(-v) | |
symmetrise |
make the coefficients invariant under the group of the frame | |
bandwidth |
the largest degree of the series | |
dtype |
the complex type of the coefficients, complex128 unless given |
Output
sF |
S2FunHarmonic |
Properties
fhat |
spherical harmonic coefficients in MTEX’s public basis |
bandwidth |
largest spherical harmonic degree |
frame |
reference frame carrying the function symmetry |
CS |
alias for the spherical reference frame |
isReal |
whether the function is real-valued |
antipodal |
whether f(v)=f(-v) |
shape |
shape of a list of functions, excluding the coefficient axis |
See also
S2FunHarmonic.quadrature, S2FunHarmonic.interpolate, S2FunHandle, S2Kernel, SO3FunHarmonic, S2FunHarmonicRepresentation
Members
| abs | the absolute value |f| as a handle, evaluated when asked |
| adjoint | S2FunHarmonic.adjointNFSFT(v, values, bandwidth=32): the adjoint transform, the coefficients sum_j w_j y_j conj(Y(v_j)) with unit weights unless given, a grid’s own on a grid |
| adjointNFSFT | S2FunHarmonic.adjointNFSFT(v, values, bandwidth=32): the adjoint transform, the coefficients sum_j w_j y_j conj(Y(v_j)) with unit weights unless given, a grid’s own on a grid |
| approximate | the harmonic series of a function on the sphere by quadrature, from a callable or from values at nodes |
| bandwidth | the bandwidth, the highest degree of the coefficients |
| cat | the functions joined into one list along an axis, padded to the largest bandwidth |
| conj | the complex conjugate function |
| conv | convolve a spherical function with a kernel or another spherical function |
| CS | the frame of the function, MATLAB’s sF.CS |
| dot | the inner product with another function of the same frame, for the normalised surface measure: int conj(f) g dS / 4 pi |
| eig | eig(T) is T.eig(): the eigenvalues in ascending order and the eigenvectors |
| entropy | the entropy -int f log f of a function on SO(3) or on the sphere |
| eval | the function at directions, or at the nodes of a quadrature grid |
| even | return the even part (f(v)+f(-v))/2 of a spherical function |
| exp | the exponential of the function, expanded by quadrature, or at the bandwidth given |
| fhat | the coefficients in MTEX’s basis, as MATLAB’s sF.fhat reads and assigns them |
| grad | the surface gradient: a vector field, or its values at the directions x |
| horzcat | the functions joined into one list along an axis, padded to the largest bandwidth |
| how2plot | the plotting convention of the frame, or the session’s |
| interpolate | S2FunHarmonic.interpolate(v, y) is interpolate(v, y): the function of least squares through the values y at the directions v |
| invRadon | invert the Funk transform on the even spherical harmonics |
| isclose | whether the coefficients agree with those of g within the tolerances, relative to the norm of g |
| laplace | apply the spherical Laplace-Beltrami operator |
| log | the logarithm of the function, expanded by quadrature, or at the bandwidth given |
| mean | the mean over the sphere, int f dS / 4 pi, one per function |
| mtimes | |
| norm | the L2 norm for the normalised surface measure, or the Sobolev norm, one per function |
| plot | plot(x, …) draws x as its kind is drawn |
| plotSpektra | the Chebyshev coefficients of a kernel, or the harmonic power of a function, per degree |
| plus | |
| plus | |
| power | the power of every degree, the norm of the coefficients of that degree, as an array of length bandwidth + 1 per function |
| power | the power of every degree, the norm of the coefficients of that degree, as an array of length bandwidth + 1 per function |
| quadrature | the harmonic series of a function on the sphere by quadrature, from a callable or from values at nodes |
| quadrature | the harmonic series of a function on the sphere by quadrature, from a callable or from values at nodes |
| radon | the Funk transform, the mean over the great circle perpendicular to every direction |
| rdivide | |
| rdivide | |
| reshape | the list of functions in another shape |
| rotate | the function rotated, f(rot^-1 v) |
| S2FunHarmonic | a function on the sphere by its spherical harmonic series, or a list of such functions |
| S2FunHarmonicSym | a function on the sphere by its spherical harmonic series, or a list of such functions |
| shape | the shape of a list of functions, () for one |
| size | the number of functions in a list, 1 for one function |
| sqrt | the square root of the function, expanded by quadrature, or at the bandwidth given |
| subsref | |
| sum | the integral over the sphere, int f dS, MATLAB’s sum |
| symmetrise | the projection onto the functions invariant under the group of the frame, or under a list of rotations forming a group the frame does not name |
| T | the list transposed, a row of n functions becoming a column, and MATLAB’s ‘ as sF.conj().T |
| textureIndex | the texture index of a function on SO(3) or on the sphere, the squared L2 norm of its harmonic expansion |
| times | |
| times | |
| truncate | the coefficients up to degree L |
| uminus | |
| unimodal | S2FunHarmonic.unimodal(v, psi): MATLAB’s other name of S2Fun.unimodal |
| vertcat | the functions joined into one list along an axis, padded to the largest bandwidth |
| volume | the share of orientations within a radius of a centre: the integral of f over the ball, int_{angle(g, c) < r} f(g) dg, relative to the integral over all orientations |
Used on
SO3FunConvolution, S2FunHarmonicRepresentation, S2FunSampling, S2FunVectorValued, SphericalHarmonics
MATLAB’s S2FunHarmonic_index
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/S2FunHarmonic_index_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.