code: def geodetic2geocentric(
      geodetic_lat, alt_m, ell: Ellipsoid = None, deg: bool = True
  ):
      """
      convert geodetic latitude to geocentric latitude on spheroid surface
  
      like Matlab geocentricLatitude() with alt_m = 0
      like Matlab geod2geoc()
  
      Parameters
      ----------
      geodetic_lat : float
          geodetic latitude
      alt_m: float
          altitude above ellipsoid
      ell : Ellipsoid, optional
           reference ellipsoid (default WGS84)
      deg : bool, optional
           degrees input/output  (False: radians in/out)
  
      Returns
      -------
      geocentric_lat : float
           geocentric latiude
  
      Notes
      -----
      Equations from J. P. Snyder, "Map Projections - A Working Manual",
      US Geological Survey Professional Paper 1395, US Government Printing
      Office, Washington, DC, 1987, pp. 13-18.
      """
      geodetic_lat, ell = sanitize(geodetic_lat, ell, deg)
      r = rcurve.transverse(geodetic_lat, ell, deg=False)
      geocentric_lat = atan(
          (1 - ell.eccentricity**2 * (r / (r + alt_m)))
          * tan(geodetic_lat)
      )
  
      return degrees(geocentric_lat) if deg else geocentric_lat
  
imports: from __future__ import annotations
  import warnings
  from math import pi
  from .None import rcurve
  from .ellipsoid import Ellipsoid
  from .mathfun import asinh, atan, atanh, cos, degrees, exp, inf, radians, sign, sin, sqrt, tan
  from .utils import sanitize
label_desc: Use image node_id 2 for calling a global function with example usage: geodetic2geocentric(geodetic_lat, alt_m, ell, deg) and returns: unknown