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
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:
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)
- 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
- Returns:
(distance in meters, initial heading in radians, heading at destination in radians)
- Return type:
tuple[float, float, float]
- 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)
Move a distance along the Earth surface with a given initial heading
- Parameters:
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:
(distance in meters, initial heading in radians, heading at destination in radians)
- Return type:
tuple[float, float, float]
- 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:
- 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:
- 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]