scipy.special.sph_harm#

scipy.special.sph_harm(m, n, theta, phi, out=None) = <ufunc 'sph_harm'>#

Compute spherical harmonics.

The spherical harmonics are defined as

\[Y^m_n(\theta,\phi) = \sqrt{\frac{2n+1}{4\pi} \frac{(n-m)!}{(n+m)!}} e^{i m \theta} P^m_n(\cos(\phi))\]

where \(P_n^m\) are the associated Legendre functions; see lpmv.

Parameters:
marray_like

Order of the harmonic (int); must have |m| <= n.

narray_like

Degree of the harmonic (int); must have n >= 0. This is often denoted by l (lower case L) in descriptions of spherical harmonics.

thetaarray_like

Azimuthal (longitudinal) coordinate; must be in [0, 2*pi].

phiarray_like

Polar (colatitudinal) coordinate; must be in [0, pi].

outndarray, optional

Optional output array for the function values

Returns:
y_mncomplex scalar or ndarray

The harmonic \(Y^m_n\) sampled at theta and phi.

Notes

There are different conventions for the meanings of the input arguments theta and phi. In SciPy theta is the azimuthal angle and phi is the polar angle. It is common to see the opposite convention, that is, theta as the polar angle and phi as the azimuthal angle.

Note that SciPy’s spherical harmonics include the Condon-Shortley phase [2] because it is part of lpmv.

With SciPy’s conventions, the first several spherical harmonics are

\[\begin{split}Y_0^0(\theta, \phi) &= \frac{1}{2} \sqrt{\frac{1}{\pi}} \\ Y_1^{-1}(\theta, \phi) &= \frac{1}{2} \sqrt{\frac{3}{2\pi}} e^{-i\theta} \sin(\phi) \\ Y_1^0(\theta, \phi) &= \frac{1}{2} \sqrt{\frac{3}{\pi}} \cos(\phi) \\ Y_1^1(\theta, \phi) &= -\frac{1}{2} \sqrt{\frac{3}{2\pi}} e^{i\theta} \sin(\phi).\end{split}\]

References