Contents
The coordinate module provides the base classes and functions used for coordinate definitions and conversions. This includes the ability to define ground locations and different coordinate systems, in addition to defining the framework for conversions between these systems.
One of the primary objectives of Celest is to generate and schedule encounter times between a satellite and a ground location; this requires the definition of a ground location which is accomplished using the GroundLocation
class.
The GroundLocation
class can be imported via the following:
from celest.coordinates import GroundLocation
celest.coordinates.ground_location.GroundLocation
Celest provides the ability to deal with different coordinate frames and their conversions. The supported frames are:
Roll-Pitch-Yaw Attitude Frame<Roll-Pitch-Yaw Attitude Frame>
,Azimuth-Elevation (Horizontal frame)<Azimuth-Elevation (Horizontal Frame)>
,Geocentric Celestial Reference System (GCRS)<Geocentric Celestial Reference System (GCRS)>
,International Terrestrial Reference System (ITRS)<International Terrestrial Reference System (ITRS)>
,Local-Vertical-Local-Horizontal (LVLH)<Local-Vertical-Local-Horizontal (LVLH)>
, andWorld Geodetic System 84 (WGS84)<World Geodetic System 84 (WGS84)>
.
The Roll-Pitch-Yaw attitude frame is a 3-dimensional frame that defines satellite orientation. The roll, pitch, and yaw angles are the angles required to rotate the satellite from the lvlh frame<Local-Vertical-Local-Horizontal (LVLH)>
to an orientation where the satellite's nadir intersects the ground location. The role of the attitude frame is to define satellite orientation for ground target tracking during ground imaging encounters (for a nadir facing camera).
The attitude frame is calculated from the Satellite.attitude
method and requires both the satellite position and velocity.
The Attitude
class can be imported via the following:
from celest.coordinates import Attitude
celest.coordinates.frames.attitude.Attitude
The Azimuth-Elevation frame (also known as the Horizontal or Altitude-Azimuth frame) is an observer centric frame that uses the observers local horizon to define two angular measures: azimuth and elevation. Azimuth is the angle in the plane of the observer's local horizon between the desired target and North. Azimuth is measured as clockwise positive and lies in the range [0, 360). Elevation is the angle of the desired target above and perpendicular to the observer's local horizon. Elevation is measured as positive above the horizontal plane and lies in the range [ − 90, 90]. This frame is used extensively in the window generation workflow.
Since the Azimuth-Elevation frame is dependent on the observer's location, conversions from frames such as the GCRS or ITRS frame requires passing in an observer's location. For more information on initializing a ground location, refer to the Specifying Ground Locations
section.
The AzEl
class can be imported via the following:
from celest.coordinates import AzEl
celest.coordinates.frames.azel.AzEl
The GCRS
class can be imported via the following:
from celest.coordinates import GCRS
celest.coordinates.frames.gcrs.GCRS
The ITRS
class can be imported via the following:
from celest.coordinates import ITRS
celest.coordinates.frames.itrs.ITRS
The Local-Vertical-Local-Horizontal (LVLH) frame (also known as the Hill frame) is a 3-dimensional frame oriented with respect to the satellite's orbit. The origin is located at the satellite's center of mass. The z-axis is aligned with the satellites geocentric radius vector and is positive towards the Earth's surface. The x-axis lies in the orbital plane and is perpendicular to the z-axis; the axis is positive in the direction of the satellite's motion. Lastly, the y-axis is perpendicular to the orbital plane to complete the right handed orthogonal set.
The LVLH frame is used as a basis for satellite attitude determination. That is, the satellite's attitude is defined as the roll, pitch, and yaw angles required to rotate the satellite from the LVLH frame to it's given orientation.
The LVLH
class can be imported via the following:
from celest.coordinates import LVLH
celest.coordinates.frames.lvlh.LVLH
The World Geodetic System 84 (WGS84) is a reference ellipsoid used to model the Earth as an ellipsoid rather than a sphere. It is defined by three measures: latitude, longitude, and the location's height above the reference ellipsoid. The WGS84 frame is used primarily in defining ground locations such as those used in satellite-to-ground encounters.
The WGS84
class can be imported via the following:
from celest.coordinates import WGS84
celest.coordinates.frames.wgs84.WGS84
Conversions between the different coordinate frames are accessible through the Coordinate
class. However, there exist constraints on various conversions.
- Since the
Azimuth-Elevation frame<Azimuth-Elevation (Horizontal Frame)>
is observer centric, conversions to this frane require adefined ground location<Specifying Ground Locations>
to be passed in as a parameter to the conversion method. - Conversions from the
Azimuth-Elevation frame<Azimuth-Elevation (Horizontal Frame)>
are not supported.
For more information on using the coordinate conversions, refer to the tutorial on converting between frames found here <Position Conversions>
.
Note
Velocity conversions can be handled much in the same way as position conversions. However, due to physical insignificance, velocity coordinates should not be converted into the WGS84 frame<World Geodetic System 84 (WGS84)>
.
The Coordinate
class can be imported via the following:
from celest.coordinates import Coordinate
celest.coordinates.coordinate.Coordinate