Skip to content

Latest commit

 

History

History
178 lines (119 loc) · 7.19 KB

coordinate.rst

File metadata and controls

178 lines (119 loc) · 7.19 KB

Coordinates

Contents

Coordinates Overview

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.

Specifying Ground Locations

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

Different Coordinate Frames

Celest provides the ability to deal with different coordinate frames and their conversions. The supported frames are:

  1. Roll-Pitch-Yaw Attitude Frame<Roll-Pitch-Yaw Attitude Frame>,
  2. Azimuth-Elevation (Horizontal frame)<Azimuth-Elevation (Horizontal Frame)>,
  3. Geocentric Celestial Reference System (GCRS)<Geocentric Celestial Reference System (GCRS)>,
  4. International Terrestrial Reference System (ITRS)<International Terrestrial Reference System (ITRS)>,
  5. Local-Vertical-Local-Horizontal (LVLH)<Local-Vertical-Local-Horizontal (LVLH)>, and
  6. World Geodetic System 84 (WGS84)<World Geodetic System 84 (WGS84)>.

Roll-Pitch-Yaw Attitude Frame

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

Azimuth-Elevation (Horizontal Frame)

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

Geocentric Celestial Reference System (GCRS)

The GCRS class can be imported via the following:

from celest.coordinates import GCRS

celest.coordinates.frames.gcrs.GCRS

International Terrestrial Reference System (ITRS)

The ITRS class can be imported via the following:

from celest.coordinates import ITRS

celest.coordinates.frames.itrs.ITRS

Local-Vertical-Local-Horizontal (LVLH)

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

World Geodetic System 84 (WGS84)

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

Converting Between Coordinate Frames

Conversions between the different coordinate frames are accessible through the Coordinate class. However, there exist constraints on various conversions.

  1. Since the Azimuth-Elevation frame<Azimuth-Elevation (Horizontal Frame)> is observer centric, conversions to this frane require a defined ground location<Specifying Ground Locations> to be passed in as a parameter to the conversion method.
  2. 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