Skip to main content
`Ctrl`+`K`

# 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:
    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]`.

    out ndarray, optional

      Optional output array for the function values

  Returns:
    y_mn complex 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

  [1]

  Digital Library of Mathematical Functions, 14.30. https://dlmf.nist.gov/14.30

  [2]

  https://en.wikipedia.org/wiki/Spherical_harmonics#Condon.E2.80.93Shortley_phase