code: def geodetic2enu(
      lat,
      lon,
      h,
      lat0,
      lon0,
      h0,
      ell: Ellipsoid = None,
      deg: bool = True,
  ) -> tuple:
      """
      Parameters
      ----------
      lat : float
            target geodetic latitude
      lon : float
            target geodetic longitude
      h : float
            target altitude above ellipsoid  (meters)
      lat0 : float
             Observer geodetic latitude
      lon0 : float
             Observer geodetic longitude
      h0 : float
           observer altitude above geodetic ellipsoid (meters)
      ell : Ellipsoid, optional
            reference ellipsoid
      deg : bool, optional
            degrees input/output  (False: radians in/out)
  
  
      Results
      -------
      e : float
          East ENU
      n : float
          North ENU
      u : float
          Up ENU
      """
      x1, y1, z1 = geodetic2ecef(lat, lon, h, ell, deg=deg)
      x2, y2, z2 = geodetic2ecef(lat0, lon0, h0, ell, deg=deg)
  
      return uvw2enu(x1 - x2, y1 - y2, z1 - z2, lat0, lon0, deg=deg)
  
file_path: pymap3d/src/pymap3d/enu.py
imports: from __future__ import annotations
  from math import tau
  from .ecef import ecef2geodetic, enu2ecef, geodetic2ecef, uvw2enu
  from .ellipsoid import Ellipsoid
  from .mathfun import atan2, cos, degrees, hypot, radians, sin
label_desc: Use image node_id 4 for calling a global function with example usage: geodetic2enu(lat, lon, h, lat0, lon0, h0, ell, deg) and returns: uvw2enu