ITRF (International Terrestrial Reference Frame) Coordinate
- class satkit.itrfcoord(*args, **kwargs)
Bases:
objectRepresentation 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:
itrfcoordNew 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.quaternionQuaternion 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.quaternionQuaternion 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