Source code for pyrfu.pyrf.cart2sph

#!/usr/bin/env python
# -*- coding: utf-8 -*-

# 3rd party imports
import numpy as np

__author__ = "Louis Richard"
__email__ = "louisr@irfu.se"
__copyright__ = "Copyright 2020-2023"
__license__ = "MIT"
__version__ = "2.4.2"
__status__ = "Prototype"


[docs]def cart2sph(x, y, z): r"""Cartesian to spherical coordinate transform. .. math:: \alpha = \arctan \left( \frac{y}{x} \right) \\ \beta = \arccos \left( \frac{z}{r} \right) \\ r = \sqrt{x^2 + y^2 + z^2} with :math:`\alpha \in [0, 2\pi], \beta \in [0, \pi], r \geq 0` Parameters ---------- x : float or array_like x-component of Cartesian coordinates y : float or array_like y-component of Cartesian coordinates z : float or array_like z-component of Cartesian coordinates Returns ------- alpha : float or array_like Azimuth angle in radians beta : float or array_like Elevation angle in radians (with 0 denoting North pole) r : float or array_like Radius """ # Radius r = np.sqrt(x**2 + y**2 + z**2) # Azimuthal angle alpha = np.arctan2(y, x) # Elevation angle beta = np.arccos(z / r) return alpha, beta, r