ENU#

class spacekernel.frames.ENU(double lon: float, double lat: float, double alt: float, Ellipsoid ell: Ellipsoid = WGS84)#

Bases: Frame

East-North-Up (ENU) Local Tangent Reference Frame.

The ENU frame is a local Cartesian frame centered at a specified ground station, with axes:
  • X: East

  • Y: North

  • Z: Up (normal to the ellipsoid surface)

This class provides high-precision transformations between the ENU frame and the International Terrestrial Reference Frame (ITRF), including position and velocity. The ground station location is specified by geodetic longitude, latitude, and altitude.

Parameters:
lonfloat

Geodetic longitude of the ground station [radians].

latfloat

Geodetic latitude of the ground station [radians].

altfloat

Altitude above the ellipsoid [meters].

ellEllipsoid, optional

Reference ellipsoid (default is WGS84).

See also

ITRF

International Terrestrial Reference Frame

Frame

Base class for reference frames

Notes

  • All rotations and frame transformations follow standard geodetic conventions.

  • Axes are oriented: X = East, Y = North, Z = Up.

  • Used for radar, GNSS, and other local navigation applications.

Summary#

ENU.rot_to_ITRF(self)

Compute the rotation matrix from ENU to ITRF.

ENU.to_ITRF(self, time, r_ENU, v_ENU)

Transform position and velocity from ENU to ITRF.

ENU.rot_from_ITRF(self)

Compute the rotation matrix from ITRF to ENU.

ENU.from_ITRF(self, time, r_ITRF, v_ITRF)

Transform position and velocity from ITRF to ENU.

ENU.r_station_ITRF

ENU.r_station_ITRF: ndarray[double] Get the ITRF coordinates of the ground station.

Methods#

ENU.rot_to_ITRF(self) ndarray[double]#

Compute the rotation matrix from ENU to ITRF.

Returns:
rotndarray of shape (3, 3)

Rotation matrix such that r_ITRF = rot @ r_ENU.

Notes

The rotation is defined at the ground station’s geodetic longitude and latitude.

ENU.to_ITRF(self, time: DatetimeLike, r_ENU: ndarray[double], v_ENU: ndarray[double]) tuple[ndarray, 2]#

Transform position and velocity from ENU to ITRF.

Parameters:
timeDatetimeLike

Time(s) for which the transformation is computed.

r_ENUndarray of shape (N, 3)

Position vectors in the ENU frame.

v_ENUndarray of shape (N, 3)

Velocity vectors in the ENU frame.

Returns:
r_ITRFndarray of shape (N, 3)

Transformed position vectors in the ITRF frame.

v_ITRFndarray of shape (N, 3)

Transformed velocity vectors in the ITRF frame.

Notes

This method calls the low-level Cython implementation c_to_ITRF.

ENU.rot_from_ITRF(self) ndarray[double]#

Compute the rotation matrix from ITRF to ENU.

Returns:
rotndarray of shape (3, 3)

Rotation matrix such that r_ENU = rot @ r_ITRF.

Notes

The rotation is defined at the ground station’s geodetic longitude and latitude.

ENU.from_ITRF(self, time: DatetimeLike, r_ITRF: ndarray[double], v_ITRF: ndarray[double]) tuple[ndarray, 2]#

Transform position and velocity from ITRF to ENU.

Parameters:
timeDatetimeLike

Time(s) for which the transformation is computed.

r_ITRFndarray of shape (N, 3)

Position vectors in the ITRF frame.

v_ITRFndarray of shape (N, 3)

Velocity vectors in the ITRF frame.

Returns:
r_ENUndarray of shape (N, 3)

Transformed position vectors in the ENU frame.

v_ENUndarray of shape (N, 3)

Transformed velocity vectors in the ENU frame.

Notes

This method calls the low-level Cython implementation c_from_ITRF.