Skip to content

Topocentric Coordinates

Functions for working with local topocentric coordinate frames including East-North-Up (ENZ), South-East-Zenith (SEZ), and Azimuth-Elevation-Range.

ENZ (East-North-Up) Frame

Rotation Matrices

rotation_ellipsoid_to_enz builtin

rotation_ellipsoid_to_enz(x_ellipsoid: ndarray, angle_format: AngleFormat) -> np.ndarray

Compute rotation matrix from ellipsoidal coordinates to East-North-Up (ENZ) frame.

Calculates the rotation matrix that transforms vectors from an ellipsoidal coordinate frame (geocentric or geodetic) to the local East-North-Up (ENZ) topocentric frame at the specified location.

Parameters:

Name Type Description Default
x_ellipsoid ndarray

Ellipsoidal position [latitude, longitude, altitude/radius] where latitude is in radians or degrees, longitude is in radians or degrees.

required
angle_format AngleFormat

Angle format for input angular coordinates (RADIANS or DEGREES).

required

Returns:

Type Description
ndarray

3x3 rotation matrix from ellipsoidal frame to ENZ frame.

rotation_enz_to_ellipsoid builtin

rotation_enz_to_ellipsoid(x_ellipsoid: ndarray, angle_format: AngleFormat) -> np.ndarray

Compute rotation matrix from East-North-Up (ENZ) frame to ellipsoidal coordinates.

Calculates the rotation matrix that transforms vectors from the local East-North-Up (ENZ) topocentric frame to an ellipsoidal coordinate frame (geocentric or geodetic) at the specified location.

Parameters:

Name Type Description Default
x_ellipsoid ndarray

Ellipsoidal position [latitude, longitude, altitude/radius] where latitude is in radians or degrees, longitude is in radians or degrees.

required
angle_format AngleFormat

Angle format for input angular coordinates (RADIANS or DEGREES).

required

Returns:

Type Description
ndarray

3x3 rotation matrix from ENZ frame to ellipsoidal frame.

Position Conversions

relative_position_ecef_to_enz builtin

relative_position_ecef_to_enz(location_ecef: ndarray, r_ecef: ndarray, conversion_type: str) -> np.ndarray

Convert relative position from ECEF to East-North-Up (ENZ) frame.

Transforms a relative position vector from Earth-Centered Earth-Fixed (ECEF) coordinates to the local East-North-Up (ENZ) topocentric frame at the specified location.

Parameters:

Name Type Description Default
location_ecef ndarray

Reference location in ECEF coordinates [x, y, z] in meters.

required
r_ecef ndarray

Position vector in ECEF coordinates [x, y, z] in meters.

required
conversion_type str

Type of ellipsoidal conversion, either "Geocentric" or "Geodetic".

required

Returns:

Type Description
ndarray

Relative position in ENZ frame [east, north, up] in meters.

relative_position_enz_to_ecef builtin

relative_position_enz_to_ecef(location_ecef: ndarray, r_enz: ndarray, conversion_type: str) -> np.ndarray

Convert relative position from East-North-Up (ENZ) frame to ECEF.

Transforms a relative position vector from the local East-North-Up (ENZ) topocentric frame to Earth-Centered Earth-Fixed (ECEF) coordinates at the specified location.

Parameters:

Name Type Description Default
location_ecef ndarray

Reference location in ECEF coordinates [x, y, z] in meters.

required
r_enz ndarray

Relative position in ENZ frame [east, north, up] in meters.

required
conversion_type str

Type of ellipsoidal conversion, either "Geocentric" or "Geodetic".

required

Returns:

Type Description
ndarray

Position vector in ECEF coordinates [x, y, z] in meters.

position_enz_to_azel builtin

position_enz_to_azel(x_enz: ndarray, angle_format: AngleFormat) -> np.ndarray

Convert position from East-North-Up (ENZ) frame to azimuth-elevation-range.

Transforms a position from the local East-North-Up (ENZ) topocentric frame to azimuth-elevation-range spherical coordinates.

Parameters:

Name Type Description Default
x_enz ndarray

Position in ENZ frame [east, north, up] in meters.

required
angle_format AngleFormat

Angle format for output angular coordinates (RADIANS or DEGREES).

required

Returns:

Type Description
ndarray

