# Path: pygeoid/coordinates/transform.py
# def geodetic_to_cartesian(
#         lat: u.deg, lon: u.deg, height: u.m, ell):
# def _cartesian_to_geodetic(x, y, z, ell, degrees=True):
# def cartesian_to_geodetic(x: u.m, y: u.m, z: u.m, ell):
# def cartesian_to_spherical(x: u.m, y: u.m, z: u.m):
# def spherical_to_cartesian(lat: u.deg, lon: u.deg, radius: u.m):
# def cartesian_to_ellipsoidal(x: u.m, y: u.m, z: u.m, ell):
# def ellipsoidal_to_cartesian(rlat: u.deg, lon: u.deg, u_ax: u.m, ell):
# def geodetic_to_spherical(lat: u.deg, lon: u.deg, height: u.m, ell):
# def spherical_to_geodetic(lat: u.deg, lon: u.deg, radius: u.m, ell):
# def geodetic_to_ellipsoidal(lat: u.deg, lon: u.deg, height: u.m, ell):
# def ellipsoidal_to_geodetic(rlat: u.deg, lon: u.deg, u_ax: u.m, ell):
# def _ecef_to_enu_rotation_matrix(lat: u.deg, lon: u.deg):
# def ecef_to_enu(x: u.m, y: u.m, z: u.m, origin: tuple[u.deg, u.deg, u.m], ell=None):
# def enu_to_ecef(x: u.m, y: u.m, z: u.m, origin: tuple[u.deg, u.deg, u.m], ell=None):
# def geodetic_to_enu(lat: u.deg, lon: u.deg, height: u.m,
#                     origin: tuple[u.deg, u.deg, u.m], ell):
# def enu_to_geodetic(x: u.m, y: u.m, z: u.m, origin: tuple[u.deg, u.deg, u.m], ell):
# def polar_to_cartesian(theta: u.deg, radius: u.m):
# def cartesian_to_polar(x: u.m, y: u.m):
#     N = ell.prime_vertical_curvature_radius(lat)
#         D = (k * _np.sqrt(x**2 + y**2)) / (k + e2)


import astropy.units as u
from pygeoid.coordinates import transform
        Parameters
        ----------
        ell : instance of the `pygeoid.coordinates.ellipsoid.Ellipsoid`
            Reference ellipsoid to which geodetic coordinates are referenced to.

        Returns
        -------
        lat : ~astropy.units.Quantity
            Geodetic latitude.
        lon : ~astropy.units.Quantity
            Geodetic longitude.
        height : ~astropy.units.Quantity
            Geodetic height.
        """
        lat, lon, height = transform.cartesian_to_geodetic(
            self._x, self._y, self._z, ell=ell)
        return lat, lon, height

    def spherical(self):
        """Return spherical (geocentric) coordinates.

        Returns
        -------
        lat : ~astropy.units.Quantity
            Spherical latitude.
        lon : ~astropy.units.Quantity
            Spherical longitude.
        r : ~astropy.units.Quantity
            Radius.
        """

# Path: pygeoid/coordinates/transform.py
# def geodetic_to_cartesian(
#         lat: u.deg, lon: u.deg, height: u.m, ell):
# def _cartesian_to_geodetic(x, y, z, ell, degrees=True):
# def cartesian_to_geodetic(x: u.m, y: u.m, z: u.m, ell):
# def cartesian_to_spherical(x: u.m, y: u.m, z: u.m):
# def spherical_to_cartesian(lat: u.deg, lon: u.deg, radius: u.m):
# def cartesian_to_ellipsoidal(x: u.m, y: u.m, z: u.m, ell):
# def ellipsoidal_to_cartesian(rlat: u.deg, lon: u.deg, u_ax: u.m, ell):
# def geodetic_to_spherical(lat: u.deg, lon: u.deg, height: u.m, ell):
# def spherical_to_geodetic(lat: u.deg, lon: u.deg, radius: u.m, ell):
# def geodetic_to_ellipsoidal(lat: u.deg, lon: u.deg, height: u.m, ell):
# def ellipsoidal_to_geodetic(rlat: u.deg, lon: u.deg, u_ax: u.m, ell):
# def _ecef_to_enu_rotation_matrix(lat: u.deg, lon: u.deg):
# def ecef_to_enu(x: u.m, y: u.m, z: u.m, origin: tuple[u.deg, u.deg, u.m], ell=None):
# def enu_to_ecef(x: u.m, y: u.m, z: u.m, origin: tuple[u.deg, u.deg, u.m], ell=None):
# def geodetic_to_enu(lat: u.deg, lon: u.deg, height: u.m,
#                     origin: tuple[u.deg, u.deg, u.m], ell):
# def enu_to_geodetic(x: u.m, y: u.m, z: u.m, origin: tuple[u.deg, u.deg, u.m], ell):
# def polar_to_cartesian(theta: u.deg, radius: u.m):
# def cartesian_to_polar(x: u.m, y: u.m):
#     N = ell.prime_vertical_curvature_radius(lat)
#         D = (k * _np.sqrt(x**2 + y**2)) / (k + e2)


# Path: pygeoid/coordinates/position.py
import astropy.units as u
from pygeoid.coordinates import transform

        Parameters
        ----------
        ell : instance of the `pygeoid.coordinates.ellipsoid.Ellipsoid`
            Reference ellipsoid to which geodetic coordinates are referenced to.

        Returns
        -------
        lat : ~astropy.units.Quantity
            Geodetic latitude.
        lon : ~astropy.units.Quantity
            Geodetic longitude.
        height : ~astropy.units.Quantity
            Geodetic height.
        """
        lat, lon, height = transform.cartesian_to_geodetic(
            self._x, self._y, self._z, ell=ell)
        return lat, lon, height

    def spherical(self):
        """Return spherical (geocentric) coordinates.

        Returns
        -------
        lat : ~astropy.units.Quantity
            Spherical latitude.
        lon : ~astropy.units.Quantity
            Spherical longitude.
        r : ~astropy.units.Quantity
            Radius.
        """

        lat, lon, radius = transform.cartesian_to_spherical(