ITRF (International Terrestrial Reference Frame) Coordinate

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

Bases: object

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

Args:

  • vec (numpy.ndarray, list, or 3-element tuple of floats, optional)

    ITRF Cartesian location in meters

  • 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:

  • itrfcoord

    New ITRF coordinate

Example

  • 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)
  • 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)
altitude

Altitude above ellipsoid, in meters

geodesic_distance(other)

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

Returns:

  • tuple[float, float, float]

    (distance in meters, initial heading in radians, heading at destination in radians)

geodetic_deg

Geodetic position in degrees

Returns:

  • tuple[float, float, float]

    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

geodetic_rad

Geodetic position in radians

Returns:

  • tuple[float, float, float]

    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

height

Height above ellipsoid in meters

Returns:

Height above ellipsoid in meters

Return type:

float

latitude_deg

Latitude in degrees

latitude_rad

Latitude in radians

longitude_deg

Longitude in degrees

longitude_rad

Longitude in radians

move_with_heading(distance, heading_rad)

Move a distance along the Earth surface with a given initial heading

Args:

  • distance (float)

    Distance to move in meters

  • heading_rad (float)

    Initial heading in radians

Notes

Altitude is assumed to be zero

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

Returns:

  • tuple[float, float, float]

    (distance in meters, initial heading in radians, heading at destination in radians)

qenu2itrf

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

Returns:

  • satkit.quaternion

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

qned2itrf

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

Returns:

  • satkit.quaternion

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

to_enu(refcoord)

Return vector from reference coordinate to this coordinate in East-North-Up (ENU) frame of the reference coordinate

Args:

  • refcoord (itrfcoord)

    Reference ITRF coordinate representing origin of ENU frame

Returns:

  • npt.NDArray[np.float64]

    3-element numpy array representing vector from reference coordinate to this coordinate in East-North-Up (ENU) frame of reference at the reference coordinate

Note

  • This is equivalent to calling: refcoord.qenu2itrf.conj * (self - refcoord)

to_ned(other)

Return vector from reference coordinate to this coordinate in North-East-Down (NED) at the reference coordinate

Args:

  • refcoord (itrfcoord)

    Reference ITRF coordinate representing origin of NED frame

Returns:

  • npt.NDArray[np.float64]

    3-element numpy array representing vector from reference coordinate to this coordinate in North-East-Down (NED) frame of reference at the reference coordinate

Note

  • This is equivalent to calling: refcoord.qned2itrf.conj * (self - refcoord)

vector

Cartesian ITRF coord as numpy array

Returns:

  • npt.NDArray[np.float64]

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