Azimuth-elevation-range [azimuth, elevation, range] where azimuth and elevation are in radians or degrees, and range is in meters.

SEZ (South-East-Zenith) Frame

Rotation Matrices

rotation_ellipsoid_to_sez builtin

rotation_ellipsoid_to_sez(x_ellipsoid: ndarray, angle_format: AngleFormat) -> np.ndarray

Compute rotation matrix from ellipsoidal coordinates to South-East-Zenith (SEZ) frame.

Calculates the rotation matrix that transforms vectors from an ellipsoidal coordinate frame (geocentric or geodetic) to the local South-East-Zenith (SEZ) topocentric frame at the specified location.

Parameters:

Name Type Description Default
x_ellipsoid ndarray

Ellipsoidal position [latitude, longitude, altitude/radius] where latitude is in radians or degrees, longitude is in radians or degrees.

required
angle_format AngleFormat

Angle format for input angular coordinates (RADIANS or DEGREES).

required

Returns:

Type Description
ndarray

3x3 rotation matrix from ellipsoidal frame to SEZ frame.

rotation_sez_to_ellipsoid builtin

rotation_sez_to_ellipsoid(x_ellipsoid: ndarray, angle_format: AngleFormat) -> np.ndarray

Compute rotation matrix from South-East-Zenith (SEZ) frame to ellipsoidal coordinates.

Calculates the rotation matrix that transforms vectors from the local South-East-Zenith (SEZ) topocentric frame to an ellipsoidal coordinate frame (geocentric or geodetic) at the specified location.

Parameters:

Name Type Description Default
x_ellipsoid ndarray

Ellipsoidal position [latitude, longitude, altitude/radius] where latitude is in radians or degrees, longitude is in radians or degrees.

required
angle_format AngleFormat

Angle format for input angular coordinates (RADIANS or DEGREES).

required

Returns:

Type Description
ndarray

3x3 rotation matrix from SEZ frame to ellipsoidal frame.

Position Conversions

relative_position_ecef_to_sez builtin

relative_position_ecef_to_sez(location_ecef: ndarray, r_ecef: ndarray, conversion_type: str) -> np.ndarray

Convert relative position from ECEF to South-East-Zenith (SEZ) frame.

Transforms a relative position vector from Earth-Centered Earth-Fixed (ECEF) coordinates to the local South-East-Zenith (SEZ) topocentric frame at the specified location.

Parameters:

Name Type Description Default
location_ecef ndarray

Reference location in ECEF coordinates [x, y, z] in meters.

required
r_ecef ndarray

Position vector in ECEF coordinates [x, y, z] in meters.

required
conversion_type str

Type of ellipsoidal conversion, either "Geocentric" or "Geodetic".

required

Returns:

Type Description
ndarray

Relative position in SEZ frame [south, east, zenith] in meters.

relative_position_sez_to_ecef builtin

relative_position_sez_to_ecef(location_ecef: ndarray, x_sez: ndarray, conversion_type: str) -> np.ndarray

Convert relative position from South-East-Zenith (SEZ) frame to ECEF.

Transforms a relative position vector from the local South-East-Zenith (SEZ) topocentric frame to Earth-Centered Earth-Fixed (ECEF) coordinates at the specified location.

Parameters:

Name Type Description Default
location_ecef ndarray

Reference location in ECEF coordinates [x, y, z] in meters.

required
x_sez ndarray

Relative position in SEZ frame [south, east, zenith] in meters.

required
conversion_type str

Type of ellipsoidal conversion, either "Geocentric" or "Geodetic".

required

Returns:

Type Description
ndarray

Position vector in ECEF coordinates [x, y, z] in meters.

position_sez_to_azel builtin

position_sez_to_azel(x_sez: ndarray, angle_format: AngleFormat) -> np.ndarray

Convert position from South-East-Zenith (SEZ) frame to azimuth-elevation-range.

Transforms a position from the local South-East-Zenith (SEZ) topocentric frame to azimuth-elevation-range spherical coordinates.

Parameters:

Name Type Description Default
x_sez ndarray

Position in SEZ frame [south, east, zenith] in meters.

required
angle_format AngleFormat

Angle format for output angular coordinates (RADIANS or DEGREES).

required

Returns:

Type Description
ndarray

Azimuth-elevation-range [azimuth, elevation, range] where azimuth and elevation are in radians or degrees, and range is in meters.