ITRF (International Terrestrial Reference Frame) Coordinate

class satkit.itrfcoord(*args, **kwargs)

Representation of a coordinate in the International Terrestrial Reference Frame (ITRF)

Notes

  • This coordinate object can be created from and also output to Geodetic coordinates (latitude, longitude, height above ellipsoid).

  • Functions are also available to provide rotation quaternions to the East-North-Up frame and North-East-Down frame at this coordinate

Parameters:

vec (numpy.ndarray, list, or 3-element tuple of floats, optional) – ITRF Cartesian location in meters

Keyword Arguments:
  • latitude_deg (float, optional) – Latitude in degrees

  • longitude_deg (float, optional) – Longitude in degrees

  • latitude_rad (float, optional) – Latitude in radians

  • longitude_rad (float, optional) – Longitude in radians

  • altitude (float, optional) – Height above ellipsoid, meters

  • height (float, optional) – Height above ellipsoid, meters

Returns:

New ITRF coordinate

Return type:

itrfcoord

Example

  1. Create ITRF coord from Cartesian

>>> coord = itrfcoord([ 1523128.63570828 -4461395.28873207  4281865.94218203 ])
>>> print(coord)
ITRFCoord(lat:  42.4400 deg, lon: -71.1500 deg, hae:  0.10 km)
  1. Create ITRF coord from Geodetic

>>> coord = itrfcoord(latitude_deg=42.44, longitude_deg=-71.15, altitude=100)
>>> print(coord)
ITRFCoord(lat:  42.4400 deg, lon: -71.1500 deg, hae:  0.10 km)
property altitude

Altitude above ellipsoid, in meters

geodesic_distance(other: itrfcoord)

Use Vincenty formula to compute geodesic distance: https://en.wikipedia.org/wiki/Vincenty%27s_formulae

Return a tuple with:

1: geodesic distance (shortest distance between two points) between this coordinate and given coordinate, in meters

2: initial heading, in radians

  1. heading at destination, in radians

property geodetic_deg

Geodetic position in degrees

Returns:

Tuple with 3 elements representing the geodetic position. First element is latitude in degrees, second is longitude in degrees, and third is altitude in meters

Return type:

tuple[float, float, float]

property geodetic_rad

Geodetic position in radians

Returns:

Tuple with 3 elements representing the geodetic position. First element is latitude in radians, second is longitude in radians, and third is altitude in meters

Return type:

tuple[float, float, float]

property latitude_deg

Latitude in degrees

property latitude_rad

Latitude in radians

property longitude_deg

Longitude in degrees

property longitude_rad

Longitude in radians

move_with_heading(distance: float, heading_rad: float)

Takes two input arguments:

  1. distance (meters)

  2. heading (rad)

Return itrfcoord representing move along Earth surface by given distance in direction given by heading

Altitude is assumed to be zero

Use Vincenty formula to compute position: https://en.wikipedia.org/wiki/Vincenty%27s_formulae

property qenu2itrf

Quaternion representiong rotation from East-North-Up (ENU) to ITRF at this location

Returns:

Quaternion representiong rotation from East-North-Up (ENU) to ITRF at this location

Return type:

satkit.quaternion

property qned2itrf

Quaternion representing rotation from North-East-Down (NED) to ITRF at this location

Returns:

Quaternion representiong rotation from North-East-Down (NED) to ITRF at this location

Return type:

satkit.quaternion

property vector

Cartesian ITRF coord as numpy array

Returns:

3-element numpy array representing the ITRF Cartesian coordinate in meters

Return type:

npt.NDArray[np.float64]