ecef2enu#

ahrs.common.frames.ecef2enu(x: float, y: float, z: float, lat: float, lon: float, h: float, a: float = 6378137.0, b: float = 6356752.3142) ndarray#

Transform geocentric XYZ coordinates in ECEF-frame to Local East-North-Up (ENU) cartesian coordinates [NKG13].

Parameters:
  • x (float) – ECEF x-coordinate, in meters.

  • y (float) – ECEF y-coordinate, in meters.

  • z (float) – ECEF z-coordinate, in meters.

  • lat (float) – Latitude, in degrees.

  • lon (float) – Longitude, in degrees.

  • h (float) – Height above ellipsoidal surface, in kilometers.

  • a (float, default: 6378137.0) – Ellipsoid’s equatorial radius (semi-major axis), in meters. Defaults to Earth’s.

  • ecc (float, default: 8.1819190842622e-2) – Ellipsoid’s first eccentricity. Defaults to Earth’s.

Returns:

enu – ENU cartesian coordinates [east, north, up].

Return type:

numpy.ndarray

Examples

>>> from ahrs.common.frames import ecef2enu
>>> x = 660_930.19276
>>> y = -4_701_424.22296
>>> z = 4_246_579.60463
>>> lat = 42.0
>>> lon = -82.0
>>> h = 200.0
>>> ecef2enu(x, y, z, lat, lon, h)
array([186.27751933, 286.84222383, 939.69262095])