<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def ecef2enuv(u: float, v: float, w: float, lat0: float, lon0: float, deg: bool = True) -> Tuple[float, float, float]: """ VECTOR from observer to target ECEF => ENU Parameters u : float or numpy.ndarray of float target x ECEF coordinate (meters) v : float or numpy.ndarray of float target y ECEF coordinate (meters) w : float or numpy.ndarray of float target z ECEF coordinate (meters) lat0 : float Observer geodetic latitude lon0 : float Observer geodetic longitude h0 : float observer altitude above geodetic ellipsoid (meters) deg : bool, optional degrees input/output (False: radians in/out) Returns ------- uEast : float or numpy.ndarray of float target east ENU coordinate (meters) vNorth : float or numpy.ndarray of float target north ENU coordinate (meters) wUp : float or numpy.ndarray of float target up ENU coordinate (meters) """

    if deg:
        lat0 = radians(lat0)
        lon0 = radians(lon0)

    t = cos(lon0) * u + sin(lon0) * v
    uEast = -sin(lon0) * u + cos(lon0) * v
    wUp = cos(lat0) * t + sin(lat0) * w
    vNorth = -sin(lat0) * t + cos(lat0) * w

    return uEast, vNorth, wUp