SciPy

scipy.special.sph_harm

scipy.special.sph_harm(m, n, theta, phi) = <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:
m : array_like

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

n : array_like

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

theta : array_like

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

phi : array_like

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

Returns:
y_mn : complex float

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

[1]Digital Library of Mathematical Functions, 14.30. https://dlmf.nist.gov/14.30
[2](1, 2) https://en.wikipedia.org/wiki/Spherical_harmonics#Condon.E2.80.93Shortley_phase

Previous topic

scipy.special.lpmv

Next topic

scipy.special.clpmn